Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix Tag include
[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 459
407 #define YY_END_OF_BUFFER 460
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[2703] =
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,  460,  458,   15,   10,
442        10,   15,   15,  438,   10,  438,    5,    6,    5,    8,
443         9,    8,  454,  446,  447,  455,  452,  455,  453,  457,
444       446,  447,  457,  458,   22,   10,   22,   22,   22,   20,
445        22,   26,   10,   26,   26,  458,   26,  458,  458,   26,
446        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
447       458,   37,   48,   10,   48,   48,   48,   46,   48,   48,
448        48,  455,  454,   78,   10,   78,   78,   78,   76,   78,
449
450        78,   78,   78,   78,   82,   10,   82,  458,   82,  101,
451        10,  101,  101,  101,   99,  101,  101,  101,  105,   10,
452       105,  114,   10,  114,  114,  114,  112,  114,  114,  118,
453        10,  118,  118,  458,  118,  118,  458,  458,  118,  458,
454       118,  458,  118,  129,   10,  129,  129,  129,  127,  129,
455       129,  129,  133,   10,  133,  133,  142,   10,  142,  142,
456       142,  140,  142,  142,  146,   10,  146,  146,  155,   10,
457       155,  155,  155,  153,  155,  155,  159,   10,  159,  168,
458        10,  168,  168,  168,  166,  168,  168,  172,   10,  172,
459       195,   10,  195,  195,  195,  193,  195,  195,  195,  195,
460
461       195,  199,   10,  199,  458,  199,  240,   10,  240,  240,
462       240,  238,  240,  240,  240,  240,  240,  240,  240,  240,
463       244,   10,  244,  265,   10,  265,  265,  265,  263,  265,
464       265,  265,  265,  265,  265,  265,  269,   10,  269,  278,
465        10,  278,  278,  278,  276,  278,  278,  282,   10,  282,
466       309,   10,  309,  309,  309,  307,  309,  309,  309,  309,
467       313,   10,  313,  313,  326,   10,  326,  326,  326,  324,
468       326,  326,  330,   10,  330,  458,  330,  347,   10,  347,
469       347,  347,  345,  347,  347,  347,  351,   10,  351,  351,
470       364,   10,  364,  364,  364,  362,  364,  364,  368,   10,
471
472       368,  381,   10,  381,  381,  381,  379,  381,  381,  381,
473       385,   10,  385,  385,  398,   10,  398,  398,  398,  396,
474       398,  398,  398,  398,  402,   10,  402,  458,  402,  409,
475        10,  409,  409,  409,  407,  409,  413,   10,  413,  420,
476        10,  420,  420,  420,  418,  420,  424,   10,  424,  424,
477       433,   10,  433,  433,  433,  431,  433,  433,  437,   10,
478       437,   10,    0,    2,    2,    0,    4,    7,  449,  448,
479         0,    0,    0,    0,    0,    0,    0,   21,   23,   23,
480         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
481         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
482
483         0,    0,    0,   32,   34,   34,    0,   47,   49,   49,
484        49,   49,    0,    0,    0,   77,   79,   79,   79,   79,
485        79,   79,   79,   79,   79,    0,    0,  100,  102,  102,
486       102,  102,    0,  113,  115,  115,  115,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,  128,  130,  130,
488       130,  130,    0,  141,  143,  143,  143,    0,  154,  156,
489       156,  156,    0,  167,  169,  169,  169,    0,  194,  196,
490       196,  196,  196,  196,  196,    0,    0,  239,  241,  241,
491       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
492       241,  241,    0,  264,  266,  266,  266,  266,  266,  266,
493
494       266,  266,    0,  277,  279,  279,  279,    0,  308,  310,
495       310,  310,  310,  310,  310,    0,  325,  327,  327,  327,
496       327,    0,    0,  346,  348,  348,  348,  348,  348,    0,
497       363,  365,  365,  365,    0,  380,  382,  382,  382,  382,
498         0,  397,  399,  399,  399,  399,  399,    0,    0,  408,
499       410,  410,    0,  419,  421,  421,    0,  432,  434,  434,
500       434,    0,    0,    0,    0,    0,    3,    0,    0,    0,
501         0,    0,    0,    0,  456,    0,   23,    0,    0,  107,
502         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
503         0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
504
505         0,    0,    0,    0,   34,    0,    0,   49,    0,    0,
506        49,    0,    0,    0,  451,   79,    0,    0,   79,   79,
507        79,   79,   79,   79,    0,    0,    0,  102,  102,  102,
508         0,    0,    0,    0,  115,    0,    0,  107,    0,    0,
509         0,    0,    0,  106,    0,    0,  130,    0,    0,  130,
510         0,    0,    0,    0,  143,    0,    0,    0,    0,  156,
511         0,    0,  169,  169,    0,    0,  196,  196,  196,    0,
512         0,  196,  196,    0,    0,    0,    0,  241,  241,    0,
513         0,  241,    0,    0,  241,  241,  241,  241,  241,  241,
514       241,  241,    0,    0,  266,  266,  266,    0,    0,  266,
515
516       266,  266,    0,    0,  279,    0,    0,    0,    0,  310,
517         0,    0,  310,  310,  310,    0,    0,  327,  327,  327,
518         0,    0,    0,  348,  348,  348,  348,    0,    0,  365,
519         0,    0,    0,    0,  382,  382,  382,    0,    0,  399,
520       399,  399,  399,    0,    0,    0,  410,    0,    0,    0,
521         0,    0,    0,    0,    0,  434,    0,    0,    0,   14,
522         1,    0,    0,  444,    0,    0,    0,  441,  440,    0,
523         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
524         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
525         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
526
527         0,    0,   34,    0,    0,   36,    0,   49,    0,   41,
528        40,   49,    0,    0,    0,   51,    0,   79,    0,   55,
529        54,    0,    0,   79,    0,    0,   79,   79,   79,    0,
530         0,   81,    0,    0,  102,  102,  102,    0,    0,  104,
531         0,    0,  109,  108,  115,    0,    0,  117,    0,    0,
532         0,    0,    0,    0,    0,    0,    0,  130,    0,  122,
533       121,  130,    0,    0,  132,    0,    0,  137,  136,  143,
534         0,    0,  145,    0,    0,  150,  149,  156,    0,    0,
535       158,    0,  169,  169,    0,    0,  171,    0,  196,  196,
536       196,    0,  176,  175,  196,  196,    0,    0,  198,    0,
537
538         0,    0,  241,  241,  241,  241,    0,  215,  214,  241,
539         0,  203,  202,    0,    0,  241,  241,  241,  241,  241,
540       241,  241,    0,    0,  243,    0,  266,  266,  266,  266,
541         0,  248,  247,    0,    0,  266,  266,    0,    0,  268,
542         0,  279,    0,  273,  272,    0,    0,  281,    0,  310,
543         0,  286,  285,  310,  310,  310,    0,    0,  312,    0,
544         0,    0,    0,    0,  327,    0,    0,  329,    0,    0,
545         0,    0,  348,  348,    0,    0,  348,    0,    0,  350,
546         0,  365,    0,  355,  354,    0,    0,  367,    0,    0,
547         0,  382,  382,    0,    0,    0,    0,  384,    0,  399,
548
549       399,  399,  399,    0,    0,  401,    0,    0,  410,    0,
550         0,  412,    0,    0,  417,  416,    0,    0,  423,    0,
551         0,  428,  427,  434,    0,    0,  436,    0,    0,    0,
552       445,  439,    0,    0,    0,   23,    0,    0,    0,    0,
553         0,    0,  173,    0,  283,    0,    0,  246,    0,    0,
554       425,    0,    0,    0,    0,    0,    0,    0,    0,  245,
555         0,    0,    0,    0,    0,    0,    0,   49,    0,    0,
556        79,    0,   59,   58,    0,    0,    0,   57,   56,   79,
557         0,    0,   79,    0,  426,  102,    0,    0,  102,    0,
558       115,    0,  116,    0,    0,  174,  284,    0,    0,    0,
559
560         0,  130,  130,    0,  143,    0,    0,    0,    0,    0,
561         0,  169,    0,  196,  196,    0,    0,  196,  196,    0,
562         0,    0,  241,  241,  241,  241,    0,    0,    0,  217,
563       216,  241,  241,  241,  241,  241,  241,  241,    0,  266,
564       266,  266,  266,    0,  256,  255,  266,  266,    0,  279,
565         0,  310,  310,  310,  310,    0,    0,  319,  318,    0,
566       317,  316,  327,    0,  283,    0,  336,  335,  348,  348,
567         0,  334,  333,  348,    0,  365,    0,    0,  374,  373,
568       382,  382,    0,  372,  371,    0,  399,    0,    0,  399,
569       399,    0,    0,  410,    0,    0,  434,    0,    0,    0,
570
571         0,   12,    0,  442,  443,    0,   23,    0,    0,    0,
572         0,    0,    0,  173,    0,  283,    0,  147,    0,  246,
573         0,    0,  425,    0,  314,    0,   39,    0,    0,    0,
574         0,  245,    0,   38,    0,   30,   29,    0,    0,   43,
575        42,   49,    0,    0,   79,    0,   61,   60,   79,    0,
576        65,   64,   79,    0,  426,  102,    0,    0,    0,    0,
577         0,    0,  115,    0,    0,  174,  284,  315,    0,  315,
578       314,  130,    0,    0,    0,  143,    0,    0,  152,  151,
579         0,    0,  165,  164,  169,    0,  196,  196,    0,  180,
580       179,    0,    0,    0,    0,  196,    0,  148,    0,  241,
581
582         0,    0,  241,  241,    0,  213,  212,    0,    0,  241,
583       241,  241,  241,  241,  241,    0,  266,    0,    0,  266,
584       266,    0,    0,  266,    0,  279,    0,  310,  310,  310,
585         0,    0,  310,    0,  327,    0,    0,  348,  348,  348,
586         0,  365,    0,  382,  382,    0,  399,    0,  389,  388,
587       399,  399,    0,    0,    0,    0,    0,    0,    0,    0,
588         0,    0,    0,    0,   11,    0,   23,    0,    0,    0,
589         0,    0,  415,    0,    0,  147,    0,    0,    0,   53,
590       314,  270,    0,   39,    0,  414,   52,    0,    0,    0,
591        38,    0,    0,   49,    0,    0,   79,   79,   79,    0,
592
593       102,    0,    0,    0,    0,    0,    0,    0,    0,    0,
594        96,   95,    0,  115,    0,    0,  315,  271,    0,  130,
595         0,  124,  123,    0,    0,    0,    0,    0,    0,    0,
596         0,  196,  196,    0,  178,  177,    0,    0,    0,  196,
597         0,  197,  148,    0,  241,    0,  225,  224,    0,    0,
598       241,    0,  211,  210,    0,    0,  241,  241,  241,  241,
599         0,    0,    0,  266,    0,  252,  251,    0,    0,  266,
600         0,  250,  249,  266,    0,  267,  279,    0,  310,  310,
601       310,    0,    0,    0,  310,    0,  311,  327,    0,    0,
602         0,    0,    0,    0,  348,    0,  365,    0,    0,    0,
603
604         0,    0,    0,  399,  399,  399,    0,    0,    0,  406,
605       405,    0,    0,    0,  430,  429,    0,  435,    0,    0,
606         0,    0,    0,    0,    0,  331,    0,    0,  201,  415,
607        28,    0,    0,    0,  387,   53,  270,  134,    0,  414,
608        52,  200,   27,  386,    0,    0,   49,    0,    0,   50,
609        79,    0,    0,   79,    0,    0,    0,    0,    0,    0,
610         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
611       332,    0,  271,  135,    0,    0,    0,    0,  139,  138,
612         0,    0,  157,    0,  163,  162,    0,  196,  196,    0,
613         0,  196,    0,  241,    0,  227,  226,  241,    0,  205,
614
615       204,    0,    0,  241,  241,  241,    0,  207,  206,    0,
616       266,    0,  254,  253,  266,  266,  279,    0,  310,    0,
617         0,  310,  310,    0,    0,  310,  327,    0,  328,    0,
618         0,  340,  339,    0,  338,  337,  348,    0,  365,    0,
619         0,  378,  377,    0,  376,  375,    0,  399,  399,  399,
620         0,    0,    0,    0,    0,    0,    0,   17,    0,   19,
621        18,    0,  331,  403,    0,  201,   28,  352,  160,   16,
622       387,  134,    0,    0,  200,   27,  386,    0,    0,   49,
623       450,   79,    0,   67,   66,   79,    0,   80,    0,   98,
624        97,    0,    0,    0,    0,    0,    0,    0,    0,    0,
625
626         0,    0,    0,  111,  110,  332,    0,  135,    0,    0,
627       126,  125,    0,    0,    0,  196,  196,    0,    0,    0,
628         0,  196,  161,  241,  241,    0,  209,  208,  241,  241,
629       241,    0,  266,  266,  266,  279,    0,  280,  310,    0,
630       292,  291,  310,  310,    0,    0,    0,    0,  310,  327,
631       353,  348,    0,  365,    0,    0,    0,    0,  399,  399,
632         0,  404,    0,    0,  422,    0,    0,    0,   17,    0,
633       403,    0,  352,  160,   16,    0,    0,    0,    0,   35,
634        49,    0,    0,   79,    0,    0,    0,    0,    0,    0,
635         0,    0,    0,    0,    0,    0,    0,    0,    0,  144,
636
637         0,  196,  196,    0,  186,    0,  185,  196,  161,  241,
638       241,    0,    0,  241,  241,    0,  242,  266,  266,  266,
639       279,    0,    0,  310,  310,  310,    0,  296,    0,  295,
640       310,  327,  353,  348,    0,  349,    0,    0,    0,    0,
641         0,  391,  390,    0,    0,  399,    0,  400,  404,    0,
642         0,    0,    0,    0,   24,    0,    0,    0,    0,   49,
643         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,  170,
645       196,  196,  188,  187,    0,    0,  241,  241,    0,  237,
646       236,  241,    0,    0,  266,  266,    0,    0,  279,    0,
647
648       288,  287,  310,  310,  310,  298,  297,    0,    0,  327,
649       348,    0,    0,    0,    0,  366,    0,    0,  395,  394,
650         0,    0,    0,  411,    0,    0,    0,  369,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
652         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
653         0,  370,    0,    0,  196,    0,    0,    0,  190,  189,
654       241,  241,  241,    0,  235,  234,  266,    0,    0,    0,
655       262,  261,    0,    0,  310,  310,  310,    0,  300,  299,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,  393,  392,    0,    0,    0,  369,  119,    0,
658
659         0,    0,   45,   44,    0,    0,    0,    0,    0,    0,
660         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,  370,  120,    0,    0,    0,  196,    0,  192,
662       191,  241,  241,  241,  266,    0,  258,  257,    0,  275,
663       274,  310,    0,    0,  310,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665         0,    0,  119,   84,   83,    0,    0,    0,    0,    0,
666         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
667         0,   93,    0,    0,  120,    0,    0,  182,  181,  196,
668       241,  241,  241,  266,  310,    0,  294,  293,  310,    0,
669
670         0,    0,    0,    0,    0,    0,    0,    0,    0,  357,
671         0,    0,  356,    0,  383,    0,    0,    0,    0,    0,
672         0,   84,   83,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,   63,   62,    0,    0,    0,    0,    0,    0,
674         0,    0,  131,  196,  241,  241,    0,    0,  266,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,    0,   75,   71,    0,    0,   74,   70,    0,   92,
678         0,    0,   91,    0,    0,    0,  103,  196,  241,  241,
679         0,    0,    0,  266,    0,  290,  289,    0,    0,    0,
680
681       323,    0,  322,    0,  344,    0,  343,    0,  359,  361,
682       358,  360,    0,    0,    0,   12,    0,   12,    0,    0,
683         0,    0,    0,   86,   90,   85,   89,  196,  241,  241,
684         0,    0,    0,    0,  266,    0,    0,    0,    0,  321,
685       320,  342,  341,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
687         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
688         0,    0,    0,    0,   69,    0,   68,    0,    0,  184,
689       183,    0,  233,  232,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,  260,  259,    0,    0,    0,    0,
691
692         0,    0,    0,   11,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,   73,   72,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698         0,    0,    0,    0,    0,  219,    0,    0,  218,    0,
699         0,  302,    0,    0,  301,    0,    0,    0,    0,    0,
700       223,    0,  222,    0,  304,    0,  303,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,  229,
702
703         0,  228,    0,    0,    0,    0,    0,    0,  231,  230,
704       221,  220,  306,  305,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
713
714        13,    0
715     } ;
716
717 static yyconst flex_int32_t yy_ec[256] =
718     {   0,
719         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
720         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
721         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
722         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
723         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
724        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
725        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
726        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
727        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
728        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
729
730        53,   54,   55,   56,   57,   31,   58,   59,   60,   61,
731        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
732        72,   31,    1,    1,    1,    1,    1,    1,    1,    1,
733         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
734         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
735         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
736         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
737         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
738         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
739         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
740
741         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
742         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
745         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
746         1,    1,    1,    1,    1
747     } ;
748
749 static yyconst flex_int32_t yy_meta[73] =
750     {   0,
751         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
752         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
753         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
754         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
755         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
756         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
757         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
758         5,    5
759     } ;
760
761 static yyconst flex_int16_t yy_base[3078] =
762     {   0,
763         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
764        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
765       108,  177,   75,   78,   83,  128,  131,  134,  138,  141,
766       158,  197,  200,  203,  207,  210,  227,  230,  233,  236,
767       239,  256,  274,  328,  294,  297,  300,  304,  307,  348,
768       351,  354,  382,  445,  359,  414,  508,  574,  405,  408,
769       412,  417,  465,  468,  471,  475,  640,  707,  478,  528,
770       774,  839,  531,  534,  538,  541,  594,  597,  600,  604,
771       607,  660,  663,  666,  670,  673,  727,  730,  733,  737,
772       740,  794,  797,  800,  804,  807,  859,  862,  865,  869,
773
774       872,  889,  907,  967,  927,  930,  933,  937,  987,  990,
775       993,  997, 1027, 1094, 1047, 1050, 1053, 1057, 1060, 1114,
776      1117, 1120, 1161, 1222, 1124, 1127, 1283, 1350, 1181, 1184,
777      1417, 1483, 1187, 1191, 1194, 1242, 1245, 1248, 1252, 1255,
778      1549,    0, 1303, 1306, 1621,    0, 1309, 1313, 1693, 1750,
779      1316, 1370, 1807, 1873, 1373, 1376, 1380, 1383, 1437, 1440,
780      1443, 1447, 1939, 2005, 1503, 1506, 1509, 1513, 1713, 1716,
781      1719, 1723, 2071, 2137, 1770, 1773, 1776, 1780, 1827, 1830,
782      1833, 1837, 2203, 2260, 1840, 1893, 2317, 2383, 1896, 1899,
783      1903, 1906, 1959, 1962, 1965, 1969, 2449, 2515, 1972, 2025,
784
785      2028, 2031, 2035, 2038, 2091, 2094, 2581, 2650, 2097, 2101,
786      2719, 2776, 2104, 2157, 2160, 2163, 2167, 2170, 2223, 2226,
787      2833, 2902, 2229, 2233,    0,    0, 7416, 9694, 9694,   95,
788       100,   29,   41, 9694,  103,   51, 9694, 9694, 7405, 9694,
789      9694, 7394, 9694, 7405, 7405,  498, 9694, 9694, 9694, 9694,
790      7403, 7399, 7354,  145, 9694,  161, 7380,    0,  146, 9694,
791      7342, 9694,  166, 2967,   88,  204,  205,  254, 7382,    3,
792      9694,  169, 7373,    0,  153, 9694, 7331, 9694,  260,  302,
793      7375, 7364, 9694,  376, 7361,    0,  244, 9694, 7323, 7327,
794      7321,  419, 7326, 9694,  439, 7352,    0,  248, 9694, 7314,
795
796      7314,  311, 7316,  260, 9694,  567,  422, 7348, 7296, 9694,
797       624, 7338,    0,  479, 9694, 7294, 7295, 7286, 9694,  633,
798       482, 9694,  692, 7326,    0,  483, 9694, 7293, 7282, 9694,
799       697, 2226, 2234,   29,   35, 7317,  240,  135,  348, 2230,
800        59, 7326,  152, 9694,  700, 7317,    0,  485, 9694, 7270,
801      7279, 7268, 9694,  759, 7313,   31, 9694,  764, 7304,    0,
802       543, 9694, 7271, 7246, 9694,  767, 7305,  181, 9694,  824,
803      7296,    0,  545, 9694, 7259, 7261, 9694,  830,  546, 9694,
804       833, 7289,    0,  609, 9694, 7255, 7231, 9694,  895,  611,
805      9694,  898, 7282,    0,  612, 9694, 7228, 7234, 7243, 7228,
806
807      7222, 9694,  940,  311,  464,  210, 9694,  957, 7268,    0,
808       684, 9694, 6764,  311, 6770, 6778, 6780,  185,  376,  615,
809      9694, 1000,  685, 9694, 1017, 6808,    0,  751, 9694, 6758,
810      6756, 6763, 6772, 6773, 6759, 6752, 9694, 1077,  752, 9694,
811      1083, 6791,    0,  808, 9694, 6748, 6756, 9694, 1086,  944,
812      9694, 1089, 6780,    0,  809, 9694, 6749, 6745, 6746,  505,
813      9694, 1144, 6778,  364, 9694, 1150, 6769,    0,  873, 9694,
814      6721,  620, 9694, 1153, 1013, 6769, 6720, 9694, 1156, 6755,
815         0,  874, 9694, 6707, 6702,  687, 9694, 1211, 6758,  314,
816      9694, 1217, 6742,    0,  884, 9694, 6704, 6707, 9694, 1272,
817
818       945, 9694, 1278, 6738,    0,  941, 9694, 6690, 6681, 6684,
819      9694, 1333, 6732,  811, 9694, 1336, 6723,    0,  942, 9694,
820      6673, 6674, 6674, 6663, 9694, 1339,  607,  994,  527, 9694,
821      1343, 6708,    0, 1002, 9694, 6674, 9694, 1400, 1005, 9694,
822      1403, 6697,    0, 1061, 9694, 6664, 9694, 1406, 6702,  843,
823      9694, 1410, 6679,    0, 1062, 9694, 6646, 6647, 9694, 1450,
824      1455, 1467,  713, 6624, 9694, 6677, 6666, 9694, 9694, 9694,
825      1464,  435, 6607, 6602, 6600, 6635, 6595, 9694,    0, 6587,
826      6584, 6607, 6579, 6567,  687, 6576, 6575, 6570,  371, 1084,
827       960, 6559, 6557,  688, 1154, 6571,  757, 6548, 1212, 6537,
828
829       822, 1461, 1480, 9694,    0, 6542, 6539, 9694,    0, 6533,
830      1726, 6525, 1207, 6522, 6567, 9694,    0, 6521, 1783, 6509,
831      6530, 6516, 6511, 6491, 6491, 6476, 1483, 9694,    0, 6487,
832      6477, 6484, 6465, 9694,    0, 2295, 6462, 6499, 6481, 6446,
833      6453, 6447, 1410, 6426, 6453, 1413, 1476, 9694,    0, 6429,
834      2337, 6433, 6415, 9694,    0, 2340, 6411, 6407, 9694,    0,
835      2343, 6411, 6397, 9694,    0, 6396, 6391, 6393, 9694,    0,
836      6402, 1071, 2346, 6380, 6399, 6379,  435, 9694,    0, 6385,
837      6384, 2349, 6352, 2403, 6349, 6344, 6344, 6344, 6325, 6341,
838      6339, 6332, 6334, 9694,    0, 6334, 6321, 6306, 2406, 6299,
839
840      6290, 6309, 6290, 9694,    0, 6290, 2409, 6277, 9694,    0,
841      6280, 2412, 6267, 6284, 6282, 6266, 9694,    0, 6256, 6267,
842      6255, 6241, 6248, 9694,    0, 6236, 6254, 6231, 6218, 6251,
843      9694,    0, 6200, 2415, 6205, 9694,    0, 6187, 6205, 6192,
844      6192, 9694,    0, 6171, 6165, 6162, 6171, 6155, 6145, 9694,
845         0, 6144, 6151, 9694,    0, 2469, 6148, 9694,    0, 2472,
846      6129, 6124, 6165, 6170, 1114, 6119, 9694, 1846,    0, 6114,
847      6110, 6154, 6152, 6100, 9694, 6112, 6093, 2477, 2480, 1802,
848      6082, 6072, 6065, 6071, 6064, 6065, 6053, 6045, 6044, 6053,
849      6056, 6041, 6037, 6029, 6033, 6035, 6022, 6020, 1866, 6012,
850
851      6027, 6024, 6013, 6014, 6009, 2490, 2543, 6007, 2483, 1990,
852      5995, 6027, 2538, 2546, 9694, 5996, 2549, 2056, 2553, 5987,
853      2603, 5989, 5989, 5992, 2606, 2617, 5972, 5971, 5968, 5967,
854      2610, 2613, 2621, 2125, 5950, 2670, 2673, 1923, 5952, 5947,
855      5951, 5942, 5940, 1932, 5933, 5926, 5926, 2679, 2191, 5934,
856      2682, 2685, 2697, 2307, 5932, 2739, 2742, 2745, 2371, 5927,
857      2751, 2754, 5926, 5924, 2797, 2800, 5915, 5906, 5913, 2808,
858      2437, 5901, 5884, 2804, 2811, 5881, 5873, 5865, 1478, 2853,
859      2632, 5868, 2856, 2640, 2859, 5857, 5855, 5850, 5832, 5832,
860      5825, 5837, 2865, 2879, 5832, 1082, 5810, 2922, 2704, 2925,
861
862      5819, 5803, 2930, 2933, 5801, 2943, 2766, 2953, 2963, 5812,
863      2966, 2885, 5801, 5787, 5784, 2972, 2978, 2991, 3000, 3003,
864      3009, 3034, 5782, 3037, 3040, 3043, 3047, 3065, 3069, 5788,
865      3072, 3075, 3084, 3091, 3095, 3098, 3116, 3119, 3122, 5785,
866      5768, 5774, 5760, 3125, 3134, 5768, 5754, 3129, 3149, 3153,
867      3156, 3164, 3171, 3174, 3177, 5749, 3185, 3193, 5796, 9694,
868      9694,  992, 5755, 9694, 5796, 5786, 5726, 9694, 9694, 5718,
869      5717, 5725, 3198, 3204, 9694, 3207, 1744, 5710, 5698, 5712,
870      5694, 5693, 5675, 5682, 5674, 5670, 5667, 5663, 5644,  754,
871      5657, 5639, 5639, 5629, 5619, 5614, 1998, 5599, 5598, 5588,
872
873      1007, 5597, 3213, 3217, 3226, 9694, 3232, 3236, 3239, 9694,
874      9694, 3247, 5622, 3257, 3260, 9694, 3265, 5576, 3269, 9694,
875      9694, 3284, 3287, 3296, 3302, 3314, 5586, 3308, 5571, 3322,
876      3326, 9694, 3329, 1141, 5569, 3332, 5567, 3335, 3341, 9694,
877      3350, 3354, 9694, 9694, 5558, 3362, 3365, 9694, 3369, 5545,
878      5557, 5528, 5535, 5522, 5519, 5515, 5509, 5521, 3372, 9694,
879      9694, 5476, 3384, 3389, 9694, 3392, 3399, 9694, 9694, 5496,
880      3411, 3414, 9694, 3417, 3420, 9694, 9694, 3436, 3439, 3442,
881      9694, 3445, 3448, 3454, 3466, 3472, 9694, 3478, 5466, 5462,
882      3485, 3491, 9694, 9694, 5447, 5451, 3499, 3503, 9694, 3506,
883
884      5442, 5433, 5435, 5422, 5442, 5433, 3512, 9694, 9694, 3525,
885      3528, 9694, 9694, 3536, 3544, 5422, 5428, 5433, 5429, 5424,
886      5426, 5400, 3539, 3554, 9694, 3558, 5391, 5388, 5375, 5382,
887      3561, 9694, 9694, 3573, 3577, 5367, 5374, 3585, 3591, 9694,
888      3594, 5374, 3597, 9694, 9694, 3605, 3613, 9694, 3616, 5354,
889      3625, 9694, 9694, 5354, 5357, 5359, 3619, 3638, 9694, 3641,
890      3646, 3650, 3660, 3664, 5358, 3672, 3678, 9694, 3683, 5351,
891      3686, 3691, 5335, 5331, 3704, 3707, 5342, 3715, 3718, 9694,
892      3722, 5342, 3725, 9694, 9694, 3737, 3741, 9694, 3744, 3750,
893      3756, 5326, 5325, 3764, 3768, 3776, 3782, 9694, 3786, 5314,
894
895      3789, 5331, 5307, 3795, 3807, 9694, 3810, 5305, 5318, 3814,
896      3817, 9694, 3820, 3829, 9694, 9694, 3839, 3842, 9694, 3848,
897      3851, 9694, 9694, 5306, 3861, 3867, 9694, 3874,  883, 3880,
898      9694, 9694, 5338, 5336, 5298, 5279, 3886, 5271, 5275, 5264,
899      5262, 5270, 2064, 5258, 2255, 5257, 5258, 2250, 5267, 5255,
900      2509, 5245, 5252, 5242, 5232, 5226, 5216, 5206, 5204, 2572,
901      5213, 5212, 3889, 3893, 3901, 3908, 3911, 5211, 5229, 3920,
902      5201, 3926, 9694, 9694, 3935, 3939, 3953, 9694, 9694, 5199,
903      3947, 3961, 5194, 3970, 2575, 5183, 3973, 3976, 3984, 3991,
904      5182, 3994, 9694, 5173, 5127, 2826, 2894, 5135, 5138, 5132,
905
906      5129, 5120, 3997, 4003, 5124, 4006, 4015, 4026, 4034, 4037,
907      4041, 5123, 4049, 5120, 5111, 4055, 4058, 4073, 4077, 4080,
908      5099, 5089, 5104, 4083, 5080, 5096, 4086, 4095, 4104, 9694,
909      9694, 4112, 5073, 5090, 5073, 5070, 5082, 5057, 4115, 5068,
910      4118, 5049, 5057, 4124, 9694, 9694, 4136, 5065, 4139, 5054,
911      4142, 5049, 5053, 5037, 4146, 4149, 4154, 9694, 9694, 4164,
912      9694, 9694, 5029, 4172, 4175, 4180, 9694, 9694, 5017, 5028,
913      4193, 9694, 9694, 5011, 4208, 5009, 4211, 4215, 9694, 9694,
914      4997, 5012, 4223, 9694, 9694, 4231, 5004, 4234, 4238, 4992,
915      5010, 4246, 4996, 4252, 4255, 4258, 4270, 4261,  593, 5017,
916
917      4280, 9694, 5015, 9694, 9694, 4936, 4926, 4283, 4919, 4931,
918      4878, 4878, 4842, 2997, 4762, 4288, 4672, 4291, 4654, 4302,
919      4619, 4577, 4305, 4509, 4311, 4512, 4314, 4494, 4482, 4408,
920      4384, 4317, 4334, 4323, 4326, 9694, 9694, 4336, 4339, 9694,
921      9694, 4277, 4165, 4348,   16, 4351, 9694, 9694,   30, 4361,
922      9694, 9694,   79, 4370, 4375,  108, 4378, 1766, 2087, 4389,
923      4393, 4403,  165,  249,  278, 4407, 4410, 4413,  349, 4416,
924      4422,  338, 4425, 4431, 4439, 4443, 4446, 4449, 9694, 9694,
925      4465, 4468, 9694, 9694, 4461, 4480,  457,  499, 4487, 9694,
926      9694, 4495, 4499, 4507, 4513,  551, 4521, 4525,  575,  629,
927
928      4531, 4534, 4544,  615, 4549, 9694, 9694, 4557, 4562, 4570,
929       731,  776,  783,  828, 4575, 4578,  838, 4581, 4584, 4593,
930       877, 4599, 4602,  898, 4611,  922, 4617,  946,  997, 1022,
931      4620, 4623, 1056, 4631, 1060, 4638, 1126, 4644, 4650, 4653,
932      4657, 1143, 4662, 4671, 4676, 4681, 1139, 4690, 9694, 9694,
933      1149, 1143, 4684, 1158, 4703, 4710, 4724, 4728, 4731, 4736,
934      4749, 1241, 1305, 1279, 9694, 1173, 4752, 4755, 1209, 1203,
935      1229, 1207, 4758, 1261, 1255, 4761, 1268, 1261, 1262, 4764,
936      4770, 4774, 1280, 4777, 1297, 4784, 4787, 1284, 1328, 1323,
937      4790, 1339, 4793, 1341, 1371, 4796, 1333, 4799, 1342, 4802,
938
939      4805, 1378, 1379, 1426, 1380, 1411, 1421, 1451, 1446, 4817,
940      9694, 9694, 4808, 4827, 1446, 1480, 4830, 4833, 1466, 4836,
941      4845, 9694, 9694, 4839, 4861, 4864, 4872, 4875, 4879, 4882,
942      4897, 1465, 1474, 4900, 9694, 9694, 4909, 1505, 1507, 1490,
943      4917, 9694, 4920, 1654, 1667, 4926, 9694, 9694, 4936, 4939,
944      1675, 4947, 9694, 9694, 4955, 4958, 4966, 1676, 1687, 1679,
945      4969, 4973, 4987, 1681, 4990, 9694, 9694, 4998, 5002, 1693,
946      5010, 9694, 9694, 1686, 5018, 9694, 1700, 5021, 1699, 5024,
947      1733, 5027, 1754, 1756, 1736, 5042, 9694, 1743, 5045, 1756,
948      5048, 5051, 5066, 5071, 1781, 5079, 1784, 5085, 5088, 5091,
949
950      5099, 5106, 5117, 1786, 1789, 1793, 5120, 1791, 5123, 9694,
951      9694, 5131, 5139, 5146, 9694, 9694, 5154, 9694, 1836, 2082,
952      1851, 1805, 5158, 5161, 5169, 5176, 1805, 1827, 5188, 5193,
953      5196, 1843, 1859, 1853, 5199, 5202, 5205, 5208, 1853, 5211,
954      5214, 5217, 5220, 5223, 1856, 5226, 1865, 1882, 5229, 9694,
955      1864, 5233, 5236, 1884, 5251, 5255, 5258, 1902, 1899, 1915,
956      1935, 1935, 1944, 1942, 1942, 1949, 1946, 5266, 5273, 5278,
957      5286, 1933, 5291, 5294, 5297, 5300, 5308, 5316, 9694, 9694,
958      5311, 5330, 9694, 5334, 9694, 9694, 5342, 1939, 1936, 2009,
959      2020, 1945, 1968, 1986, 5345, 9694, 9694, 1987, 5354, 9694,
960
961      9694, 5363, 5366, 1998, 1991, 2002, 5374, 9694, 9694, 5382,
962      2004, 5385, 9694, 9694, 1997, 2010, 2003, 5396, 2031, 5401,
963      5404, 2057, 2050, 2141, 2152, 2055, 2070, 5415, 9694, 2064,
964      5419, 9694, 9694, 5427, 9694, 9694, 2079, 5435, 2071, 5438,
965      5442, 9694, 9694, 5450, 9694, 9694, 5458, 5461, 5464, 5467,
966      5470, 2068, 5473, 5495, 5498, 2157, 2116, 5504, 5507, 9694,
967      9694, 5517, 5520, 5526, 2085, 5529, 5536, 5539, 5542, 5545,
968      5548, 5551, 2113, 2125, 5554, 5557, 5560, 2129, 5563, 2124,
969      9694, 5566, 5569, 9694, 9694, 5577, 5584, 9694, 5588, 9694,
970      9694, 2171, 2158, 2173, 2169, 2176, 2209, 2199, 2214, 2211,
971
972      2219, 5596, 5599, 9694, 9694, 5607, 2215, 5610, 2221, 5615,
973      9694, 9694, 5623, 5626, 5629, 2233, 2240, 2267, 2294, 2275,
974      2295, 2252, 5632, 2251, 2260, 5636, 9694, 9694, 5648, 2271,
975      2301, 5652, 2298, 2304, 2305, 2307, 5657, 9694, 5660, 5672,
976      9694, 9694, 2304, 2304, 2340, 2364, 2344, 2367, 2325, 2330,
977      5666, 2332, 5681, 5684, 5687, 5690, 5693, 5696, 5711, 5714,
978      5717, 5720, 5723, 5736, 9694, 5742, 2413, 2379, 5732, 5751,
979      5747, 2315, 5755, 5761, 5766, 2348, 2360, 2362, 5771, 9694,
980      2352, 5774, 5777, 5785, 2383, 2379, 2397, 2389, 2404, 2401,
981      2397, 2412, 2400, 2439, 5792, 2411, 2417, 5795, 5798, 9694,
982
983      5804, 2423, 2432, 2493, 9694, 2492, 9694, 5807, 5817, 2437,
984      2458, 5825, 5828, 2449, 5836, 5843, 9694, 2442, 2448, 5846,
985      2465, 5854, 5865, 2483, 2479, 2484, 2538, 9694, 2545, 9694,
986      5857, 2500, 5875, 2501, 5878, 9694, 5881, 5884, 5892, 5899,
987      5902, 9694, 9694, 5911, 5914, 5922, 5925, 9694, 5929, 5932,
988      2544, 2660, 2577, 5935, 9694, 2512, 2504, 2517, 2527, 5940,
989      5944, 2725, 2839, 5954, 2588, 2607, 2607, 2610, 2639, 2617,
990      2626, 2655, 2669, 2683, 5958, 2641, 2632, 5961, 5966, 9694,
991      2631, 5972, 9694, 9694, 5980, 5986, 2632, 2646, 5994, 9694,
992      9694, 2654, 6002, 6005, 2642, 6020, 6023, 6026, 6034, 6041,
993
994      9694, 9694, 2658, 2665, 2678, 9694, 9694, 6052, 6055, 6063,
995      6066, 6070, 2726, 2851, 6084, 9694, 6087, 6090, 9694, 9694,
996      6098, 6106, 6116, 9694, 2772, 2923, 2967, 6119, 2720, 2747,
997      2754, 6122, 6125, 2780, 2783, 2849, 2787, 2790, 2896, 6136,
998      2807, 2807, 2820, 2828, 9694, 2868, 2853, 2855, 2859, 9694,
999      6140, 6143, 2877, 6146, 6154, 6149, 6161, 6172, 9694, 9694,
1000      2891, 2878, 2900, 6180, 9694, 9694, 2904, 6188, 6192, 6202,
1001      9694, 9694, 6210, 6213, 2895, 6221, 2907, 6224, 9694, 9694,
1002      6232, 6235, 6243, 6246, 2924, 2925, 2926, 2928, 2941, 2941,
1003      6254, 6257, 9694, 9694, 2988, 2976, 6265, 6268, 6273, 2923,
1004
1005      2924, 6277, 9694, 9694, 2975, 2974, 2979, 2987, 2998, 2986,
1006      3013, 3024, 6285, 3013, 3035, 3052, 3038, 3021, 3042, 3056,
1007      3048, 6288, 6291, 6294, 6297, 6307, 6310, 3026, 6318, 9694,
1008      9694, 3028, 3024, 3018, 3049, 6326, 9694, 9694, 6334, 9694,
1009      9694, 3052, 6342, 6345, 3037, 6353, 3095, 3099, 6361, 3126,
1010      3147, 3067, 3077, 3107, 3072, 3081, 3132, 6369, 3150, 6372,
1011      6375, 6378, 6397, 6400, 6403, 3108, 3120, 3122, 3124, 3150,
1012      3164, 3173, 3164, 6406, 6409, 3183, 3192, 9694, 3193, 3196,
1013      3196, 9694, 3201, 6417, 6420, 6424, 6427, 9694, 9694, 3187,
1014      3190, 3196, 6436, 3197, 6439, 6443, 9694, 9694, 6457, 3221,
1015
1016      3239, 3234, 3248, 3240, 3253, 3245, 3256, 3249, 3266, 9694,
1017      3259, 3269, 9694, 6460, 9694, 3288, 6463, 6466, 6485, 6505,
1018      6552, 6475, 6493, 3272, 3295, 3296, 3267, 3288, 3310, 3313,
1019      3300, 6525, 9694, 9694, 3335, 3314, 3315, 3350, 3329, 3344,
1020      6496, 6499, 9694, 3320, 3321, 3332, 6543, 6533, 3325, 6546,
1021      6572, 6564, 6582, 3391, 3359, 3391, 3367, 3401, 3371, 3402,
1022      3386, 3421, 3422, 3421, 3423, 3413, 6591, 3457, 3444, 6611,
1023      6658, 3421, 9694, 9694, 3398, 3446, 9694, 9694, 3423, 9694,
1024      3460, 3465, 9694, 3463, 3474, 6601, 9694, 3432, 3437, 3419,
1025      6631, 3472, 3485, 3443, 6639, 9694, 9694, 6647, 3527, 3546,
1026
1027      9694, 3511, 9694, 3511, 9694, 3516, 9694, 3516, 9694, 9694,
1028      9694, 9694, 3531, 3529, 3548, 3527, 3562, 3527, 6604, 3537,
1029      3558, 3575, 3576, 9694, 9694, 9694, 9694, 6669, 6678, 6681,
1030      3591, 3575, 3616, 3581, 6687, 3650, 3583, 3655, 3595, 9694,
1031      9694, 9694, 9694, 6690, 3624, 3614, 3628, 6699, 3640, 3629,
1032      3646, 3638, 6705, 6709, 6718, 6723, 6731, 6736, 3629, 3638,
1033      3656, 3643, 3666, 3679, 6744, 6751, 3664, 3679, 3692, 3675,
1034      3697, 3710, 6762, 3713, 9694, 3702, 9694, 3703, 6765, 9694,
1035      9694, 6774, 9694, 9694, 6782, 3736, 3755, 3712, 3717, 3717,
1036      3719, 3740, 3738, 6790, 9694, 9694, 3744, 3762, 3762, 3764,
1037
1038      3770, 3766, 3816, 9694, 3801, 3816, 3804, 3799, 3807, 3810,
1039      3817, 3823, 3830, 3828, 3841, 3841, 3843, 3849, 3853, 3850,
1040      3860, 3860, 3887, 9694, 9694, 3858, 3894, 3878, 3897, 3888,
1041      3890, 3908, 3897, 3903, 3921, 3910, 3911, 3933, 3924, 3927,
1042      3944, 3964, 3944, 3945, 3952, 3953, 3976, 3975, 4007, 3989,
1043      3983, 4012, 3998, 3988, 4021, 4005, 3996, 4037, 4029, 4018,
1044      4037, 4035, 4040, 4064, 4039, 9694, 4064, 4045, 9694, 4085,
1045      4060, 9694, 4085, 4070, 9694, 4089, 4075, 4099, 4092, 4107,
1046      9694, 4108, 9694, 4110, 9694, 4128, 9694, 4135, 6800, 4138,
1047      4165, 4146, 4171, 4141, 4143, 4144, 4146, 6803, 4185, 9694,
1048
1049      4184, 9694, 4192, 4191, 4195, 4194, 4196, 4223, 9694, 9694,
1050      9694, 9694, 9694, 9694, 4200, 4210, 4279, 4291, 4225, 4281,
1051      4282, 4369, 4256, 4349, 4363, 4374, 4410, 4440, 4290, 4302,
1052      4186, 4276, 4311, 4383, 4453, 4455, 4437, 4487, 4402, 4510,
1053      4493, 4501, 4536, 4537, 4555, 4590, 4587, 4647, 4466, 4534,
1054      4616, 4642, 4368, 4378, 4678, 4691, 4726, 4795, 4656, 4680,
1055      4762, 4824, 4830, 4833, 4700, 4876, 4704, 4849, 4596, 4716,
1056      4851, 4887, 4618, 4709, 4888, 4914, 4890, 4906, 4419, 4608,
1057      4688, 4838, 4913, 4916, 4946, 4975, 4805, 4945, 4894, 4998,
1058      4963, 4990, 4472, 4550, 5014, 5019, 4202, 4852, 6811, 6814,
1059
1060      9694, 9694, 6834, 6843, 6852, 6861, 6870, 6879, 6888, 6897,
1061      6906, 6915, 6924, 6933, 6942, 6951, 6960, 6969, 6978, 6987,
1062      6996, 7005, 7014, 7023, 7032, 7041, 7050, 7059, 7068, 7077,
1063      7086, 7095, 7104, 7113, 7122, 7131, 7140, 7149, 7158, 7167,
1064      7176, 7185, 7194, 7203, 7212, 7221, 7230, 7239, 7248, 7257,
1065      7266, 7275, 7282, 7289, 7296, 7303, 7310, 7317, 7324, 7331,
1066      7338, 7345, 7352, 7359, 7366, 7373, 7380, 7387, 7394, 7401,
1067      7408, 7415, 7422, 7429, 7436, 7445, 7452, 7457, 7464, 7469,
1068      7476, 7481, 7488, 7493, 7500, 7505, 7512, 7517, 7524, 7529,
1069      7536, 7541, 7548, 7553, 7560, 7565, 7572, 7577, 7584, 7589,
1070
1071      7596, 7601, 7608, 7613, 7620, 7625, 7632, 7637, 7644, 7649,
1072      7656, 7661, 7668, 7673, 7680, 7685, 7692, 7697, 7704, 7709,
1073      7716, 7721, 7730, 7736, 7743, 7751, 7758, 7766, 7773, 7781,
1074      7788, 7796, 7803, 7811, 7818, 7826, 7833, 7841, 7848, 7856,
1075      7863, 7871, 7878, 7886, 7893, 7901, 7908, 7916, 7923, 7931,
1076      7938, 7946, 7953, 7961, 7969, 7977, 7985, 7993, 8000, 8008,
1077      8016, 8024, 8031, 8039, 8046, 8054, 8062, 8069, 8077, 8086,
1078      8092, 8099, 8107, 8115, 8123, 8131, 8139, 8146, 8154, 8161,
1079      8169, 8176, 8184, 8191, 8199, 8206, 8214, 8222, 8230, 8238,
1080      8246, 8253, 8261, 8268, 8276, 8283, 8291, 8298, 8306, 8313,
1081
1082      8321, 8328, 8336, 8343, 8351, 8358, 8366, 8373, 8381, 8388,
1083      8396, 8403, 8411, 8419, 8426, 8434, 8443, 8452, 8459, 8467,
1084      8475, 8482, 8490, 8497, 8505, 8512, 8520, 8527, 8534, 8542,
1085      8549, 8557, 8565, 8572, 8580, 8587, 8595, 8602, 8610, 8617,
1086      8625, 8632, 8640, 8647, 8655, 8662, 8670, 8677, 8685, 8692,
1087      8700, 8707, 8715, 8722, 8730, 8738, 8746, 8754, 8762, 8770,
1088      8779, 8788, 8795, 8803, 8811, 8818, 8826, 8833, 8841, 8848,
1089      8856, 8863, 8870, 8878, 8886, 8894, 8902, 8910, 8918, 8925,
1090      8933, 8940, 8948, 8955, 8963, 8970, 8978, 8985, 8993, 9000,
1091      9008, 9016, 9024, 9031, 9039, 9047, 9055, 9062, 9070, 9078,
1092
1093      9086, 9094, 9103, 9112, 9120, 9128, 9136, 9143, 9151, 9158,
1094      9166, 9174, 9182, 9190, 9198, 9206, 9214, 9222, 9230, 9237,
1095      9244, 9252, 9259, 9266, 9274, 9281, 9288, 9296, 9303, 9311,
1096      9318, 9326, 9334, 9341, 9349, 9357, 9365, 9374, 9383, 9391,
1097      9399, 9406, 9413, 9421, 9429, 9437, 9445, 9453, 9460, 9467,
1098      9475, 9482, 9489, 9497, 9504, 9511, 9518, 9526, 9533, 9541,
1099      9549, 9557, 9565, 9573, 9581, 9590, 9599, 9607, 9615, 9622,
1100      9630, 9639, 9648, 9657, 9666, 9675, 9684
1101     } ;
1102
1103 static yyconst flex_int16_t yy_def[3078] =
1104     {   0,
1105      2703, 2703, 2704, 2704, 2704, 2704, 2705, 2705, 2706, 2706,
1106      2707, 2707, 2708, 2708, 2708, 2708, 2709, 2709, 2703, 2703,
1107      2710, 2710, 2711, 2711, 2711, 2711, 2703, 2703, 2711, 2711,
1108      2711, 2711, 2703, 2703, 2711, 2711, 2703, 2703, 2711, 2711,
1109      2711, 2711, 2712, 2712, 2713, 2713, 2703, 2703, 2713, 2713,
1110      2713, 2713, 2714, 2714, 2708, 2708, 2715, 2715, 2716, 2716,
1111      2703, 2703, 2716, 2716, 2716, 2716, 2717, 2717, 2718, 2718,
1112      2719, 2719, 2720, 2720, 2720, 2720, 2703, 2703, 2720, 2720,
1113      2720, 2720, 2703, 2703, 2720, 2720, 2703, 2703, 2720, 2720,
1114      2720, 2720, 2703, 2703, 2720, 2720, 2703, 2703, 2720, 2720,
1115
1116      2720, 2720, 2721, 2721, 2722, 2722, 2703, 2703, 2722, 2722,
1117      2722, 2722, 2723, 2723, 2724, 2724, 2703, 2703, 2724, 2724,
1118      2724, 2724, 2725, 2725, 2726, 2726, 2727, 2727, 2728, 2728,
1119      2729, 2729, 2730, 2730, 2703, 2703, 2730, 2730, 2730, 2730,
1120      2702,  141, 2731, 2731, 2702,  145, 2732, 2732, 2733, 2733,
1121      2734, 2734, 2735, 2735, 2736, 2736, 2703, 2703, 2736, 2736,
1122      2736, 2736, 2737, 2737, 2738, 2738, 2703, 2703, 2738, 2738,
1123      2738, 2738, 2739, 2739, 2740, 2740, 2703, 2703, 2740, 2740,
1124      2740, 2740, 2741, 2741, 2742, 2742, 2743, 2743, 2744, 2744,
1125      2703, 2703, 2744, 2744, 2744, 2744, 2745, 2745, 2746, 2746,
1126
1127      2703, 2703, 2746, 2746, 2746, 2746, 2747, 2747, 2748, 2748,
1128      2749, 2749, 2750, 2750, 2703, 2703, 2750, 2750, 2750, 2750,
1129      2751, 2751, 2752, 2752, 2703, 2703, 2702, 2702, 2702, 2702,
1130      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1131      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1132      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2753, 2702, 2702,
1133      2753, 2702, 2702, 2702,  264,  264,  264,  264,  267,  267,
1134      2702, 2702, 2702, 2754, 2702, 2702, 2754, 2702, 2702,  267,
1135       280,  280, 2702, 2702, 2702, 2755, 2702, 2702, 2755, 2755,
1136      2755, 2702, 2702, 2702, 2702, 2702, 2756, 2702, 2702, 2756,
1137
1138      2756, 2756, 2756, 2756, 2702, 2702,  280,  307,  307, 2702,
1139      2702, 2702, 2757, 2702, 2702, 2757, 2757, 2757, 2702, 2702,
1140      2702, 2702, 2702, 2702, 2758, 2702, 2702, 2758, 2758, 2702,
1141      2702,  268,  280,  268,  332,  333,  333,  333,  333,  339,
1142       340,  339,  339, 2702, 2702, 2702, 2759, 2702, 2702, 2759,
1143      2759, 2759, 2702, 2702,  307,  307, 2702, 2702, 2702, 2760,
1144      2702, 2702, 2760, 2760, 2702, 2702,  307,  307, 2702, 2702,
1145      2702, 2761, 2702, 2702, 2761, 2761, 2702, 2702, 2702, 2702,
1146      2702, 2702, 2762, 2702, 2702, 2762, 2762, 2702, 2702, 2702,
1147      2702, 2702, 2702, 2763, 2702, 2702, 2763, 2763, 2763, 2763,
1148
1149      2763, 2702, 2702,  307,  307,  307, 2702, 2702, 2702, 2764,
1150      2702, 2702, 2764, 2764, 2764, 2764, 2764, 2764, 2764, 2764,
1151      2702, 2702, 2702, 2702, 2702, 2702, 2765, 2702, 2702, 2765,
1152      2765, 2765, 2765, 2765, 2765, 2765, 2702, 2702, 2702, 2702,
1153      2702, 2702, 2766, 2702, 2702, 2766, 2766, 2702, 2702, 2702,
1154      2702, 2702, 2702, 2767, 2702, 2702, 2767, 2767, 2767, 2767,
1155      2702, 2702,  307,  307, 2702, 2702, 2702, 2768, 2702, 2702,
1156      2768, 2768, 2702, 2702,  307,  475,  475, 2702, 2702, 2702,
1157      2769, 2702, 2702, 2769, 2769, 2769, 2702, 2702,  475,  475,
1158      2702, 2702, 2702, 2770, 2702, 2702, 2770, 2770, 2702, 2702,
1159
1160      2702, 2702, 2702, 2702, 2771, 2702, 2702, 2771, 2771, 2771,
1161      2702, 2702,  475,  475, 2702, 2702, 2702, 2772, 2702, 2702,
1162      2772, 2772, 2772, 2772, 2702, 2702,  307,  307,  307, 2702,
1163      2702, 2702, 2773, 2702, 2702, 2773, 2702, 2702, 2702, 2702,
1164      2702, 2702, 2774, 2702, 2702, 2774, 2702, 2702,  307,  307,
1165      2702, 2702, 2702, 2775, 2702, 2702, 2775, 2775, 2702, 2702,
1166      2702, 2702, 2776, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1167      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2777, 2777,
1168      2778, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1169      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1170
1171      2702, 2702, 2702, 2702, 2779, 2779, 2780, 2702, 2781, 2781,
1172      2781, 2781, 2702, 2782, 2702, 2702, 2783, 2783, 2783, 2783,
1173      2783, 2783, 2783, 2783, 2783, 2784, 2702, 2702, 2785, 2785,
1174      2785, 2785, 2786, 2702, 2787, 2787, 2787, 2788, 2702, 2702,
1175      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2789, 2789,
1176      2789, 2789, 2790, 2702, 2791, 2791, 2791, 2792, 2702, 2793,
1177      2793, 2793, 2794, 2702, 2795, 2795, 2795, 2796, 2702, 2797,
1178      2797, 2797, 2797, 2797, 2797, 2798, 2702, 2702, 2799, 2799,
1179      2799, 2799, 2799, 2799, 2799, 2799, 2799, 2799, 2799, 2799,
1180      2799, 2799, 2800, 2702, 2801, 2801, 2801, 2801, 2801, 2801,
1181
1182      2801, 2801, 2802, 2702, 2803, 2803, 2803, 2804, 2702, 2805,
1183      2805, 2805, 2805, 2805, 2805, 2806, 2702, 2807, 2807, 2807,
1184      2807, 2808, 2702, 2702, 2809, 2809, 2809, 2809, 2809, 2810,
1185      2702, 2811, 2811, 2811, 2812, 2702, 2813, 2813, 2813, 2813,
1186      2814, 2702, 2815, 2815, 2815, 2815, 2815, 2816, 2702, 2702,
1187      2817, 2817, 2818, 2702, 2819, 2819, 2820, 2702, 2821, 2821,
1188      2821, 2822, 2823, 2702, 2823, 2702, 2702, 2702, 2824, 2702,
1189      2702, 2702, 2702, 2702, 2702, 2702, 2825, 2826, 2826, 2702,
1190      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1191      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1192
1193      2702, 2702, 2702, 2702, 2827, 2828, 2828, 2829, 2702, 2702,
1194      2829, 2702, 2830, 2830, 2702, 2831, 2702, 2702, 2831, 2831,
1195      2831, 2831, 2831, 2831, 2832, 2832, 2702, 2833, 2833, 2833,
1196      2834, 2834, 2702, 2702, 2835, 2836, 2836, 2702, 2702, 2702,
1197      2702, 2702, 2702, 2702, 2702, 2702, 2837, 2702, 2702, 2837,
1198      2838, 2838, 2702, 2702, 2839, 2840, 2840, 2702, 2702, 2841,
1199      2842, 2842, 2843, 2843, 2844, 2844, 2845, 2845, 2845, 2702,
1200      2702, 2845, 2845, 2846, 2846, 2702, 2702, 2847, 2847, 2702,
1201      2702, 2847, 2702, 2702, 2847, 2847, 2847, 2847, 2847, 2847,
1202      2847, 2847, 2848, 2848, 2849, 2849, 2849, 2702, 2702, 2849,
1203
1204      2849, 2849, 2850, 2850, 2851, 2702, 2702, 2852, 2852, 2853,
1205      2702, 2702, 2853, 2853, 2853, 2854, 2854, 2855, 2855, 2855,
1206      2856, 2856, 2702, 2857, 2857, 2857, 2857, 2858, 2858, 2859,
1207      2702, 2702, 2860, 2860, 2861, 2861, 2861, 2862, 2862, 2863,
1208      2863, 2863, 2863, 2864, 2864, 2702, 2865, 2866, 2866, 2702,
1209      2702, 2867, 2867, 2702, 2702, 2868, 2869, 2869, 2870, 2702,
1210      2702, 2870, 2702, 2702, 2871, 2702, 2702, 2702, 2702, 2702,
1211      2702, 2872, 2702, 2873, 2702, 2873, 2702, 2702, 2702, 2702,
1212      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1213      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1214
1215      2702, 2702, 2874, 2702, 2875, 2702, 2875, 2876, 2702, 2702,
1216      2702, 2876, 2702, 2702, 2877, 2702, 2877, 2878, 2702, 2702,
1217      2702, 2702, 2702, 2878, 2702, 2702, 2878, 2878, 2878, 2702,
1218      2879, 2702, 2879, 2702, 2880, 2880, 2880, 2702, 2881, 2702,
1219      2881, 2702, 2702, 2702, 2882, 2702, 2883, 2702, 2883, 2702,
1220      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2884, 2702, 2702,
1221      2702, 2884, 2702, 2885, 2702, 2885, 2702, 2702, 2702, 2886,
1222      2702, 2887, 2702, 2887, 2702, 2702, 2702, 2888, 2702, 2889,
1223      2702, 2889, 2890, 2890, 2702, 2891, 2702, 2891, 2892, 2892,
1224      2892, 2702, 2702, 2702, 2892, 2892, 2702, 2893, 2702, 2893,
1225
1226      2702, 2702, 2894, 2894, 2894, 2894, 2702, 2702, 2702, 2894,
1227      2702, 2702, 2702, 2702, 2702, 2894, 2894, 2894, 2894, 2894,
1228      2894, 2894, 2702, 2895, 2702, 2895, 2896, 2896, 2896, 2896,
1229      2702, 2702, 2702, 2702, 2702, 2896, 2896, 2702, 2897, 2702,
1230      2897, 2898, 2702, 2702, 2702, 2702, 2899, 2702, 2899, 2900,
1231      2702, 2702, 2702, 2900, 2900, 2900, 2702, 2901, 2702, 2901,
1232      2702, 2702, 2702, 2702, 2902, 2702, 2903, 2702, 2903, 2702,
1233      2702, 2702, 2904, 2904, 2702, 2702, 2904, 2702, 2905, 2702,
1234      2905, 2906, 2702, 2702, 2702, 2702, 2907, 2702, 2907, 2702,
1235      2702, 2908, 2908, 2702, 2702, 2702, 2909, 2702, 2909, 2910,
1236
1237      2910, 2910, 2910, 2702, 2911, 2702, 2911, 2702, 2912, 2702,
1238      2913, 2702, 2913, 2702, 2702, 2702, 2702, 2914, 2702, 2914,
1239      2702, 2702, 2702, 2915, 2702, 2916, 2702, 2916, 2917, 2918,
1240      2702, 2702, 2702, 2702, 2702, 2919, 2920, 2702, 2702, 2702,
1241      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1242      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1243      2702, 2702, 2702, 2702, 2921, 2702, 2702, 2922, 2702, 2923,
1244      2924, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2924,
1245      2702, 2702, 2924, 2925, 2702, 2926, 2702, 2702, 2926, 2927,
1246      2928, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1247
1248      2702, 2929, 2929, 2930, 2931, 2932, 2702, 2702, 2933, 2702,
1249      2702, 2934, 2935, 2936, 2936, 2702, 2702, 2936, 2936, 2937,
1250      2702, 2702, 2938, 2938, 2938, 2938, 2702, 2702, 2702, 2702,
1251      2702, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2939, 2940,
1252      2940, 2940, 2940, 2702, 2702, 2702, 2940, 2940, 2941, 2942,
1253      2943, 2944, 2944, 2944, 2944, 2945, 2702, 2702, 2702, 2702,
1254      2702, 2702, 2946, 2947, 2702, 2702, 2702, 2702, 2948, 2948,
1255      2702, 2702, 2702, 2948, 2949, 2950, 2951, 2702, 2702, 2702,
1256      2952, 2952, 2702, 2702, 2702, 2953, 2954, 2702, 2702, 2954,
1257      2954, 2955, 2702, 2956, 2957, 2958, 2959, 2960, 2961, 2962,
1258
1259      2962, 2702, 2962, 2702, 2702, 2702, 2963, 2964, 2702, 2702,
1260      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1261      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1262      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2965, 2702, 2702,
1263      2702, 2966, 2702, 2967, 2968, 2702, 2702, 2702, 2968, 2702,
1264      2702, 2702, 2968, 2969, 2702, 2970, 2702, 2702, 2702, 2702,
1265      2702, 2971, 2972, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1266      2702, 2973, 2702, 2702, 2974, 2975, 2976, 2702, 2702, 2702,
1267      2977, 2702, 2702, 2702, 2978, 2979, 2980, 2980, 2702, 2702,
1268      2702, 2702, 2702, 2702, 2702, 2980, 2981, 2702, 2702, 2982,
1269
1270      2702, 2702, 2982, 2982, 2702, 2702, 2702, 2702, 2702, 2982,
1271      2982, 2982, 2982, 2982, 2982, 2983, 2984, 2702, 2702, 2984,
1272      2984, 2702, 2702, 2984, 2985, 2986, 2987, 2988, 2988, 2988,
1273      2702, 2702, 2988, 2989, 2990, 2991, 2702, 2992, 2992, 2992,
1274      2993, 2994, 2995, 2996, 2996, 2997, 2998, 2702, 2702, 2702,
1275      2998, 2998, 2999, 2702, 2702, 2702, 3000, 3001, 2702, 2702,
1276      3002, 3003, 3004, 3004, 2702, 2702, 3005, 3006, 2702, 2702,
1277      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1278      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1279      2702, 2702, 3007, 3008, 2702, 3009, 3010, 3010, 3010, 3011,
1280
1281      3012, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1282      2702, 2702, 3013, 3014, 2702, 2702, 2702, 2702, 2702, 3015,
1283      2702, 2702, 2702, 3016, 2702, 2702, 3017, 3018, 2702, 2702,
1284      3019, 3020, 3020, 2702, 2702, 2702, 2702, 2702, 2702, 3020,
1285      2702, 2702, 2702, 2702, 3021, 2702, 2702, 2702, 2702, 2702,
1286      3021, 2702, 2702, 2702, 2702, 2702, 3021, 3021, 3021, 3021,
1287      2702, 2702, 3022, 3023, 2702, 2702, 2702, 2702, 2702, 3023,
1288      2702, 2702, 2702, 3023, 2702, 2702, 3024, 3025, 3026, 3026,
1289      3026, 2702, 2702, 2702, 3026, 2702, 2702, 3027, 3028, 2702,
1290      2702, 2702, 2702, 2702, 3029, 3030, 3031, 3032, 2702, 2702,
1291
1292      2702, 2702, 3033, 3034, 3034, 3034, 3035, 2702, 2702, 2702,
1293      2702, 3036, 3037, 2702, 2702, 2702, 2702, 2702, 3038, 3039,
1294      3039, 2702, 2702, 2702, 3040, 2702, 2702, 2702, 2702, 2702,
1295      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1296      2702, 2702, 2702, 2702, 2702, 3041, 3042, 2702, 2702, 2702,
1297      3043, 2702, 2702, 3043, 3044, 2702, 2702, 2702, 2702, 2702,
1298      2702, 2702, 2702, 2702, 2702, 2702, 2702, 3045, 2702, 2702,
1299      2702, 2702, 2702, 2702, 2702, 2702, 3046, 2702, 2702, 2702,
1300      3047, 2702, 2702, 2702, 2702, 2702, 3048, 3049, 3049, 2702,
1301      2702, 3049, 2702, 3050, 2702, 2702, 2702, 3050, 2702, 2702,
1302
1303      2702, 2702, 2702, 3050, 3050, 3050, 2702, 2702, 2702, 3051,
1304      3052, 2702, 2702, 2702, 3052, 3052, 3053, 3054, 3055, 2702,
1305      2702, 3055, 3055, 2702, 2702, 3055, 3056, 2702, 2702, 2702,
1306      2702, 2702, 2702, 2702, 2702, 2702, 3057, 3058, 3059, 3060,
1307      2702, 2702, 2702, 2702, 2702, 2702, 3061, 3062, 3062, 3062,
1308      3063, 2702, 3064, 3065, 3066, 3067, 3067, 2702, 2702, 2702,
1309      2702, 3068, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1310      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 3069, 3070,
1311      2702, 3071, 2702, 2702, 2702, 3071, 2702, 2702, 2702, 2702,
1312      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1313
1314      2702, 3045, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1315      2702, 2702, 3046, 3047, 3048, 3049, 3049, 2702, 2702, 2702,
1316      2702, 3049, 2702, 3050, 3050, 2702, 2702, 2702, 3050, 3050,
1317      3050, 3051, 3052, 3052, 3052, 3053, 2702, 2702, 3055, 2702,
1318      2702, 2702, 3055, 3055, 2702, 2702, 2702, 2702, 3055, 3056,
1319      2702, 3057, 3058, 3059, 3060, 3061, 2702, 2702, 3062, 3062,
1320      3063, 2702, 3064, 2702, 2702, 3066, 3067, 3067, 2702, 3068,
1321      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1322      3070, 2702, 2702, 3071, 2702, 2702, 2702, 2702, 2702, 2702,
1323      2702, 2702, 2702, 2702, 3045, 2702, 2702, 3046, 2702, 2702,
1324
1325      3048, 3049, 3049, 2702, 2702, 2702, 2702, 3049, 2702, 3050,
1326      3050, 2702, 2702, 3050, 3050, 2702, 2702, 3052, 3052, 3052,
1327      3053, 2702, 2702, 3055, 3055, 3055, 2702, 2702, 2702, 2702,
1328      3055, 3056, 2702, 3057, 2702, 2702, 2702, 2702, 3060, 3061,
1329      2702, 2702, 2702, 2702, 2702, 3062, 2702, 2702, 2702, 3064,
1330      3066, 3067, 3067, 2702, 2702, 2702, 2702, 2702, 2702, 3070,
1331      2702, 2702, 2702, 3071, 2702, 2702, 2702, 2702, 2702, 2702,
1332      2702, 2702, 2702, 2702, 3045, 2702, 2702, 3046, 2702, 2702,
1333      3049, 3049, 2702, 2702, 2702, 2702, 3050, 3050, 2702, 2702,
1334      2702, 3050, 2702, 2702, 3052, 3052, 2702, 2702, 3053, 2702,
1335
1336      2702, 2702, 3055, 3055, 3055, 2702, 2702, 2702, 2702, 3056,
1337      3057, 2702, 2702, 2702, 2702, 2702, 3061, 2702, 2702, 2702,
1338      2702, 2702, 2702, 2702, 3066, 3067, 3067, 2702, 2702, 2702,
1339      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 3071,
1340      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1341      3045, 2702, 2702, 3046, 3049, 2702, 2702, 2702, 2702, 2702,
1342      3050, 3050, 3050, 2702, 2702, 2702, 3052, 2702, 2702, 2702,
1343      2702, 2702, 2702, 2702, 3055, 3055, 3055, 2702, 2702, 2702,
1344      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1345      3061, 2702, 2702, 2702, 3066, 3067, 3067, 2702, 2702, 2702,
1346
1347      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1348      2702, 2702, 3071, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1349      2702, 3045, 2702, 2702, 3046, 2702, 2702, 3049, 2702, 2702,
1350      2702, 3050, 3050, 3050, 3052, 2702, 2702, 2702, 2702, 2702,
1351      2702, 3055, 2702, 2702, 3055, 2702, 2702, 2702, 2702, 2702,
1352      2702, 2702, 2702, 2702, 2702, 2702, 2702, 3061, 3066, 3067,
1353      3067, 3067, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1354      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1355      2702, 2702, 2702, 3045, 2702, 3046, 2702, 2702, 2702, 3049,
1356      3050, 3050, 3050, 3052, 3055, 2702, 2702, 2702, 3055, 2702,
1357
1358      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1359      2702, 2702, 2702, 2702, 2702, 3066, 3067, 3067, 3067, 3072,
1360      3073, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1361      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1362      3045, 2702, 2702, 3049, 3050, 3050, 2702, 2702, 3052, 2702,
1363      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1364      2702, 2702, 2702, 2702, 2702, 3066, 3067, 3074, 3075, 3072,
1365      3073, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1366      2702, 2702, 2702, 2702, 2702, 2702, 2702, 3049, 3050, 3050,
1367      2702, 2702, 2702, 3052, 2702, 2702, 2702, 2702, 2702, 2702,
1368
1369      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1370      2702, 2702, 3066, 3074, 3067, 3076, 3075, 3077, 3067, 2702,
1371      2702, 2702, 2702, 2702, 2702, 2702, 2702, 3049, 3050, 3050,
1372      2702, 2702, 2702, 2702, 3052, 2702, 2702, 2702, 2702, 2702,
1373      2702, 2702, 2702, 3066, 3076, 2702, 3077, 3067, 2702, 2702,
1374      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1375      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1376      2702, 2702, 3066, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1377      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1378      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1379
1380      2702, 2702, 3066, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1381      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1382      2702, 2702, 3066, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1383      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1384      2702, 3066, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1385      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 3066, 2702,
1386      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1387      2702, 2702, 2702, 2702, 2702, 3066, 2702, 2702, 2702, 2702,
1388      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 3066, 2702,
1389      2702, 2702, 2702, 2702, 2702, 2702, 2702, 3066, 2702, 2702,
1390
1391      2702, 2702, 2702, 2702, 2702, 2702, 3066, 3066, 2702, 2702,
1392      2702, 2702, 2702, 2702, 3066, 3066, 3066, 3066, 3066, 3066,
1393      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1394      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1395      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1396      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1397      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1398      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1399      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1400      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
1401
1402      2702,    0, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1403      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1404      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1405      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1406      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1407      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1408      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1409      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1410      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1411      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1412
1413      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1414      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1415      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1416      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1417      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1418      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1419      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1420      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1421      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1422      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1423
1424      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1425      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1426      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1427      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1428      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1429      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1430      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1431      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1432      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1433      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1434
1435      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1436      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1437      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1438      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1439      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1440      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1441      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
1442      2702, 2702, 2702, 2702, 2702, 2702, 2702
1443     } ;
1444
1445 static yyconst flex_int16_t yy_nxt[9767] =
1446     {   0,
1447      2702,  230,  231,  230,  230,  231,  230,  230,  231,  230,
1448       230,  231,  230,  235,  231,  235,  241,  232,  238,  241,
1449       232,  238, 2702,  233, 2702,  239,  233, 2702,  239,  236,
1450       235,  231,  235,  563,  242,  244,  245,  242,  244,  245,
1451       246,  247,  653,  246,  247,  563,  236,  251,  252,  564,
1452       248,  244,  245,  248,  249,  566,  246,  244,  245,  598,
1453       249,  565,  246,  251,  252,  599,  248,  231,  231,  231,
1454       638,  565,  248,  231,  231,  231,  263,  231,  263,  263,
1455       231,  263, 1597,  254,  263,  231,  263,  642, 1598,  254,
1456       586,  253,  264,  599,  644,  264,  562,  562,  562,  595,
1457
1458       265,  562,  562,  562,  562,  562,  562,  253,  255,  256,
1459       231,  256,  255,  255,  255,  255,  255,  255,  255,  257,
1460       255,  255,  255,  643,  255,  259,  255,  260,  255,  263,
1461       231,  263,  231,  231,  231,  231,  231,  231,  594,  263,
1462       231,  263,  263,  231,  263,  265, 2702, 1599,  266,  566,
1463       566,  266,  595,  255,  255,  264,  596,  566,  264,  263,
1464       231,  263,  562,  562,  562,  565,  565,  562,  562,  562,
1465       562,  562,  562,  565, 1601,  267,  261,  255,  256,  231,
1466       256,  255,  255,  255,  255,  255,  255,  255,  257,  255,
1467       255,  255,  658,  255,  259,  255,  260,  255,  263,  231,
1468
1469       263,  231,  231,  231,  231,  231,  231,  577,  263,  231,
1470       263,  263,  231,  263,  267, 2702,  595,  268,  600, 1614,
1471       268,  676,  255,  255,  265,  596,  596,  265,  231,  231,
1472       231,  231,  231,  231,  263,  231,  263,  263,  231,  263,
1473       263,  231,  263,  599,  269,  261,  686,  269,  566,  687,
1474       267, 2702,  566,  267,  597,  601,  270,  263,  231,  263,
1475       598,  562,  562,  562,  565, 2702,  599,  602,  565,  595,
1476       600,  600,  599,  270,  271,  272,  231,  272,  271,  271,
1477       271,  271,  271,  271,  271,  273,  271,  271,  271,  584,
1478       271,  275,  271,  276,  271,  279,  231,  279,  279,  231,
1479
1480       279,  231,  231,  231,  594,  231,  231,  231,  279,  231,
1481       279,  280,  624,  607,  280, 1615,  603,  281,  595,  271,
1482       271,  281,  676,  582,  280,  730,  625,  277,  271,  272,
1483       231,  272,  271,  271,  271,  271,  271,  271,  271,  273,
1484       271,  271,  271, 1616,  271,  275,  271,  276,  271,  279,
1485       231,  279,  279,  231,  279,  279,  231,  279,  598,  620,
1486       681,  244,  245,  621,  599,  280,  246,  622,  282,  596,
1487       677,  282,  588,  271,  271,  716,  292,  562,  562,  562,
1488       682,  277,  283,  284,  231,  284,  283,  283,  283,  283,
1489       283,  283,  283,  285,  283,  283,  283,  584,  283,  287,
1490
1491       283,  288,  283, 1619, 1620,  293,  306,  231,  306,  306,
1492       231,  306,  646,  231,  231,  231,  244,  245,  231,  231,
1493       231,  246,  307,  613,  688,  307,  599,  283,  283,  308,
1494       614,  292,  788,  626,  308,  289,  789,  689,  290,  565,
1495       562,  562,  562,  596,  291,  283,  284,  231,  284,  283,
1496       283,  283,  283,  283,  283,  283,  285,  283,  283,  283,
1497       293,  283,  287,  283,  288,  283,  306,  231,  306,  306,
1498       231,  306,  306,  231,  306, 2702,  306,  231,  306,  320,
1499       231,  320,  307,  566,  627,  307,  566,  566,  309,  566,
1500       283,  283,  309,  633,  770,  321,  876,  771,  289,  565,
1501
1502       877,  290,  565,  565,  571,  565, 1632,  291,  294,  295,
1503       231,  295,  294,  294,  294,  294,  294,  294,  294,  296,
1504       294,  294,  294,  677,  294,  298,  294,  299,  294,  320,
1505       231,  320,  331,  231,  331,  331,  231,  331,  748,  331,
1506       231,  331,  331,  231,  331,  321,  572,  566,  332,  566,
1507       566,  332,  573,  294,  294,  333,  574,  663,  333, 1633,
1508       714,  575,  300,  565,  301,  565,  565,  302,  562,  562,
1509       562,  715,  303,  304,  294,  295,  231,  295,  294,  294,
1510       294,  294,  294,  294,  294,  296,  294,  294,  294,  599,
1511       294,  298,  294,  299,  294,  231,  231,  231,  231,  231,
1512
1513       231,  331,  231,  331, 1640,  331,  231,  331,  331,  231,
1514       331,  334,  960,  566,  334,  566,  566,  335,  748,  294,
1515       294,  335,  668, 1644,  336,  562,  562,  562,  300,  565,
1516       301,  565,  565,  302,  562,  562,  562, 1562,  303,  304,
1517       310,  311,  231,  311,  310,  310,  310,  310,  310,  310,
1518       310,  312,  310,  310,  310,  749,  310,  314,  310,  315,
1519       310,  331,  231,  331,  231,  231,  231,  231,  231,  231,
1520       690,  331,  231,  331,  331,  231,  331,  336, 1645, 1651,
1521       337,  691,  692,  337,  720,  310,  310,  333,  566,  566,
1522       333,  721,  316,  562,  562,  562,  693,  317,  562,  562,
1523
1524       562,  562,  562,  562,  565,  565,  318,  310,  311,  231,
1525       311,  310,  310,  310,  310,  310,  310,  310,  312,  310,
1526       310,  310,  764,  310,  314,  310,  315,  310,  231,  231,
1527       231,  231,  231,  231,  331,  231,  331,  765,  331,  231,
1528       331,  331,  231,  331,  338,  783,  783,  338,  784,  797,
1529       336,  728,  310,  310,  336,  566,  566,  339,  729,  316,
1530       562,  562,  562,  703,  317,  562,  562,  562,  562,  562,
1531       562,  565,  565,  318,  322,  323,  231,  323,  322,  322,
1532       322,  322,  322,  322,  322,  324,  322,  322,  322, 1657,
1533       322,  326,  322,  327,  322,  331,  231,  331,  231,  231,
1534
1535       231,  231,  231,  231, 1250,  331,  231,  331,  331,  231,
1536       331,  339,  566,  566,  340,  800, 1251,  340,  784,  322,
1537       322,  341,  741, 1658,  341,  562,  562,  562,  565,  565,
1538       328,  562,  562,  562,  562,  562,  562, 1659,  329,  322,
1539       323,  231,  323,  322,  322,  322,  322,  322,  322,  322,
1540       324,  322,  322,  322,  757,  322,  326,  322,  327,  322,
1541       231,  231,  231,  231,  231,  231,  331,  231,  331,  588,
1542       331,  231,  331,  331,  231,  331,  342,  566,  566,  342,
1543       800, 1660,  339,  797,  322,  322,  339, 1664,  566,  343,
1544       331,  231,  331,  565,  565,  328,  562,  562,  562,  562,
1545
1546       562,  562,  960,  329,  565,  599,  343,  344,  345,  231,
1547       345,  344,  344,  344,  344,  344,  344,  344,  346,  344,
1548       344,  344, 1399,  344,  348,  344,  349,  344,  354,  231,
1549       354,  354,  231,  354,  231,  231,  231, 1670,  231,  231,
1550       231,  562,  562,  562,  355,  566,  566,  355,  566,  566,
1551       308, 1674,  344,  344,  308,  708,  735,  350,  562,  562,
1552       562,  565,  565,  351,  565,  565,  352,  344,  345,  231,
1553       345,  344,  344,  344,  344,  344,  344,  344,  346,  344,
1554       344,  344, 1677,  344,  348,  344,  349,  344,  354,  231,
1555       354,  354,  231,  354,  354,  231,  354, 1679,  354,  231,
1556
1557       354,  562,  562,  562,  355, 2702,  566,  355,  793,  566,
1558       356,  960,  344,  344,  356, 1229,  753,  350,  562,  562,
1559       562,  794,  565,  351,  722,  565,  352,  357,  358,  231,
1560       358,  357,  357,  357,  357,  357,  357,  357,  359,  357,
1561       357,  357,  749,  357,  361,  357,  362,  357,  366,  231,
1562       366,  366,  231,  366,  231,  231,  231, 1261,  231,  231,
1563       231,  366,  231,  366,  367,  566,  566,  367, 1680, 1251,
1564       308,  723,  357,  357,  308,  599, 1681,  367,  562,  562,
1565       562,  565,  565,  363,  562,  562,  562,  562,  562,  562,
1566       562,  562,  562,  364,  357,  358,  231,  358,  357,  357,
1567
1568       357,  357,  357,  357,  357,  359,  357,  357,  357, 1685,
1569       357,  361,  357,  362,  357,  366,  231,  366,  366,  231,
1570       366,  366,  231,  366, 1688,  378,  231,  378,  378,  231,
1571       378,  367,  868,  960,  368,  869,  790,  368, 1128,  357,
1572       357,  379,  791, 1129,  379,  562,  562,  562,  792,  962,
1573       363,  562,  562,  562,  562,  562,  562,  562,  562,  562,
1574       364,  369,  370,  231,  370,  369,  369,  369,  369,  369,
1575       369,  369,  371,  369,  369,  369, 1690,  369,  373,  369,
1576       374,  369,  389,  231,  389,  389,  231,  389,  403,  231,
1577       403, 1261,  403,  231,  403,  231,  231,  231,  390, 1697,
1578
1579      1704,  390,  798, 1285,  404, 1705,  369,  369,  404, 1706,
1580      1708,  405,  562,  562,  562,  794,  764,  375,  562,  562,
1581       562,  376,  369,  370,  231,  370,  369,  369,  369,  369,
1582       369,  369,  369,  371,  369,  369,  369, 1722,  369,  373,
1583       369,  374,  369,  231,  231,  231,  403,  231,  403,  403,
1584       231,  403,  812,  403,  231,  403,  403,  231,  403,  405,
1585       960, 1726,  404, 1727,  802,  404, 1728,  369,  369,  406,
1586       791, 1729,  406,  562,  562,  562,  803, 1719,  375,  562,
1587       562,  562,  376,  380,  381,  231,  381,  380,  380,  380,
1588       380,  380,  380,  380,  382,  380,  380,  380, 1402,  380,
1589
1590       384,  380,  385,  380,  422,  231,  422,  422,  231,  422,
1591       438,  231,  438, 1731,  438,  231,  438,  449,  231,  449,
1592       423, 1732, 1733,  423, 1402, 1734,  439, 1735,  380,  380,
1593       439, 1721, 1738,  450,  562,  562,  562,  562,  562,  562,
1594       562,  562,  562,  386,  562,  562,  562, 1739, 1742,  387,
1595       380,  381,  231,  381,  380,  380,  380,  380,  380,  380,
1596       380,  382,  380,  380,  380, 1720,  380,  384,  380,  385,
1597       380,  449,  231,  449,  462,  231,  462,  462,  231,  462,
1598      1743,  231,  231,  231,  231,  231,  231,  450, 1744, 1745,
1599       463, 1747, 1748,  463, 1751,  380,  380,  308, 1754, 1758,
1600
1601       308,  562,  562,  562,  562,  562,  562,  562,  562,  562,
1602       386,  562,  562,  562, 1759, 1762,  387,  391,  392,  231,
1603       392,  391,  391,  391,  391,  391,  391,  391,  393,  391,
1604       391,  391, 1763,  391,  395,  391,  396,  391,  462,  231,
1605       462,  462,  231,  462,  462,  231,  462, 1760,  462,  231,
1606       462,  562,  562,  562,  463, 1761, 1764,  463,  798,  566,
1607       464,  798,  391,  391,  464,  397,  762,  398,  562,  562,
1608       562,  842, 1765,  399,  845,  565,  768,  768,  768,  400,
1609      1766, 1767,  401,  391,  392,  231,  392,  391,  391,  391,
1610       391,  391,  391,  391,  393,  391,  391,  391, 1771,  391,
1611
1612       395,  391,  396,  391,  474,  231,  474,  474,  231,  474,
1613       231,  231,  231,  802,  231,  231,  231, 1772, 1774,  791,
1614       475, 1788, 1789,  475,  798,  792,  476, 1104,  391,  391,
1615       476,  397,  790,  398,  769,  802, 1105,  846,  791,  399,
1616      1790,  791, 1791, 1106,  803,  400, 1792,  827,  401,  407,
1617       408,  231,  408,  407,  407,  407,  407,  407,  407,  407,
1618       409,  407,  407,  407,  410,  407,  411,  407,  412,  407,
1619       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
1620       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
1621       410,  410,  410,  410,  407,  407,  410,  413,  414,  415,
1622
1623       410,  410,  410,  410,  410,  416,  410,  417,  410,  410,
1624       410,  418,  410,  419,  420,  410,  410,  410,  410,  410,
1625       410,  424,  425,  231,  425,  424,  424,  424,  424,  424,
1626       424,  424,  426,  424,  424,  424,  427,  424,  428,  424,
1627       429,  424,  427,  427,  427,  427,  427,  427,  427,  427,
1628       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
1629       427,  427,  427,  427,  427,  427,  424,  424,  427,  430,
1630       431,  432,  427,  427,  427,  427,  427,  433,  427,  434,
1631       427,  427,  427,  435,  427,  427,  436,  427,  427,  427,
1632       427,  427,  427,  440,  441,  231,  441,  440,  440,  440,
1633
1634       440,  440,  440,  440,  442,  440,  440,  440, 1793,  440,
1635       444,  440,  445,  440,  474,  231,  474,  474,  231,  474,
1636       474,  231,  474, 1794,  474,  231,  474,  809,  809,  809,
1637       475, 1798, 1804,  475, 1805, 1806,  477, 1811,  440,  440,
1638       477, 1815, 1816,  446,  810,  977,  977,  977, 1817,  447,
1639       440,  441,  231,  441,  440,  440,  440,  440,  440,  440,
1640       440,  442,  440,  440,  440, 1819,  440,  444,  440,  445,
1641       440,  488,  231,  488,  488,  231,  488,  231,  231,  231,
1642      1823,  231,  231,  231,  817,  817,  817,  489, 1602, 1824,
1643       489, 1825, 1826,  476, 1603,  440,  440,  476, 1604, 1827,
1644
1645       446,  818, 1605,  977,  977,  977,  447,  451,  452,  231,
1646       452,  451,  451,  451,  451,  451,  451,  451,  453,  451,
1647       451,  451, 1830,  451,  455,  451,  456,  451,  488,  231,
1648       488,  488,  231,  488,  488,  231,  488, 1837,  488,  231,
1649       488,  500,  231,  500,  489, 1839, 1848,  489, 1849, 1850,
1650       490, 1852,  451,  451,  490,  960,  457,  501,  768,  768,
1651       768, 1855,  964,  458, 1858,  459,  978,  997,  997,  997,
1652      1402, 1864,  460,  451,  452,  231,  452,  451,  451,  451,
1653       451,  451,  451,  451,  453,  451,  451,  451, 1865,  451,
1654       455,  451,  456,  451,  500,  231,  500,  512,  231,  512,
1655
1656       512,  231,  512, 1868,  231,  231,  231,  231,  231,  231,
1657       501, 1869, 1870,  513, 1874, 1857,  513, 1878,  451,  451,
1658       476, 1880,  457,  476,  977,  977,  977, 1881, 1882,  458,
1659       978,  459, 1886,  997,  997,  997, 1892, 1893,  460,  465,
1660       466,  231,  466,  465,  465,  465,  465,  465,  465,  465,
1661       467,  465,  465,  465, 1894,  465,  469,  465,  470,  465,
1662       512,  231,  512,  512,  231,  512,  512,  231,  512, 1895,
1663       512,  231,  512,  526,  231,  526,  513, 1896, 1897,  513,
1664      1898, 1899,  514, 1900,  465,  465,  514, 1050, 1901,  527,
1665       471, 1009, 1009, 1009, 1907, 1010, 1050, 1916, 1011,  997,
1666
1667       997,  997, 1917, 1922,  472,  465,  466,  231,  466,  465,
1668       465,  465,  465,  465,  465,  465,  467,  465,  465,  465,
1669      1923,  465,  469,  465,  470,  465,  526,  231,  526,  231,
1670       231,  231,  231,  231,  231, 1918,  526,  231,  526,  526,
1671       231,  526,  527, 1919, 1924,  528, 1920, 1925,  528, 1929,
1672       465,  465,  527, 1930, 1921,  527,  471, 1019, 1019, 1019,
1673      1931, 1020, 1933, 1934, 1021, 1414, 1414, 1414, 1935, 1936,
1674       472,  478,  479,  231,  479,  478,  478,  478,  478,  478,
1675       478,  478,  480,  478,  478,  478, 1939,  478,  482,  478,
1676       483,  478,  526,  231,  526,  526,  231,  526,  538,  231,
1677
1678       538, 1402,  538,  231,  538,  548,  231,  548,  529, 1606,
1679      1943,  529, 1944, 1949,  539, 1607,  478,  478,  539, 1608,
1680      1950,  549,  484, 1609, 1951,  485, 1042, 1042, 1042, 1952,
1681      1043, 1954, 1856, 1044, 1962, 1402,  486,  478,  479,  231,
1682       479,  478,  478,  478,  478,  478,  478,  478,  480,  478,
1683       478,  478, 1972,  478,  482,  478,  483,  478,  548,  231,
1684       548,  231,  231,  231,  231,  231,  231, 1945,  548,  231,
1685       548,  548,  231,  548,  549, 1946, 1402,  308, 1947, 1976,
1686       308, 1968,  478,  478,  549, 1977, 1948,  549,  484, 1978,
1687      1981,  485, 1059, 1059, 1059, 1985, 1060, 1986, 1987, 1061,
1688
1689      1988, 1989,  486,  491,  492,  231,  492,  491,  491,  491,
1690       491,  491,  491,  491,  493,  491,  491,  491, 1967,  491,
1691       495,  491,  496,  491,  548,  231,  548,  548,  231,  548,
1692       560,  231,  560, 1990,  560,  231,  560,  638, 1991, 1992,
1693       550, 2702, 1993,  550, 1994,  638,  561,  639,  491,  491,
1694       561, 1420, 1420, 1420,  497,  645, 1416, 1416, 1416,  498,
1695       491,  492,  231,  492,  491,  491,  491,  491,  491,  491,
1696       491,  493,  491,  491,  491,  640,  491,  495,  491,  496,
1697       491,  641, 1996,  640,  642,  641,  587, 1997,  642, 2002,
1698       643,  644, 2003, 2004,  647,  644,  833,  833,  833, 2005,
1699
1700       593, 2006, 1417, 2007, 2008,  491,  491, 2010, 1067, 1067,
1701      1067,  497, 1068,  834, 2011, 1069,  498,  502,  503,  231,
1702       503,  502,  502,  502,  502,  502,  502,  502,  504,  502,
1703       502,  502, 2014,  502,  506,  502,  507,  502,  848,  848,
1704       848,  853,  853,  853,  858,  858,  858,  870,  870,  870,
1705       880,  880,  880, 2015, 2018,  849, 2019, 2020,  854, 2021,
1706      2025,  859,  502,  502,  871, 2026, 2027,  881,  508, 2028,
1707      2029,  509, 1075, 1075, 1075, 2030, 1076, 2031, 2032, 1077,
1708      2034, 2056,  510,  502,  503,  231,  503,  502,  502,  502,
1709       502,  502,  502,  502,  504,  502,  502,  502, 1402,  502,
1710
1711       506,  502,  507,  502,  883,  883,  883,  898,  898,  898,
1712       906,  906,  906,  911,  911,  911,  931,  931,  931, 2057,
1713      2058,  884, 2059, 2060,  899, 2065, 2066,  907,  502,  502,
1714       912, 2067, 1402,  932,  508, 2053, 2068,  509, 1092, 1092,
1715      1092, 2069, 1093, 2070, 2071, 1094, 2072, 2073,  510,  515,
1716       516,  231,  516,  515,  515,  515,  515,  515,  515,  515,
1717       517,  515,  515,  515, 2052,  515,  519,  515,  520,  515,
1718       950,  950,  950,  954,  954,  954, 2074, 2076,  973,  973,
1719       973,  973,  973,  973,  809,  809,  809,  951, 2077, 2081,
1720       955, 1004, 1004, 1004,  515,  515,  975, 2082, 2083,  975,
1721
1722      2084,  810,  521, 2087,  522, 2088,  523, 2092, 2095, 1006,
1723      1423, 1423, 1423, 2096,  524,  515,  516,  231,  516,  515,
1724       515,  515,  515,  515,  515,  515,  517,  515,  515,  515,
1725      2099,  515,  519,  515,  520,  515, 2103, 2104,  976, 1014,
1726      1014, 1014, 2105, 2106, 1004, 1004, 1004, 1014, 1014, 1014,
1727       817,  817,  817, 2107, 1022, 1022, 1022, 1016, 2110, 2111,
1728       515,  515, 1006,  960, 2128, 1016, 2129,  818,  521, 2130,
1729       522, 1023,  523, 1432, 1432, 1432, 1455, 1455, 1455, 2131,
1730       524,  530,  531,  231,  531,  530,  530,  530,  530,  530,
1731       530,  530,  532,  530,  530,  530, 1402,  530,  534,  530,
1732
1733       535,  530, 2125, 1007, 1025, 1025, 1025, 1030, 1030, 1030,
1734      1017, 1038, 1038, 1038, 1038, 1038, 1038, 2141, 1030, 1030,
1735      1030, 1026,  833,  833,  833, 1032,  530,  530, 2142, 1040,
1736      2143, 2144, 1040, 1107, 1107, 1107, 1032, 1108, 2127,  834,
1737      1109, 1111, 1111, 1111, 2145, 1112, 2146, 2147, 1113,  536,
1738       530,  531,  231,  531,  530,  530,  530,  530,  530,  530,
1739       530,  532,  530,  530,  530, 1033,  530,  534,  530,  535,
1740       530, 1046, 1046, 1046, 1046, 1046, 1046, 1041, 2148, 1402,
1741       848,  848,  848, 1063, 1063, 1063, 1063, 1063, 1063, 1048,
1742      2149, 2150, 1048, 2152, 2153,  530,  530,  849,  853,  853,
1743
1744       853, 1065, 2155, 2161, 1065, 1131, 1131, 1131, 2162, 1132,
1745      2163, 1049, 1133, 2167, 2175,  854, 2126, 2176,  536,  540,
1746       541,  231,  541,  540,  540,  540,  540,  540,  540,  540,
1747       542,  540,  540,  540, 2177,  540,  544,  540,  545,  540,
1748      1071, 1071, 1071, 1071, 1071, 1071,  858,  858,  858, 2134,
1749      2185, 1066, 1079, 1079, 1079, 1079, 1079, 1079, 1073, 2135,
1750      2186, 1073, 2136,  859,  540,  540, 2187, 1143, 1143, 1143,
1751      1081, 1144, 2199, 1081, 1145,  546,  540,  541,  231,  541,
1752       540,  540,  540,  540,  540,  540,  540,  542,  540,  540,
1753       540,  960,  540,  544,  540,  545,  540, 2200, 1085, 1085,
1754
1755      1085, 1085, 1085, 1085, 2201, 1097, 1097, 1097, 1074,  870,
1756       870,  870, 1097, 1097, 1097, 1082, 1087, 2205, 2206, 1087,
1757      2195,  540,  540, 1099, 2209, 2210,  871, 1466, 1466, 1466,
1758      1099, 2214,  546,  551,  552,  231,  552,  551,  551,  551,
1759       551,  551,  551,  551,  553,  551,  551,  551, 2215,  551,
1760       555,  551,  556,  551,  880,  880,  880,  883,  883,  883,
1761      1114, 1114, 1114, 2137, 2216, 1088, 1123, 1123, 1123, 2217,
1762      2207,  881, 1100, 2138,  884, 2188, 2139, 1115,  551,  551,
1763      1123, 1123, 1123, 2208, 1125, 2189, 1151, 1151, 1151,  557,
1764      1152, 2190, 2218, 1153, 2219, 1467, 1467, 1467, 1125, 2220,
1765
1766      2221,  558,  551,  552,  231,  552,  551,  551,  551,  551,
1767       551,  551,  551,  553,  551,  551,  551, 2211,  551,  555,
1768       551,  556,  551,  898,  898,  898, 1134, 1134, 1134, 2224,
1769      2212, 1138, 1138, 1138, 1138, 1138, 1138, 1126, 2232, 2233,
1770       899, 1417, 1402, 1135,  906,  906,  906,  551,  551, 1140,
1771      2234, 2235, 1140, 2242, 1146, 1146, 1146, 2245,  557, 2252,
1772      2253,  907, 2254, 2255, 1146, 1146, 1146,  911,  911,  911,
1773       558,  566, 1148, 1157, 1157, 1157, 2256, 2257,  581, 1157,
1774      1157, 1157, 1148, 2196,  912, 1141, 1402,  565,  582, 2264,
1775      2265, 1159, 1161, 1161, 1161, 1402, 2266, 1159, 1414, 1414,
1776
1777      1414, 1163, 1163, 1163, 2702, 2702, 2702,  960, 2267, 1162,
1778      1166, 1166, 1166, 2268, 2269,  583,  584,  585, 1164, 2270,
1779      2271, 2702,  586,  587, 1149,  588,  589, 2197, 1168,  590,
1780      2260,  591,  592,  593, 1160, 1166, 1166, 1166, 1171, 1171,
1781      1171, 2702, 2702, 2702, 1175, 1175, 1175, 2272, 2702, 2702,
1782      2702, 2273, 2276, 1168, 2259, 1172, 2277, 2278, 2702, 2279,
1783      2280, 1176, 1165, 2281, 2282, 2702, 1178, 1178, 1178, 2283,
1784      1178, 1178, 1178,  931,  931,  931, 1183, 1183, 1183, 2290,
1785      1184, 2291, 2292, 1185, 1180, 1186, 1186, 1186, 1180, 2293,
1786       932, 1173, 1186, 1186, 1186, 1169, 1190, 1190, 1190, 2702,
1787
1788      2702, 2702, 2294, 1188, 2295, 1174, 1177, 1181, 2299, 2308,
1789      1188, 2309, 2310, 1191, 2311, 2312, 2702, 1194, 1194, 1194,
1790      1196, 1196, 1196, 1196, 1196, 1196, 1204, 1204, 1204, 2300,
1791      1210, 1210, 1210, 2302, 1195, 1204, 1204, 1204, 1198, 2301,
1792      2313, 1198, 2324, 2303, 1206, 2325, 2326, 1189, 1212, 1192,
1793      1210, 1210, 1210, 1206,  950,  950,  950, 1214, 1214, 1214,
1794      2304, 1215, 2327, 1193, 1216, 1217, 1217, 1217, 1212,  960,
1795      2305,  951, 1217, 1217, 1217,  954,  954,  954, 1221, 1221,
1796      1221, 2306, 1222, 1219, 2328, 1223, 1225, 1225, 1225, 2329,
1797      1219, 2307,  955, 1199, 1225, 1225, 1225, 2330, 1207,  973,
1798
1799       973,  973, 2331, 2316, 1227,  973,  973,  973,  973,  973,
1800       973, 2335, 1227, 1213, 1263, 1263, 1263,  975, 1004, 1004,
1801      1004, 2336, 2337,  975, 2338, 2339,  975, 1004, 1004, 1004,
1802      2340, 1264, 1220, 1004, 1004, 1004, 1006, 1266, 1266, 1266,
1803      1009, 1009, 1009, 2344, 1010, 1006, 2345, 1011, 2702, 2702,
1804      2702, 1006, 2346, 2349, 1267, 1237, 2354, 1228, 1014, 1014,
1805      1014, 1014, 1014, 1014, 2355, 2702, 1014, 1014, 1014, 2356,
1806      1019, 1019, 1019, 2357, 1020, 2358, 1016, 1021, 2359, 1016,
1807      2360, 2361, 1265, 2362, 1016, 1022, 1022, 1022, 1272, 1272,
1808      1272, 2363, 1273, 2364, 2365, 1274, 2372, 1275, 1275, 1275,
1809
1810      2373, 2374, 1023, 1025, 1025, 1025, 2375,  960, 1268, 1281,
1811      1281, 1281, 2376, 1270, 1276, 1277, 1277, 1277, 2377, 1278,
1812      1026, 2378, 1279, 1030, 1030, 1030, 1282, 1030, 1030, 1030,
1813      1030, 1030, 1030, 1287, 1287, 1287, 1038, 1038, 1038, 2379,
1814      2380, 1032, 1038, 1038, 1038, 1032, 2381, 2382, 1032, 2366,
1815      1288, 1038, 1038, 1038, 1040, 1042, 1042, 1042, 2383, 1043,
1816      1040, 2384, 1044, 1046, 1046, 1046, 1046, 1046, 1046, 1040,
1817      1292, 1292, 1292, 1059, 1059, 1059, 2385, 1060, 2388, 2389,
1818      1061, 1048, 2390, 2394, 1048, 1063, 1063, 1063, 1293, 1284,
1819      1063, 1063, 1063, 1063, 1063, 1063, 2401, 2402, 1290, 2403,
1820
1821      1067, 1067, 1067, 1065, 1068, 2404, 2405, 1069, 1065, 2406,
1822      2407, 1065, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071,
1823      1071, 1075, 1075, 1075, 2408, 1076, 2409, 2410, 1077, 2411,
1824      1073, 2412,  960, 1073, 2420, 2421, 1073, 1307, 1307, 1307,
1825      1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1310,
1826      1310, 1310, 2415, 1304, 1308, 2702, 2702, 2702, 1081, 2422,
1827      2423, 1081, 2415, 2418, 1081, 2424, 1311, 1085, 1085, 1085,
1828      2425, 2426, 2702, 1085, 1085, 1085, 2416, 2413, 1306, 1085,
1829      1085, 1085, 2427, 1312, 2428, 1087, 1316, 1316, 1316, 2429,
1830      2430, 1087, 1092, 1092, 1092, 2435, 1093, 1087, 2431, 1094,
1831
1832      1097, 1097, 1097, 1317, 1097, 1097, 1097, 1097, 1097, 1097,
1833      2432, 2433, 1309, 1107, 1107, 1107, 2440, 1108, 1099, 2441,
1834      1109, 2442, 1099, 2434, 2443, 1099, 1327, 1327, 1327, 1111,
1835      1111, 1111, 2446, 1112, 2415, 2446, 1113, 1114, 1114, 1114,
1836      1123, 1123, 1123, 1328, 1313, 1329, 1329, 1329, 2416, 1330,
1837       960, 2449, 1331, 2436, 1115, 1123, 1123, 1123, 1125, 1123,
1838      1123, 1123, 1131, 1131, 1131, 2437, 1132, 1402, 1403, 1133,
1839      2415, 1320, 2438, 1125, 1134, 1134, 1134, 1125, 1344, 1344,
1840      1344, 2418, 1345, 2450, 2439, 1346, 1138, 1138, 1138, 2451,
1841      2444, 1135, 1138, 1138, 1138, 1138, 1138, 1138, 1143, 1143,
1842
1843      1143, 2452, 1144, 2461, 1140, 1145, 1146, 1146, 1146, 2464,
1844      1140, 2469, 2459, 1140, 1146, 1146, 1146, 1146, 1146, 1146,
1845      1157, 1157, 1157, 2472, 1148, 1339, 1151, 1151, 1151, 2446,
1846      1152, 2460, 1148, 1153, 2474, 1148, 2446, 2462, 1159, 1157,
1847      1157, 1157, 1157, 1157, 1157, 2475, 1349, 1161, 1161, 1161,
1848      2476, 1357, 1357, 1357, 2477, 1358, 2463, 1159, 1359, 2478,
1849      1159, 1163, 1163, 1163, 1162, 1360, 1360, 1360, 2488, 1361,
1850      2489, 2467, 1362, 1166, 1166, 1166, 2470, 2490, 1164, 1166,
1851      1166, 1166, 2491, 1351, 1166, 1166, 1166, 1171, 1171, 1171,
1852      2468, 1168, 1366, 1366, 1366, 2471, 1367, 1168, 2492, 1368,
1853
1854      2493, 1356, 1168, 2497, 1172, 1175, 1175, 1175, 1371, 1371,
1855      1371, 2498, 1372, 2499, 2500, 1373, 1178, 1178, 1178, 1178,
1856      1178, 1178, 1176, 1178, 1178, 1178, 1183, 1183, 1183, 2501,
1857      1184, 2502, 2504, 1185, 1180, 2505, 2506, 1180, 1186, 1186,
1858      1186, 1180, 1186, 1186, 1186, 1186, 1186, 1186, 2511, 2512,
1859      1364, 1190, 1190, 1190, 2513, 2514, 1188, 1378, 1378, 1378,
1860      1188, 1379, 2507, 1188, 1380, 1194, 1194, 1194, 1191, 1383,
1861      1383, 1383, 2515, 1384, 2508, 2516, 1385, 1196, 1196, 1196,
1862      2517, 2509, 1195, 1196, 1196, 1196, 1375, 1196, 1196, 1196,
1863      1388, 1388, 1388, 2510, 2518, 1198, 1204, 1204, 1204, 2519,
1864
1865      2520, 1198, 2521, 2522, 1377, 1198, 2524, 1389, 1204, 1204,
1866      1204, 1204, 1204, 1204, 1206, 1210, 1210, 1210, 1210, 1210,
1867      1210, 1210, 1210, 1210, 2525, 2526, 1206, 2527, 2528, 1206,
1868      1214, 1214, 1214, 1212, 1215,  960, 1212, 1216, 2529, 1212,
1869      1217, 1217, 1217, 1217, 1217, 1217, 2530, 2531, 1386, 1217,
1870      1217, 1217, 1221, 1221, 1221, 2532, 1222, 2533, 1219, 1223,
1871      2523, 1219, 1225, 1225, 1225, 2534, 2535, 1219, 1225, 1225,
1872      1225, 1392, 2536, 2537, 1395, 1225, 1225, 1225, 2538, 2539,
1873      1227, 1401, 1401, 1401, 2540, 2541, 1227,  973,  973,  973,
1874      1263, 1263, 1263, 1227, 1435, 1435, 1435, 2543, 1436, 1402,
1875
1876      1403, 1437, 1004, 1004, 1004,  975,  960, 1264, 1396, 1266,
1877      1266, 1266, 1439, 1439, 1439, 2544, 1440, 2545, 2546, 1441,
1878      1006, 1014, 1014, 1014, 2547, 2542, 1267, 1272, 1272, 1272,
1879      2548, 1273, 2549, 2550, 1274, 1398, 1275, 1275, 1275, 1016,
1880      1446, 1446, 1446, 2551, 1447, 2552, 2553, 1448, 1281, 1281,
1881      1281, 2554, 1408, 1276, 1277, 1277, 1277, 2555, 1278, 1438,
1882      2556, 1279, 1450, 1450, 1450, 1282, 1451, 2557, 2558, 1452,
1883      1444, 1030, 1030, 1030, 1287, 1287, 1287, 1457, 1457, 1457,
1884      2560, 1458, 2561,  960, 1459, 1460, 1460, 1460, 2562, 1032,
1885      2563, 1288, 1038, 1038, 1038, 1292, 1292, 1292, 1473, 1473,
1886
1887      1473, 2564, 1461, 2559, 1063, 1063, 1063, 1071, 1071, 1071,
1888      1040, 2565, 2566, 1293, 2567, 1474, 1307, 1307, 1307, 2568,
1889      2569, 1454, 1065, 2570, 2571, 1073, 2572, 1478, 1478, 1478,
1890      2573, 1479, 2574, 1308, 1480, 1079, 1079, 1079, 1310, 1310,
1891      1310, 1462, 1482, 1482, 1482, 2575, 1483, 2577,  960, 1484,
1892      1085, 1085, 1085, 1081, 2576, 1311, 1316, 1316, 1316, 1489,
1893      1489, 1489, 2578, 1490, 2579, 2580, 1491, 1475, 1087, 2581,
1894      1477, 2582, 2583, 1317, 1492, 1492, 1492, 2584, 1494, 1494,
1895      1494, 1097, 1097, 1097, 1501, 1501, 1501, 1327, 1327, 1327,
1896      2585, 1493, 2586, 2587, 1481, 1495, 1505, 1505, 1505, 1099,
1897
1898      1506, 1502, 2588, 1507, 1328, 1329, 1329, 1329,  960, 1330,
1899      1486, 2590, 1331, 1508, 1508, 1508, 1123, 1123, 1123, 1518,
1900      1518, 1518, 2589, 2591, 1496, 1344, 1344, 1344, 2592, 1345,
1901      1509, 2593, 1346, 2594, 1125, 2595, 1519, 1522, 1522, 1522,
1902      1138, 1138, 1138, 1146, 1146, 1146, 1497, 1531, 1531, 1531,
1903      1157, 1157, 1157, 2596, 1523, 1357, 1357, 1357, 1140, 1358,
1904      2597, 1148, 1359, 2599, 1532, 1360, 1360, 1360, 1159, 1361,
1905      2600, 2601, 1362, 1166, 1166, 1166, 1416, 1416, 1416, 2602,
1906      1516, 1366, 1366, 1366, 2603, 1367, 2604, 2605, 1368, 2606,
1907      2609, 1168, 2610, 1533, 1371, 1371, 1371, 2611, 1372, 2612,
1908
1909      2613, 1373, 2614, 1525, 1595,  960, 1534, 2699, 1527, 1178,
1910      1178, 1178, 1186, 1186, 1186,  960, 1378, 1378, 1378,  960,
1911      1379,  960, 1537, 1380, 1383, 1383, 1383, 1180, 1384,  960,
1912      1188, 1385, 1196, 1196, 1196, 1388, 1388, 1388, 1536, 1548,
1913      1548, 1548,  960, 1549,  960, 2633, 1550, 1204, 1204, 1204,
1914      1198, 2615, 1389, 1555, 1555, 1555, 1210, 1210, 1210, 1217,
1915      1217, 1217, 1225, 1225, 1225, 1206, 2617, 2625, 1543, 1541,
1916      1556, 1559, 1559, 1559, 1212,  960, 2618, 1219, 2616, 1546,
1917      1227, 1401, 1401, 1401,  973,  973,  973, 2621, 1560, 1416,
1918      1416, 1416, 1576, 1576, 1576,  960, 1553, 2623,  960, 1402,
1919
1920       960,  960,  975, 1420, 1420, 1420, 1423, 1423, 1423,  960,
1921       960, 1558, 1581, 1581, 1581, 1584, 1584, 1584, 1432, 1432,
1922      1432,  960, 1557, 1561, 1591, 1591, 1591, 1435, 1435, 1435,
1923       960, 1436, 1563, 1594, 1437, 2634, 1568, 1004, 1004, 1004,
1924      1439, 1439, 1439, 2622, 1440, 2619, 2631, 1441, 1564, 1014,
1925      1014, 1014, 1446, 1446, 1446, 1006, 1447, 2620, 2632, 1448,
1926      2626, 1585, 1450, 1450, 1450, 2635, 1451, 1016,  960, 1452,
1927      1592, 1030, 1030, 1030, 2627, 1582, 1455, 1455, 1455, 1457,
1928      1457, 1457,  960, 1458, 2624, 2628, 1459,  960,  960, 1032,
1929      1460, 1460, 1460,  960, 1610, 1610, 1610,  960, 1611, 1590,
1930
1931      1596, 1612,  960, 1593, 1038, 1038, 1038, 1461, 1466, 1466,
1932      1466, 1467, 1467, 1467, 1617, 1617, 1617, 1617, 1617, 1617,
1933      2655,  960, 1040, 1581, 1581, 1581, 1473, 1473, 1473,  960,
1934      2656, 1600, 1621, 1621, 1621, 1589, 1622, 2636,  960, 1623,
1935      1063, 1063, 1063, 1474, 1625, 1625, 1625, 1071, 1071, 1071,
1936      1478, 1478, 1478, 2641, 1479, 1613,  960, 1480, 1065,  960,
1937      1588, 1626, 1629, 1629, 1629, 1073, 1079, 1079, 1079, 1482,
1938      1482, 1482,  960, 1483,  960, 2629, 1484, 1618, 2681, 1630,
1939      1582, 1085, 1085, 1085, 1081,  960, 1618, 1624, 1489, 1489,
1940      1489,  960, 1490, 2639, 1627, 1491, 1492, 1492, 1492, 1087,
1941
1942      1634, 1634, 1634, 2643, 1635, 2630,  960, 1636, 1494, 1494,
1943      1494, 2644,  960, 1493, 1637, 1637, 1637, 2637, 1638, 2638,
1944       960, 1639, 1641, 1641, 1641, 1495, 1643, 1643, 1643,  960,
1945      2651, 1628, 1501, 1501, 1501, 1646, 1646, 1646, 2695, 1647,
1946      1642, 1587, 1648, 2640, 1631, 1649, 1649, 1649, 1586, 1502,
1947      1505, 1505, 1505,  960, 1506,  960,  960, 1507, 1508, 1508,
1948      1508, 2642, 1650, 1652, 1652, 1652, 1583, 1653, 1580,  960,
1949      1654, 1655, 1655, 1655,  960, 1509, 1661, 1661, 1661, 1123,
1950      1123, 1123, 1518, 1518, 1518, 1665, 1665, 1665, 1656, 1666,
1951      2645, 2646, 1667, 1662, 1668, 1668, 1668, 1125, 2652, 1519,
1952
1953      1522, 1522, 1522, 1671, 1671, 1671,  960, 1672, 2647,  960,
1954      1673, 1669, 1675, 1675, 1675,  960, 2696, 1523, 1146, 1146,
1955      1146, 1531, 1531, 1531, 1682, 1682, 1682,  960, 1683, 2675,
1956      1676, 1684, 1686, 1686, 1686,  960, 1148,  960, 1532, 1166,
1957      1166, 1166, 1579, 2648, 1663, 1691, 1691, 1691, 2649, 2671,
1958      1687, 1693, 1693, 1693, 2702, 2702, 2702, 1168, 1178, 1178,
1959      1178,  960, 1692, 1186, 1186, 1186,  960, 2682, 1694, 1678,
1960      2653, 2702, 1699, 1699, 1699,  960, 1180, 1701, 1701, 1701,
1961      1578, 1188, 1196, 1196, 1196, 1204, 1204, 1204, 2657, 1700,
1962      1689, 1548, 1548, 1548, 1702, 1549, 2654,  960, 1550,  960,
1963
1964      1198, 2658, 1577, 1206, 1555, 1555, 1555,  960, 2650, 1698,
1965       960, 1709, 1709, 1709, 2669, 1710, 2661, 1695, 1711,  960,
1966      2676, 1556, 1575,  960, 1696, 1210, 1210, 1210,  960, 1217,
1967      1217, 1217, 1559, 1559, 1559,  960, 1707, 1714, 1714, 1714,
1968      2662, 1715, 2683, 1212, 1716,  960, 1703, 1219, 2667, 1560,
1969      1717, 1717, 1717, 1723, 1723, 1723,  973,  973,  973, 1730,
1970      1730, 1730, 1576, 1576, 1576, 1736, 1736, 1736, 1718, 2672,
1971      1724, 1581, 1581, 1581,  975, 1737, 1737, 1737, 1584, 1584,
1972      1584,  960, 2659, 1712, 1713, 1740, 1740, 1740, 1741, 1741,
1973      1741, 1591, 1591, 1591, 1004, 1004, 1004, 1749, 1749, 1749,
1974
1975      1752, 1752, 1752, 1030, 1030, 1030, 1756, 1756, 1756, 1038,
1976      1038, 1038, 1006, 1574,  960, 1750, 1725, 1753, 1610, 1610,
1977      1610, 1032, 1611, 1757,  960, 1612, 2663, 1040, 1769, 1769,
1978      1769, 1617, 1617, 1617, 1773, 1773, 1773, 1775, 1775, 1775,
1979      1063, 1063, 1063,  960, 1746, 1770, 1621, 1621, 1621,  960,
1980      1622, 2660,  960, 1623, 1776, 1768, 2689,  960, 1065, 2670,
1981      2699, 1755, 1625, 1625, 1625, 1778, 1778, 1778,  960, 1779,
1982       960,  960, 1780, 1071, 1071, 1071, 1782, 1782, 1782, 1626,
1983      1629, 1629, 1629, 1784, 1784, 1784, 2665, 1785, 2664, 2666,
1984      1786, 1073, 2684, 1777, 1783,  960, 1573, 1630, 1085, 1085,
1985
1986      1085, 1634, 1634, 1634, 2691, 1635,  960,  960, 1636,  960,
1987      1637, 1637, 1637,  960, 1638, 2673, 1087, 1639, 1641, 1641,
1988      1641, 1643, 1643, 1643, 2668,  960, 1781, 1646, 1646, 1646,
1989      1572, 1647,  960,  960, 1648,  960, 1642, 1649, 1649, 1649,
1990      1795, 1795, 1795, 1571, 1796, 1787, 2679, 1797, 1652, 1652,
1991      1652, 2674, 1653, 2677, 1650, 1654, 1655, 1655, 1655, 1799,
1992      1799, 1799, 2680, 1800,  960,  960, 1801, 1802, 1802, 1802,
1993      1661, 1661, 1661, 1656, 1807, 1807, 1807, 2685, 1808, 2678,
1994      2686, 1809,  960, 1570, 1803, 1569, 1567, 1662, 1123, 1123,
1995      1123, 1665, 1665, 1665,  960, 1666, 2690, 1566, 1667, 1668,
1996
1997      1668, 1668, 2687, 1812, 1812, 1812, 1125, 1813, 2692,  960,
1998      1814, 1671, 1671, 1671, 2693, 1672, 1669,  960, 1673, 1675,
1999      1675, 1675, 1146, 1146, 1146, 1820, 1820, 1820, 1682, 1682,
2000      1682, 2688, 1683,  960, 1565, 1684, 1402, 1676,  960, 1810,
2001      1148, 2694, 1821, 1686, 1686, 1686, 1828, 1828, 1828, 1691,
2002      1691, 1691, 1831, 1831, 1831, 1554, 1832, 1552, 1551, 1833,
2003      1547, 1687, 1545, 1544, 1829, 2697, 1692, 1693, 1693, 1693,
2004      2698, 1822, 1834, 1834, 1834, 1542, 1835, 1540, 1539, 1836,
2005      1178, 1178, 1178, 1538, 1694, 1818, 1186, 1186, 1186, 1699,
2006      1699, 1699, 1841, 1841, 1841, 1535, 1842, 1530, 1180, 1843,
2007
2008      1701, 1701, 1701, 1529, 1188, 1528, 1700, 1844, 1844, 1844,
2009      1526, 1845, 1524, 1521, 1846, 1520, 1517, 1702, 1196, 1196,
2010      1196, 1204, 1204, 1204, 1709, 1709, 1709, 1515, 1710, 1514,
2011      1513, 1711, 1210, 1210, 1210, 1840, 1198, 1512, 1511, 1206,
2012      1217, 1217, 1217, 1510, 1504, 1838, 1503, 1714, 1714, 1714,
2013      1212, 1715, 1500, 1499, 1716, 1717, 1717, 1717, 1219, 1723,
2014      1723, 1723, 1859, 1859, 1859, 1498, 1860, 1488, 1487, 1861,
2015       973,  973,  973, 1718, 1485, 1476, 1724, 1863, 1863, 1863,
2016      1472, 1471, 1847, 1853, 1470, 1851, 1469, 1468,  975, 1866,
2017      1866, 1866, 1465, 1854, 1730, 1730, 1730, 1867, 1867, 1867,
2018
2019      1871, 1871, 1871, 1736, 1736, 1736, 1737, 1737, 1737, 1872,
2020      1872, 1872, 1740, 1740, 1740, 1741, 1741, 1741, 1875, 1875,
2021      1875, 1876, 1876, 1876, 1877, 1877, 1877, 1004, 1004, 1004,
2022      1749, 1749, 1749, 1862, 1752, 1752, 1752, 1883, 1883, 1883,
2023      1464, 1884, 1463, 1456, 1885, 1006, 1453, 1449, 1750, 1445,
2024      1443, 1753, 1887, 1887, 1887, 1873, 1756, 1756, 1756, 1889,
2025      1889, 1889, 1442, 1890, 1434, 1433, 1891, 1038, 1038, 1038,
2026      1888, 1431, 1430, 1757, 1769, 1769, 1769, 1429, 1879, 1903,
2027      1903, 1903, 1428, 1904, 1427, 1040, 1905, 1906, 1906, 1906,
2028      1426, 1770, 1773, 1773, 1773, 1908, 1908, 1908, 1775, 1775,
2029
2030      1775, 1910, 1910, 1910, 1425, 1911, 1424, 1422, 1912, 1063,
2031      1063, 1063, 1071, 1071, 1071, 1776, 1902, 1778, 1778, 1778,
2032      1421, 1779, 1419, 1418, 1780, 1415, 1413, 1065, 1412, 1411,
2033      1073, 1782, 1782, 1782, 1410, 1784, 1784, 1784, 1409, 1785,
2034      1407, 1909, 1786, 1085, 1085, 1085, 1795, 1795, 1795, 1783,
2035      1796, 1406, 1405, 1797, 1404, 1799, 1799, 1799, 1397, 1800,
2036      1913, 1087, 1801, 1914, 1802, 1802, 1802, 1926, 1926, 1926,
2037      1394, 1927, 1393, 1391, 1928, 1807, 1807, 1807, 1390, 1808,
2038      1387, 1803, 1809, 1123, 1123, 1123, 1812, 1812, 1812, 1382,
2039      1813, 1381, 1376, 1814, 1374, 1370, 1915, 1937, 1937, 1937,
2040
2041      1369, 1125, 1820, 1820, 1820, 1940, 1940, 1940, 1365, 1941,
2042      1363, 1355, 1942, 1354, 1353, 1938, 1828, 1828, 1828, 1821,
2043      1831, 1831, 1831, 1352, 1832, 1350, 1348, 1833, 1834, 1834,
2044      1834, 1347, 1835, 1343, 1829, 1836, 1178, 1178, 1178, 1186,
2045      1186, 1186, 1342, 1841, 1841, 1841, 1932, 1842, 1341, 1340,
2046      1843, 1844, 1844, 1844, 1180, 1845, 1338, 1188, 1846, 1196,
2047      1196, 1196, 1957, 1957, 1957, 2702, 2702, 2702, 2702, 2702,
2048      2702, 1204, 1204, 1204, 1210, 1210, 1210, 1198, 1337, 1958,
2049      1336, 1335, 2702, 1334, 1333, 2702, 1332, 1953, 1326, 1206,
2050      1325, 1324, 1212, 1323, 1322, 1956, 1964, 1964, 1964, 1966,
2051
2052      1966, 1966, 1321, 1319, 1955, 1969, 1969, 1969, 1859, 1859,
2053      1859, 1318, 1860, 1315, 1965, 1861, 1959,  960,  973,  973,
2054       973, 1863, 1863, 1863, 1314, 1305, 1960, 1971, 1971, 1971,
2055      1866, 1866, 1866, 1963, 1303, 1961,  975, 1867, 1867, 1867,
2056      1973, 1973, 1973, 1974, 1974, 1974, 1975, 1975, 1975, 1871,
2057      1871, 1871, 1872, 1872, 1872, 1875, 1875, 1875, 1876, 1876,
2058      1876, 1877, 1877, 1877, 1979, 1979, 1979, 1982, 1982, 1982,
2059      1883, 1883, 1883, 1302, 1884, 1301, 1970, 1885, 2702, 2702,
2060      2702, 1300, 1980, 1299, 1983, 1887, 1887, 1887, 1298, 1889,
2061      1889, 1889, 1297, 1890, 1296, 2702, 1891, 1038, 1038, 1038,
2062
2063      1903, 1903, 1903, 1888, 1904, 1295, 1294, 1905, 1906, 1906,
2064      1906, 1908, 1908, 1908, 1291, 1040, 1910, 1910, 1910, 1289,
2065      1911, 1286, 1283, 1912, 1063, 1063, 1063, 1999, 1999, 1999,
2066      1085, 1085, 1085, 2009, 2009, 2009, 1280, 1926, 1926, 1926,
2067      1271, 1927, 1065, 1984, 1928, 2000, 1269, 1262, 1087, 2012,
2068      2012, 2012, 1260, 2016, 2016, 2016, 1259, 1995, 1937, 1937,
2069      1937, 2022, 2022, 2022, 1258, 1257, 2013, 2033, 2033, 2033,
2070      1998, 2017, 1256, 1940, 1940, 1940, 1938, 1941, 2023, 1255,
2071      1942, 2001, 2035, 2035, 2035, 2037, 2037, 2037, 1186, 1186,
2072      1186, 1196, 1196, 1196, 1957, 1957, 1957, 2041, 2041, 2041,
2073
2074      2036, 2042, 2038, 1254, 2043, 1253, 1188, 2024, 1252, 1198,
2075      1249, 1958, 2044, 2044, 2044, 2702, 2702, 2702, 2047, 2047,
2076      2047, 2049, 2049, 2049, 1210, 1210, 1210, 1248, 1247, 2045,
2077      1246, 1245, 2702, 1969, 1969, 1969, 2048, 1964, 1964, 1964,
2078      1244, 1243, 1212, 1966, 1966, 1966, 1242, 2039, 1971, 1971,
2079      1971, 2040, 2054, 2054, 2054, 1965, 1973, 1973, 1973, 1241,
2080      1240,  960, 1974, 1974, 1974, 1239, 2046, 1975, 1975, 1975,
2081      2055, 1238, 1979, 1979, 1979, 1982, 1982, 1982, 2061, 2061,
2082      2061, 1236, 2062, 1235, 1234, 2063, 2702, 2702, 2702, 2050,
2083      1980, 1233, 1983, 1038, 1038, 1038, 1063, 1063, 1063, 1999,
2084
2085      1999, 1999, 1232, 2702, 2051, 2079, 2079, 2079, 2085, 2085,
2086      2085, 1040, 1231, 1230, 1065,  960, 1224, 2000, 2009, 2009,
2087      2009, 1209, 1208, 2080, 1203, 2086, 2012, 2012, 2012, 2089,
2088      2089, 2089, 1202, 2090, 1201, 1200, 2091, 2093, 2093, 2093,
2089      1182, 2064, 1170, 2013, 2016, 2016, 2016, 2097, 2097, 2097,
2090      1156, 1155, 2075, 1154, 2094, 2022, 2022, 2022, 2108, 2108,
2091      2108, 2078, 2017, 1150, 2098, 1142, 2100, 2100, 2100, 1137,
2092      2101, 1136, 2023, 2102, 1130, 2109, 2033, 2033, 2033, 2035,
2093      2035, 2035, 2037, 2037, 2037, 2112, 2112, 2112, 1127, 2113,
2094      1122, 1121, 2114, 2115, 2115, 2115, 1120, 2036, 1119, 2038,
2095
2096      1196, 1196, 1196, 2041, 2041, 2041, 1118, 2042, 1117, 1116,
2097      2043, 2116, 2044, 2044, 2044, 2118, 2118, 2118, 1198, 2119,
2098      1110, 1103, 2120, 2121, 2121, 2121, 2047, 2047, 2047, 2045,
2099      2049, 2049, 2049, 2123, 2123, 2123, 2054, 2054, 2054, 1102,
2100      2122, 2132, 2132, 2132, 2048, 2061, 2061, 2061, 1101, 2062,
2101      1096, 2124, 2063, 1095, 2055, 2702, 2702, 2702, 2133, 1038,
2102      1038, 1038, 1063, 1063, 1063, 1091, 2117, 2079, 2079, 2079,
2103      1090, 1089, 2702, 2156, 2156, 2156, 1084, 1040, 1083, 1078,
2104      1065, 2085, 2085, 2085, 1070, 2080, 1062, 2158, 2158, 2158,
2105      2157, 2159, 1058, 1057, 2160, 2089, 2089, 2089, 2086, 2090,
2106
2107      1056, 1055, 2091, 2093, 2093, 2093, 2164, 2164, 2164, 1054,
2108      2165, 1053, 1052, 2166, 1051, 2140, 1045, 1037, 2151, 1036,
2109      2094, 2168, 2168, 2168, 2097, 2097, 2097, 2170, 2170, 2170,
2110      1035, 2171, 2154, 1034, 2172, 2173, 2173, 2173, 2169, 1029,
2111      1028, 2098, 2100, 2100, 2100, 1027, 2101, 1024, 1018, 2102,
2112      1013, 1012, 2174, 2108, 2108, 2108, 2178, 2178, 2178, 1008,
2113      2179, 1003, 1002, 2180, 2181, 2181, 2181, 2183, 2183, 2183,
2114      2109, 2112, 2112, 2112, 1001, 2113, 1000,  999, 2114,  998,
2115       996, 2182,  995,  994, 2184, 2115, 2115, 2115, 1196, 1196,
2116      1196, 2118, 2118, 2118,  993, 2119,  992,  991, 2120, 2121,
2117
2118      2121, 2121,  990, 2116,  989,  988, 1198, 2192, 2192, 2192,
2119       987, 2193,  986,  985, 2194,  984, 2122, 2123, 2123, 2123,
2120      2198, 2198, 2198, 2132, 2132, 2132, 2202, 2202, 2202,  983,
2121      2203,  982,  981, 2204,  980, 2124,  979, 2702, 2702, 2702,
2122      2133, 1038, 1038, 1038, 2223, 2223, 2223, 1063, 1063, 1063,
2123      2156, 2156, 2156, 2191, 2702, 2226, 2226, 2226,  972, 1040,
2124       971,  970, 2229, 2229, 2229, 1065, 2230, 2157,  969, 2231,
2125       968,  967, 2227, 2158, 2158, 2158,  966, 2159,  963,  961,
2126      2160, 2164, 2164, 2164,  960, 2165,  958,  956, 2166, 2168,
2127      2168, 2168, 2222, 2236, 2236, 2236, 2213, 2237,  953,  949,
2128
2129      2238, 2228,  947, 2170, 2170, 2170, 2169, 2171, 2225,  946,
2130      2172, 2173, 2173, 2173, 2239, 2239, 2239,  945, 2240,  943,
2131       942, 2241, 2243, 2243, 2243, 2178, 2178, 2178, 2174, 2179,
2132       941,  940, 2180, 2181, 2181, 2181, 2246, 2246, 2246, 2244,
2133      2247,  939,  937, 2248, 2183, 2183, 2183, 2249, 2249, 2249,
2134      2182, 2250,  936,  935, 2251, 1196, 1196, 1196, 2192, 2192,
2135      2192, 2184, 2193,  934,  930, 2194, 2261, 2261, 2261, 2198,
2136      2198, 2198,  929, 1198, 2263, 2263, 2263,  927, 2202, 2202,
2137      2202,  926, 2203, 2262, 1402, 2204, 2274, 2274, 2274, 1038,
2138      1038, 1038, 2223, 2223, 2223, 2285, 2285, 2285, 1063, 1063,
2139
2140      1063,  925,  924, 2275,  923,  922, 2258, 1040, 2226, 2226,
2141      2226, 2287, 2287, 2287,  920, 2288, 1065,  919, 2289, 2229,
2142      2229, 2229,  918, 2230,  917, 2227, 2231, 2236, 2236, 2236,
2143       915, 2237,  914,  913, 2238, 2239, 2239, 2239, 2284, 2240,
2144       910,  909, 2241, 2243, 2243, 2243, 2296, 2296, 2296, 2286,
2145      2297,  905,  904, 2298, 2246, 2246, 2246,  902, 2247,  901,
2146      2244, 2248, 2249, 2249, 2249,  900, 2250,  897,  896, 2251,
2147      2314, 2314, 2314, 2317, 2317, 2317, 2261, 2261, 2261, 2319,
2148      2319, 2319,  895, 2320,  894,  892, 2321,  891, 2315,  890,
2149      2318, 1402,  889, 2262, 1402,  888,  887, 1402, 2263, 2263,
2150
2151      2263, 2322, 2322, 2322, 2323, 2323, 2323, 2274, 2274, 2274,
2152      2332, 2332, 2332,  886, 2333,  885,  882, 2334, 1038, 1038,
2153      1038, 2285, 2285, 2285, 2275, 2342, 2342, 2342, 2287, 2287,
2154      2287,  879, 2288,  878,  875, 2289, 1040, 2347, 2347, 2347,
2155      2350, 2350, 2350, 2343, 2296, 2296, 2296,  873, 2297,  872,
2156       867, 2298,  866,  864, 2348,  863,  862, 2351, 2352, 2352,
2157      2352, 2314, 2314, 2314, 2317, 2317, 2317, 2367, 2367, 2367,
2158       860, 2368,  857,  855, 2369, 2353, 2322, 2322, 2322, 2315,
2159       852, 2318, 1402, 2341,  850, 1402, 2319, 2319, 2319,  847,
2160      2320,  844,  843, 2321, 2323, 2323, 2323, 2386, 2386, 2386,
2161
2162      2342, 2342, 2342,  841, 1402, 1400, 1400, 1400, 1400, 1400,
2163      1400, 1400, 1400, 1400,  840, 2387, 1400,  839, 2343,  838,
2164       837, 1400, 1400, 1400, 1402, 1400, 2332, 2332, 2332,  835,
2165      2333,  832,  830, 2334, 2391, 2391, 2391,  829, 2392,  828,
2166       826, 2393,  824,  823, 2347, 2347, 2347, 2350, 2350, 2350,
2167      1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
2168      1400, 2348,  822, 1400, 2351, 2352, 2352, 2352, 1400, 1400,
2169      1400, 1402, 1400, 2395, 2395, 2395,  821, 2396,  820,  819,
2170      2397,  816, 2353, 2398, 2398, 2398,  815, 2399,  814,  811,
2171      2400,  808, 2367, 2367, 2367,  807, 2368, 1400, 1400, 2369,
2172
2173       805,  804, 2386, 2386, 2386, 2448, 2448, 2448,  801,  799,
2174      1402, 1400, 1400, 1400, 1400, 1400, 2419, 1400, 1400, 1400,
2175      2387,  796, 1400, 1402, 1403,  795,  787, 1400, 1400, 1400,
2176      1402, 1400, 2391, 2391, 2391,  786, 2392,  785,  782, 2393,
2177      2395, 2395, 2395,  781, 2396,  780,  779, 2397, 2398, 2398,
2178      2398,  777, 2399,  776,  775, 2400, 1400, 1400, 1400, 1400,
2179      1400, 1400, 1400, 1400, 1400, 1400, 2419,  774,  773, 1400,
2180      2453, 2453, 2453,  772, 1400, 1400, 1400, 1402, 1400, 2455,
2181      2455, 2455, 2457, 2457, 2457,  767,  764, 2454, 2465, 2465,
2182      2465, 2473, 2473, 2473,  766,  761, 2456,  760,  758, 2458,
2183
2184      2448, 2448, 2448, 1400, 1400, 2466, 2453, 2453, 2453,  960,
2185      2479, 2479, 2479,  757, 2480,  756,  754, 2481, 1402, 2455,
2186      2455, 2455,  752, 2454, 2482, 2482, 2482,  750, 2483,  747,
2187       746, 2484, 2457, 2457, 2457,  745, 2456, 2485, 2485, 2485,
2188       744, 2486,  742,  741, 2487, 2465, 2465, 2465,  740, 2458,
2189       739, 1563, 2494, 2494, 2494,  738, 2495,  736,  734, 2496,
2190       733,  731, 2466, 2473, 2473, 2473, 2479, 2479, 2479,  730,
2191      2480,  727,  726, 2481,  724, 2482, 2482, 2482,  588, 2483,
2192      2702,  960, 2484, 2485, 2485, 2485,  719, 2486,  717,  716,
2193      2487, 2494, 2494, 2494,  713, 2495,  712,  711, 2496,  709,
2194
2195      2503, 2598, 2598, 2598, 2598, 2598, 2598,  707, 2607,  706,
2196       704, 2608, 2700, 2700, 2700, 2700, 2700, 2700,  702,  960,
2197       701,  700,  960,  699,  698,  697,  696,  694,  685,  684,
2198      2701,  683,  680, 2701,  228,  228,  228,  228,  228,  228,
2199       228,  228,  228,  229,  229,  229,  229,  229,  229,  229,
2200       229,  229,  234,  234,  234,  234,  234,  234,  234,  234,
2201       234,  237,  237,  237,  237,  237,  237,  237,  237,  237,
2202       240,  240,  240,  240,  240,  240,  240,  240,  240,  243,
2203       243,  243,  243,  243,  243,  243,  243,  243,  250,  250,
2204       250,  250,  250,  250,  250,  250,  250,  258,  258,  258,
2205
2206       258,  258,  258,  258,  258,  258,  262,  262,  262,  262,
2207       262,  262,  262,  262,  262,  274,  274,  274,  274,  274,
2208       274,  274,  274,  274,  278,  278,  278,  278,  278,  278,
2209       278,  278,  278,  286,  286,  286,  286,  286,  286,  286,
2210       286,  286,  297,  297,  297,  297,  297,  297,  297,  297,
2211       297,  305,  305,  305,  305,  305,  305,  305,  305,  305,
2212       313,  313,  313,  313,  313,  313,  313,  313,  313,  319,
2213       319,  319,  319,  319,  319,  319,  319,  319,  325,  325,
2214       325,  325,  325,  325,  325,  325,  325,  330,  330,  330,
2215       330,  330,  330,  330,  330,  330,  347,  347,  347,  347,
2216
2217       347,  347,  347,  347,  347,  353,  353,  353,  353,  353,
2218       353,  353,  353,  353,  360,  360,  360,  360,  360,  360,
2219       360,  360,  360,  365,  365,  365,  365,  365,  365,  365,
2220       365,  365,  372,  372,  372,  372,  372,  372,  372,  372,
2221       372,  377,  377,  377,  377,  377,  377,  377,  377,  377,
2222       383,  383,  383,  383,  383,  383,  383,  383,  383,  388,
2223       388,  388,  388,  388,  388,  388,  388,  388,  394,  394,
2224       394,  394,  394,  394,  394,  394,  394,  402,  402,  402,
2225       402,  402,  402,  402,  402,  402,  421,  421,  421,  421,
2226       421,  421,  421,  421,  421,  437,  437,  437,  437,  437,
2227
2228       437,  437,  437,  437,  443,  443,  443,  443,  443,  443,
2229       443,  443,  443,  448,  448,  448,  448,  448,  448,  448,
2230       448,  448,  454,  454,  454,  454,  454,  454,  454,  454,
2231       454,  461,  461,  461,  461,  461,  461,  461,  461,  461,
2232       468,  468,  468,  468,  468,  468,  468,  468,  468,  473,
2233       473,  473,  473,  473,  473,  473,  473,  473,  481,  481,
2234       481,  481,  481,  481,  481,  481,  481,  487,  487,  487,
2235       487,  487,  487,  487,  487,  487,  494,  494,  494,  494,
2236       494,  494,  494,  494,  494,  499,  499,  499,  499,  499,
2237       499,  499,  499,  499,  505,  505,  505,  505,  505,  505,
2238
2239       505,  505,  505,  511,  511,  511,  511,  511,  511,  511,
2240       511,  511,  518,  518,  518,  518,  518,  518,  518,  518,
2241       518,  525,  525,  525,  525,  525,  525,  525,  525,  525,
2242       533,  533,  533,  533,  533,  533,  533,  533,  533,  537,
2243       537,  537,  537,  537,  537,  537,  537,  537,  543,  543,
2244       543,  543,  543,  543,  543,  543,  543,  547,  547,  547,
2245       547,  547,  547,  547,  547,  547,  554,  554,  554,  554,
2246       554,  554,  554,  554,  554,  559,  559,  559,  559,  559,
2247       559,  559,  559,  559,  579,  579,  579,  678,  675,  674,
2248       579,  605,  605,  605,  673,  672,  671,  605,  609,  609,
2249
2250       609,  669,  667,  666,  609,  617,  617,  617,  664,  662,
2251       661,  617,  629,  629,  629,  659,  658,  657,  629,  635,
2252       635,  635,  656,  654,  653,  635,  649,  649,  649,  652,
2253       651,  650,  649,  655,  655,  655,  648, 2702,  596,  655,
2254       660,  660,  660,  637,  636,  634,  660,  665,  665,  665,
2255       632,  631,  630,  665,  670,  670,  670,  628,  599, 2702,
2256       670,  679,  679,  679,  623,  619,  618,  679,  695,  695,
2257       695,  616,  615,  612,  695,  705,  705,  705,  611,  610,
2258       608,  705,  710,  710,  710,  596, 2702,  606,  710,  718,
2259       718,  718,  604, 2702,  580,  718,  725,  725,  725,  578,
2260
2261       576,  570,  725,  732,  732,  732,  569,  570,  569,  732,
2262       737,  737,  737,  568,  567, 2702,  737,  743,  743,  743,
2263      2702, 2702, 2702,  743,  751,  751,  751, 2702, 2702, 2702,
2264       751,  755,  755,  755, 2702, 2702, 2702,  755,  759,  759,
2265       759, 2702, 2702, 2702,  759,  763,  763,  763,  763,  763,
2266       763,  763, 2702,  763,  579,  579,  579, 2702, 2702, 2702,
2267       579,  778, 2702, 2702, 2702,  778,  605,  605,  605, 2702,
2268      2702, 2702,  605,  806, 2702, 2702, 2702,  806,  609,  609,
2269       609, 2702, 2702, 2702,  609,  813, 2702, 2702, 2702,  813,
2270       617,  617,  617, 2702, 2702, 2702,  617,  825, 2702, 2702,
2271
2272      2702,  825,  629,  629,  629, 2702, 2702, 2702,  629,  831,
2273      2702, 2702, 2702,  831,  635,  635,  635, 2702, 2702, 2702,
2274       635,  836, 2702, 2702, 2702,  836,  649,  649,  649, 2702,
2275      2702, 2702,  649,  851, 2702, 2702, 2702,  851,  655,  655,
2276       655, 2702, 2702, 2702,  655,  856, 2702, 2702, 2702,  856,
2277       660,  660,  660, 2702, 2702, 2702,  660,  861, 2702, 2702,
2278      2702,  861,  665,  665,  665, 2702, 2702, 2702,  665,  865,
2279      2702, 2702, 2702,  865,  670,  670,  670, 2702, 2702, 2702,
2280       670,  874, 2702, 2702, 2702,  874,  679,  679,  679, 2702,
2281      2702, 2702,  679,  893, 2702, 2702, 2702,  893,  695,  695,
2282
2283       695, 2702, 2702, 2702,  695,  903, 2702, 2702, 2702,  903,
2284       705,  705,  705, 2702, 2702, 2702,  705,  908, 2702, 2702,
2285      2702,  908,  710,  710,  710, 2702, 2702, 2702,  710,  916,
2286      2702, 2702, 2702,  916,  718,  718,  718, 2702, 2702, 2702,
2287       718,  921, 2702, 2702, 2702,  921,  725,  725,  725, 2702,
2288      2702, 2702,  725,  928, 2702, 2702, 2702,  928,  732,  732,
2289       732, 2702, 2702, 2702,  732,  933, 2702, 2702, 2702,  933,
2290       737,  737,  737, 2702, 2702, 2702,  737,  938, 2702, 2702,
2291      2702,  938,  743,  743,  743, 2702, 2702, 2702,  743,  944,
2292      2702, 2702, 2702,  944,  751,  751,  751, 2702, 2702, 2702,
2293
2294       751,  948, 2702, 2702, 2702,  948,  755,  755,  755, 2702,
2295      2702, 2702,  755,  952, 2702, 2702, 2702,  952,  759,  759,
2296       759, 2702, 2702, 2702,  759,  957, 2702, 2702, 2702,  957,
2297       959,  959,  959,  959,  959,  959,  959,  959,  959,  965,
2298      2702, 2702, 2702, 2702,  965,  579,  579,  579, 2702, 2702,
2299      2702,  579,  974,  974,  974,  974, 2702, 2702,  974,  974,
2300       605,  605,  605, 2702, 2702, 2702,  605, 1005, 1005, 1005,
2301      1005, 2702, 2702, 1005, 1005,  609,  609,  609, 2702, 2702,
2302      2702,  609, 1015, 1015, 1015, 1015, 2702, 2702, 1015, 1015,
2303       617,  617,  617, 2702, 2702, 2702,  617, 1031, 1031, 1031,
2304
2305      1031, 2702, 2702, 1031, 1031,  629,  629,  629, 2702, 2702,
2306      2702,  629, 1039, 1039, 1039, 1039, 2702, 2702, 1039, 1039,
2307       635,  635,  635, 2702, 2702, 2702,  635, 1047, 1047, 1047,
2308      1047, 2702, 2702, 1047, 1047,  649,  649,  649, 2702, 2702,
2309      2702,  649, 1064, 1064, 1064, 1064, 2702, 2702, 1064, 1064,
2310       655,  655,  655, 2702, 2702, 2702,  655, 1072, 1072, 1072,
2311      1072, 2702, 2702, 1072, 1072,  660,  660,  660, 2702, 2702,
2312      2702,  660, 1080, 1080, 1080, 1080, 2702, 2702, 1080, 1080,
2313       665,  665,  665, 2702, 2702, 2702,  665, 1086, 1086, 1086,
2314      1086, 2702, 2702, 1086, 1086,  670,  670,  670, 2702, 2702,
2315
2316      2702,  670, 1098, 1098, 1098, 1098, 2702, 2702, 1098, 1098,
2317       679,  679,  679, 2702, 2702, 2702,  679, 1124, 1124, 1124,
2318      1124, 2702, 2702, 1124, 1124,  695,  695,  695, 2702, 2702,
2319      2702,  695, 1139, 1139, 1139, 1139, 2702, 2702, 1139, 1139,
2320       705,  705,  705, 2702, 2702, 2702,  705, 1147, 1147, 1147,
2321      1147, 2702, 2702, 1147, 1147,  710,  710,  710, 2702, 2702,
2322      2702,  710, 1158, 1158, 1158, 1158, 2702, 2702, 1158, 1158,
2323       718,  718,  718,  718, 2702,  718, 2702,  718, 1167, 1167,
2324      1167, 1167, 2702, 2702, 1167, 1167,  725,  725,  725,  725,
2325      2702,  725, 2702,  725, 1179, 1179, 1179, 1179, 2702, 2702,
2326
2327      1179, 1179,  732,  732,  732, 2702, 2702, 2702,  732, 1187,
2328      1187, 1187, 1187, 2702, 2702, 1187, 1187,  737,  737,  737,
2329       737, 2702,  737, 2702,  737, 1197, 1197, 1197, 1197, 2702,
2330      2702, 1197, 1197,  743,  743,  743, 2702, 2702, 2702,  743,
2331      1205, 1205, 1205, 1205, 2702, 2702, 1205, 1205,  751,  751,
2332       751, 2702, 2702, 2702,  751, 1211, 1211, 1211, 1211, 2702,
2333      2702, 1211, 1211, 1218, 1218, 1218, 1218, 2702, 2702, 1218,
2334      1218,  759,  759,  759, 2702, 2702, 2702,  759, 1226, 1226,
2335      1226, 1226, 2702, 2702, 1226, 1226,  959,  959,  959,  959,
2336       959,  959,  959,  959,  959,  965, 2702,  965, 2702, 2702,
2337
2338       965,  579,  579,  579, 2702, 2702, 2702,  579,  974,  974,
2339       974,  974, 2702, 2702,  974,  974,  605,  605,  605,  605,
2340      2702,  605, 2702,  605, 1005, 1005, 1005, 1005, 2702, 2702,
2341      1005, 1005,  609,  609,  609,  609, 2702,  609, 2702,  609,
2342      1015, 1015, 1015, 1015, 2702, 2702, 1015, 1015,  617,  617,
2343       617, 2702, 2702, 2702,  617, 1031, 1031, 1031, 1031, 2702,
2344      2702, 1031, 1031,  629,  629,  629, 2702, 2702, 2702,  629,
2345      1039, 1039, 1039, 1039, 2702, 2702, 1039, 1039,  635,  635,
2346       635, 2702, 2702, 2702,  635, 1047, 1047, 1047, 1047, 2702,
2347      2702, 1047, 1047,  649,  649,  649, 2702, 2702, 2702,  649,
2348
2349      1064, 1064, 1064, 1064, 2702, 2702, 1064, 1064,  655,  655,
2350       655, 2702, 2702, 2702,  655, 1072, 1072, 1072, 1072, 2702,
2351      2702, 1072, 1072,  660,  660,  660,  660, 2702,  660, 2702,
2352       660, 1080, 1080, 1080, 1080, 2702, 2702, 1080, 1080,  665,
2353       665,  665,  665, 2702,  665, 2702,  665, 1086, 1086, 1086,
2354      1086, 2702, 2702, 1086, 1086,  670,  670,  670, 2702, 2702,
2355      2702,  670, 1098, 1098, 1098, 1098, 2702, 2702, 1098, 1098,
2356       679,  679,  679, 2702, 2702, 2702,  679, 1124, 1124, 1124,
2357      1124, 2702, 2702, 1124, 1124,  695,  695,  695, 2702, 2702,
2358      2702,  695, 1139, 1139, 1139, 1139, 2702, 2702, 1139, 1139,
2359
2360       705,  705,  705, 2702, 2702, 2702,  705, 1147, 1147, 1147,
2361      1147, 2702, 2702, 1147, 1147,  710,  710,  710, 2702, 2702,
2362      2702,  710, 1158, 1158, 1158, 1158, 2702, 2702, 1158, 1158,
2363       718,  718,  718, 2702, 2702, 2702,  718, 1167, 1167, 1167,
2364      1167, 2702, 2702, 1167, 1167,  725,  725,  725, 2702, 2702,
2365      2702,  725, 1179, 1179, 1179, 1179, 2702, 2702, 1179, 1179,
2366       732,  732,  732, 2702, 2702, 2702,  732, 1187, 1187, 1187,
2367      1187, 2702, 2702, 1187, 1187,  737,  737,  737, 2702, 2702,
2368      2702,  737, 1197, 1197, 1197, 1197, 2702, 2702, 1197, 1197,
2369       743,  743,  743, 2702, 2702, 2702,  743, 1205, 1205, 1205,
2370
2371      1205, 2702, 2702, 1205, 1205,  751,  751,  751, 2702, 2702,
2372      2702,  751, 1211, 1211, 1211, 1211, 2702, 2702, 1211, 1211,
2373      1218, 1218, 1218, 1218, 2702, 2702, 1218, 1218,  759,  759,
2374       759, 2702, 2702, 2702,  759, 1226, 1226, 1226, 1226, 2702,
2375      2702, 1226, 1226,  959,  959,  959,  959,  959,  959,  959,
2376       959,  959, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
2377      1400,  579,  579,  579, 2702, 2702, 2702,  579,  974,  974,
2378       974,  974, 2702, 2702,  974,  974, 1005, 1005, 1005, 1005,
2379      2702, 2702, 1005, 1005,  609,  609,  609, 2702, 2702, 2702,
2380       609, 1015, 1015, 1015, 1015, 2702, 2702, 1015, 1015,  617,
2381
2382       617,  617, 2702, 2702, 2702,  617, 1031, 1031, 1031, 1031,
2383      2702, 2702, 1031, 1031,  629,  629,  629, 2702, 2702, 2702,
2384       629, 1039, 1039, 1039, 1039, 2702, 2702, 1039, 1039,  635,
2385       635,  635, 2702, 2702, 2702,  635,  649,  649,  649, 2702,
2386      2702, 2702,  649, 1064, 1064, 1064, 1064, 2702, 2702, 1064,
2387      1064,  655,  655,  655, 2702, 2702, 2702,  655, 1072, 1072,
2388      1072, 1072, 2702, 2702, 1072, 1072, 1080, 1080, 1080, 1080,
2389      2702, 2702, 1080, 1080,  665,  665,  665, 2702, 2702, 2702,
2390       665, 1086, 1086, 1086, 1086, 2702, 2702, 1086, 1086,  670,
2391       670,  670, 2702, 2702, 2702,  670, 1098, 1098, 1098, 1098,
2392
2393      2702, 2702, 1098, 1098,  679,  679,  679, 2702, 2702, 2702,
2394       679, 1124, 1124, 1124, 1124, 2702, 2702, 1124, 1124,  695,
2395       695,  695, 2702, 2702, 2702,  695, 1139, 1139, 1139, 1139,
2396      2702, 2702, 1139, 1139,  705,  705,  705, 2702, 2702, 2702,
2397       705, 1147, 1147, 1147, 1147, 2702, 2702, 1147, 1147,  710,
2398       710,  710, 2702, 2702, 2702,  710, 1158, 1158, 1158, 1158,
2399      2702, 2702, 1158, 1158,  718,  718,  718, 2702, 2702, 2702,
2400       718, 1167, 1167, 1167, 1167, 2702, 2702, 1167, 1167,  725,
2401       725,  725, 2702, 2702, 2702,  725, 1179, 1179, 1179, 1179,
2402      2702, 2702, 1179, 1179,  732,  732,  732, 2702, 2702, 2702,
2403
2404       732, 1187, 1187, 1187, 1187, 2702, 2702, 1187, 1187,  737,
2405       737,  737, 2702, 2702, 2702,  737, 1197, 1197, 1197, 1197,
2406      2702, 2702, 1197, 1197,  743,  743,  743, 2702, 2702, 2702,
2407       743, 1205, 1205, 1205, 1205, 2702, 2702, 1205, 1205,  751,
2408       751,  751,  751, 2702,  751, 2702,  751, 1211, 1211, 1211,
2409      1211, 2702, 2702, 1211, 1211, 1218, 1218, 1218, 1218, 2702,
2410      2702, 1218, 1218,  759,  759,  759,  759, 2702,  759, 2702,
2411       759, 1226, 1226, 1226, 1226, 2702, 2702, 1226, 1226,  959,
2412       959,  959,  959,  959,  959,  959,  959,  959, 1400, 1400,
2413      1400, 1400, 1400, 1400, 1400, 1400, 1400,  579,  579,  579,
2414
2415      2702, 2702, 2702,  579,  974,  974,  974,  974, 2702, 2702,
2416       974,  974, 1005, 1005, 1005, 1005, 2702, 2702, 1005, 1005,
2417       609,  609,  609, 2702, 2702, 2702,  609, 1015, 1015, 1015,
2418      1015, 2702, 2702, 1015, 1015,  617,  617,  617, 2702, 2702,
2419      2702,  617, 1031, 1031, 1031, 1031, 2702, 2702, 1031, 1031,
2420       629,  629,  629, 2702, 2702, 2702,  629, 1039, 1039, 1039,
2421      1039, 2702, 2702, 1039, 1039,  635,  635,  635, 2702, 2702,
2422      2702,  635,  649,  649,  649, 2702, 2702, 2702,  649, 1064,
2423      1064, 1064, 1064, 2702, 2702, 1064, 1064,  655,  655,  655,
2424       655, 2702,  655, 2702,  655, 1072, 1072, 1072, 1072, 2702,
2425
2426      2702, 1072, 1072, 1080, 1080, 1080, 1080, 2702, 2702, 1080,
2427      1080,  665,  665,  665,  665, 2702,  665, 2702,  665, 1086,
2428      1086, 1086, 1086, 2702, 2702, 1086, 1086,  670,  670,  670,
2429      2702, 2702, 2702,  670, 1098, 1098, 1098, 1098, 2702, 2702,
2430      1098, 1098,  679,  679,  679, 2702, 2702, 2702,  679, 1124,
2431      1124, 1124, 1124, 2702, 2702, 1124, 1124,  695,  695,  695,
2432      2702, 2702, 2702,  695, 1139, 1139, 1139, 1139, 2702, 2702,
2433      1139, 1139,  705,  705,  705, 2702, 2702, 2702,  705, 1147,
2434      1147, 1147, 1147, 2702, 2702, 1147, 1147,  710,  710,  710,
2435      2702, 2702, 2702,  710, 1158, 1158, 1158, 1158, 2702, 2702,
2436
2437      1158, 1158,  718,  718,  718, 2702, 2702, 2702,  718, 1167,
2438      1167, 1167, 1167, 2702, 2702, 1167, 1167,  725,  725,  725,
2439       725, 2702,  725, 2702,  725, 1179, 1179, 1179, 1179, 2702,
2440      2702, 1179, 1179,  732,  732,  732, 2702, 2702, 2702,  732,
2441      1187, 1187, 1187, 1187, 2702, 2702, 1187, 1187,  737,  737,
2442       737,  737, 2702,  737, 2702,  737, 1197, 1197, 1197, 1197,
2443      2702, 2702, 1197, 1197,  743,  743,  743, 2702, 2702, 2702,
2444       743, 1205, 1205, 1205, 1205, 2702, 2702, 1205, 1205, 1211,
2445      1211, 1211, 1211, 2702, 2702, 1211, 1211, 1218, 1218, 1218,
2446      1218, 2702, 2702, 1218, 1218, 1226, 1226, 1226, 1226, 2702,
2447
2448      2702, 1226, 1226,  959,  959,  959,  959,  959,  959,  959,
2449       959,  959, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
2450      1400,  579,  579,  579,  579, 2702,  579, 2702,  579,  974,
2451       974,  974,  974, 2702, 2702,  974,  974, 1005, 1005, 1005,
2452      1005, 2702, 2702, 1005, 1005,  609,  609,  609, 2702, 2702,
2453      2702,  609, 1015, 1015, 1015, 1015, 2702, 2702, 1015, 1015,
2454       617,  617,  617, 2702, 2702, 2702,  617, 1031, 1031, 1031,
2455      1031, 2702, 2702, 1031, 1031,  629,  629,  629,  629, 2702,
2456       629, 2702,  629, 1039, 1039, 1039, 1039, 2702, 2702, 1039,
2457      1039,  635,  635,  635,  635, 2702,  635, 2702,  635,  649,
2458
2459       649,  649,  649, 2702,  649, 2702,  649, 1064, 1064, 1064,
2460      1064, 2702, 2702, 1064, 1064, 1072, 1072, 1072, 1072, 2702,
2461      2702, 1072, 1072, 1080, 1080, 1080, 1080, 2702, 2702, 1080,
2462      1080, 1086, 1086, 1086, 1086, 2702, 2702, 1086, 1086,  670,
2463       670,  670, 2702, 2702, 2702,  670,  679,  679,  679, 2702,
2464      2702, 2702,  679, 1124, 1124, 1124, 1124, 2702, 2702, 1124,
2465      1124,  695,  695,  695, 2702, 2702, 2702,  695,  705,  705,
2466       705, 2702, 2702, 2702,  705, 1147, 1147, 1147, 1147, 2702,
2467      2702, 1147, 1147,  710,  710,  710, 2702, 2702, 2702,  710,
2468       718,  718,  718, 2702, 2702, 2702,  718, 1167, 1167, 1167,
2469
2470      1167, 2702, 2702, 1167, 1167,  725,  725,  725, 2702, 2702,
2471      2702,  725, 1179, 1179, 1179, 1179, 2702, 2702, 1179, 1179,
2472       732,  732,  732, 2702, 2702, 2702,  732, 1187, 1187, 1187,
2473      1187, 2702, 2702, 1187, 1187, 1197, 1197, 1197, 1197, 2702,
2474      2702, 1197, 1197,  743,  743,  743, 2702, 2702, 2702,  743,
2475      1205, 1205, 1205, 1205, 2702, 2702, 1205, 1205, 1211, 1211,
2476      1211, 1211, 2702, 2702, 1211, 1211, 1218, 1218, 1218, 1218,
2477      2702, 2702, 1218, 1218,  959,  959,  959,  959,  959,  959,
2478       959,  959,  959, 1400, 1400, 1400, 1400, 1400, 1400, 1400,
2479      1400, 1400,  974,  974,  974,  974, 2702, 2702,  974,  974,
2480
2481      1005, 1005, 1005, 1005, 2702, 2702, 1005, 1005,  609,  609,
2482       609, 2702, 2702, 2702,  609,  617,  617,  617, 2702, 2702,
2483      2702,  617, 1031, 1031, 1031, 1031, 2702, 2702, 1031, 1031,
2484      1039, 1039, 1039, 1039, 2702, 2702, 1039, 1039, 1064, 1064,
2485      1064, 1064, 2702, 2702, 1064, 1064, 1072, 1072, 1072, 1072,
2486      2702, 2702, 1072, 1072, 1086, 1086, 1086, 1086, 2702, 2702,
2487      1086, 1086,  670,  670,  670, 2702, 2702, 2702,  670,  679,
2488       679,  679, 2702, 2702, 2702,  679, 1124, 1124, 1124, 1124,
2489      2702, 2702, 1124, 1124,  695,  695,  695, 2702, 2702, 2702,
2490       695,  705,  705,  705, 2702, 2702, 2702,  705, 1147, 1147,
2491
2492      1147, 1147, 2702, 2702, 1147, 1147,  710,  710,  710, 2702,
2493      2702, 2702,  710,  718,  718,  718, 2702, 2702, 2702,  718,
2494       725,  725,  725, 2702, 2702, 2702,  725, 1179, 1179, 1179,
2495      1179, 2702, 2702, 1179, 1179,  732,  732,  732, 2702, 2702,
2496      2702,  732, 1187, 1187, 1187, 1187, 2702, 2702, 1187, 1187,
2497      1197, 1197, 1197, 1197, 2702, 2702, 1197, 1197,  743,  743,
2498       743,  743, 2702,  743, 2702,  743, 1205, 1205, 1205, 1205,
2499      2702, 2702, 1205, 1205, 1211, 1211, 1211, 1211, 2702, 2702,
2500      1211, 1211, 1218, 1218, 1218, 1218, 2702, 2702, 1218, 1218,
2501       959,  959,  959,  959,  959,  959,  959,  959,  959, 1400,
2502
2503      1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400,  974,  974,
2504       974,  974, 2702, 2702,  974,  974, 1005, 1005, 1005, 1005,
2505      2702, 2702, 1005, 1005,  609,  609,  609, 2702, 2702, 2702,
2506       609,  617,  617,  617,  617, 2702,  617, 2702,  617, 2370,
2507      2370, 2370, 2370, 2370, 2370, 2370, 2370, 2370, 2371, 2371,
2508      2371, 2371, 2371, 2371, 2371, 2371, 2371, 2414, 2414, 2414,
2509      2414, 2414, 2414, 2414, 2414, 2414, 2417, 2417, 2417, 2417,
2510      2417, 2417, 2417, 2417, 2417, 2445, 2445, 2445, 2445, 2445,
2511      2445, 2445, 2445, 2445, 2447, 2447, 2447, 2447, 2447, 2447,
2512      2447, 2447, 2447,  227, 2702, 2702, 2702, 2702, 2702, 2702,
2513
2514      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
2515      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
2516      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
2517      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
2518      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
2519      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
2520      2702, 2702, 2702, 2702, 2702, 2702
2521     } ;
2522
2523 static yyconst flex_int16_t yy_chk[9767] =
2524     {   0,
2525         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2526         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2527         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2528         8,    8,    8,  232,   11,   13,   13,   12,   14,   14,
2529        13,   13,  356,   14,   14,  233,    8,   17,   17,  232,
2530        13,   15,   15,   14,   15,  236,   15,   16,   16,  270,
2531        16,  233,   16,   18,   18,  270,   15,   19,   19,   19,
2532       341,  236,   16,   20,   20,   20,   23,   23,   23,   24,
2533        24,   24, 1445,   19,   25,   25,   25,  334, 1449,   20,
2534       335,   17,   23,  356,  334,   24,  230,  230,  230,  335,
2535
2536        25,  231,  231,  231,  235,  235,  235,   18,   21,   21,
2537        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2538        21,   21,   21,  341,   21,   21,   21,   21,   21,   26,
2539        26,   26,   27,   27,   27,   28,   28,   28,  265,   29,
2540        29,   29,   30,   30,   30,   26,  338, 1453,   27,  254,
2541       259,   28,  265,   21,   21,   29,  338,  275,   30,   31,
2542        31,   31,  256,  256,  256,  254,  259,  263,  263,  263,
2543       272,  272,  272,  275, 1456,   31,   21,   22,   22,   22,
2544        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2545        22,   22,  368,   22,   22,   22,   22,   22,   32,   32,
2546
2547        32,   33,   33,   33,   34,   34,   34,  254,   35,   35,
2548        35,   36,   36,   36,   32,  266,  343,   33,  343, 1463,
2549        34,  406,   22,   22,   35,  266,  267,   36,   37,   37,
2550        37,   38,   38,   38,   39,   39,   39,   40,   40,   40,
2551        41,   41,   41,  368,   37,   22,  418,   38,  287,  418,
2552        39,  337,  298,   40,  266,  267,   41,   42,   42,   42,
2553       266,  279,  279,  279,  287,  268,  266,  267,  298,  267,
2554       266,  267,  406,   42,   43,   43,   43,   43,   43,   43,
2555        43,   43,   43,   43,   43,   43,   43,   43,   43,  337,
2556        43,   43,   43,   43,   43,   45,   45,   45,   46,   46,
2557
2558        46,   47,   47,   47,  268,   48,   48,   48,   49,   49,
2559        49,   45,  304,  280,   46, 1464,  268,   47,  268,   43,
2560        43,   48,  404,  280,   49,  490,  304,   43,   44,   44,
2561        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2562        44,   44,   44, 1465,   44,   44,   44,   44,   44,   50,
2563        50,   50,   51,   51,   51,   52,   52,   52,  280,  302,
2564       414,   55,   55,  302,  280,   50,   55,  302,   51,  339,
2565       404,   52,  490,   44,   44,  464,   55,  284,  284,  284,
2566       414,   44,   53,   53,   53,   53,   53,   53,   53,   53,
2567        53,   53,   53,   53,   53,   53,   53,  339,   53,   53,
2568
2569        53,   53,   53, 1469, 1472,   55,   59,   59,   59,   60,
2570        60,   60,  339,   61,   61,   61,   56,   56,   62,   62,
2571        62,   56,   59,  292,  419,   60,  464,   53,   53,   61,
2572       292,   56,  589,  307,   62,   53,  589,  419,   53,  292,
2573       295,  295,  295,  307,   53,   54,   54,   54,   54,   54,
2574        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2575        56,   54,   54,   54,   54,   54,   63,   63,   63,   64,
2576        64,   64,   65,   65,   65,  405,   66,   66,   66,   69,
2577        69,   69,   63,  314,  307,   64,  321,  326,   65,  348,
2578        54,   54,   66,  321,  572,   69,  677,  572,   54,  314,
2579
2580       677,   54,  321,  326,  246,  348, 1487,   54,   57,   57,
2581        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2582        57,   57,   57,  405,   57,   57,   57,   57,   57,   70,
2583        70,   70,   73,   73,   73,   74,   74,   74,  529,   75,
2584        75,   75,   76,   76,   76,   70,  246,  361,   73,  373,
2585       379,   74,  246,   57,   57,   75,  246,  379,   76, 1488,
2586       460,  246,   57,  361,   57,  373,  379,   57,  306,  306,
2587       306,  460,   57,   57,   58,   58,   58,   58,   58,   58,
2588        58,   58,   58,   58,   58,   58,   58,   58,   58,  529,
2589        58,   58,   58,   58,   58,   77,   77,   77,   78,   78,
2590
2591        78,   79,   79,   79, 1496,   80,   80,   80,   81,   81,
2592        81,   77, 1399,  384,   78,  390,  395,   79,  527,   58,
2593        58,   80,  390, 1499,   81,  311,  311,  311,   58,  384,
2594        58,  390,  395,   58,  320,  320,  320, 1399,   58,   58,
2595        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2596        67,   67,   67,   67,   67,  527,   67,   67,   67,   67,
2597        67,   82,   82,   82,   83,   83,   83,   84,   84,   84,
2598       420,   85,   85,   85,   86,   86,   86,   82, 1500, 1504,
2599        83,  420,  420,   84,  472,   67,   67,   85,  411,  423,
2600        86,  472,   67,  323,  323,  323,  423,   67,  331,  331,
2601
2602       331,  345,  345,  345,  411,  423,   67,   68,   68,   68,
2603        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
2604        68,   68,  563,   68,   68,   68,   68,   68,   87,   87,
2605        87,   88,   88,   88,   89,   89,   89,  563,   90,   90,
2606        90,   91,   91,   91,   87,  585,  594,   88,  585,  594,
2607        89,  486,   68,   68,   90,  428,  439,   91,  486,   68,
2608       354,  354,  354,  439,   68,  358,  358,  358,  366,  366,
2609       366,  428,  439,   68,   71,   71,   71,   71,   71,   71,
2610        71,   71,   71,   71,   71,   71,   71,   71,   71, 1511,
2611        71,   71,   71,   71,   71,   92,   92,   92,   93,   93,
2612
2613        93,   94,   94,   94,  990,   95,   95,   95,   96,   96,
2614        96,   92,  444,  455,   93,  597,  990,   94,  597,   71,
2615        71,   95,  514, 1512,   96,  370,  370,  370,  444,  455,
2616        71,  378,  378,  378,  381,  381,  381, 1513,   71,   72,
2617        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2618        72,   72,   72,   72,  550,   72,   72,   72,   72,   72,
2619        97,   97,   97,   98,   98,   98,   99,   99,   99,  514,
2620       100,  100,  100,  101,  101,  101,   97,  469,  482,   98,
2621       601, 1514,   99,  601,   72,   72,  100, 1517,  495,  101,
2622       102,  102,  102,  469,  482,   72,  389,  389,  389,  392,
2623
2624       392,  392, 1229,   72,  495,  550,  102,  103,  103,  103,
2625       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2626       103,  103, 1229,  103,  103,  103,  103,  103,  105,  105,
2627       105,  106,  106,  106,  107,  107,  107, 1521,  108,  108,
2628       108,  403,  403,  403,  105,  506,  519,  106,  450,  501,
2629       107, 1524,  103,  103,  108,  450,  501,  103,  408,  408,
2630       408,  506,  519,  103,  450,  501,  103,  104,  104,  104,
2631       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2632       104,  104, 1526,  104,  104,  104,  104,  104,  109,  109,
2633       109,  110,  110,  110,  111,  111,  111, 1528,  112,  112,
2634
2635       112,  422,  422,  422,  109,  528,  534,  110,  591,  539,
2636       111,  962,  104,  104,  112,  962,  539,  104,  425,  425,
2637       425,  591,  534,  104,  475,  539,  104,  113,  113,  113,
2638       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2639       113,  113,  528,  113,  113,  113,  113,  113,  115,  115,
2640       115,  116,  116,  116,  117,  117,  117, 1001,  118,  118,
2641       118,  119,  119,  119,  115,  544,  555,  116, 1529, 1001,
2642       117,  475,  113,  113,  118,  475, 1530,  119,  438,  438,
2643       438,  544,  555,  113,  441,  441,  441,  449,  449,  449,
2644       452,  452,  452,  113,  114,  114,  114,  114,  114,  114,
2645
2646       114,  114,  114,  114,  114,  114,  114,  114,  114, 1533,
2647       114,  114,  114,  114,  114,  120,  120,  120,  121,  121,
2648       121,  122,  122,  122, 1535,  125,  125,  125,  126,  126,
2649       126,  120,  672,  765,  121,  672,  590,  122,  896,  114,
2650       114,  125,  590,  896,  126,  462,  462,  462,  590,  765,
2651       114,  466,  466,  466,  474,  474,  474,  479,  479,  479,
2652       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2653       123,  123,  123,  123,  123,  123, 1537,  123,  123,  123,
2654       123,  123,  129,  129,  129,  130,  130,  130,  133,  133,
2655       133, 1034,  134,  134,  134,  135,  135,  135,  129, 1542,
2656
2657      1547,  130,  595, 1034,  133, 1551,  123,  123,  134, 1552,
2658      1554,  135,  488,  488,  488,  595,  613,  123,  492,  492,
2659       492,  123,  124,  124,  124,  124,  124,  124,  124,  124,
2660       124,  124,  124,  124,  124,  124,  124, 1566,  124,  124,
2661       124,  124,  124,  136,  136,  136,  137,  137,  137,  138,
2662       138,  138,  613,  139,  139,  139,  140,  140,  140,  136,
2663      1562, 1569,  137, 1570,  599,  138, 1571,  124,  124,  139,
2664       599, 1572,  140,  500,  500,  500,  599, 1562,  124,  503,
2665       503,  503,  124,  127,  127,  127,  127,  127,  127,  127,
2666       127,  127,  127,  127,  127,  127,  127,  127, 1564,  127,
2667
2668       127,  127,  127,  127,  143,  143,  143,  144,  144,  144,
2669       147,  147,  147, 1574,  148,  148,  148,  151,  151,  151,
2670       143, 1575, 1577,  144, 1563, 1578,  147, 1579,  127,  127,
2671       148, 1564, 1583,  151,  512,  512,  512,  516,  516,  516,
2672       526,  526,  526,  127,  531,  531,  531, 1585, 1588,  127,
2673       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
2674       128,  128,  128,  128,  128, 1563,  128,  128,  128,  128,
2675       128,  152,  152,  152,  155,  155,  155,  156,  156,  156,
2676      1589,  157,  157,  157,  158,  158,  158,  152, 1590, 1592,
2677       155, 1594, 1595,  156, 1597,  128,  128,  157, 1599, 1602,
2678
2679       158,  538,  538,  538,  541,  541,  541,  548,  548,  548,
2680       128,  552,  552,  552, 1603, 1605,  128,  131,  131,  131,
2681       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2682       131,  131, 1606,  131,  131,  131,  131,  131,  159,  159,
2683       159,  160,  160,  160,  161,  161,  161, 1604,  162,  162,
2684       162,  560,  560,  560,  159, 1604, 1607,  160,  643,  561,
2685       161,  646,  131,  131,  162,  131,  561,  131,  562,  562,
2686       562,  643, 1608,  131,  646,  561,  571,  571,  571,  131,
2687      1608, 1609,  131,  132,  132,  132,  132,  132,  132,  132,
2688       132,  132,  132,  132,  132,  132,  132,  132, 1615,  132,
2689
2690       132,  132,  132,  132,  165,  165,  165,  166,  166,  166,
2691       167,  167,  167,  602,  168,  168,  168, 1616, 1619,  602,
2692       165, 1632, 1633,  166,  647,  602,  167,  879,  132,  132,
2693       168,  132,  603,  132,  571,  627,  879,  647,  603,  132,
2694      1638,  627, 1639,  879,  603,  132, 1640,  627,  132,  141,
2695       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2696       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2697       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2698       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2699       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2700
2701       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2702       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2703       141,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2704       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2705       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2706       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2707       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2708       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2709       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
2710       145,  145,  145,  149,  149,  149,  149,  149,  149,  149,
2711
2712       149,  149,  149,  149,  149,  149,  149,  149, 1644,  149,
2713       149,  149,  149,  149,  169,  169,  169,  170,  170,  170,
2714       171,  171,  171, 1645,  172,  172,  172,  611,  611,  611,
2715       169, 1651, 1658,  170, 1659, 1660,  171, 1664,  149,  149,
2716       172, 1670, 1674,  149,  611,  977,  977,  977, 1677,  149,
2717       150,  150,  150,  150,  150,  150,  150,  150,  150,  150,
2718       150,  150,  150,  150,  150, 1679,  150,  150,  150,  150,
2719       150,  175,  175,  175,  176,  176,  176,  177,  177,  177,
2720      1681,  178,  178,  178,  619,  619,  619,  175, 1458, 1683,
2721       176, 1684, 1685,  177, 1458,  150,  150,  178, 1458, 1688,
2722
2723       150,  619, 1458,  780,  780,  780,  150,  153,  153,  153,
2724       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2725       153,  153, 1690,  153,  153,  153,  153,  153,  179,  179,
2726       179,  180,  180,  180,  181,  181,  181, 1695,  182,  182,
2727       182,  185,  185,  185,  179, 1697, 1704,  180, 1705, 1706,
2728       181, 1708,  153,  153,  182, 1719,  153,  185,  768,  768,
2729       768, 1719,  768,  153, 1722,  153,  780,  799,  799,  799,
2730      1721, 1727,  153,  154,  154,  154,  154,  154,  154,  154,
2731       154,  154,  154,  154,  154,  154,  154,  154, 1728,  154,
2732       154,  154,  154,  154,  186,  186,  186,  189,  189,  189,
2733
2734       190,  190,  190, 1732,  191,  191,  191,  192,  192,  192,
2735       186, 1733, 1734,  189, 1739, 1721,  190, 1745,  154,  154,
2736       191, 1747,  154,  192,  838,  838,  838, 1748, 1751,  154,
2737       799,  154, 1754,  844,  844,  844, 1758, 1759,  154,  163,
2738       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
2739       163,  163,  163,  163, 1760,  163,  163,  163,  163,  163,
2740       193,  193,  193,  194,  194,  194,  195,  195,  195, 1761,
2741       196,  196,  196,  199,  199,  199,  193, 1762, 1763,  194,
2742      1764, 1765,  195, 1766,  163,  163,  196,  838, 1767,  199,
2743       163,  810,  810,  810, 1772,  810,  844, 1788,  810,  997,
2744
2745       997,  997, 1789, 1792,  163,  164,  164,  164,  164,  164,
2746       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2747      1793,  164,  164,  164,  164,  164,  200,  200,  200,  201,
2748       201,  201,  202,  202,  202, 1790,  203,  203,  203,  204,
2749       204,  204,  200, 1790, 1794,  201, 1791, 1798,  202, 1804,
2750       164,  164,  203, 1805, 1791,  204,  164,  818,  818,  818,
2751      1806,  818, 1811, 1815,  818, 1243, 1243, 1243, 1816, 1817,
2752       164,  173,  173,  173,  173,  173,  173,  173,  173,  173,
2753       173,  173,  173,  173,  173,  173, 1819,  173,  173,  173,
2754       173,  173,  205,  205,  205,  206,  206,  206,  209,  209,
2755
2756       209, 1720,  210,  210,  210,  213,  213,  213,  205, 1459,
2757      1822,  206, 1823, 1826,  209, 1459,  173,  173,  210, 1459,
2758      1827,  213,  173, 1459, 1830,  173,  834,  834,  834, 1837,
2759       834, 1839, 1720,  834, 1852, 1857,  173,  174,  174,  174,
2760       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
2761       174,  174, 1865,  174,  174,  174,  174,  174,  214,  214,
2762       214,  215,  215,  215,  216,  216,  216, 1824,  217,  217,
2763       217,  218,  218,  218,  214, 1824, 1856,  215, 1825, 1873,
2764       216, 1857,  174,  174,  217, 1874, 1825,  218,  174, 1878,
2765      1880,  174,  849,  849,  849, 1892,  849, 1893, 1894,  849,
2766
2767      1895, 1896,  174,  183,  183,  183,  183,  183,  183,  183,
2768       183,  183,  183,  183,  183,  183,  183,  183, 1856,  183,
2769       183,  183,  183,  183,  219,  219,  219,  220,  220,  220,
2770       223,  223,  223, 1897,  224,  224,  224,  332, 1898, 1899,
2771       219,  340, 1900,  220, 1901,  333,  223,  332,  183,  183,
2772       224, 1248, 1248, 1248,  183,  333, 1245, 1245, 1245,  183,
2773       184,  184,  184,  184,  184,  184,  184,  184,  184,  184,
2774       184,  184,  184,  184,  184,  332,  184,  184,  184,  184,
2775       184,  332, 1907,  333,  332,  340,  340, 1909,  340, 1916,
2776       332,  332, 1917, 1918,  340,  340,  636,  636,  636, 1919,
2777
2778       333, 1920, 1245, 1921, 1922,  184,  184, 1924,  854,  854,
2779       854,  184,  854,  636, 1925,  854,  184,  187,  187,  187,
2780       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
2781       187,  187, 1930,  187,  187,  187,  187,  187,  651,  651,
2782       651,  656,  656,  656,  661,  661,  661,  673,  673,  673,
2783       682,  682,  682, 1931, 1933,  651, 1934, 1935,  656, 1936,
2784      1943,  661,  187,  187,  673, 1944, 1945,  682,  187, 1946,
2785      1947,  187,  859,  859,  859, 1948,  859, 1949, 1950,  859,
2786      1952, 1972,  187,  188,  188,  188,  188,  188,  188,  188,
2787       188,  188,  188,  188,  188,  188,  188,  188, 1968,  188,
2788
2789       188,  188,  188,  188,  684,  684,  684,  699,  699,  699,
2790       707,  707,  707,  712,  712,  712,  734,  734,  734, 1976,
2791      1977,  684, 1978, 1981,  699, 1985, 1986,  707,  188,  188,
2792       712, 1987, 1967,  734,  188, 1968, 1988,  188,  871,  871,
2793       871, 1989,  871, 1990, 1991,  871, 1992, 1993,  188,  197,
2794       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
2795       197,  197,  197,  197, 1967,  197,  197,  197,  197,  197,
2796       756,  756,  756,  760,  760,  760, 1994, 1996,  778,  778,
2797       778,  779,  779,  779,  809,  809,  809,  756, 1997, 2002,
2798       760,  806,  806,  806,  197,  197,  778, 2003, 2004,  779,
2799
2800      2006,  809,  197, 2010,  197, 2011,  197, 2014, 2018,  806,
2801      1251, 1251, 1251, 2019,  197,  198,  198,  198,  198,  198,
2802       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
2803      2021,  198,  198,  198,  198,  198, 2024, 2025,  779,  813,
2804       813,  813, 2026, 2027,  807,  807,  807,  814,  814,  814,
2805       817,  817,  817, 2029,  819,  819,  819,  813, 2032, 2034,
2806       198,  198,  807, 2051, 2056,  814, 2057,  817,  198, 2058,
2807       198,  819,  198, 1260, 1260, 1260, 1285, 1285, 1285, 2059,
2808       198,  207,  207,  207,  207,  207,  207,  207,  207,  207,
2809       207,  207,  207,  207,  207,  207, 2053,  207,  207,  207,
2810
2811       207,  207, 2051,  807,  821,  821,  821,  825,  825,  825,
2812       814,  831,  831,  831,  832,  832,  832, 2065,  826,  826,
2813       826,  821,  833,  833,  833,  825,  207,  207, 2066,  831,
2814      2067, 2068,  832,  881,  881,  881,  826,  881, 2053,  833,
2815       881,  884,  884,  884, 2069,  884, 2070, 2071,  884,  207,
2816       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2817       208,  208,  208,  208,  208,  826,  208,  208,  208,  208,
2818       208,  836,  836,  836,  837,  837,  837,  832, 2072, 2052,
2819       848,  848,  848,  851,  851,  851,  852,  852,  852,  836,
2820      2073, 2074,  837, 2076, 2077,  208,  208,  848,  853,  853,
2821
2822       853,  851, 2081, 2087,  852,  899,  899,  899, 2088,  899,
2823      2092,  837,  899, 2095, 2103,  853, 2052, 2104,  208,  211,
2824       211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
2825       211,  211,  211,  211, 2105,  211,  211,  211,  211,  211,
2826       856,  856,  856,  857,  857,  857,  858,  858,  858, 2062,
2827      2113,  852,  861,  861,  861,  862,  862,  862,  856, 2062,
2828      2113,  857, 2062,  858,  211,  211, 2113,  907,  907,  907,
2829       861,  907, 2129,  862,  907,  211,  212,  212,  212,  212,
2830       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
2831       212, 2125,  212,  212,  212,  212,  212, 2130,  865,  865,
2832
2833       865,  866,  866,  866, 2131,  874,  874,  874,  857,  870,
2834       870,  870,  875,  875,  875,  862,  865, 2134, 2135,  866,
2835      2125,  212,  212,  874, 2137, 2138,  870, 1296, 1296, 1296,
2836       875, 2141,  212,  221,  221,  221,  221,  221,  221,  221,
2837       221,  221,  221,  221,  221,  221,  221,  221, 2142,  221,
2838       221,  221,  221,  221,  880,  880,  880,  883,  883,  883,
2839       885,  885,  885, 2063, 2143,  866,  893,  893,  893, 2144,
2840      2136,  880,  875, 2063,  883, 2114, 2063,  885,  221,  221,
2841       894,  894,  894, 2136,  893, 2114,  912,  912,  912,  221,
2842       912, 2114, 2146,  912, 2147, 1297, 1297, 1297,  894, 2148,
2843
2844      2149,  221,  222,  222,  222,  222,  222,  222,  222,  222,
2845       222,  222,  222,  222,  222,  222,  222, 2139,  222,  222,
2846       222,  222,  222,  898,  898,  898,  900,  900,  900, 2153,
2847      2139,  903,  903,  903,  904,  904,  904,  894, 2161, 2162,
2848       898, 1297, 2126,  900,  906,  906,  906,  222,  222,  903,
2849      2163, 2167,  904, 2175,  908,  908,  908, 2177,  222, 2185,
2850      2186,  906, 2187, 2188,  909,  909,  909,  911,  911,  911,
2851       222,  264,  908,  916,  916,  916, 2189, 2190,  264,  917,
2852       917,  917,  909, 2126,  911,  904, 2127,  264,  264, 2200,
2853      2201,  916,  918,  918,  918, 2196, 2205,  917, 1414, 1414,
2854
2855      1414,  919,  919,  919,  920,  920,  920, 2195, 2206,  918,
2856       921,  921,  921, 2207, 2208,  264,  264,  264,  919, 2209,
2857      2210,  920,  264,  264,  909,  264,  264, 2127,  921,  264,
2858      2196,  264,  264,  264,  917,  922,  922,  922,  924,  924,
2859       924,  925,  925,  925,  926,  926,  926, 2211,  927,  927,
2860       927, 2212, 2214,  922, 2195,  924, 2215, 2216,  925, 2217,
2861      2218,  926,  920, 2219, 2220,  927,  928,  928,  928, 2221,
2862       929,  929,  929,  931,  931,  931,  932,  932,  932, 2228,
2863       932, 2232, 2233,  932,  928,  933,  933,  933,  929, 2234,
2864       931,  925,  934,  934,  934,  922,  935,  935,  935,  936,
2865
2866       936,  936, 2235,  933, 2242,  925,  927,  929, 2245, 2252,
2867       934, 2253, 2254,  935, 2255, 2256,  936,  937,  937,  937,
2868       938,  938,  938,  939,  939,  939,  944,  944,  944, 2247,
2869       948,  948,  948, 2248,  937,  945,  945,  945,  938, 2247,
2870      2257,  939, 2266, 2248,  944, 2267, 2268,  934,  948,  936,
2871       949,  949,  949,  945,  950,  950,  950,  951,  951,  951,
2872      2250,  951, 2269,  936,  951,  952,  952,  952,  949, 2259,
2873      2250,  950,  953,  953,  953,  954,  954,  954,  955,  955,
2874       955, 2251,  955,  952, 2270,  955,  957,  957,  957, 2271,
2875       953, 2251,  954,  939,  958,  958,  958, 2272,  945,  973,
2876
2877       973,  973, 2273, 2259,  957,  974,  974,  974,  976,  976,
2878       976, 2276,  958,  949, 1003, 1003, 1003,  973, 1004, 1004,
2879      1004, 2277, 2279,  974, 2280, 2281,  976, 1005, 1005, 1005,
2880      2283, 1003,  953, 1007, 1007, 1007, 1004, 1008, 1008, 1008,
2881      1009, 1009, 1009, 2290, 1009, 1005, 2291, 1009, 1012, 1012,
2882      1012, 1007, 2292, 2294, 1008,  976, 2300,  958, 1014, 1014,
2883      1014, 1015, 1015, 1015, 2301, 1012, 1017, 1017, 1017, 2302,
2884      1019, 1019, 1019, 2303, 1019, 2304, 1014, 1019, 2305, 1015,
2885      2306, 2307, 1007, 2308, 1017, 1022, 1022, 1022, 1023, 1023,
2886      1023, 2309, 1023, 2311, 2312, 1023, 2324, 1024, 1024, 1024,
2887
2888      2325, 2326, 1022, 1025, 1025, 1025, 2327, 2316, 1012, 1028,
2889      1028, 1028, 2328, 1017, 1024, 1026, 1026, 1026, 2329, 1026,
2890      1025, 2330, 1026, 1030, 1030, 1030, 1028, 1031, 1031, 1031,
2891      1033, 1033, 1033, 1036, 1036, 1036, 1038, 1038, 1038, 2331,
2892      2335, 1030, 1039, 1039, 1039, 1031, 2336, 2337, 1033, 2316,
2893      1036, 1041, 1041, 1041, 1038, 1042, 1042, 1042, 2338, 1042,
2894      1039, 2339, 1042, 1046, 1046, 1046, 1047, 1047, 1047, 1041,
2895      1049, 1049, 1049, 1059, 1059, 1059, 2340, 1059, 2344, 2345,
2896      1059, 1046, 2346, 2349, 1047, 1063, 1063, 1063, 1049, 1033,
2897      1064, 1064, 1064, 1066, 1066, 1066, 2354, 2355, 1041, 2356,
2898
2899      1067, 1067, 1067, 1063, 1067, 2357, 2358, 1067, 1064, 2359,
2900      2360, 1066, 1071, 1071, 1071, 1072, 1072, 1072, 1074, 1074,
2901      1074, 1075, 1075, 1075, 2361, 1075, 2362, 2363, 1075, 2364,
2902      1071, 2365, 2366, 1072, 2372, 2375, 1074, 1078, 1078, 1078,
2903      1079, 1079, 1079, 1080, 1080, 1080, 1082, 1082, 1082, 1083,
2904      1083, 1083, 2369, 1066, 1078, 1084, 1084, 1084, 1079, 2376,
2905      2379, 1080, 2368, 2369, 1082, 2381, 1083, 1085, 1085, 1085,
2906      2382, 2384, 1084, 1086, 1086, 1086, 2368, 2366, 1074, 1088,
2907      1088, 1088, 2385, 1084, 2388, 1085, 1091, 1091, 1091, 2389,
2908      2390, 1086, 1092, 1092, 1092, 2394, 1092, 1088, 2392, 1092,
2909
2910      1097, 1097, 1097, 1091, 1098, 1098, 1098, 1100, 1100, 1100,
2911      2392, 2393, 1082, 1107, 1107, 1107, 2402, 1107, 1097, 2404,
2912      1107, 2406, 1098, 2393, 2408, 1100, 1110, 1110, 1110, 1111,
2913      1111, 1111, 2416, 1111, 2414, 2418, 1111, 1114, 1114, 1114,
2914      1123, 1123, 1123, 1110, 1088, 1115, 1115, 1115, 2414, 1115,
2915      2413, 2420, 1115, 2399, 1114, 1124, 1124, 1124, 1123, 1126,
2916      1126, 1126, 1131, 1131, 1131, 2399, 1131, 2415, 2415, 1131,
2917      2417, 1100, 2400, 1124, 1134, 1134, 1134, 1126, 1135, 1135,
2918      1135, 2417, 1135, 2421, 2400, 1135, 1138, 1138, 1138, 2422,
2919      2413, 1134, 1139, 1139, 1139, 1141, 1141, 1141, 1143, 1143,
2920
2921      1143, 2423, 1143, 2432, 1138, 1143, 1146, 1146, 1146, 2434,
2922      1139, 2437, 2431, 1141, 1147, 1147, 1147, 1149, 1149, 1149,
2923      1157, 1157, 1157, 2439, 1146, 1126, 1151, 1151, 1151, 2445,
2924      1151, 2431, 1147, 1151, 2446, 1149, 2447, 2433, 1157, 1158,
2925      1158, 1158, 1160, 1160, 1160, 2449, 1141, 1161, 1161, 1161,
2926      2450, 1162, 1162, 1162, 2451, 1162, 2433, 1158, 1162, 2452,
2927      1160, 1163, 1163, 1163, 1161, 1164, 1164, 1164, 2459, 1164,
2928      2460, 2436, 1164, 1166, 1166, 1166, 2438, 2461, 1163, 1167,
2929      1167, 1167, 2462, 1149, 1169, 1169, 1169, 1171, 1171, 1171,
2930      2436, 1166, 1172, 1172, 1172, 2438, 1172, 1167, 2463, 1172,
2931
2932      2464, 1160, 1169, 2467, 1171, 1175, 1175, 1175, 1176, 1176,
2933      1176, 2468, 1176, 2469, 2470, 1176, 1178, 1178, 1178, 1179,
2934      1179, 1179, 1175, 1181, 1181, 1181, 1183, 1183, 1183, 2471,
2935      1183, 2472, 2474, 1183, 1178, 2476, 2478, 1179, 1186, 1186,
2936      1186, 1181, 1187, 1187, 1187, 1189, 1189, 1189, 2488, 2489,
2937      1169, 1190, 1190, 1190, 2490, 2491, 1186, 1191, 1191, 1191,
2938      1187, 1191, 2486, 1189, 1191, 1194, 1194, 1194, 1190, 1195,
2939      1195, 1195, 2492, 1195, 2486, 2493, 1195, 1196, 1196, 1196,
2940      2497, 2487, 1194, 1197, 1197, 1197, 1181, 1199, 1199, 1199,
2941      1201, 1201, 1201, 2487, 2498, 1196, 1204, 1204, 1204, 2499,
2942
2943      2500, 1197, 2501, 2502, 1189, 1199, 2505, 1201, 1205, 1205,
2944      1205, 1207, 1207, 1207, 1204, 1210, 1210, 1210, 1211, 1211,
2945      1211, 1213, 1213, 1213, 2506, 2507, 1205, 2508, 2509, 1207,
2946      1214, 1214, 1214, 1210, 1214, 2503, 1211, 1214, 2510, 1213,
2947      1217, 1217, 1217, 1218, 1218, 1218, 2511, 2512, 1199, 1220,
2948      1220, 1220, 1221, 1221, 1221, 2513, 1221, 2514, 1217, 1221,
2949      2503, 1218, 1225, 1225, 1225, 2515, 2516, 1220, 1226, 1226,
2950      1226, 1207, 2517, 2518, 1213, 1228, 1228, 1228, 2519, 2520,
2951      1225, 1230, 1230, 1230, 2521, 2522, 1226, 1237, 1237, 1237,
2952      1263, 1263, 1263, 1228, 1264, 1264, 1264, 2526, 1264, 1230,
2953
2954      1230, 1264, 1265, 1265, 1265, 1237, 2523, 1263, 1220, 1266,
2955      1266, 1266, 1267, 1267, 1267, 2527, 1267, 2528, 2529, 1267,
2956      1265, 1270, 1270, 1270, 2530, 2523, 1266, 1272, 1272, 1272,
2957      2531, 1272, 2532, 2533, 1272, 1228, 1275, 1275, 1275, 1270,
2958      1276, 1276, 1276, 2534, 1276, 2535, 2536, 1276, 1281, 1281,
2959      1281, 2537, 1237, 1275, 1277, 1277, 1277, 2538, 1277, 1265,
2960      2539, 1277, 1282, 1282, 1282, 1281, 1282, 2540, 2541, 1282,
2961      1270, 1284, 1284, 1284, 1287, 1287, 1287, 1288, 1288, 1288,
2962      2543, 1288, 2544, 2542, 1288, 1289, 1289, 1289, 2545, 1284,
2963      2546, 1287, 1290, 1290, 1290, 1292, 1292, 1292, 1303, 1303,
2964
2965      1303, 2547, 1289, 2542, 1304, 1304, 1304, 1306, 1306, 1306,
2966      1290, 2548, 2549, 1292, 2550, 1303, 1307, 1307, 1307, 2551,
2967      2552, 1284, 1304, 2553, 2554, 1306, 2555, 1308, 1308, 1308,
2968      2556, 1308, 2557, 1307, 1308, 1309, 1309, 1309, 1310, 1310,
2969      1310, 1290, 1311, 1311, 1311, 2558, 1311, 2560, 2559, 1311,
2970      1313, 1313, 1313, 1309, 2559, 1310, 1316, 1316, 1316, 1317,
2971      1317, 1317, 2561, 1317, 2562, 2563, 1317, 1304, 1313, 2564,
2972      1306, 2565, 2567, 1316, 1318, 1318, 1318, 2568, 1319, 1319,
2973      1319, 1320, 1320, 1320, 1324, 1324, 1324, 1327, 1327, 1327,
2974      2570, 1318, 2571, 2573, 1309, 1319, 1328, 1328, 1328, 1320,
2975
2976      1328, 1324, 2574, 1328, 1327, 1329, 1329, 1329, 2576, 1329,
2977      1313, 2577, 1329, 1332, 1332, 1332, 1339, 1339, 1339, 1341,
2978      1341, 1341, 2576, 2578, 1319, 1344, 1344, 1344, 2579, 1344,
2979      1332, 2580, 1344, 2582, 1339, 2584, 1341, 1347, 1347, 1347,
2980      1349, 1349, 1349, 1351, 1351, 1351, 1320, 1355, 1355, 1355,
2981      1356, 1356, 1356, 2586, 1347, 1357, 1357, 1357, 1349, 1357,
2982      2588, 1351, 1357, 2590, 1355, 1360, 1360, 1360, 1356, 1360,
2983      2591, 2592, 1360, 1364, 1364, 1364, 1365, 1365, 1365, 2593,
2984      1339, 1366, 1366, 1366, 2594, 1366, 2595, 2596, 1366, 2597,
2985      2599, 1364, 2601, 1355, 1371, 1371, 1371, 2603, 1371, 2604,
2986
2987      2605, 1371, 2606, 1349, 1443, 2631, 1356, 2697, 1351, 1375,
2988      1375, 1375, 1377, 1377, 1377, 2607, 1378, 1378, 1378, 2615,
2989      1378, 2697, 1365, 1378, 1383, 1383, 1383, 1375, 1383, 2616,
2990      1377, 1383, 1386, 1386, 1386, 1388, 1388, 1388, 1364, 1389,
2991      1389, 1389, 2608, 1389, 2619, 2631, 1389, 1392, 1392, 1392,
2992      1386, 2607, 1388, 1394, 1394, 1394, 1395, 1395, 1395, 1396,
2993      1396, 1396, 1398, 1398, 1398, 1392, 2615, 2623, 1377, 1375,
2994      1394, 1397, 1397, 1397, 1395, 2623, 2616, 1396, 2608, 1386,
2995      1398, 1401, 1401, 1401, 1408, 1408, 1408, 2619, 1397, 1416,
2996      1416, 1416, 1418, 1418, 1418, 2632, 1392, 2621, 2617, 1401,
2997
2998      2620, 2621, 1408, 1420, 1420, 1420, 1423, 1423, 1423, 2629,
2999      2618, 1396, 1425, 1425, 1425, 1427, 1427, 1427, 1432, 1432,
3000      1432, 2630, 1395, 1398, 1434, 1434, 1434, 1435, 1435, 1435,
3001      2633, 1435, 1401, 1442, 1435, 2632, 1408, 1438, 1438, 1438,
3002      1439, 1439, 1439, 2620, 1439, 2617, 2629, 1439, 1401, 1444,
3003      1444, 1444, 1446, 1446, 1446, 1438, 1446, 2618, 2630, 1446,
3004      2624, 1427, 1450, 1450, 1450, 2633, 1450, 1444, 2624, 1450,
3005      1434, 1454, 1454, 1454, 2625, 1425, 1455, 1455, 1455, 1457,
3006      1457, 1457, 2625, 1457, 2622, 2626, 1457, 2653, 2622, 1454,
3007      1460, 1460, 1460, 2626, 1461, 1461, 1461, 2654, 1461, 1433,
3008
3009      1444, 1461, 2634, 1438, 1462, 1462, 1462, 1460, 1466, 1466,
3010      1466, 1467, 1467, 1467, 1468, 1468, 1468, 1470, 1470, 1470,
3011      2653, 2639, 1462, 1471, 1471, 1471, 1473, 1473, 1473, 2627,
3012      2654, 1454, 1474, 1474, 1474, 1431, 1474, 2634, 2679, 1474,
3013      1475, 1475, 1475, 1473, 1476, 1476, 1476, 1477, 1477, 1477,
3014      1478, 1478, 1478, 2639, 1478, 1462, 2637, 1478, 1475, 2628,
3015      1430, 1476, 1485, 1485, 1485, 1477, 1481, 1481, 1481, 1482,
3016      1482, 1482, 2635, 1482, 2636, 2627, 1482, 1468, 2679, 1485,
3017      1470, 1486, 1486, 1486, 1481, 2649, 1471, 1475, 1489, 1489,
3018      1489, 2693, 1489, 2637, 1477, 1489, 1492, 1492, 1492, 1486,
3019
3020      1493, 1493, 1493, 2641, 1493, 2628, 2638, 1493, 1494, 1494,
3021      1494, 2642, 2641, 1492, 1495, 1495, 1495, 2635, 1495, 2636,
3022      2642, 1495, 1497, 1497, 1497, 1494, 1498, 1498, 1498, 2640,
3023      2649, 1481, 1501, 1501, 1501, 1502, 1502, 1502, 2693, 1502,
3024      1497, 1429, 1502, 2638, 1486, 1503, 1503, 1503, 1428, 1501,
3025      1505, 1505, 1505, 2650, 1505, 2643, 2644, 1505, 1508, 1508,
3026      1508, 2640, 1503, 1509, 1509, 1509, 1426, 1509, 1424, 2694,
3027      1509, 1510, 1510, 1510, 2645, 1508, 1515, 1515, 1515, 1516,
3028      1516, 1516, 1518, 1518, 1518, 1519, 1519, 1519, 1510, 1519,
3029      2643, 2644, 1519, 1515, 1520, 1520, 1520, 1516, 2650, 1518,
3030
3031      1522, 1522, 1522, 1523, 1523, 1523, 2647, 1523, 2645, 2646,
3032      1523, 1520, 1525, 1525, 1525, 2669, 2694, 1522, 1527, 1527,
3033      1527, 1531, 1531, 1531, 1532, 1532, 1532, 2680, 1532, 2673,
3034      1525, 1532, 1534, 1534, 1534, 2651, 1527, 2673, 1531, 1536,
3035      1536, 1536, 1422, 2646, 1516, 1538, 1538, 1538, 2647, 2669,
3036      1534, 1539, 1539, 1539, 1540, 1540, 1540, 1536, 1541, 1541,
3037      1541, 2652, 1538, 1543, 1543, 1543, 2648, 2680, 1539, 1527,
3038      2651, 1540, 1544, 1544, 1544, 2659, 1541, 1545, 1545, 1545,
3039      1421, 1543, 1546, 1546, 1546, 1553, 1553, 1553, 2655, 1544,
3040      1536, 1548, 1548, 1548, 1545, 1548, 2652, 2655, 1548, 2660,
3041
3042      1546, 2656, 1419, 1553, 1555, 1555, 1555, 2681, 2648, 1543,
3043      2656, 1556, 1556, 1556, 2667, 1556, 2659, 1540, 1556, 2665,
3044      2674, 1555, 1417, 2667, 1541, 1557, 1557, 1557, 2674, 1558,
3045      1558, 1558, 1559, 1559, 1559, 2670, 1553, 1560, 1560, 1560,
3046      2660, 1560, 2681, 1557, 1560, 2657, 1546, 1558, 2665, 1559,
3047      1561, 1561, 1561, 1567, 1567, 1567, 1568, 1568, 1568, 1573,
3048      1573, 1573, 1576, 1576, 1576, 1580, 1580, 1580, 1561, 2670,
3049      1567, 1581, 1581, 1581, 1568, 1582, 1582, 1582, 1584, 1584,
3050      1584, 2661, 2657, 1557, 1558, 1586, 1586, 1586, 1587, 1587,
3051      1587, 1591, 1591, 1591, 1593, 1593, 1593, 1596, 1596, 1596,
3052
3053      1598, 1598, 1598, 1600, 1600, 1600, 1601, 1601, 1601, 1613,
3054      1613, 1613, 1593, 1415, 2658, 1596, 1568, 1598, 1610, 1610,
3055      1610, 1600, 1610, 1601, 2687, 1610, 2661, 1613, 1614, 1614,
3056      1614, 1617, 1617, 1617, 1618, 1618, 1618, 1620, 1620, 1620,
3057      1624, 1624, 1624, 2662, 1593, 1614, 1621, 1621, 1621, 2663,
3058      1621, 2658, 2664, 1621, 1620, 1613, 2687, 2682, 1624, 2668,
3059      2698, 1600, 1625, 1625, 1625, 1626, 1626, 1626, 2668, 1626,
3060      2671, 2698, 1626, 1627, 1627, 1627, 1628, 1628, 1628, 1625,
3061      1629, 1629, 1629, 1630, 1630, 1630, 2663, 1630, 2662, 2664,
3062      1630, 1627, 2682, 1624, 1628, 2666, 1413, 1629, 1631, 1631,
3063
3064      1631, 1634, 1634, 1634, 2689, 1634, 2672, 2675, 1634, 2677,
3065      1637, 1637, 1637, 2689, 1637, 2671, 1631, 1637, 1641, 1641,
3066      1641, 1643, 1643, 1643, 2666, 2678, 1627, 1646, 1646, 1646,
3067      1412, 1646, 2683, 2676, 1646, 2684, 1641, 1649, 1649, 1649,
3068      1650, 1650, 1650, 1411, 1650, 1631, 2677, 1650, 1652, 1652,
3069      1652, 2672, 1652, 2675, 1649, 1652, 1655, 1655, 1655, 1656,
3070      1656, 1656, 2678, 1656, 2688, 2685, 1656, 1657, 1657, 1657,
3071      1661, 1661, 1661, 1655, 1662, 1662, 1662, 2683, 1662, 2676,
3072      2684, 1662, 2691, 1410, 1657, 1409, 1407, 1661, 1663, 1663,
3073      1663, 1665, 1665, 1665, 2686, 1665, 2688, 1406, 1665, 1668,
3074
3075      1668, 1668, 2685, 1669, 1669, 1669, 1663, 1669, 2690, 2692,
3076      1669, 1671, 1671, 1671, 2691, 1671, 1668, 2690, 1671, 1675,
3077      1675, 1675, 1678, 1678, 1678, 1680, 1680, 1680, 1682, 1682,
3078      1682, 2686, 1682, 2695, 1403, 1682, 1400, 1675, 2696, 1663,
3079      1678, 2692, 1680, 1686, 1686, 1686, 1689, 1689, 1689, 1691,
3080      1691, 1691, 1692, 1692, 1692, 1393, 1692, 1391, 1390, 1692,
3081      1387, 1686, 1382, 1381, 1689, 2695, 1691, 1693, 1693, 1693,
3082      2696, 1680, 1694, 1694, 1694, 1376, 1694, 1374, 1370, 1694,
3083      1696, 1696, 1696, 1369, 1693, 1678, 1698, 1698, 1698, 1699,
3084      1699, 1699, 1700, 1700, 1700, 1363, 1700, 1354, 1696, 1700,
3085
3086      1701, 1701, 1701, 1353, 1698, 1352, 1699, 1702, 1702, 1702,
3087      1350, 1702, 1348, 1343, 1702, 1342, 1340, 1701, 1703, 1703,
3088      1703, 1707, 1707, 1707, 1709, 1709, 1709, 1338, 1709, 1337,
3089      1336, 1709, 1712, 1712, 1712, 1698, 1703, 1335, 1334, 1707,
3090      1713, 1713, 1713, 1333, 1326, 1696, 1325, 1714, 1714, 1714,
3091      1712, 1714, 1323, 1322, 1714, 1717, 1717, 1717, 1713, 1723,
3092      1723, 1723, 1724, 1724, 1724, 1321, 1724, 1315, 1314, 1724,
3093      1725, 1725, 1725, 1717, 1312, 1305, 1723, 1726, 1726, 1726,
3094      1302, 1301, 1703, 1712, 1300, 1707, 1299, 1298, 1725, 1729,
3095      1729, 1729, 1295, 1713, 1730, 1730, 1730, 1731, 1731, 1731,
3096
3097      1735, 1735, 1735, 1736, 1736, 1736, 1737, 1737, 1737, 1738,
3098      1738, 1738, 1740, 1740, 1740, 1741, 1741, 1741, 1742, 1742,
3099      1742, 1743, 1743, 1743, 1744, 1744, 1744, 1746, 1746, 1746,
3100      1749, 1749, 1749, 1725, 1752, 1752, 1752, 1753, 1753, 1753,
3101      1294, 1753, 1291, 1286, 1753, 1746, 1283, 1280, 1749, 1271,
3102      1269, 1752, 1755, 1755, 1755, 1738, 1756, 1756, 1756, 1757,
3103      1757, 1757, 1268, 1757, 1262, 1261, 1757, 1768, 1768, 1768,
3104      1755, 1259, 1258, 1756, 1769, 1769, 1769, 1257, 1746, 1770,
3105      1770, 1770, 1256, 1770, 1255, 1768, 1770, 1771, 1771, 1771,
3106      1254, 1769, 1773, 1773, 1773, 1774, 1774, 1774, 1775, 1775,
3107
3108      1775, 1776, 1776, 1776, 1253, 1776, 1252, 1250, 1776, 1777,
3109      1777, 1777, 1781, 1781, 1781, 1775, 1768, 1778, 1778, 1778,
3110      1249, 1778, 1247, 1246, 1778, 1244, 1242, 1777, 1241, 1240,
3111      1781, 1782, 1782, 1782, 1239, 1784, 1784, 1784, 1238, 1784,
3112      1236, 1774, 1784, 1787, 1787, 1787, 1795, 1795, 1795, 1782,
3113      1795, 1235, 1234, 1795, 1233, 1799, 1799, 1799, 1224, 1799,
3114      1777, 1787, 1799, 1781, 1802, 1802, 1802, 1803, 1803, 1803,
3115      1209, 1803, 1208, 1203, 1803, 1807, 1807, 1807, 1202, 1807,
3116      1200, 1802, 1807, 1810, 1810, 1810, 1812, 1812, 1812, 1193,
3117      1812, 1192, 1182, 1812, 1177, 1174, 1787, 1818, 1818, 1818,
3118
3119      1173, 1810, 1820, 1820, 1820, 1821, 1821, 1821, 1170, 1821,
3120      1165, 1156, 1821, 1155, 1154, 1818, 1828, 1828, 1828, 1820,
3121      1831, 1831, 1831, 1150, 1831, 1142, 1137, 1831, 1834, 1834,
3122      1834, 1136, 1834, 1130, 1828, 1834, 1838, 1838, 1838, 1840,
3123      1840, 1840, 1129, 1841, 1841, 1841, 1810, 1841, 1128, 1127,
3124      1841, 1844, 1844, 1844, 1838, 1844, 1122, 1840, 1844, 1847,
3125      1847, 1847, 1848, 1848, 1848, 1849, 1849, 1849, 1850, 1850,
3126      1850, 1851, 1851, 1851, 1853, 1853, 1853, 1847, 1121, 1848,
3127      1120, 1119, 1849, 1118, 1117, 1850, 1116, 1838, 1106, 1851,
3128      1105, 1104, 1853, 1103, 1102, 1847, 1854, 1854, 1854, 1855,
3129
3130      1855, 1855, 1101, 1096, 1840, 1858, 1858, 1858, 1859, 1859,
3131      1859, 1095, 1859, 1090, 1854, 1859, 1849, 1855, 1862, 1862,
3132      1862, 1863, 1863, 1863, 1089, 1070, 1850, 1864, 1864, 1864,
3133      1866, 1866, 1866, 1853, 1062, 1851, 1862, 1867, 1867, 1867,
3134      1868, 1868, 1868, 1869, 1869, 1869, 1870, 1870, 1870, 1871,
3135      1871, 1871, 1872, 1872, 1872, 1875, 1875, 1875, 1876, 1876,
3136      1876, 1877, 1877, 1877, 1879, 1879, 1879, 1882, 1882, 1882,
3137      1883, 1883, 1883, 1058, 1883, 1057, 1862, 1883, 1886, 1886,
3138      1886, 1056, 1879, 1055, 1882, 1887, 1887, 1887, 1054, 1889,
3139      1889, 1889, 1053, 1889, 1052, 1886, 1889, 1902, 1902, 1902,
3140
3141      1903, 1903, 1903, 1887, 1903, 1051, 1050, 1903, 1906, 1906,
3142      1906, 1908, 1908, 1908, 1045, 1902, 1910, 1910, 1910, 1037,
3143      1910, 1035, 1029, 1910, 1913, 1913, 1913, 1914, 1914, 1914,
3144      1915, 1915, 1915, 1923, 1923, 1923, 1027, 1926, 1926, 1926,
3145      1018, 1926, 1913, 1886, 1926, 1914, 1013, 1002, 1915, 1929,
3146      1929, 1929, 1000, 1932, 1932, 1932,  999, 1902, 1937, 1937,
3147      1937, 1939, 1939, 1939,  998,  996, 1929, 1951, 1951, 1951,
3148      1913, 1932,  995, 1940, 1940, 1940, 1937, 1940, 1939,  994,
3149      1940, 1915, 1953, 1953, 1953, 1954, 1954, 1954, 1955, 1955,
3150      1955, 1956, 1956, 1956, 1957, 1957, 1957, 1958, 1958, 1958,
3151
3152      1953, 1958, 1954,  993, 1958,  992, 1955, 1939,  991, 1956,
3153       989, 1957, 1959, 1959, 1959, 1960, 1960, 1960, 1961, 1961,
3154      1961, 1962, 1962, 1962, 1963, 1963, 1963,  988,  987, 1959,
3155       986,  985, 1960, 1969, 1969, 1969, 1961, 1964, 1964, 1964,
3156       984,  983, 1963, 1966, 1966, 1966,  982, 1955, 1971, 1971,
3157      1971, 1956, 1970, 1970, 1970, 1964, 1973, 1973, 1973,  981,
3158       980, 1966, 1974, 1974, 1974,  979, 1960, 1975, 1975, 1975,
3159      1970,  978, 1979, 1979, 1979, 1982, 1982, 1982, 1983, 1983,
3160      1983,  972, 1983,  971,  970, 1983, 1984, 1984, 1984, 1963,
3161      1979,  967, 1982, 1995, 1995, 1995, 1998, 1998, 1998, 1999,
3162
3163      1999, 1999,  966, 1984, 1966, 2001, 2001, 2001, 2008, 2008,
3164      2008, 1995,  965,  963, 1998,  959,  956, 1999, 2009, 2009,
3165      2009,  947,  946, 2001,  943, 2008, 2012, 2012, 2012, 2013,
3166      2013, 2013,  942, 2013,  941,  940, 2013, 2015, 2015, 2015,
3167       930, 1984,  923, 2012, 2016, 2016, 2016, 2020, 2020, 2020,
3168       915,  914, 1995,  913, 2015, 2022, 2022, 2022, 2031, 2031,
3169      2031, 1998, 2016,  910, 2020,  905, 2023, 2023, 2023,  902,
3170      2023,  901, 2022, 2023,  897, 2031, 2033, 2033, 2033, 2035,
3171      2035, 2035, 2037, 2037, 2037, 2038, 2038, 2038,  895, 2038,
3172       892,  891, 2038, 2039, 2039, 2039,  890, 2035,  889, 2037,
3173
3174      2040, 2040, 2040, 2041, 2041, 2041,  888, 2041,  887,  886,
3175      2041, 2039, 2044, 2044, 2044, 2045, 2045, 2045, 2040, 2045,
3176       882,  878, 2045, 2046, 2046, 2046, 2047, 2047, 2047, 2044,
3177      2049, 2049, 2049, 2050, 2050, 2050, 2054, 2054, 2054,  877,
3178      2046, 2060, 2060, 2060, 2047, 2061, 2061, 2061,  876, 2061,
3179       873, 2050, 2061,  872, 2054, 2064, 2064, 2064, 2060, 2075,
3180      2075, 2075, 2078, 2078, 2078,  869, 2040, 2079, 2079, 2079,
3181       868,  867, 2064, 2082, 2082, 2082,  864, 2075,  863,  860,
3182      2078, 2085, 2085, 2085,  855, 2079,  850, 2086, 2086, 2086,
3183      2082, 2086,  847,  846, 2086, 2089, 2089, 2089, 2085, 2089,
3184
3185       845,  843, 2089, 2093, 2093, 2093, 2094, 2094, 2094,  842,
3186      2094,  841,  840, 2094,  839, 2064,  835,  830, 2075,  829,
3187      2093, 2096, 2096, 2096, 2097, 2097, 2097, 2098, 2098, 2098,
3188       828, 2098, 2078,  827, 2098, 2099, 2099, 2099, 2096,  824,
3189       823, 2097, 2100, 2100, 2100,  822, 2100,  820,  816, 2100,
3190       812,  811, 2099, 2108, 2108, 2108, 2109, 2109, 2109,  808,
3191      2109,  805,  804, 2109, 2110, 2110, 2110, 2111, 2111, 2111,
3192      2108, 2112, 2112, 2112,  803, 2112,  802,  801, 2112,  800,
3193       798, 2110,  797,  796, 2111, 2115, 2115, 2115, 2117, 2117,
3194      2117, 2118, 2118, 2118,  795, 2118,  794,  793, 2118, 2121,
3195
3196      2121, 2121,  792, 2115,  791,  790, 2117, 2122, 2122, 2122,
3197       789, 2122,  788,  787, 2122,  786, 2121, 2123, 2123, 2123,
3198      2128, 2128, 2128, 2132, 2132, 2132, 2133, 2133, 2133,  785,
3199      2133,  784,  783, 2133,  782, 2123,  781, 2140, 2140, 2140,
3200      2132, 2151, 2151, 2151, 2152, 2152, 2152, 2154, 2154, 2154,
3201      2156, 2156, 2156, 2117, 2140, 2155, 2155, 2155,  777, 2151,
3202       776,  774, 2157, 2157, 2157, 2154, 2157, 2156,  773, 2157,
3203       772,  771, 2155, 2158, 2158, 2158,  770, 2158,  766,  764,
3204      2158, 2164, 2164, 2164,  763, 2164,  762,  761, 2164, 2168,
3205      2168, 2168, 2151, 2169, 2169, 2169, 2140, 2169,  757,  753,
3206
3207      2169, 2155,  752, 2170, 2170, 2170, 2168, 2170, 2154,  749,
3208      2170, 2173, 2173, 2173, 2174, 2174, 2174,  748, 2174,  747,
3209       746, 2174, 2176, 2176, 2176, 2178, 2178, 2178, 2173, 2178,
3210       745,  744, 2178, 2181, 2181, 2181, 2182, 2182, 2182, 2176,
3211      2182,  741,  740, 2182, 2183, 2183, 2183, 2184, 2184, 2184,
3212      2181, 2184,  739,  738, 2184, 2191, 2191, 2191, 2192, 2192,
3213      2192, 2183, 2192,  735,  733, 2192, 2197, 2197, 2197, 2198,
3214      2198, 2198,  730, 2191, 2199, 2199, 2199,  729, 2202, 2202,
3215      2202,  728, 2202, 2197, 2197, 2202, 2213, 2213, 2213, 2222,
3216      2222, 2222, 2223, 2223, 2223, 2224, 2224, 2224, 2225, 2225,
3217
3218      2225,  727,  726, 2213,  723,  722, 2191, 2222, 2226, 2226,
3219      2226, 2227, 2227, 2227,  721, 2227, 2225,  720, 2227, 2229,
3220      2229, 2229,  719, 2229,  716, 2226, 2229, 2236, 2236, 2236,
3221       715, 2236,  714,  713, 2236, 2239, 2239, 2239, 2222, 2239,
3222       711,  708, 2239, 2243, 2243, 2243, 2244, 2244, 2244, 2225,
3223      2244,  706,  703, 2244, 2246, 2246, 2246,  702, 2246,  701,
3224      2243, 2246, 2249, 2249, 2249,  700, 2249,  698,  697, 2249,
3225      2258, 2258, 2258, 2260, 2260, 2260, 2261, 2261, 2261, 2262,
3226      2262, 2262,  696, 2262,  693,  692, 2262,  691, 2258,  690,
3227      2260, 2260,  689, 2261, 2261,  688,  687, 2262, 2263, 2263,
3228
3229      2263, 2264, 2264, 2264, 2265, 2265, 2265, 2274, 2274, 2274,
3230      2275, 2275, 2275,  686, 2275,  685,  683, 2275, 2284, 2284,
3231      2284, 2285, 2285, 2285, 2274, 2286, 2286, 2286, 2287, 2287,
3232      2287,  681, 2287,  680,  676, 2287, 2284, 2293, 2293, 2293,
3233      2295, 2295, 2295, 2286, 2296, 2296, 2296,  675, 2296,  674,
3234       671, 2296,  668,  667, 2293,  666,  663, 2295, 2299, 2299,
3235      2299, 2314, 2314, 2314, 2317, 2317, 2317, 2318, 2318, 2318,
3236       662, 2318,  658,  657, 2318, 2299, 2322, 2322, 2322, 2314,
3237       653, 2317, 2317, 2284,  652, 2318, 2319, 2319, 2319,  650,
3238      2319,  645,  644, 2319, 2323, 2323, 2323, 2341, 2341, 2341,
3239
3240      2342, 2342, 2342,  642, 2319, 2320, 2320, 2320, 2320, 2320,
3241      2320, 2320, 2320, 2320,  641, 2341, 2320,  640, 2342,  639,
3242       638, 2320, 2320, 2320, 2320, 2320, 2332, 2332, 2332,  637,
3243      2332,  633,  632, 2332, 2348, 2348, 2348,  631, 2348,  630,
3244       626, 2348,  625,  624, 2347, 2347, 2347, 2350, 2350, 2350,
3245      2320, 2320, 2321, 2321, 2321, 2321, 2321, 2321, 2321, 2321,
3246      2321, 2347,  623, 2321, 2350, 2352, 2352, 2352, 2321, 2321,
3247      2321, 2321, 2321, 2351, 2351, 2351,  622, 2351,  621,  620,
3248      2351,  618, 2352, 2353, 2353, 2353,  615, 2353,  614,  612,
3249      2353,  610, 2367, 2367, 2367,  607, 2367, 2321, 2321, 2367,
3250
3251       606,  600, 2386, 2386, 2386, 2419, 2419, 2419,  598,  596,
3252      2367, 2370, 2370, 2370, 2370, 2370, 2370, 2370, 2370, 2370,
3253      2386,  593, 2370, 2419, 2419,  592,  588, 2370, 2370, 2370,
3254      2370, 2370, 2391, 2391, 2391,  587, 2391,  586,  584, 2391,
3255      2395, 2395, 2395,  583, 2395,  582,  581, 2395, 2398, 2398,
3256      2398,  580, 2398,  577,  576, 2398, 2370, 2370, 2371, 2371,
3257      2371, 2371, 2371, 2371, 2371, 2371, 2371,  575,  574, 2371,
3258      2428, 2428, 2428,  573, 2371, 2371, 2371, 2371, 2371, 2429,
3259      2429, 2429, 2430, 2430, 2430,  567,  566, 2428, 2435, 2435,
3260      2435, 2444, 2444, 2444,  564,  558, 2429,  557,  553, 2430,
3261
3262      2448, 2448, 2448, 2371, 2371, 2435, 2453, 2453, 2453, 2444,
3263      2454, 2454, 2454,  549, 2454,  546,  542, 2454, 2448, 2455,
3264      2455, 2455,  536, 2453, 2456, 2456, 2456,  532, 2456,  524,
3265       523, 2456, 2457, 2457, 2457,  522, 2455, 2458, 2458, 2458,
3266       521, 2458,  517,  513, 2458, 2465, 2465, 2465,  510, 2457,
3267       509, 2448, 2466, 2466, 2466,  508, 2466,  504,  498, 2466,
3268       497,  493, 2465, 2473, 2473, 2473, 2479, 2479, 2479,  489,
3269      2479,  485,  484, 2479,  480, 2482, 2482, 2482,  477, 2482,
3270       476, 2473, 2482, 2485, 2485, 2485,  471, 2485,  467,  463,
3271      2485, 2494, 2494, 2494,  459, 2494,  458,  457, 2494,  453,
3272
3273      2473, 2589, 2589, 2589, 2598, 2598, 2598,  447, 2598,  446,
3274       442, 2598, 2699, 2699, 2699, 2700, 2700, 2700,  436, 2589,
3275       435,  434, 2598,  433,  432,  431,  430,  426,  417,  416,
3276      2699,  415,  413, 2700, 2703, 2703, 2703, 2703, 2703, 2703,
3277      2703, 2703, 2703, 2704, 2704, 2704, 2704, 2704, 2704, 2704,
3278      2704, 2704, 2705, 2705, 2705, 2705, 2705, 2705, 2705, 2705,
3279      2705, 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706,
3280      2707, 2707, 2707, 2707, 2707, 2707, 2707, 2707, 2707, 2708,
3281      2708, 2708, 2708, 2708, 2708, 2708, 2708, 2708, 2709, 2709,
3282      2709, 2709, 2709, 2709, 2709, 2709, 2709, 2710, 2710, 2710,
3283
3284      2710, 2710, 2710, 2710, 2710, 2710, 2711, 2711, 2711, 2711,
3285      2711, 2711, 2711, 2711, 2711, 2712, 2712, 2712, 2712, 2712,
3286      2712, 2712, 2712, 2712, 2713, 2713, 2713, 2713, 2713, 2713,
3287      2713, 2713, 2713, 2714, 2714, 2714, 2714, 2714, 2714, 2714,
3288      2714, 2714, 2715, 2715, 2715, 2715, 2715, 2715, 2715, 2715,
3289      2715, 2716, 2716, 2716, 2716, 2716, 2716, 2716, 2716, 2716,
3290      2717, 2717, 2717, 2717, 2717, 2717, 2717, 2717, 2717, 2718,
3291      2718, 2718, 2718, 2718, 2718, 2718, 2718, 2718, 2719, 2719,
3292      2719, 2719, 2719, 2719, 2719, 2719, 2719, 2720, 2720, 2720,
3293      2720, 2720, 2720, 2720, 2720, 2720, 2721, 2721, 2721, 2721,
3294
3295      2721, 2721, 2721, 2721, 2721, 2722, 2722, 2722, 2722, 2722,
3296      2722, 2722, 2722, 2722, 2723, 2723, 2723, 2723, 2723, 2723,
3297      2723, 2723, 2723, 2724, 2724, 2724, 2724, 2724, 2724, 2724,
3298      2724, 2724, 2725, 2725, 2725, 2725, 2725, 2725, 2725, 2725,
3299      2725, 2726, 2726, 2726, 2726, 2726, 2726, 2726, 2726, 2726,
3300      2727, 2727, 2727, 2727, 2727, 2727, 2727, 2727, 2727, 2728,
3301      2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728, 2729, 2729,
3302      2729, 2729, 2729, 2729, 2729, 2729, 2729, 2730, 2730, 2730,
3303      2730, 2730, 2730, 2730, 2730, 2730, 2731, 2731, 2731, 2731,
3304      2731, 2731, 2731, 2731, 2731, 2732, 2732, 2732, 2732, 2732,
3305
3306      2732, 2732, 2732, 2732, 2733, 2733, 2733, 2733, 2733, 2733,
3307      2733, 2733, 2733, 2734, 2734, 2734, 2734, 2734, 2734, 2734,
3308      2734, 2734, 2735, 2735, 2735, 2735, 2735, 2735, 2735, 2735,
3309      2735, 2736, 2736, 2736, 2736, 2736, 2736, 2736, 2736, 2736,
3310      2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737, 2738,
3311      2738, 2738, 2738, 2738, 2738, 2738, 2738, 2738, 2739, 2739,
3312      2739, 2739, 2739, 2739, 2739, 2739, 2739, 2740, 2740, 2740,
3313      2740, 2740, 2740, 2740, 2740, 2740, 2741, 2741, 2741, 2741,
3314      2741, 2741, 2741, 2741, 2741, 2742, 2742, 2742, 2742, 2742,
3315      2742, 2742, 2742, 2742, 2743, 2743, 2743, 2743, 2743, 2743,
3316
3317      2743, 2743, 2743, 2744, 2744, 2744, 2744, 2744, 2744, 2744,
3318      2744, 2744, 2745, 2745, 2745, 2745, 2745, 2745, 2745, 2745,
3319      2745, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
3320      2747, 2747, 2747, 2747, 2747, 2747, 2747, 2747, 2747, 2748,
3321      2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2749, 2749,
3322      2749, 2749, 2749, 2749, 2749, 2749, 2749, 2750, 2750, 2750,
3323      2750, 2750, 2750, 2750, 2750, 2750, 2751, 2751, 2751, 2751,
3324      2751, 2751, 2751, 2751, 2751, 2752, 2752, 2752, 2752, 2752,
3325      2752, 2752, 2752, 2752, 2753, 2753, 2753,  409,  401,  400,
3326      2753, 2754, 2754, 2754,  399,  398,  397, 2754, 2755, 2755,
3327
3328      2755,  393,  387,  386, 2755, 2756, 2756, 2756,  382,  376,
3329       375, 2756, 2757, 2757, 2757,  371,  367,  364, 2757, 2758,
3330      2758, 2758,  363,  359,  355, 2758, 2759, 2759, 2759,  352,
3331       351,  350, 2759, 2760, 2760, 2760,  346,  342,  336, 2760,
3332      2761, 2761, 2761,  329,  328,  324, 2761, 2762, 2762, 2762,
3333       318,  317,  316, 2762, 2763, 2763, 2763,  312,  309,  308,
3334      2763, 2764, 2764, 2764,  303,  301,  300, 2764, 2765, 2765,
3335      2765,  296,  293,  291, 2765, 2766, 2766, 2766,  290,  289,
3336       285, 2766, 2767, 2767, 2767,  282,  281,  277, 2767, 2768,
3337      2768, 2768,  273,  269,  261, 2768, 2769, 2769, 2769,  257,
3338
3339       253,  252, 2769, 2770, 2770, 2770,  251,  245,  244, 2770,
3340      2771, 2771, 2771,  242,  239,  227, 2771, 2772, 2772, 2772,
3341         0,    0,    0, 2772, 2773, 2773, 2773,    0,    0,    0,
3342      2773, 2774, 2774, 2774,    0,    0,    0, 2774, 2775, 2775,
3343      2775,    0,    0,    0, 2775, 2776, 2776, 2776, 2776, 2776,
3344      2776, 2776,    0, 2776, 2777, 2777, 2777,    0,    0,    0,
3345      2777, 2778,    0,    0,    0, 2778, 2779, 2779, 2779,    0,
3346         0,    0, 2779, 2780,    0,    0,    0, 2780, 2781, 2781,
3347      2781,    0,    0,    0, 2781, 2782,    0,    0,    0, 2782,
3348      2783, 2783, 2783,    0,    0,    0, 2783, 2784,    0,    0,
3349
3350         0, 2784, 2785, 2785, 2785,    0,    0,    0, 2785, 2786,
3351         0,    0,    0, 2786, 2787, 2787, 2787,    0,    0,    0,
3352      2787, 2788,    0,    0,    0, 2788, 2789, 2789, 2789,    0,
3353         0,    0, 2789, 2790,    0,    0,    0, 2790, 2791, 2791,
3354      2791,    0,    0,    0, 2791, 2792,    0,    0,    0, 2792,
3355      2793, 2793, 2793,    0,    0,    0, 2793, 2794,    0,    0,
3356         0, 2794, 2795, 2795, 2795,    0,    0,    0, 2795, 2796,
3357         0,    0,    0, 2796, 2797, 2797, 2797,    0,    0,    0,
3358      2797, 2798,    0,    0,    0, 2798, 2799, 2799, 2799,    0,
3359         0,    0, 2799, 2800,    0,    0,    0, 2800, 2801, 2801,
3360
3361      2801,    0,    0,    0, 2801, 2802,    0,    0,    0, 2802,
3362      2803, 2803, 2803,    0,    0,    0, 2803, 2804,    0,    0,
3363         0, 2804, 2805, 2805, 2805,    0,    0,    0, 2805, 2806,
3364         0,    0,    0, 2806, 2807, 2807, 2807,    0,    0,    0,
3365      2807, 2808,    0,    0,    0, 2808, 2809, 2809, 2809,    0,
3366         0,    0, 2809, 2810,    0,    0,    0, 2810, 2811, 2811,
3367      2811,    0,    0,    0, 2811, 2812,    0,    0,    0, 2812,
3368      2813, 2813, 2813,    0,    0,    0, 2813, 2814,    0,    0,
3369         0, 2814, 2815, 2815, 2815,    0,    0,    0, 2815, 2816,
3370         0,    0,    0, 2816, 2817, 2817, 2817,    0,    0,    0,
3371
3372      2817, 2818,    0,    0,    0, 2818, 2819, 2819, 2819,    0,
3373         0,    0, 2819, 2820,    0,    0,    0, 2820, 2821, 2821,
3374      2821,    0,    0,    0, 2821, 2822,    0,    0,    0, 2822,
3375      2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2824,
3376         0,    0,    0,    0, 2824, 2825, 2825, 2825,    0,    0,
3377         0, 2825, 2826, 2826, 2826, 2826,    0,    0, 2826, 2826,
3378      2827, 2827, 2827,    0,    0,    0, 2827, 2828, 2828, 2828,
3379      2828,    0,    0, 2828, 2828, 2829, 2829, 2829,    0,    0,
3380         0, 2829, 2830, 2830, 2830, 2830,    0,    0, 2830, 2830,
3381      2831, 2831, 2831,    0,    0,    0, 2831, 2832, 2832, 2832,
3382
3383      2832,    0,    0, 2832, 2832, 2833, 2833, 2833,    0,    0,
3384         0, 2833, 2834, 2834, 2834, 2834,    0,    0, 2834, 2834,
3385      2835, 2835, 2835,    0,    0,    0, 2835, 2836, 2836, 2836,
3386      2836,    0,    0, 2836, 2836, 2837, 2837, 2837,    0,    0,
3387         0, 2837, 2838, 2838, 2838, 2838,    0,    0, 2838, 2838,
3388      2839, 2839, 2839,    0,    0,    0, 2839, 2840, 2840, 2840,
3389      2840,    0,    0, 2840, 2840, 2841, 2841, 2841,    0,    0,
3390         0, 2841, 2842, 2842, 2842, 2842,    0,    0, 2842, 2842,
3391      2843, 2843, 2843,    0,    0,    0, 2843, 2844, 2844, 2844,
3392      2844,    0,    0, 2844, 2844, 2845, 2845, 2845,    0,    0,
3393
3394         0, 2845, 2846, 2846, 2846, 2846,    0,    0, 2846, 2846,
3395      2847, 2847, 2847,    0,    0,    0, 2847, 2848, 2848, 2848,
3396      2848,    0,    0, 2848, 2848, 2849, 2849, 2849,    0,    0,
3397         0, 2849, 2850, 2850, 2850, 2850,    0,    0, 2850, 2850,
3398      2851, 2851, 2851,    0,    0,    0, 2851, 2852, 2852, 2852,
3399      2852,    0,    0, 2852, 2852, 2853, 2853, 2853,    0,    0,
3400         0, 2853, 2854, 2854, 2854, 2854,    0,    0, 2854, 2854,
3401      2855, 2855, 2855, 2855,    0, 2855,    0, 2855, 2856, 2856,
3402      2856, 2856,    0,    0, 2856, 2856, 2857, 2857, 2857, 2857,
3403         0, 2857,    0, 2857, 2858, 2858, 2858, 2858,    0,    0,
3404
3405      2858, 2858, 2859, 2859, 2859,    0,    0,    0, 2859, 2860,
3406      2860, 2860, 2860,    0,    0, 2860, 2860, 2861, 2861, 2861,
3407      2861,    0, 2861,    0, 2861, 2862, 2862, 2862, 2862,    0,
3408         0, 2862, 2862, 2863, 2863, 2863,    0,    0,    0, 2863,
3409      2864, 2864, 2864, 2864,    0,    0, 2864, 2864, 2865, 2865,
3410      2865,    0,    0,    0, 2865, 2866, 2866, 2866, 2866,    0,
3411         0, 2866, 2866, 2867, 2867, 2867, 2867,    0,    0, 2867,
3412      2867, 2868, 2868, 2868,    0,    0,    0, 2868, 2869, 2869,
3413      2869, 2869,    0,    0, 2869, 2869, 2870, 2870, 2870, 2870,
3414      2870, 2870, 2870, 2870, 2870, 2871,    0, 2871,    0,    0,
3415
3416      2871, 2872, 2872, 2872,    0,    0,    0, 2872, 2873, 2873,
3417      2873, 2873,    0,    0, 2873, 2873, 2874, 2874, 2874, 2874,
3418         0, 2874,    0, 2874, 2875, 2875, 2875, 2875,    0,    0,
3419      2875, 2875, 2876, 2876, 2876, 2876,    0, 2876,    0, 2876,
3420      2877, 2877, 2877, 2877,    0,    0, 2877, 2877, 2878, 2878,
3421      2878,    0,    0,    0, 2878, 2879, 2879, 2879, 2879,    0,
3422         0, 2879, 2879, 2880, 2880, 2880,    0,    0,    0, 2880,
3423      2881, 2881, 2881, 2881,    0,    0, 2881, 2881, 2882, 2882,
3424      2882,    0,    0,    0, 2882, 2883, 2883, 2883, 2883,    0,
3425         0, 2883, 2883, 2884, 2884, 2884,    0,    0,    0, 2884,
3426
3427      2885, 2885, 2885, 2885,    0,    0, 2885, 2885, 2886, 2886,
3428      2886,    0,    0,    0, 2886, 2887, 2887, 2887, 2887,    0,
3429         0, 2887, 2887, 2888, 2888, 2888, 2888,    0, 2888,    0,
3430      2888, 2889, 2889, 2889, 2889,    0,    0, 2889, 2889, 2890,
3431      2890, 2890, 2890,    0, 2890,    0, 2890, 2891, 2891, 2891,
3432      2891,    0,    0, 2891, 2891, 2892, 2892, 2892,    0,    0,
3433         0, 2892, 2893, 2893, 2893, 2893,    0,    0, 2893, 2893,
3434      2894, 2894, 2894,    0,    0,    0, 2894, 2895, 2895, 2895,
3435      2895,    0,    0, 2895, 2895, 2896, 2896, 2896,    0,    0,
3436         0, 2896, 2897, 2897, 2897, 2897,    0,    0, 2897, 2897,
3437
3438      2898, 2898, 2898,    0,    0,    0, 2898, 2899, 2899, 2899,
3439      2899,    0,    0, 2899, 2899, 2900, 2900, 2900,    0,    0,
3440         0, 2900, 2901, 2901, 2901, 2901,    0,    0, 2901, 2901,
3441      2902, 2902, 2902,    0,    0,    0, 2902, 2903, 2903, 2903,
3442      2903,    0,    0, 2903, 2903, 2904, 2904, 2904,    0,    0,
3443         0, 2904, 2905, 2905, 2905, 2905,    0,    0, 2905, 2905,
3444      2906, 2906, 2906,    0,    0,    0, 2906, 2907, 2907, 2907,
3445      2907,    0,    0, 2907, 2907, 2908, 2908, 2908,    0,    0,
3446         0, 2908, 2909, 2909, 2909, 2909,    0,    0, 2909, 2909,
3447      2910, 2910, 2910,    0,    0,    0, 2910, 2911, 2911, 2911,
3448
3449      2911,    0,    0, 2911, 2911, 2912, 2912, 2912,    0,    0,
3450         0, 2912, 2913, 2913, 2913, 2913,    0,    0, 2913, 2913,
3451      2914, 2914, 2914, 2914,    0,    0, 2914, 2914, 2915, 2915,
3452      2915,    0,    0,    0, 2915, 2916, 2916, 2916, 2916,    0,
3453         0, 2916, 2916, 2917, 2917, 2917, 2917, 2917, 2917, 2917,
3454      2917, 2917, 2918, 2918, 2918, 2918, 2918, 2918, 2918, 2918,
3455      2918, 2919, 2919, 2919,    0,    0,    0, 2919, 2920, 2920,
3456      2920, 2920,    0,    0, 2920, 2920, 2921, 2921, 2921, 2921,
3457         0,    0, 2921, 2921, 2922, 2922, 2922,    0,    0,    0,
3458      2922, 2923, 2923, 2923, 2923,    0,    0, 2923, 2923, 2924,
3459
3460      2924, 2924,    0,    0,    0, 2924, 2925, 2925, 2925, 2925,
3461         0,    0, 2925, 2925, 2926, 2926, 2926,    0,    0,    0,
3462      2926, 2927, 2927, 2927, 2927,    0,    0, 2927, 2927, 2928,
3463      2928, 2928,    0,    0,    0, 2928, 2929, 2929, 2929,    0,
3464         0,    0, 2929, 2930, 2930, 2930, 2930,    0,    0, 2930,
3465      2930, 2931, 2931, 2931,    0,    0,    0, 2931, 2932, 2932,
3466      2932, 2932,    0,    0, 2932, 2932, 2933, 2933, 2933, 2933,
3467         0,    0, 2933, 2933, 2934, 2934, 2934,    0,    0,    0,
3468      2934, 2935, 2935, 2935, 2935,    0,    0, 2935, 2935, 2936,
3469      2936, 2936,    0,    0,    0, 2936, 2937, 2937, 2937, 2937,
3470
3471         0,    0, 2937, 2937, 2938, 2938, 2938,    0,    0,    0,
3472      2938, 2939, 2939, 2939, 2939,    0,    0, 2939, 2939, 2940,
3473      2940, 2940,    0,    0,    0, 2940, 2941, 2941, 2941, 2941,
3474         0,    0, 2941, 2941, 2942, 2942, 2942,    0,    0,    0,
3475      2942, 2943, 2943, 2943, 2943,    0,    0, 2943, 2943, 2944,
3476      2944, 2944,    0,    0,    0, 2944, 2945, 2945, 2945, 2945,
3477         0,    0, 2945, 2945, 2946, 2946, 2946,    0,    0,    0,
3478      2946, 2947, 2947, 2947, 2947,    0,    0, 2947, 2947, 2948,
3479      2948, 2948,    0,    0,    0, 2948, 2949, 2949, 2949, 2949,
3480         0,    0, 2949, 2949, 2950, 2950, 2950,    0,    0,    0,
3481
3482      2950, 2951, 2951, 2951, 2951,    0,    0, 2951, 2951, 2952,
3483      2952, 2952,    0,    0,    0, 2952, 2953, 2953, 2953, 2953,
3484         0,    0, 2953, 2953, 2954, 2954, 2954,    0,    0,    0,
3485      2954, 2955, 2955, 2955, 2955,    0,    0, 2955, 2955, 2956,
3486      2956, 2956, 2956,    0, 2956,    0, 2956, 2957, 2957, 2957,
3487      2957,    0,    0, 2957, 2957, 2958, 2958, 2958, 2958,    0,
3488         0, 2958, 2958, 2959, 2959, 2959, 2959,    0, 2959,    0,
3489      2959, 2960, 2960, 2960, 2960,    0,    0, 2960, 2960, 2961,
3490      2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2962, 2962,
3491      2962, 2962, 2962, 2962, 2962, 2962, 2962, 2963, 2963, 2963,
3492
3493         0,    0,    0, 2963, 2964, 2964, 2964, 2964,    0,    0,
3494      2964, 2964, 2965, 2965, 2965, 2965,    0,    0, 2965, 2965,
3495      2966, 2966, 2966,    0,    0,    0, 2966, 2967, 2967, 2967,
3496      2967,    0,    0, 2967, 2967, 2968, 2968, 2968,    0,    0,
3497         0, 2968, 2969, 2969, 2969, 2969,    0,    0, 2969, 2969,
3498      2970, 2970, 2970,    0,    0,    0, 2970, 2971, 2971, 2971,
3499      2971,    0,    0, 2971, 2971, 2972, 2972, 2972,    0,    0,
3500         0, 2972, 2973, 2973, 2973,    0,    0,    0, 2973, 2974,
3501      2974, 2974, 2974,    0,    0, 2974, 2974, 2975, 2975, 2975,
3502      2975,    0, 2975,    0, 2975, 2976, 2976, 2976, 2976,    0,
3503
3504         0, 2976, 2976, 2977, 2977, 2977, 2977,    0,    0, 2977,
3505      2977, 2978, 2978, 2978, 2978,    0, 2978,    0, 2978, 2979,
3506      2979, 2979, 2979,    0,    0, 2979, 2979, 2980, 2980, 2980,
3507         0,    0,    0, 2980, 2981, 2981, 2981, 2981,    0,    0,
3508      2981, 2981, 2982, 2982, 2982,    0,    0,    0, 2982, 2983,
3509      2983, 2983, 2983,    0,    0, 2983, 2983, 2984, 2984, 2984,
3510         0,    0,    0, 2984, 2985, 2985, 2985, 2985,    0,    0,
3511      2985, 2985, 2986, 2986, 2986,    0,    0,    0, 2986, 2987,
3512      2987, 2987, 2987,    0,    0, 2987, 2987, 2988, 2988, 2988,
3513         0,    0,    0, 2988, 2989, 2989, 2989, 2989,    0,    0,
3514
3515      2989, 2989, 2990, 2990, 2990,    0,    0,    0, 2990, 2991,
3516      2991, 2991, 2991,    0,    0, 2991, 2991, 2992, 2992, 2992,
3517      2992,    0, 2992,    0, 2992, 2993, 2993, 2993, 2993,    0,
3518         0, 2993, 2993, 2994, 2994, 2994,    0,    0,    0, 2994,
3519      2995, 2995, 2995, 2995,    0,    0, 2995, 2995, 2996, 2996,
3520      2996, 2996,    0, 2996,    0, 2996, 2997, 2997, 2997, 2997,
3521         0,    0, 2997, 2997, 2998, 2998, 2998,    0,    0,    0,
3522      2998, 2999, 2999, 2999, 2999,    0,    0, 2999, 2999, 3000,
3523      3000, 3000, 3000,    0,    0, 3000, 3000, 3001, 3001, 3001,
3524      3001,    0,    0, 3001, 3001, 3002, 3002, 3002, 3002,    0,
3525
3526         0, 3002, 3002, 3003, 3003, 3003, 3003, 3003, 3003, 3003,
3527      3003, 3003, 3004, 3004, 3004, 3004, 3004, 3004, 3004, 3004,
3528      3004, 3005, 3005, 3005, 3005,    0, 3005,    0, 3005, 3006,
3529      3006, 3006, 3006,    0,    0, 3006, 3006, 3007, 3007, 3007,
3530      3007,    0,    0, 3007, 3007, 3008, 3008, 3008,    0,    0,
3531         0, 3008, 3009, 3009, 3009, 3009,    0,    0, 3009, 3009,
3532      3010, 3010, 3010,    0,    0,    0, 3010, 3011, 3011, 3011,
3533      3011,    0,    0, 3011, 3011, 3012, 3012, 3012, 3012,    0,
3534      3012,    0, 3012, 3013, 3013, 3013, 3013,    0,    0, 3013,
3535      3013, 3014, 3014, 3014, 3014,    0, 3014,    0, 3014, 3015,
3536
3537      3015, 3015, 3015,    0, 3015,    0, 3015, 3016, 3016, 3016,
3538      3016,    0,    0, 3016, 3016, 3017, 3017, 3017, 3017,    0,
3539         0, 3017, 3017, 3018, 3018, 3018, 3018,    0,    0, 3018,
3540      3018, 3019, 3019, 3019, 3019,    0,    0, 3019, 3019, 3020,
3541      3020, 3020,    0,    0,    0, 3020, 3021, 3021, 3021,    0,
3542         0,    0, 3021, 3022, 3022, 3022, 3022,    0,    0, 3022,
3543      3022, 3023, 3023, 3023,    0,    0,    0, 3023, 3024, 3024,
3544      3024,    0,    0,    0, 3024, 3025, 3025, 3025, 3025,    0,
3545         0, 3025, 3025, 3026, 3026, 3026,    0,    0,    0, 3026,
3546      3027, 3027, 3027,    0,    0,    0, 3027, 3028, 3028, 3028,
3547
3548      3028,    0,    0, 3028, 3028, 3029, 3029, 3029,    0,    0,
3549         0, 3029, 3030, 3030, 3030, 3030,    0,    0, 3030, 3030,
3550      3031, 3031, 3031,    0,    0,    0, 3031, 3032, 3032, 3032,
3551      3032,    0,    0, 3032, 3032, 3033, 3033, 3033, 3033,    0,
3552         0, 3033, 3033, 3034, 3034, 3034,    0,    0,    0, 3034,
3553      3035, 3035, 3035, 3035,    0,    0, 3035, 3035, 3036, 3036,
3554      3036, 3036,    0,    0, 3036, 3036, 3037, 3037, 3037, 3037,
3555         0,    0, 3037, 3037, 3038, 3038, 3038, 3038, 3038, 3038,
3556      3038, 3038, 3038, 3039, 3039, 3039, 3039, 3039, 3039, 3039,
3557      3039, 3039, 3040, 3040, 3040, 3040,    0,    0, 3040, 3040,
3558
3559      3041, 3041, 3041, 3041,    0,    0, 3041, 3041, 3042, 3042,
3560      3042,    0,    0,    0, 3042, 3043, 3043, 3043,    0,    0,
3561         0, 3043, 3044, 3044, 3044, 3044,    0,    0, 3044, 3044,
3562      3045, 3045, 3045, 3045,    0,    0, 3045, 3045, 3046, 3046,
3563      3046, 3046,    0,    0, 3046, 3046, 3047, 3047, 3047, 3047,
3564         0,    0, 3047, 3047, 3048, 3048, 3048, 3048,    0,    0,
3565      3048, 3048, 3049, 3049, 3049,    0,    0,    0, 3049, 3050,
3566      3050, 3050,    0,    0,    0, 3050, 3051, 3051, 3051, 3051,
3567         0,    0, 3051, 3051, 3052, 3052, 3052,    0,    0,    0,
3568      3052, 3053, 3053, 3053,    0,    0,    0, 3053, 3054, 3054,
3569
3570      3054, 3054,    0,    0, 3054, 3054, 3055, 3055, 3055,    0,
3571         0,    0, 3055, 3056, 3056, 3056,    0,    0,    0, 3056,
3572      3057, 3057, 3057,    0,    0,    0, 3057, 3058, 3058, 3058,
3573      3058,    0,    0, 3058, 3058, 3059, 3059, 3059,    0,    0,
3574         0, 3059, 3060, 3060, 3060, 3060,    0,    0, 3060, 3060,
3575      3061, 3061, 3061, 3061,    0,    0, 3061, 3061, 3062, 3062,
3576      3062, 3062,    0, 3062,    0, 3062, 3063, 3063, 3063, 3063,
3577         0,    0, 3063, 3063, 3064, 3064, 3064, 3064,    0,    0,
3578      3064, 3064, 3065, 3065, 3065, 3065,    0,    0, 3065, 3065,
3579      3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3067,
3580
3581      3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3068, 3068,
3582      3068, 3068,    0,    0, 3068, 3068, 3069, 3069, 3069, 3069,
3583         0,    0, 3069, 3069, 3070, 3070, 3070,    0,    0,    0,
3584      3070, 3071, 3071, 3071, 3071,    0, 3071,    0, 3071, 3072,
3585      3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3073, 3073,
3586      3073, 3073, 3073, 3073, 3073, 3073, 3073, 3074, 3074, 3074,
3587      3074, 3074, 3074, 3074, 3074, 3074, 3075, 3075, 3075, 3075,
3588      3075, 3075, 3075, 3075, 3075, 3076, 3076, 3076, 3076, 3076,
3589      3076, 3076, 3076, 3076, 3077, 3077, 3077, 3077, 3077, 3077,
3590      3077, 3077, 3077, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3591
3592      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3593      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3594      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3595      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3596      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3597      2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3598      2702, 2702, 2702, 2702, 2702, 2702
3599     } ;
3600
3601 /* Table of booleans, true if rule could match eol. */
3602 static yyconst flex_int32_t yy_rule_can_match_eol[460] =
3603     {   0,
3604 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3605     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3606     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3607     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3608     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3609     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3610     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3611     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3612     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3613     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3614     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3615     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3616     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3617     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3618     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3619     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3620     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3621     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3622     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3623     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3624     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
3625     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 
3626     0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 
3627         };
3628
3629 static yy_state_type yy_last_accepting_state;
3630 static char *yy_last_accepting_cpos;
3631
3632 extern int surf_parse__flex_debug;
3633 int surf_parse__flex_debug = 0;
3634
3635 /* The intent behind this definition is that it'll catch
3636  * any uses of REJECT which flex missed.
3637  */
3638 #define REJECT reject_used_but_not_detected
3639 #define yymore() yymore_used_but_not_detected
3640 #define YY_MORE_ADJ 0
3641 #define YY_RESTORE_YY_MORE_OFFSET
3642 char *surf_parse_text;
3643 /* Validating XML processor for src/surf/simgrid.dtd.
3644  *
3645  * This program was generated with the FleXML XML processor generator.
3646  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3647  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3648  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3649  * 
3650  * There are two, intertwined parts to this program, part A and part B.
3651  *
3652  * Part A
3653  * ------
3654  * 
3655  * Some parts, here collectively called "Part A", are found in the 
3656  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3657  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3658  *
3659  * You can redistribute, use, perform, display and/or modify "Part A"
3660  * provided the following two conditions hold:
3661  *
3662  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3663  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3664  *    FITNESS FOR A PARTICULAR PURPOSE.
3665  *
3666  * 2. The program distribution conditions do not in any way affect the
3667  *    distribution conditions of the FleXML system used to generate this
3668  *    file or any version of FleXML derived from that system.
3669  *
3670  * Notice that these are explicit rights granted to you for files
3671  * generated by the FleXML system.  For your rights in connection with
3672  * the FleXML system itself please consult the GNU General Public License.
3673  * 
3674  * Part B
3675  * ------
3676  * 
3677  * The other parts, here collectively called "Part B", and which came 
3678  * from the DTD used by FleXML to generate this program, can be 
3679  * distributed (or not, as the case may be) under the terms of whoever
3680  * wrote them, provided these terms respect and obey the two conditions 
3681  * above under the heading "Part A".
3682  *
3683  * The author of and contributors to FleXML specifically disclaim
3684  * any copyright interest in "Part B", unless "Part B" was written 
3685  * by the author of or contributors to FleXML.
3686  * 
3687  */
3688
3689 /* Version strings. */
3690 const char rcs_surfxml_flexml_skeleton[] =
3691  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3692 const char rcs_surfxml_flexml[] =
3693  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3694
3695 /* ANSI headers. */
3696 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3697 #include <stdio.h>
3698 #include <string.h>
3699 #include <assert.h>
3700 #include <stdarg.h>
3701 #include <ctype.h>
3702      
3703 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3704 # ifndef __STRICT_ANSI__
3705 #  include <io.h>
3706 #  include <process.h>
3707 # endif
3708 #else
3709 # include <unistd.h>
3710 #endif
3711      
3712 #ifndef FLEXML_INDEXSTACKSIZE
3713 #define FLEXML_INDEXSTACKSIZE 1000
3714 #endif
3715
3716 /* Generated definitions. */
3717 #define FLEXML_yylineno
3718 #ifndef FLEXML_BUFFERSTACKSIZE
3719 #define FLEXML_BUFFERSTACKSIZE 1000000
3720 #endif
3721 #define FLEXML_NEED_BUFFERLIT
3722
3723 /* XML processor api. */
3724 /* FleXML-provided data. */
3725 int surfxml_pcdata_ix;
3726 extern char *surfxml_bufferstack;
3727 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3728 AT_surfxml_mount_name AX_surfxml_mount_name;
3729 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3730 short int surfxml_mount_name_isset;
3731 AT_surfxml_random_generator AX_surfxml_random_generator;
3732 #define A_surfxml_random_generator AX_surfxml_random_generator
3733 short int surfxml_random_generator_isset;
3734 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3735 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3736 short int surfxml_ASroute_gw_dst_isset;
3737 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3738 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3739 short int surfxml_trace_connect_element_isset;
3740 AT_surfxml_prop_id AX_surfxml_prop_id;
3741 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3742 short int surfxml_prop_id_isset;
3743 AT_surfxml_host_id AX_surfxml_host_id;
3744 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3745 short int surfxml_host_id_isset;
3746 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3747 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3748 short int surfxml_ASroute_symmetrical_isset;
3749 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3750 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3751 short int surfxml_peer_lat_isset;
3752 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3753 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3754 short int surfxml_link_latency_file_isset;
3755 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3756 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3757 short int surfxml_peer_availability_file_isset;
3758 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3759 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3760 short int surfxml_link_ctn_direction_isset;
3761 AT_surfxml_host_state AX_surfxml_host_state;
3762 #define A_surfxml_host_state AX_surfxml_host_state
3763 short int surfxml_host_state_isset;
3764 AT_surfxml_AS_id AX_surfxml_AS_id;
3765 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3766 short int surfxml_AS_id_isset;
3767 AT_surfxml_host_power AX_surfxml_host_power;
3768 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3769 short int surfxml_host_power_isset;
3770 AT_surfxml_router_id AX_surfxml_router_id;
3771 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3772 short int surfxml_router_id_isset;
3773 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3774 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3775 short int surfxml_storage_type_id_isset;
3776 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3777 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3778 short int surfxml_process_start_time_isset;
3779 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3780 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3781 short int surfxml_cluster_suffix_isset;
3782 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3783 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3784 short int surfxml_ASroute_src_isset;
3785 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3786 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3787 short int surfxml_cluster_prefix_isset;
3788 AT_surfxml_trace_file AX_surfxml_trace_file;
3789 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3790 short int surfxml_trace_file_isset;
3791 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3792 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3793 short int surfxml_link_sharing_policy_isset;
3794 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3795 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3796 short int surfxml_storage_typeId_isset;
3797 AT_surfxml_random_min AX_surfxml_random_min;
3798 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3799 short int surfxml_random_min_isset;
3800 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3801 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3802 short int surfxml_link_ctn_id_isset;
3803 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3804 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3805 short int surfxml_peer_bw_out_isset;
3806 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3807 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3808 short int surfxml_cluster_availability_file_isset;
3809 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3810 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3811 short int surfxml_process_kill_time_isset;
3812 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3813 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3814 short int surfxml_cluster_bb_bw_isset;
3815 AT_surfxml_argument_value AX_surfxml_argument_value;
3816 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3817 short int surfxml_argument_value_isset;
3818 AT_surfxml_link_state AX_surfxml_link_state;
3819 #define A_surfxml_link_state AX_surfxml_link_state
3820 short int surfxml_link_state_isset;
3821 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3822 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3823 short int surfxml_ASroute_gw_src_isset;
3824 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3825 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3826 short int surfxml_AS_routing_isset;
3827 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3828 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3829 short int surfxml_link_bandwidth_isset;
3830 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3831 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3832 short int surfxml_cluster_id_isset;
3833 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3834 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3835 short int surfxml_peer_bw_in_isset;
3836 AT_surfxml_random_mean AX_surfxml_random_mean;
3837 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3838 short int surfxml_random_mean_isset;
3839 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3840 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3841 short int surfxml_cluster_bb_lat_isset;
3842 AT_surfxml_link_latency AX_surfxml_link_latency;
3843 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3844 short int surfxml_link_latency_isset;
3845 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3846 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3847 short int surfxml_trace_connect_kind_isset;
3848 AT_surfxml_random_seed AX_surfxml_random_seed;
3849 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
3850 short int surfxml_random_seed_isset;
3851 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3852 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3853 short int surfxml_cluster_state_file_isset;
3854 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3855 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3856 short int surfxml_link_bandwidth_file_isset;
3857 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
3858 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
3859 short int surfxml_storage_type_content_isset;
3860 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3861 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3862 short int surfxml_route_symmetrical_isset;
3863 AT_surfxml_random_id AX_surfxml_random_id;
3864 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3865 short int surfxml_random_id_isset;
3866 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
3867 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
3868 short int surfxml_mstorage_name_isset;
3869 AT_surfxml_random_max AX_surfxml_random_max;
3870 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3871 short int surfxml_random_max_isset;
3872 AT_surfxml_link_id AX_surfxml_link_id;
3873 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3874 short int surfxml_link_id_isset;
3875 AT_surfxml_process_host AX_surfxml_process_host;
3876 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3877 short int surfxml_process_host_isset;
3878 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3879 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3880 short int surfxml_host_availability_file_isset;
3881 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3882 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3883 short int surfxml_cluster_lat_isset;
3884 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3885 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3886 short int surfxml_trace_periodicity_isset;
3887 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3888 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3889 short int surfxml_cluster_bb_sharing_policy_isset;
3890 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3891 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3892 short int surfxml_router_coordinates_isset;
3893 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3894 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3895 short int surfxml_peer_coordinates_isset;
3896 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
3897 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
3898 short int surfxml_peer_state_file_isset;
3899 AT_surfxml_prop_value AX_surfxml_prop_value;
3900 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3901 short int surfxml_prop_value_isset;
3902 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
3903 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
3904 short int surfxml_mstorage_typeId_isset;
3905 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3906 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3907 short int surfxml_ASroute_dst_isset;
3908 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3909 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3910 short int surfxml_link_state_file_isset;
3911 AT_surfxml_random_radical AX_surfxml_random_radical;
3912 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
3913 short int surfxml_random_radical_isset;
3914 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3915 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3916 short int surfxml_trace_connect_trace_isset;
3917 AT_surfxml_mount_id AX_surfxml_mount_id;
3918 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
3919 short int surfxml_mount_id_isset;
3920 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3921 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3922 short int surfxml_cluster_power_isset;
3923 AT_surfxml_process_function AX_surfxml_process_function;
3924 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3925 short int surfxml_process_function_isset;
3926 AT_surfxml_peer_id AX_surfxml_peer_id;
3927 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3928 short int surfxml_peer_id_isset;
3929 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
3930 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
3931 short int surfxml_cluster_router_id_isset;
3932 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3933 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3934 short int surfxml_cluster_sharing_policy_isset;
3935 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3936 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3937 short int surfxml_bypassRoute_dst_isset;
3938 AT_surfxml_host_core AX_surfxml_host_core;
3939 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3940 short int surfxml_host_core_isset;
3941 AT_surfxml_host_availability AX_surfxml_host_availability;
3942 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3943 short int surfxml_host_availability_isset;
3944 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
3945 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
3946 short int surfxml_storage_type_model_isset;
3947 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3948 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3949 short int surfxml_bypassRoute_src_isset;
3950 AT_surfxml_route_src AX_surfxml_route_src;
3951 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3952 short int surfxml_route_src_isset;
3953 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3954 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3955 short int surfxml_bypassRoute_gw_dst_isset;
3956 AT_surfxml_storage_id AX_surfxml_storage_id;
3957 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
3958 short int surfxml_storage_id_isset;
3959 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3960 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3961 short int surfxml_host_coordinates_isset;
3962 AT_surfxml_trace_id AX_surfxml_trace_id;
3963 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3964 short int surfxml_trace_id_isset;
3965 AT_surfxml_peer_power AX_surfxml_peer_power;
3966 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3967 short int surfxml_peer_power_isset;
3968 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3969 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3970 short int surfxml_cluster_radical_isset;
3971 AT_surfxml_config_id AX_surfxml_config_id;
3972 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3973 short int surfxml_config_id_isset;
3974 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3975 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3976 short int surfxml_bypassRoute_gw_src_isset;
3977 AT_surfxml_include_file AX_surfxml_include_file;
3978 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3979 short int surfxml_include_file_isset;
3980 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3981 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3982 short int surfxml_random_std_deviation_isset;
3983 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3984 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3985 short int surfxml_cluster_core_isset;
3986 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3987 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3988 short int surfxml_host_state_file_isset;
3989 AT_surfxml_route_dst AX_surfxml_route_dst;
3990 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3991 short int surfxml_route_dst_isset;
3992 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3993 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3994 short int surfxml_cluster_bw_isset;
3995 AT_surfxml_platform_version AX_surfxml_platform_version;
3996 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3997 short int surfxml_platform_version_isset;
3998
3999 /* XML state. */
4000 #ifdef FLEX_DEBUG
4001 # define ENTER(state)   debug_enter(state,#state)
4002 # define LEAVE          debug_leave()
4003 # define SET(state)     debug_set(state,#state)
4004   static void debug_enter(int, const char*);
4005   static void debug_leave(void);
4006   static void debug_set(int, const char*);
4007 #else
4008 # define ENTER(state)   (yy_push_state(state))
4009 # define LEAVE          (yy_pop_state())
4010 # define SET(state)     BEGIN(state)
4011 #endif
4012
4013 /* Generic actions. */
4014 #define SKIP    /*skip*/
4015 #define SUCCEED        CLEANUP; return 0
4016
4017 #define FAIL    return fail
4018 static int fail(const char*, ...);
4019
4020 enum {flexml_max_err_msg_size = 512};
4021 static char flexml_err_msg[flexml_max_err_msg_size];
4022 const char * surfxml_parse_err_msg()
4023 {
4024     return flexml_err_msg;
4025 }
4026 static void reset_surfxml_parse_err_msg()
4027 {
4028     flexml_err_msg[0] = '\0';
4029 }
4030
4031 /* Cleanup */
4032 static void cleanup(void);
4033 #define CLEANUP  cleanup()
4034
4035 /* Text buffer stack handling. */
4036 char *surfxml_bufferstack = NULL;
4037 static int blimit = FLEXML_BUFFERSTACKSIZE;
4038 static int bnext = 1;
4039
4040 static int *indexstack = NULL;
4041 static int ilimit = FLEXML_INDEXSTACKSIZE;
4042 static int inext = 1;
4043
4044 #define BUFFERSET(P)  (P = bnext)
4045 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4046 #define BUFFERDONE    (BUFFERPUTC('\0'))
4047
4048 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4049
4050 /* after this is called, there are at least 2 slots left in the stack */
4051 static int ck_blimit()
4052 {
4053      if (bnext >= blimit) {
4054          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4055          {
4056              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4057              assert(temp);
4058              surfxml_bufferstack = temp;
4059          }
4060      }
4061      return 0;
4062 }
4063
4064 /* after this is called, there are at least 2 slots left in the stack */
4065 static int ck_ilimit()
4066 {
4067      if (inext >= ilimit) {
4068          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4069          {
4070              int *temp = (int *) realloc(indexstack, ilimit);
4071              assert(temp);
4072              indexstack = temp;
4073          }
4074      }
4075      return 0;
4076 }
4077
4078 #ifdef FLEXML_NEED_BUFFERLIT
4079 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4080 {
4081   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4082   assert(s <= e); BUFFERSET(*pp);
4083   while (++s<e) {
4084     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4085     else BUFFERPUTC(*s);
4086   }
4087   BUFFERDONE;
4088 }
4089 #endif
4090
4091 static void pushbuffer(int p)
4092 {
4093     ck_ilimit();
4094     indexstack[inext++] = p;
4095     indexstack[inext++] = bnext;    
4096 }
4097
4098 static int popbuffer(void)
4099 {
4100     assert(inext >= 2);
4101     bnext = indexstack[--inext];
4102     return indexstack[--inext];
4103 }
4104
4105 /* General internal entities are `unput' back onto the input stream... */
4106 #define ENTITYTEXT(T) \
4107   { char *s = (T), *e = s+strlen(s);\
4108     while (--e >= s) { unput(*e); }}
4109
4110 /* Flex standard options. */
4111 #define YY_NO_INPUT 1
4112 /* Flex user-requested options. */
4113 /* XML character classes (currently restricted to ASCII). */
4114 /* "Common syntactic structures." */
4115 /* "Names and Tokens." */
4116 /* Miscellaneous. */
4117 /* Parser states (flex `exclusive start conditions'):
4118  *
4119  * PROLOG       the XML prolog of the document before <?xml...>
4120  * DOCTYPE      the XML prolog of the document after <?xml...>
4121  * EPILOG       after the root element
4122  * INCOMMENT    inside an XML comment <!--....-->
4123  * INPI         inside an XML PI <?...?>
4124  * VALUE1       inside a '...'-delimited literal
4125  * VALUE2       inside a "..."-delimited literal
4126  * CDATA        inside a <![CDATA[...] ]> section.
4127  * ROOT_<tag>   expect root element <tag>
4128  * AL_<tag>     inside the attribute list for <tag>
4129  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4130  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4131  */
4132
4133 /* State names. */
4134 const char* *surfxml_statenames=NULL;
4135
4136 #define INITIAL 0
4137 #define PROLOG 1
4138 #define DOCTYPE 2
4139 #define EPILOG 3
4140 #define INCOMMENT 4
4141 #define INPI 5
4142 #define VALUE1 6
4143 #define VALUE2 7
4144 #define CDATA 8
4145 #define ROOT_surfxml_platform 9
4146 #define AL_surfxml_platform 10
4147 #define S_surfxml_platform 11
4148 #define S_surfxml_platform_1 12
4149 #define S_surfxml_platform_2 13
4150 #define S_surfxml_platform_3 14
4151 #define S_surfxml_platform_4 15
4152 #define S_surfxml_platform_5 16
4153 #define S_surfxml_platform_6 17
4154 #define S_surfxml_platform_7 18
4155 #define S_surfxml_platform_8 19
4156 #define E_surfxml_platform 20
4157 #define AL_surfxml_include 21
4158 #define S_surfxml_include 22
4159 #define S_surfxml_include_1 23
4160 #define S_surfxml_include_2 24
4161 #define E_surfxml_include 25
4162 #define AL_surfxml_trace 26
4163 #define IN_trace 27
4164 #define AL_surfxml_random 28
4165 #define S_surfxml_random 29
4166 #define S_surfxml_random_1 30
4167 #define S_surfxml_random_2 31
4168 #define E_surfxml_random 32
4169 #define AL_surfxml_trace_connect 33
4170 #define E_surfxml_trace_connect 34
4171 #define AL_surfxml_AS 35
4172 #define S_surfxml_AS 36
4173 #define S_surfxml_AS_1 37
4174 #define S_surfxml_AS_2 38
4175 #define S_surfxml_AS_3 39
4176 #define S_surfxml_AS_4 40
4177 #define S_surfxml_AS_5 41
4178 #define S_surfxml_AS_6 42
4179 #define S_surfxml_AS_7 43
4180 #define S_surfxml_AS_8 44
4181 #define S_surfxml_AS_9 45
4182 #define S_surfxml_AS_10 46
4183 #define S_surfxml_AS_11 47
4184 #define S_surfxml_AS_12 48
4185 #define S_surfxml_AS_13 49
4186 #define E_surfxml_AS 50
4187 #define AL_surfxml_storage_type 51
4188 #define S_surfxml_storage_type 52
4189 #define S_surfxml_storage_type_1 53
4190 #define S_surfxml_storage_type_2 54
4191 #define E_surfxml_storage_type 55
4192 #define AL_surfxml_storage 56
4193 #define S_surfxml_storage 57
4194 #define S_surfxml_storage_1 58
4195 #define S_surfxml_storage_2 59
4196 #define E_surfxml_storage 60
4197 #define AL_surfxml_mount 61
4198 #define E_surfxml_mount 62
4199 #define AL_surfxml_mstorage 63
4200 #define E_surfxml_mstorage 64
4201 #define AL_surfxml_host 65
4202 #define S_surfxml_host 66
4203 #define S_surfxml_host_1 67
4204 #define S_surfxml_host_2 68
4205 #define E_surfxml_host 69
4206 #define AL_surfxml_cluster 70
4207 #define E_surfxml_cluster 71
4208 #define AL_surfxml_peer 72
4209 #define E_surfxml_peer 73
4210 #define AL_surfxml_router 74
4211 #define E_surfxml_router 75
4212 #define AL_surfxml_link 76
4213 #define S_surfxml_link 77
4214 #define S_surfxml_link_1 78
4215 #define S_surfxml_link_2 79
4216 #define E_surfxml_link 80
4217 #define AL_surfxml_route 81
4218 #define S_surfxml_route 82
4219 #define S_surfxml_route_1 83
4220 #define S_surfxml_route_2 84
4221 #define E_surfxml_route 85
4222 #define AL_surfxml_ASroute 86
4223 #define S_surfxml_ASroute 87
4224 #define S_surfxml_ASroute_1 88
4225 #define S_surfxml_ASroute_2 89
4226 #define E_surfxml_ASroute 90
4227 #define AL_surfxml_link_ctn 91
4228 #define E_surfxml_link_ctn 92
4229 #define AL_surfxml_bypassRoute 93
4230 #define S_surfxml_bypassRoute 94
4231 #define S_surfxml_bypassRoute_1 95
4232 #define S_surfxml_bypassRoute_2 96
4233 #define E_surfxml_bypassRoute 97
4234 #define AL_surfxml_process 98
4235 #define S_surfxml_process 99
4236 #define S_surfxml_process_1 100
4237 #define S_surfxml_process_2 101
4238 #define E_surfxml_process 102
4239 #define AL_surfxml_argument 103
4240 #define E_surfxml_argument 104
4241 #define AL_surfxml_config 105
4242 #define S_surfxml_config 106
4243 #define S_surfxml_config_1 107
4244 #define S_surfxml_config_2 108
4245 #define E_surfxml_config 109
4246 #define AL_surfxml_prop 110
4247 #define E_surfxml_prop 111
4248 #define IMPOSSIBLE 112
4249
4250 #ifndef YY_NO_UNISTD_H
4251 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4252  * down here because we want the user's section 1 to have been scanned first.
4253  * The user has a chance to override it with an option.
4254  */
4255 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4256 #  ifndef __STRICT_ANSI__
4257 #    include <io.h>
4258 #    include <process.h>
4259 #  endif
4260 #else
4261 #  include <unistd.h>
4262 #endif
4263 #endif
4264
4265 #ifndef YY_EXTRA_TYPE
4266 #define YY_EXTRA_TYPE void *
4267 #endif
4268
4269 static int yy_init_globals (void );
4270
4271 /* Accessor methods to globals.
4272    These are made visible to non-reentrant scanners for convenience. */
4273
4274 int surf_parse_lex_destroy (void );
4275
4276 int surf_parse_get_debug (void );
4277
4278 void surf_parse_set_debug (int debug_flag  );
4279
4280 YY_EXTRA_TYPE surf_parse_get_extra (void );
4281
4282 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4283
4284 FILE *surf_parse_get_in (void );
4285
4286 void surf_parse_set_in  (FILE * in_str  );
4287
4288 FILE *surf_parse_get_out (void );
4289
4290 void surf_parse_set_out  (FILE * out_str  );
4291
4292 int surf_parse_get_leng (void );
4293
4294 char *surf_parse_get_text (void );
4295
4296 int surf_parse_get_lineno (void );
4297
4298 void surf_parse_set_lineno (int line_number  );
4299
4300 /* Macros after this point can all be overridden by user definitions in
4301  * section 1.
4302  */
4303
4304 #ifndef YY_SKIP_YYWRAP
4305 #ifdef __cplusplus
4306 extern "C" int surf_parse_wrap (void );
4307 #else
4308 extern int surf_parse_wrap (void );
4309 #endif
4310 #endif
4311
4312 #ifndef yytext_ptr
4313 static void yy_flex_strncpy (char *,yyconst char *,int );
4314 #endif
4315
4316 #ifdef YY_NEED_STRLEN
4317 static int yy_flex_strlen (yyconst char * );
4318 #endif
4319
4320 #ifndef YY_NO_INPUT
4321
4322 #ifdef __cplusplus
4323 static int yyinput (void );
4324 #else
4325 static int input (void );
4326 #endif
4327
4328 #endif
4329
4330         static int yy_start_stack_ptr = 0;
4331         static int yy_start_stack_depth = 0;
4332         static int *yy_start_stack = NULL;
4333     
4334     static void yy_push_state (int new_state );
4335     
4336     static void yy_pop_state (void );
4337     
4338 /* Amount of stuff to slurp up with each read. */
4339 #ifndef YY_READ_BUF_SIZE
4340 #ifdef __ia64__
4341 /* On IA-64, the buffer size is 16k, not 8k */
4342 #define YY_READ_BUF_SIZE 16384
4343 #else
4344 #define YY_READ_BUF_SIZE 8192
4345 #endif /* __ia64__ */
4346 #endif
4347
4348 /* Copy whatever the last rule matched to the standard output. */
4349 #ifndef ECHO
4350 /* This used to be an fputs(), but since the string might contain NUL's,
4351  * we now use fwrite().
4352  */
4353 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4354 #endif
4355
4356 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4357  * is returned in "result".
4358  */
4359 #ifndef YY_INPUT
4360 #define YY_INPUT(buf,result,max_size) \
4361         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4362                 { \
4363                 int c = '*'; \
4364                 size_t n; \
4365                 for ( n = 0; n < max_size && \
4366                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4367                         buf[n] = (char) c; \
4368                 if ( c == '\n' ) \
4369                         buf[n++] = (char) c; \
4370                 if ( c == EOF && ferror( surf_parse_in ) ) \
4371                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4372                 result = n; \
4373                 } \
4374         else \
4375                 { \
4376                 errno=0; \
4377                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4378                         { \
4379                         if( errno != EINTR) \
4380                                 { \
4381                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4382                                 break; \
4383                                 } \
4384                         errno=0; \
4385                         clearerr(surf_parse_in); \
4386                         } \
4387                 }\
4388 \
4389
4390 #endif
4391
4392 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4393  * we don't want an extra ';' after the "return" because that will cause
4394  * some compilers to complain about unreachable statements.
4395  */
4396 #ifndef yyterminate
4397 #define yyterminate() return YY_NULL
4398 #endif
4399
4400 /* Number of entries by which start-condition stack grows. */
4401 #ifndef YY_START_STACK_INCR
4402 #define YY_START_STACK_INCR 25
4403 #endif
4404
4405 /* Report a fatal error. */
4406 #ifndef YY_FATAL_ERROR
4407 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4408 #endif
4409
4410 /* end tables serialization structures and prototypes */
4411
4412 /* Default declaration of generated scanner - a define so the user can
4413  * easily add parameters.
4414  */
4415 #ifndef YY_DECL
4416 #define YY_DECL_IS_OURS 1
4417
4418 extern int surf_parse_lex (void);
4419
4420 #define YY_DECL int surf_parse_lex (void)
4421 #endif /* !YY_DECL */
4422
4423 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4424  * have been set up.
4425  */
4426 #ifndef YY_USER_ACTION
4427 #define YY_USER_ACTION
4428 #endif
4429
4430 /* Code executed at the end of each rule. */
4431 #ifndef YY_BREAK
4432 #define YY_BREAK break;
4433 #endif
4434
4435 #define YY_RULE_SETUP \
4436         YY_USER_ACTION
4437
4438 /** The main scanner function which does all the work.
4439  */
4440 YY_DECL
4441 {
4442         register yy_state_type yy_current_state;
4443         register char *yy_cp, *yy_bp;
4444         register int yy_act;
4445     
4446  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4447  SET(PROLOG);
4448  reset_surfxml_parse_err_msg();
4449  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4450  assert(surfxml_bufferstack);
4451  #ifdef FLEX_DEBUG
4452  {
4453      int i;
4454      for (i = 0; i < blimit; i++) {
4455          surfxml_bufferstack[i] = '\377';
4456      }
4457  }
4458  #endif
4459  surfxml_bufferstack[0] = '\0';
4460  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4461  assert(indexstack);
4462  indexstack[0] = 0;
4463
4464   /* FleXML_init */
4465   bnext = inext = 1;
4466   surfxml_bufferliteral('\0', &bnext, "0.0");
4467   surfxml_bufferliteral('\0', &bnext, "2147483647");
4468   surfxml_bufferliteral('\0', &bnext, "1");
4469   surfxml_bufferliteral('\0', &bnext, "1.0");
4470   surfxml_bufferliteral('\0', &bnext, "1");
4471   surfxml_bufferliteral('\0', &bnext, "0.0");
4472   surfxml_bufferliteral('\0', &bnext, "-1.0");
4473   surfxml_bufferliteral('\0', &bnext, "-1.0");
4474   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4475   surfxml_statenames[PROLOG] = NULL;
4476   surfxml_statenames[DOCTYPE] = NULL;
4477   surfxml_statenames[EPILOG] = NULL;
4478   surfxml_statenames[INCOMMENT] = NULL;
4479   surfxml_statenames[INPI] = NULL;
4480   surfxml_statenames[VALUE1] = NULL;
4481   surfxml_statenames[VALUE2] = NULL;
4482   surfxml_statenames[CDATA] = NULL;
4483   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4484   surfxml_statenames[AL_surfxml_platform] = NULL;
4485   surfxml_statenames[S_surfxml_platform] = "platform";
4486   surfxml_statenames[S_surfxml_platform_1] = "platform";
4487   surfxml_statenames[S_surfxml_platform_2] = "platform";
4488   surfxml_statenames[S_surfxml_platform_3] = "platform";
4489   surfxml_statenames[S_surfxml_platform_4] = "platform";
4490   surfxml_statenames[S_surfxml_platform_5] = "platform";
4491   surfxml_statenames[S_surfxml_platform_6] = "platform";
4492   surfxml_statenames[S_surfxml_platform_7] = "platform";
4493   surfxml_statenames[S_surfxml_platform_8] = "platform";
4494   surfxml_statenames[E_surfxml_platform] = "platform";
4495   surfxml_statenames[AL_surfxml_include] = NULL;
4496   surfxml_statenames[S_surfxml_include] = "include";
4497   surfxml_statenames[S_surfxml_include_1] = "include";
4498   surfxml_statenames[S_surfxml_include_2] = "include";
4499   surfxml_statenames[E_surfxml_include] = "include";
4500   surfxml_statenames[AL_surfxml_trace] = NULL;
4501   surfxml_statenames[IN_trace] = "trace";
4502   surfxml_statenames[AL_surfxml_random] = NULL;
4503   surfxml_statenames[S_surfxml_random] = "random";
4504   surfxml_statenames[S_surfxml_random_1] = "random";
4505   surfxml_statenames[S_surfxml_random_2] = "random";
4506   surfxml_statenames[E_surfxml_random] = "random";
4507   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4508   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4509   surfxml_statenames[AL_surfxml_AS] = NULL;
4510   surfxml_statenames[S_surfxml_AS] = "AS";
4511   surfxml_statenames[S_surfxml_AS_1] = "AS";
4512   surfxml_statenames[S_surfxml_AS_2] = "AS";
4513   surfxml_statenames[S_surfxml_AS_3] = "AS";
4514   surfxml_statenames[S_surfxml_AS_4] = "AS";
4515   surfxml_statenames[S_surfxml_AS_5] = "AS";
4516   surfxml_statenames[S_surfxml_AS_6] = "AS";
4517   surfxml_statenames[S_surfxml_AS_7] = "AS";
4518   surfxml_statenames[S_surfxml_AS_8] = "AS";
4519   surfxml_statenames[S_surfxml_AS_9] = "AS";
4520   surfxml_statenames[S_surfxml_AS_10] = "AS";
4521   surfxml_statenames[S_surfxml_AS_11] = "AS";
4522   surfxml_statenames[S_surfxml_AS_12] = "AS";
4523   surfxml_statenames[S_surfxml_AS_13] = "AS";
4524   surfxml_statenames[E_surfxml_AS] = "AS";
4525   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4526   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4527   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4528   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4529   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4530   surfxml_statenames[AL_surfxml_storage] = NULL;
4531   surfxml_statenames[S_surfxml_storage] = "storage";
4532   surfxml_statenames[S_surfxml_storage_1] = "storage";
4533   surfxml_statenames[S_surfxml_storage_2] = "storage";
4534   surfxml_statenames[E_surfxml_storage] = "storage";
4535   surfxml_statenames[AL_surfxml_mount] = NULL;
4536   surfxml_statenames[E_surfxml_mount] = "mount";
4537   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4538   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4539   surfxml_statenames[AL_surfxml_host] = NULL;
4540   surfxml_statenames[S_surfxml_host] = "host";
4541   surfxml_statenames[S_surfxml_host_1] = "host";
4542   surfxml_statenames[S_surfxml_host_2] = "host";
4543   surfxml_statenames[E_surfxml_host] = "host";
4544   surfxml_statenames[AL_surfxml_cluster] = NULL;
4545   surfxml_statenames[E_surfxml_cluster] = "cluster";
4546   surfxml_statenames[AL_surfxml_peer] = NULL;
4547   surfxml_statenames[E_surfxml_peer] = "peer";
4548   surfxml_statenames[AL_surfxml_router] = NULL;
4549   surfxml_statenames[E_surfxml_router] = "router";
4550   surfxml_statenames[AL_surfxml_link] = NULL;
4551   surfxml_statenames[S_surfxml_link] = "link";
4552   surfxml_statenames[S_surfxml_link_1] = "link";
4553   surfxml_statenames[S_surfxml_link_2] = "link";
4554   surfxml_statenames[E_surfxml_link] = "link";
4555   surfxml_statenames[AL_surfxml_route] = NULL;
4556   surfxml_statenames[S_surfxml_route] = "route";
4557   surfxml_statenames[S_surfxml_route_1] = "route";
4558   surfxml_statenames[S_surfxml_route_2] = "route";
4559   surfxml_statenames[E_surfxml_route] = "route";
4560   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4561   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4562   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4563   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4564   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4565   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4566   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4567   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4568   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4569   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4570   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4571   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4572   surfxml_statenames[AL_surfxml_process] = NULL;
4573   surfxml_statenames[S_surfxml_process] = "process";
4574   surfxml_statenames[S_surfxml_process_1] = "process";
4575   surfxml_statenames[S_surfxml_process_2] = "process";
4576   surfxml_statenames[E_surfxml_process] = "process";
4577   surfxml_statenames[AL_surfxml_argument] = NULL;
4578   surfxml_statenames[E_surfxml_argument] = "argument";
4579   surfxml_statenames[AL_surfxml_config] = NULL;
4580   surfxml_statenames[S_surfxml_config] = "config";
4581   surfxml_statenames[S_surfxml_config_1] = "config";
4582   surfxml_statenames[S_surfxml_config_2] = "config";
4583   surfxml_statenames[E_surfxml_config] = "config";
4584   surfxml_statenames[AL_surfxml_prop] = NULL;
4585   surfxml_statenames[E_surfxml_prop] = "prop";
4586   }
4587
4588  /* COMMENTS and PIs: handled uniformly for efficiency. */
4589
4590         if ( !(yy_init) )
4591                 {
4592                 (yy_init) = 1;
4593
4594 #ifdef YY_USER_INIT
4595                 YY_USER_INIT;
4596 #endif
4597
4598                 if ( ! (yy_start) )
4599                         (yy_start) = 1; /* first start state */
4600
4601                 if ( ! surf_parse_in )
4602                         surf_parse_in = stdin;
4603
4604                 if ( ! surf_parse_out )
4605                         surf_parse_out = stdout;
4606
4607                 if ( ! YY_CURRENT_BUFFER ) {
4608                         surf_parse_ensure_buffer_stack ();
4609                         YY_CURRENT_BUFFER_LVALUE =
4610                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4611                 }
4612
4613                 surf_parse__load_buffer_state( );
4614                 }
4615
4616         while ( 1 )             /* loops until end-of-file is reached */
4617                 {
4618                 yy_cp = (yy_c_buf_p);
4619
4620                 /* Support of surf_parse_text. */
4621                 *yy_cp = (yy_hold_char);
4622
4623                 /* yy_bp points to the position in yy_ch_buf of the start of
4624                  * the current run.
4625                  */
4626                 yy_bp = yy_cp;
4627
4628                 yy_current_state = (yy_start);
4629 yy_match:
4630                 do
4631                         {
4632                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4633                         if ( yy_accept[yy_current_state] )
4634                                 {
4635                                 (yy_last_accepting_state) = yy_current_state;
4636                                 (yy_last_accepting_cpos) = yy_cp;
4637                                 }
4638                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4639                                 {
4640                                 yy_current_state = (int) yy_def[yy_current_state];
4641                                 if ( yy_current_state >= 2703 )
4642                                         yy_c = yy_meta[(unsigned int) yy_c];
4643                                 }
4644                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4645                         ++yy_cp;
4646                         }
4647                 while ( yy_base[yy_current_state] != 9694 );
4648
4649 yy_find_action:
4650                 yy_act = yy_accept[yy_current_state];
4651                 if ( yy_act == 0 )
4652                         { /* have to back up */
4653                         yy_cp = (yy_last_accepting_cpos);
4654                         yy_current_state = (yy_last_accepting_state);
4655                         yy_act = yy_accept[yy_current_state];
4656                         }
4657
4658                 YY_DO_BEFORE_ACTION;
4659
4660                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4661                         {
4662                         int yyl;
4663                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4664                                 if ( surf_parse_text[yyl] == '\n' )
4665                                            
4666     surf_parse_lineno++;
4667 ;
4668                         }
4669
4670 do_action:      /* This label is used only to access EOF actions. */
4671
4672                 switch ( yy_act )
4673         { /* beginning of action switch */
4674                         case 0: /* must back up */
4675                         /* undo the effects of YY_DO_BEFORE_ACTION */
4676                         *yy_cp = (yy_hold_char);
4677                         yy_cp = (yy_last_accepting_cpos);
4678                         yy_current_state = (yy_last_accepting_state);
4679                         goto yy_find_action;
4680
4681 case 1:
4682 YY_RULE_SETUP
4683 ENTER(INCOMMENT);
4684         YY_BREAK
4685 case 2:
4686 YY_RULE_SETUP
4687 ENTER(INPI);
4688         YY_BREAK
4689
4690 case 3:
4691 YY_RULE_SETUP
4692 LEAVE;
4693         YY_BREAK
4694 case 4:
4695 case 5:
4696 case 6:
4697 /* rule 6 can match eol */
4698 YY_RULE_SETUP
4699 SKIP;
4700         YY_BREAK
4701 case YY_STATE_EOF(INCOMMENT):
4702 FAIL("EOF in comment.");
4703         YY_BREAK
4704
4705 case 7:
4706 YY_RULE_SETUP
4707 LEAVE;
4708         YY_BREAK
4709 case 8:
4710 case 9:
4711 /* rule 9 can match eol */
4712 YY_RULE_SETUP
4713 SKIP;
4714         YY_BREAK
4715 case YY_STATE_EOF(INPI):
4716 FAIL("EOF in PI (processing instruction).");
4717         YY_BREAK
4718
4719 /* SPACES: skipped uniformly */
4720 case 10:
4721 /* rule 10 can match eol */
4722 YY_RULE_SETUP
4723 SKIP;
4724         YY_BREAK
4725 /* PROLOG: determine root element and process it. */
4726
4727 case 11:
4728 /* rule 11 can match eol */
4729 YY_RULE_SETUP
4730 SET(DOCTYPE); 
4731         YY_BREAK
4732 case 12:
4733 /* rule 12 can match eol */
4734 YY_RULE_SETUP
4735 FAIL("Bad declaration %s.",surf_parse_text);
4736         YY_BREAK
4737
4738 case 13:
4739 /* rule 13 can match eol */
4740 YY_RULE_SETUP
4741 SET(ROOT_surfxml_platform);
4742         YY_BREAK
4743 case 14:
4744 /* rule 14 can match eol */
4745 YY_RULE_SETUP
4746 FAIL("Bad declaration %s.",surf_parse_text);
4747         YY_BREAK
4748 case 15:
4749 YY_RULE_SETUP
4750 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4751         YY_BREAK
4752 case YY_STATE_EOF(PROLOG):
4753 case YY_STATE_EOF(DOCTYPE):
4754 FAIL("EOF in prolog.");
4755         YY_BREAK
4756
4757 /* RULES DERIVED FROM DTD. */
4758 /* <!-- Small DTD for SURF based tools. -->  */
4759 case 16:
4760 /* rule 16 can match eol */
4761 YY_RULE_SETUP
4762 FAIL("Starting tag <platform> is not allowed here.");
4763         YY_BREAK
4764 case 17:
4765 /* rule 17 can match eol */
4766 YY_RULE_SETUP
4767 {
4768   AX_surfxml_platform_version = 1;
4769   surfxml_platform_version_isset = 0;
4770   ENTER(AL_surfxml_platform); pushbuffer(0);
4771   }
4772         YY_BREAK
4773
4774 case 18:
4775 /* rule 18 can match eol */
4776 YY_RULE_SETUP
4777 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);
4778         YY_BREAK
4779 case 19:
4780 /* rule 19 can match eol */
4781 YY_RULE_SETUP
4782 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);
4783         YY_BREAK
4784 case 20:
4785 YY_RULE_SETUP
4786 {
4787   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4788  }
4789         YY_BREAK
4790 case 21:
4791 YY_RULE_SETUP
4792 {
4793   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4794   switch (YY_START) {
4795    case ROOT_surfxml_platform: SET(EPILOG); break;
4796   }
4797  }
4798         YY_BREAK
4799 case 22:
4800 YY_RULE_SETUP
4801 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4802         YY_BREAK
4803 case 23:
4804 YY_RULE_SETUP
4805 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4806         YY_BREAK
4807 case YY_STATE_EOF(AL_surfxml_platform):
4808 FAIL("EOF in attribute list of `platform' element.");
4809         YY_BREAK
4810
4811 case 24:
4812 /* rule 24 can match eol */
4813 YY_RULE_SETUP
4814 {
4815   LEAVE;
4816   ETag_surfxml_platform();
4817   popbuffer(); /* attribute */
4818   switch (YY_START) {
4819    case ROOT_surfxml_platform: SET(EPILOG); break;
4820   }
4821  }
4822         YY_BREAK
4823 case 25:
4824 /* rule 25 can match eol */
4825 YY_RULE_SETUP
4826 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4827         YY_BREAK
4828 case 26:
4829 YY_RULE_SETUP
4830 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4831         YY_BREAK
4832 case YY_STATE_EOF(S_surfxml_platform_8):
4833 case YY_STATE_EOF(S_surfxml_platform_1):
4834 case YY_STATE_EOF(S_surfxml_platform_3):
4835 case YY_STATE_EOF(S_surfxml_platform):
4836 case YY_STATE_EOF(S_surfxml_platform_4):
4837 case YY_STATE_EOF(S_surfxml_platform_6):
4838 case YY_STATE_EOF(E_surfxml_platform):
4839 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
4840         YY_BREAK
4841
4842 case 27:
4843 /* rule 27 can match eol */
4844 YY_RULE_SETUP
4845 FAIL("Starting tag <include> is not allowed here.");
4846         YY_BREAK
4847 case 28:
4848 /* rule 28 can match eol */
4849 YY_RULE_SETUP
4850 {
4851   AX_surfxml_include_file = 0;
4852   surfxml_include_file_isset = 0;
4853   ENTER(AL_surfxml_include); pushbuffer(0);
4854   }
4855         YY_BREAK
4856
4857 case 29:
4858 /* rule 29 can match eol */
4859 YY_RULE_SETUP
4860 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);
4861         YY_BREAK
4862 case 30:
4863 /* rule 30 can match eol */
4864 YY_RULE_SETUP
4865 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);
4866         YY_BREAK
4867 case 31:
4868 YY_RULE_SETUP
4869 {
4870   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4871   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
4872  }
4873         YY_BREAK
4874 case 32:
4875 YY_RULE_SETUP
4876 {
4877   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4878   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
4879   switch (YY_START) {
4880    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4881    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4882    case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
4883    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
4884   }
4885  }
4886         YY_BREAK
4887 case 33:
4888 YY_RULE_SETUP
4889 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
4890         YY_BREAK
4891 case 34:
4892 YY_RULE_SETUP
4893 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
4894         YY_BREAK
4895 case YY_STATE_EOF(AL_surfxml_include):
4896 FAIL("EOF in attribute list of `include' element.");
4897         YY_BREAK
4898
4899 case 35:
4900 /* rule 35 can match eol */
4901 YY_RULE_SETUP
4902 {
4903   LEAVE;
4904   ETag_surfxml_include();
4905   popbuffer(); /* attribute */
4906   switch (YY_START) {
4907    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4908    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4909    case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
4910    case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_8); break;
4911   }
4912  }
4913         YY_BREAK
4914 case 36:
4915 /* rule 36 can match eol */
4916 YY_RULE_SETUP
4917 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
4918         YY_BREAK
4919 case 37:
4920 YY_RULE_SETUP
4921 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
4922         YY_BREAK
4923 case YY_STATE_EOF(E_surfxml_include):
4924 case YY_STATE_EOF(S_surfxml_include):
4925 case YY_STATE_EOF(S_surfxml_include_2):
4926 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
4927         YY_BREAK
4928
4929 case 38:
4930 /* rule 38 can match eol */
4931 YY_RULE_SETUP
4932 FAIL("Starting tag <trace> is not allowed here.");
4933         YY_BREAK
4934 case 39:
4935 /* rule 39 can match eol */
4936 YY_RULE_SETUP
4937 {
4938   AX_surfxml_trace_id = 0;
4939   surfxml_trace_id_isset = 0;
4940   AX_surfxml_trace_file = 0;
4941   surfxml_trace_file_isset = 0;
4942   AX_surfxml_trace_periodicity = 0;
4943   surfxml_trace_periodicity_isset = 0;
4944   ENTER(AL_surfxml_trace); pushbuffer(0);
4945   }
4946         YY_BREAK
4947
4948 case 40:
4949 /* rule 40 can match eol */
4950 YY_RULE_SETUP
4951 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);
4952         YY_BREAK
4953 case 41:
4954 /* rule 41 can match eol */
4955 YY_RULE_SETUP
4956 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);
4957         YY_BREAK
4958 case 42:
4959 /* rule 42 can match eol */
4960 YY_RULE_SETUP
4961 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);
4962         YY_BREAK
4963 case 43:
4964 /* rule 43 can match eol */
4965 YY_RULE_SETUP
4966 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);
4967         YY_BREAK
4968 case 44:
4969 /* rule 44 can match eol */
4970 YY_RULE_SETUP
4971 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);
4972         YY_BREAK
4973 case 45:
4974 /* rule 45 can match eol */
4975 YY_RULE_SETUP
4976 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);
4977         YY_BREAK
4978 case 46:
4979 YY_RULE_SETUP
4980 {
4981   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4982   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4983   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
4984  }
4985         YY_BREAK
4986 case 47:
4987 YY_RULE_SETUP
4988 {
4989   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4990   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4991   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
4992   switch (YY_START) {
4993    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;
4994    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4995    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4996    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
4997    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;
4998    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4999   }
5000  }
5001         YY_BREAK
5002 case 48:
5003 YY_RULE_SETUP
5004 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5005         YY_BREAK
5006 case 49:
5007 YY_RULE_SETUP
5008 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5009         YY_BREAK
5010 case YY_STATE_EOF(AL_surfxml_trace):
5011 FAIL("EOF in attribute list of `trace' element.");
5012         YY_BREAK
5013
5014 case 50:
5015 /* rule 50 can match eol */
5016 YY_RULE_SETUP
5017 {
5018   LEAVE;
5019   BUFFERDONE;
5020   ETag_surfxml_trace();
5021   surfxml_pcdata_ix = popbuffer();
5022   popbuffer(); /* attribute */
5023   switch (YY_START) {
5024    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;
5025    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5026    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5027    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5028    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;
5029    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5030   }
5031  }
5032         YY_BREAK
5033 case 51:
5034 /* rule 51 can match eol */
5035 YY_RULE_SETUP
5036 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5037         YY_BREAK
5038 case YY_STATE_EOF(IN_trace):
5039 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5040         YY_BREAK
5041
5042 case 52:
5043 /* rule 52 can match eol */
5044 YY_RULE_SETUP
5045 FAIL("Starting tag <random> is not allowed here.");
5046         YY_BREAK
5047 case 53:
5048 /* rule 53 can match eol */
5049 YY_RULE_SETUP
5050 {
5051   AX_surfxml_random_id = 0;
5052   surfxml_random_id_isset = 0;
5053   AX_surfxml_random_min = 0;
5054   surfxml_random_min_isset = 0;
5055   AX_surfxml_random_max = 0;
5056   surfxml_random_max_isset = 0;
5057   AX_surfxml_random_mean = 0;
5058   surfxml_random_mean_isset = 0;
5059   AX_surfxml_random_std_deviation = 0;
5060   surfxml_random_std_deviation_isset = 0;
5061   AX_surfxml_random_seed = 5;
5062   surfxml_random_seed_isset = 0;
5063   AX_surfxml_random_radical = 0;
5064   surfxml_random_radical_isset = 0;
5065   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5066   surfxml_random_generator_isset = 0;
5067   ENTER(AL_surfxml_random); pushbuffer(0);
5068   }
5069         YY_BREAK
5070
5071 case 54:
5072 /* rule 54 can match eol */
5073 YY_RULE_SETUP
5074 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);
5075         YY_BREAK
5076 case 55:
5077 /* rule 55 can match eol */
5078 YY_RULE_SETUP
5079 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);
5080         YY_BREAK
5081 case 56:
5082 /* rule 56 can match eol */
5083 YY_RULE_SETUP
5084 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);
5085         YY_BREAK
5086 case 57:
5087 /* rule 57 can match eol */
5088 YY_RULE_SETUP
5089 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);
5090         YY_BREAK
5091 case 58:
5092 /* rule 58 can match eol */
5093 YY_RULE_SETUP
5094 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);
5095         YY_BREAK
5096 case 59:
5097 /* rule 59 can match eol */
5098 YY_RULE_SETUP
5099 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);
5100         YY_BREAK
5101 case 60:
5102 /* rule 60 can match eol */
5103 YY_RULE_SETUP
5104 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);
5105         YY_BREAK
5106 case 61:
5107 /* rule 61 can match eol */
5108 YY_RULE_SETUP
5109 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);
5110         YY_BREAK
5111 case 62:
5112 /* rule 62 can match eol */
5113 YY_RULE_SETUP
5114 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);
5115         YY_BREAK
5116 case 63:
5117 /* rule 63 can match eol */
5118 YY_RULE_SETUP
5119 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);
5120         YY_BREAK
5121 case 64:
5122 /* rule 64 can match eol */
5123 YY_RULE_SETUP
5124 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);
5125         YY_BREAK
5126 case 65:
5127 /* rule 65 can match eol */
5128 YY_RULE_SETUP
5129 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);
5130         YY_BREAK
5131 case 66:
5132 /* rule 66 can match eol */
5133 YY_RULE_SETUP
5134 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);
5135         YY_BREAK
5136 case 67:
5137 /* rule 67 can match eol */
5138 YY_RULE_SETUP
5139 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);
5140         YY_BREAK
5141 case 68:
5142 /* rule 68 can match eol */
5143 case 69:
5144 /* rule 69 can match eol */
5145 YY_RULE_SETUP
5146 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5147         YY_BREAK
5148 case 70:
5149 /* rule 70 can match eol */
5150 case 71:
5151 /* rule 71 can match eol */
5152 YY_RULE_SETUP
5153 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5154         YY_BREAK
5155 case 72:
5156 /* rule 72 can match eol */
5157 case 73:
5158 /* rule 73 can match eol */
5159 YY_RULE_SETUP
5160 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5161         YY_BREAK
5162 case 74:
5163 /* rule 74 can match eol */
5164 case 75:
5165 /* rule 75 can match eol */
5166 YY_RULE_SETUP
5167 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5168         YY_BREAK
5169 case 76:
5170 YY_RULE_SETUP
5171 {
5172   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5173   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5174   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5175   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5176   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5177   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5178  }
5179         YY_BREAK
5180 case 77:
5181 YY_RULE_SETUP
5182 {
5183   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5184   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5185   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5186   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5187   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5188   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5189   switch (YY_START) {
5190    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5191   }
5192  }
5193         YY_BREAK
5194 case 78:
5195 YY_RULE_SETUP
5196 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5197         YY_BREAK
5198 case 79:
5199 YY_RULE_SETUP
5200 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5201         YY_BREAK
5202 case YY_STATE_EOF(AL_surfxml_random):
5203 FAIL("EOF in attribute list of `random' element.");
5204         YY_BREAK
5205
5206 case 80:
5207 /* rule 80 can match eol */
5208 YY_RULE_SETUP
5209 {
5210   LEAVE;
5211   ETag_surfxml_random();
5212   popbuffer(); /* attribute */
5213   switch (YY_START) {
5214    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5215   }
5216  }
5217         YY_BREAK
5218 case 81:
5219 /* rule 81 can match eol */
5220 YY_RULE_SETUP
5221 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5222         YY_BREAK
5223 case 82:
5224 YY_RULE_SETUP
5225 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5226         YY_BREAK
5227 case YY_STATE_EOF(S_surfxml_random):
5228 case YY_STATE_EOF(S_surfxml_random_2):
5229 case YY_STATE_EOF(E_surfxml_random):
5230 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5231         YY_BREAK
5232
5233 case 83:
5234 /* rule 83 can match eol */
5235 YY_RULE_SETUP
5236 FAIL("Starting tag <trace_connect> is not allowed here.");
5237         YY_BREAK
5238 case 84:
5239 /* rule 84 can match eol */
5240 YY_RULE_SETUP
5241 {
5242   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5243   surfxml_trace_connect_kind_isset = 0;
5244   AX_surfxml_trace_connect_trace = 0;
5245   surfxml_trace_connect_trace_isset = 0;
5246   AX_surfxml_trace_connect_element = 0;
5247   surfxml_trace_connect_element_isset = 0;
5248   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5249   }
5250         YY_BREAK
5251
5252 case 85:
5253 /* rule 85 can match eol */
5254 case 86:
5255 /* rule 86 can match eol */
5256 YY_RULE_SETUP
5257 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5258         YY_BREAK
5259 case 87:
5260 /* rule 87 can match eol */
5261 case 88:
5262 /* rule 88 can match eol */
5263 YY_RULE_SETUP
5264 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5265         YY_BREAK
5266 case 89:
5267 /* rule 89 can match eol */
5268 case 90:
5269 /* rule 90 can match eol */
5270 YY_RULE_SETUP
5271 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5272         YY_BREAK
5273 case 91:
5274 /* rule 91 can match eol */
5275 case 92:
5276 /* rule 92 can match eol */
5277 YY_RULE_SETUP
5278 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5279         YY_BREAK
5280 case 93:
5281 /* rule 93 can match eol */
5282 case 94:
5283 /* rule 94 can match eol */
5284 YY_RULE_SETUP
5285 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5286         YY_BREAK
5287 case 95:
5288 /* rule 95 can match eol */
5289 YY_RULE_SETUP
5290 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);
5291         YY_BREAK
5292 case 96:
5293 /* rule 96 can match eol */
5294 YY_RULE_SETUP
5295 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);
5296         YY_BREAK
5297 case 97:
5298 /* rule 97 can match eol */
5299 YY_RULE_SETUP
5300 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);
5301         YY_BREAK
5302 case 98:
5303 /* rule 98 can match eol */
5304 YY_RULE_SETUP
5305 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);
5306         YY_BREAK
5307 case 99:
5308 YY_RULE_SETUP
5309 {
5310   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5311   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5312   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5313  }
5314         YY_BREAK
5315 case 100:
5316 YY_RULE_SETUP
5317 {
5318   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5319   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5320   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5321   switch (YY_START) {
5322    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;
5323    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5324    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5325    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5326    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;
5327    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5328   }
5329  }
5330         YY_BREAK
5331 case 101:
5332 YY_RULE_SETUP
5333 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5334         YY_BREAK
5335 case 102:
5336 YY_RULE_SETUP
5337 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5338         YY_BREAK
5339 case YY_STATE_EOF(AL_surfxml_trace_connect):
5340 FAIL("EOF in attribute list of `trace_connect' element.");
5341         YY_BREAK
5342
5343 case 103:
5344 /* rule 103 can match eol */
5345 YY_RULE_SETUP
5346 {
5347   LEAVE;
5348   ETag_surfxml_trace_connect();
5349   popbuffer(); /* attribute */
5350   switch (YY_START) {
5351    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;
5352    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5353    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5354    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5355    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;
5356    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5357   }
5358  }
5359         YY_BREAK
5360 case 104:
5361 /* rule 104 can match eol */
5362 YY_RULE_SETUP
5363 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5364         YY_BREAK
5365 case 105:
5366 YY_RULE_SETUP
5367 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5368         YY_BREAK
5369 case YY_STATE_EOF(E_surfxml_trace_connect):
5370 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5371         YY_BREAK
5372
5373 case 106:
5374 /* rule 106 can match eol */
5375 YY_RULE_SETUP
5376 FAIL("Starting tag <AS> is not allowed here.");
5377         YY_BREAK
5378 case 107:
5379 /* rule 107 can match eol */
5380 YY_RULE_SETUP
5381 {
5382   AX_surfxml_AS_id = 0;
5383   surfxml_AS_id_isset = 0;
5384   AX_surfxml_AS_routing = 0;
5385   surfxml_AS_routing_isset = 0;
5386   ENTER(AL_surfxml_AS); pushbuffer(0);
5387   }
5388         YY_BREAK
5389
5390 case 108:
5391 /* rule 108 can match eol */
5392 YY_RULE_SETUP
5393 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);
5394         YY_BREAK
5395 case 109:
5396 /* rule 109 can match eol */
5397 YY_RULE_SETUP
5398 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);
5399         YY_BREAK
5400 case 110:
5401 /* rule 110 can match eol */
5402 YY_RULE_SETUP
5403 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");} surfxml_AS_routing_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
5404         YY_BREAK
5405 case 111:
5406 /* rule 111 can match eol */
5407 YY_RULE_SETUP
5408 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");}  surfxml_AS_routing_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
5409         YY_BREAK
5410 case 112:
5411 YY_RULE_SETUP
5412 {
5413   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5414   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5415   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5416  }
5417         YY_BREAK
5418 case 113:
5419 YY_RULE_SETUP
5420 {
5421   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5422   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5423   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5424   switch (YY_START) {
5425    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5426    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;
5427    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5428   }
5429  }
5430         YY_BREAK
5431 case 114:
5432 YY_RULE_SETUP
5433 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5434         YY_BREAK
5435 case 115:
5436 YY_RULE_SETUP
5437 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5438         YY_BREAK
5439 case YY_STATE_EOF(AL_surfxml_AS):
5440 FAIL("EOF in attribute list of `AS' element.");
5441         YY_BREAK
5442
5443 case 116:
5444 /* rule 116 can match eol */
5445 YY_RULE_SETUP
5446 {
5447   LEAVE;
5448   ETag_surfxml_AS();
5449   popbuffer(); /* attribute */
5450   switch (YY_START) {
5451    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5452    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;
5453    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5454   }
5455  }
5456         YY_BREAK
5457 case 117:
5458 /* rule 117 can match eol */
5459 YY_RULE_SETUP
5460 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5461         YY_BREAK
5462 case 118:
5463 YY_RULE_SETUP
5464 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5465         YY_BREAK
5466 case YY_STATE_EOF(S_surfxml_AS_9):
5467 case YY_STATE_EOF(S_surfxml_AS_1):
5468 case YY_STATE_EOF(S_surfxml_AS_11):
5469 case YY_STATE_EOF(S_surfxml_AS_6):
5470 case YY_STATE_EOF(E_surfxml_AS):
5471 case YY_STATE_EOF(S_surfxml_AS_3):
5472 case YY_STATE_EOF(S_surfxml_AS_13):
5473 case YY_STATE_EOF(S_surfxml_AS_8):
5474 case YY_STATE_EOF(S_surfxml_AS):
5475 case YY_STATE_EOF(S_surfxml_AS_4):
5476 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5477         YY_BREAK
5478
5479 case 119:
5480 /* rule 119 can match eol */
5481 YY_RULE_SETUP
5482 FAIL("Starting tag <storage_type> is not allowed here.");
5483         YY_BREAK
5484 case 120:
5485 /* rule 120 can match eol */
5486 YY_RULE_SETUP
5487 {
5488   AX_surfxml_storage_type_id = 0;
5489   surfxml_storage_type_id_isset = 0;
5490   AX_surfxml_storage_type_model = 0;
5491   surfxml_storage_type_model_isset = 0;
5492   AX_surfxml_storage_type_content = 0;
5493   surfxml_storage_type_content_isset = 0;
5494   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5495   }
5496         YY_BREAK
5497
5498 case 121:
5499 /* rule 121 can match eol */
5500 YY_RULE_SETUP
5501 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);
5502         YY_BREAK
5503 case 122:
5504 /* rule 122 can match eol */
5505 YY_RULE_SETUP
5506 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);
5507         YY_BREAK
5508 case 123:
5509 /* rule 123 can match eol */
5510 YY_RULE_SETUP
5511 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);
5512         YY_BREAK
5513 case 124:
5514 /* rule 124 can match eol */
5515 YY_RULE_SETUP
5516 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);
5517         YY_BREAK
5518 case 125:
5519 /* rule 125 can match eol */
5520 YY_RULE_SETUP
5521 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);
5522         YY_BREAK
5523 case 126:
5524 /* rule 126 can match eol */
5525 YY_RULE_SETUP
5526 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);
5527         YY_BREAK
5528 case 127:
5529 YY_RULE_SETUP
5530 {
5531   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5532   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5533   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5534  }
5535         YY_BREAK
5536 case 128:
5537 YY_RULE_SETUP
5538 {
5539   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5540   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5541   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5542   switch (YY_START) {
5543    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5544    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5545   }
5546  }
5547         YY_BREAK
5548 case 129:
5549 YY_RULE_SETUP
5550 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5551         YY_BREAK
5552 case 130:
5553 YY_RULE_SETUP
5554 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5555         YY_BREAK
5556 case YY_STATE_EOF(AL_surfxml_storage_type):
5557 FAIL("EOF in attribute list of `storage_type' element.");
5558         YY_BREAK
5559
5560 case 131:
5561 /* rule 131 can match eol */
5562 YY_RULE_SETUP
5563 {
5564   LEAVE;
5565   ETag_surfxml_storage_type();
5566   popbuffer(); /* attribute */
5567   switch (YY_START) {
5568    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5569    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5570   }
5571  }
5572         YY_BREAK
5573 case 132:
5574 /* rule 132 can match eol */
5575 YY_RULE_SETUP
5576 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5577         YY_BREAK
5578 case 133:
5579 YY_RULE_SETUP
5580 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5581         YY_BREAK
5582 case YY_STATE_EOF(E_surfxml_storage_type):
5583 case YY_STATE_EOF(S_surfxml_storage_type_2):
5584 case YY_STATE_EOF(S_surfxml_storage_type):
5585 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5586         YY_BREAK
5587
5588 case 134:
5589 /* rule 134 can match eol */
5590 YY_RULE_SETUP
5591 FAIL("Starting tag <storage> is not allowed here.");
5592         YY_BREAK
5593 case 135:
5594 /* rule 135 can match eol */
5595 YY_RULE_SETUP
5596 {
5597   AX_surfxml_storage_id = 0;
5598   surfxml_storage_id_isset = 0;
5599   AX_surfxml_storage_typeId = 0;
5600   surfxml_storage_typeId_isset = 0;
5601   ENTER(AL_surfxml_storage); pushbuffer(0);
5602   }
5603         YY_BREAK
5604
5605 case 136:
5606 /* rule 136 can match eol */
5607 YY_RULE_SETUP
5608 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);
5609         YY_BREAK
5610 case 137:
5611 /* rule 137 can match eol */
5612 YY_RULE_SETUP
5613 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);
5614         YY_BREAK
5615 case 138:
5616 /* rule 138 can match eol */
5617 YY_RULE_SETUP
5618 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);
5619         YY_BREAK
5620 case 139:
5621 /* rule 139 can match eol */
5622 YY_RULE_SETUP
5623 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);
5624         YY_BREAK
5625 case 140:
5626 YY_RULE_SETUP
5627 {
5628   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5629   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5630   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5631  }
5632         YY_BREAK
5633 case 141:
5634 YY_RULE_SETUP
5635 {
5636   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5637   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5638   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5639   switch (YY_START) {
5640    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5641    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5642   }
5643  }
5644         YY_BREAK
5645 case 142:
5646 YY_RULE_SETUP
5647 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5648         YY_BREAK
5649 case 143:
5650 YY_RULE_SETUP
5651 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5652         YY_BREAK
5653 case YY_STATE_EOF(AL_surfxml_storage):
5654 FAIL("EOF in attribute list of `storage' element.");
5655         YY_BREAK
5656
5657 case 144:
5658 /* rule 144 can match eol */
5659 YY_RULE_SETUP
5660 {
5661   LEAVE;
5662   ETag_surfxml_storage();
5663   popbuffer(); /* attribute */
5664   switch (YY_START) {
5665    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5666    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5667   }
5668  }
5669         YY_BREAK
5670 case 145:
5671 /* rule 145 can match eol */
5672 YY_RULE_SETUP
5673 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5674         YY_BREAK
5675 case 146:
5676 YY_RULE_SETUP
5677 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5678         YY_BREAK
5679 case YY_STATE_EOF(E_surfxml_storage):
5680 case YY_STATE_EOF(S_surfxml_storage):
5681 case YY_STATE_EOF(S_surfxml_storage_2):
5682 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5683         YY_BREAK
5684
5685 case 147:
5686 /* rule 147 can match eol */
5687 YY_RULE_SETUP
5688 FAIL("Starting tag <mount> is not allowed here.");
5689         YY_BREAK
5690 case 148:
5691 /* rule 148 can match eol */
5692 YY_RULE_SETUP
5693 {
5694   AX_surfxml_mount_id = 0;
5695   surfxml_mount_id_isset = 0;
5696   AX_surfxml_mount_name = 0;
5697   surfxml_mount_name_isset = 0;
5698   ENTER(AL_surfxml_mount); pushbuffer(0);
5699   }
5700         YY_BREAK
5701
5702 case 149:
5703 /* rule 149 can match eol */
5704 YY_RULE_SETUP
5705 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);
5706         YY_BREAK
5707 case 150:
5708 /* rule 150 can match eol */
5709 YY_RULE_SETUP
5710 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);
5711         YY_BREAK
5712 case 151:
5713 /* rule 151 can match eol */
5714 YY_RULE_SETUP
5715 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);
5716         YY_BREAK
5717 case 152:
5718 /* rule 152 can match eol */
5719 YY_RULE_SETUP
5720 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);
5721         YY_BREAK
5722 case 153:
5723 YY_RULE_SETUP
5724 {
5725   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5726   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5727   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
5728  }
5729         YY_BREAK
5730 case 154:
5731 YY_RULE_SETUP
5732 {
5733   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5734   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5735   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
5736   switch (YY_START) {
5737    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5738   }
5739  }
5740         YY_BREAK
5741 case 155:
5742 YY_RULE_SETUP
5743 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
5744         YY_BREAK
5745 case 156:
5746 YY_RULE_SETUP
5747 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
5748         YY_BREAK
5749 case YY_STATE_EOF(AL_surfxml_mount):
5750 FAIL("EOF in attribute list of `mount' element.");
5751         YY_BREAK
5752
5753 case 157:
5754 /* rule 157 can match eol */
5755 YY_RULE_SETUP
5756 {
5757   LEAVE;
5758   ETag_surfxml_mount();
5759   popbuffer(); /* attribute */
5760   switch (YY_START) {
5761    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5762   }
5763  }
5764         YY_BREAK
5765 case 158:
5766 /* rule 158 can match eol */
5767 YY_RULE_SETUP
5768 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
5769         YY_BREAK
5770 case 159:
5771 YY_RULE_SETUP
5772 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
5773         YY_BREAK
5774 case YY_STATE_EOF(E_surfxml_mount):
5775 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
5776         YY_BREAK
5777
5778 case 160:
5779 /* rule 160 can match eol */
5780 YY_RULE_SETUP
5781 FAIL("Starting tag <mstorage> is not allowed here.");
5782         YY_BREAK
5783 case 161:
5784 /* rule 161 can match eol */
5785 YY_RULE_SETUP
5786 {
5787   AX_surfxml_mstorage_typeId = 0;
5788   surfxml_mstorage_typeId_isset = 0;
5789   AX_surfxml_mstorage_name = 0;
5790   surfxml_mstorage_name_isset = 0;
5791   ENTER(AL_surfxml_mstorage); pushbuffer(0);
5792   }
5793         YY_BREAK
5794
5795 case 162:
5796 /* rule 162 can match eol */
5797 YY_RULE_SETUP
5798 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);
5799         YY_BREAK
5800 case 163:
5801 /* rule 163 can match eol */
5802 YY_RULE_SETUP
5803 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);
5804         YY_BREAK
5805 case 164:
5806 /* rule 164 can match eol */
5807 YY_RULE_SETUP
5808 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);
5809         YY_BREAK
5810 case 165:
5811 /* rule 165 can match eol */
5812 YY_RULE_SETUP
5813 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);
5814         YY_BREAK
5815 case 166:
5816 YY_RULE_SETUP
5817 {
5818   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5819   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5820   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
5821  }
5822         YY_BREAK
5823 case 167:
5824 YY_RULE_SETUP
5825 {
5826   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5827   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5828   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
5829   switch (YY_START) {
5830    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5831   }
5832  }
5833         YY_BREAK
5834 case 168:
5835 YY_RULE_SETUP
5836 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
5837         YY_BREAK
5838 case 169:
5839 YY_RULE_SETUP
5840 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
5841         YY_BREAK
5842 case YY_STATE_EOF(AL_surfxml_mstorage):
5843 FAIL("EOF in attribute list of `mstorage' element.");
5844         YY_BREAK
5845
5846 case 170:
5847 /* rule 170 can match eol */
5848 YY_RULE_SETUP
5849 {
5850   LEAVE;
5851   ETag_surfxml_mstorage();
5852   popbuffer(); /* attribute */
5853   switch (YY_START) {
5854    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5855   }
5856  }
5857         YY_BREAK
5858 case 171:
5859 /* rule 171 can match eol */
5860 YY_RULE_SETUP
5861 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
5862         YY_BREAK
5863 case 172:
5864 YY_RULE_SETUP
5865 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
5866         YY_BREAK
5867 case YY_STATE_EOF(E_surfxml_mstorage):
5868 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
5869         YY_BREAK
5870
5871 case 173:
5872 /* rule 173 can match eol */
5873 YY_RULE_SETUP
5874 FAIL("Starting tag <host> is not allowed here.");
5875         YY_BREAK
5876 case 174:
5877 /* rule 174 can match eol */
5878 YY_RULE_SETUP
5879 {
5880   AX_surfxml_host_id = 0;
5881   surfxml_host_id_isset = 0;
5882   AX_surfxml_host_power = 0;
5883   surfxml_host_power_isset = 0;
5884   AX_surfxml_host_core = 16;
5885   surfxml_host_core_isset = 0;
5886   AX_surfxml_host_availability = 18;
5887   surfxml_host_availability_isset = 0;
5888   AX_surfxml_host_availability_file = 0;
5889   surfxml_host_availability_file_isset = 0;
5890   AX_surfxml_host_state = A_surfxml_host_state_ON;
5891   surfxml_host_state_isset = 0;
5892   AX_surfxml_host_state_file = 0;
5893   surfxml_host_state_file_isset = 0;
5894   AX_surfxml_host_coordinates = 0;
5895   surfxml_host_coordinates_isset = 0;
5896   ENTER(AL_surfxml_host); pushbuffer(0);
5897   }
5898         YY_BREAK
5899
5900 case 175:
5901 /* rule 175 can match eol */
5902 YY_RULE_SETUP
5903 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);
5904         YY_BREAK
5905 case 176:
5906 /* rule 176 can match eol */
5907 YY_RULE_SETUP
5908 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);
5909         YY_BREAK
5910 case 177:
5911 /* rule 177 can match eol */
5912 YY_RULE_SETUP
5913 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);
5914         YY_BREAK
5915 case 178:
5916 /* rule 178 can match eol */
5917 YY_RULE_SETUP
5918 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);
5919         YY_BREAK
5920 case 179:
5921 /* rule 179 can match eol */
5922 YY_RULE_SETUP
5923 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);
5924         YY_BREAK
5925 case 180:
5926 /* rule 180 can match eol */
5927 YY_RULE_SETUP
5928 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);
5929         YY_BREAK
5930 case 181:
5931 /* rule 181 can match eol */
5932 YY_RULE_SETUP
5933 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);
5934         YY_BREAK
5935 case 182:
5936 /* rule 182 can match eol */
5937 YY_RULE_SETUP
5938 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);
5939         YY_BREAK
5940 case 183:
5941 /* rule 183 can match eol */
5942 YY_RULE_SETUP
5943 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);
5944         YY_BREAK
5945 case 184:
5946 /* rule 184 can match eol */
5947 YY_RULE_SETUP
5948 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);
5949         YY_BREAK
5950 case 185:
5951 /* rule 185 can match eol */
5952 case 186:
5953 /* rule 186 can match eol */
5954 YY_RULE_SETUP
5955 A_surfxml_host_state = A_surfxml_host_state_ON;
5956         YY_BREAK
5957 case 187:
5958 /* rule 187 can match eol */
5959 case 188:
5960 /* rule 188 can match eol */
5961 YY_RULE_SETUP
5962 A_surfxml_host_state = A_surfxml_host_state_OFF;
5963         YY_BREAK
5964 case 189:
5965 /* rule 189 can match eol */
5966 YY_RULE_SETUP
5967 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);
5968         YY_BREAK
5969 case 190:
5970 /* rule 190 can match eol */
5971 YY_RULE_SETUP
5972 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);
5973         YY_BREAK
5974 case 191:
5975 /* rule 191 can match eol */
5976 YY_RULE_SETUP
5977 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);
5978         YY_BREAK
5979 case 192:
5980 /* rule 192 can match eol */
5981 YY_RULE_SETUP
5982 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);
5983         YY_BREAK
5984 case 193:
5985 YY_RULE_SETUP
5986 {
5987   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
5988   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
5989   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
5990  }
5991         YY_BREAK
5992 case 194:
5993 YY_RULE_SETUP
5994 {
5995   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
5996   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
5997   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
5998   switch (YY_START) {
5999    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6000   }
6001  }
6002         YY_BREAK
6003 case 195:
6004 YY_RULE_SETUP
6005 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6006         YY_BREAK
6007 case 196:
6008 YY_RULE_SETUP
6009 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6010         YY_BREAK
6011 case YY_STATE_EOF(AL_surfxml_host):
6012 FAIL("EOF in attribute list of `host' element.");
6013         YY_BREAK
6014
6015 case 197:
6016 /* rule 197 can match eol */
6017 YY_RULE_SETUP
6018 {
6019   LEAVE;
6020   ETag_surfxml_host();
6021   popbuffer(); /* attribute */
6022   switch (YY_START) {
6023    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6024   }
6025  }
6026         YY_BREAK
6027 case 198:
6028 /* rule 198 can match eol */
6029 YY_RULE_SETUP
6030 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6031         YY_BREAK
6032 case 199:
6033 YY_RULE_SETUP
6034 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6035         YY_BREAK
6036 case YY_STATE_EOF(S_surfxml_host):
6037 case YY_STATE_EOF(E_surfxml_host):
6038 case YY_STATE_EOF(S_surfxml_host_2):
6039 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6040         YY_BREAK
6041
6042 case 200:
6043 /* rule 200 can match eol */
6044 YY_RULE_SETUP
6045 FAIL("Starting tag <cluster> is not allowed here.");
6046         YY_BREAK
6047 case 201:
6048 /* rule 201 can match eol */
6049 YY_RULE_SETUP
6050 {
6051   AX_surfxml_cluster_id = 0;
6052   surfxml_cluster_id_isset = 0;
6053   AX_surfxml_cluster_prefix = 0;
6054   surfxml_cluster_prefix_isset = 0;
6055   AX_surfxml_cluster_suffix = 0;
6056   surfxml_cluster_suffix_isset = 0;
6057   AX_surfxml_cluster_radical = 0;
6058   surfxml_cluster_radical_isset = 0;
6059   AX_surfxml_cluster_power = 0;
6060   surfxml_cluster_power_isset = 0;
6061   AX_surfxml_cluster_core = 22;
6062   surfxml_cluster_core_isset = 0;
6063   AX_surfxml_cluster_bw = 0;
6064   surfxml_cluster_bw_isset = 0;
6065   AX_surfxml_cluster_lat = 0;
6066   surfxml_cluster_lat_isset = 0;
6067   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6068   surfxml_cluster_sharing_policy_isset = 0;
6069   AX_surfxml_cluster_bb_bw = 0;
6070   surfxml_cluster_bb_bw_isset = 0;
6071   AX_surfxml_cluster_bb_lat = 0;
6072   surfxml_cluster_bb_lat_isset = 0;
6073   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6074   surfxml_cluster_bb_sharing_policy_isset = 0;
6075   AX_surfxml_cluster_availability_file = 0;
6076   surfxml_cluster_availability_file_isset = 0;
6077   AX_surfxml_cluster_state_file = 0;
6078   surfxml_cluster_state_file_isset = 0;
6079   AX_surfxml_cluster_router_id = 0;
6080   surfxml_cluster_router_id_isset = 0;
6081   ENTER(AL_surfxml_cluster); pushbuffer(0);
6082   }
6083         YY_BREAK
6084
6085 case 202:
6086 /* rule 202 can match eol */
6087 YY_RULE_SETUP
6088 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);
6089         YY_BREAK
6090 case 203:
6091 /* rule 203 can match eol */
6092 YY_RULE_SETUP
6093 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);
6094         YY_BREAK
6095 case 204:
6096 /* rule 204 can match eol */
6097 YY_RULE_SETUP
6098 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);
6099         YY_BREAK
6100 case 205:
6101 /* rule 205 can match eol */
6102 YY_RULE_SETUP
6103 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);
6104         YY_BREAK
6105 case 206:
6106 /* rule 206 can match eol */
6107 YY_RULE_SETUP
6108 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);
6109         YY_BREAK
6110 case 207:
6111 /* rule 207 can match eol */
6112 YY_RULE_SETUP
6113 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);
6114         YY_BREAK
6115 case 208:
6116 /* rule 208 can match eol */
6117 YY_RULE_SETUP
6118 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);
6119         YY_BREAK
6120 case 209:
6121 /* rule 209 can match eol */
6122 YY_RULE_SETUP
6123 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);
6124         YY_BREAK
6125 case 210:
6126 /* rule 210 can match eol */
6127 YY_RULE_SETUP
6128 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);
6129         YY_BREAK
6130 case 211:
6131 /* rule 211 can match eol */
6132 YY_RULE_SETUP
6133 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);
6134         YY_BREAK
6135 case 212:
6136 /* rule 212 can match eol */
6137 YY_RULE_SETUP
6138 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);
6139         YY_BREAK
6140 case 213:
6141 /* rule 213 can match eol */
6142 YY_RULE_SETUP
6143 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);
6144         YY_BREAK
6145 case 214:
6146 /* rule 214 can match eol */
6147 YY_RULE_SETUP
6148 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);
6149         YY_BREAK
6150 case 215:
6151 /* rule 215 can match eol */
6152 YY_RULE_SETUP
6153 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);
6154         YY_BREAK
6155 case 216:
6156 /* rule 216 can match eol */
6157 YY_RULE_SETUP
6158 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);
6159         YY_BREAK
6160 case 217:
6161 /* rule 217 can match eol */
6162 YY_RULE_SETUP
6163 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);
6164         YY_BREAK
6165 case 218:
6166 /* rule 218 can match eol */
6167 case 219:
6168 /* rule 219 can match eol */
6169 YY_RULE_SETUP
6170 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6171         YY_BREAK
6172 case 220:
6173 /* rule 220 can match eol */
6174 case 221:
6175 /* rule 221 can match eol */
6176 YY_RULE_SETUP
6177 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6178         YY_BREAK
6179 case 222:
6180 /* rule 222 can match eol */
6181 case 223:
6182 /* rule 223 can match eol */
6183 YY_RULE_SETUP
6184 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6185         YY_BREAK
6186 case 224:
6187 /* rule 224 can match eol */
6188 YY_RULE_SETUP
6189 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);
6190         YY_BREAK
6191 case 225:
6192 /* rule 225 can match eol */
6193 YY_RULE_SETUP
6194 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);
6195         YY_BREAK
6196 case 226:
6197 /* rule 226 can match eol */
6198 YY_RULE_SETUP
6199 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);
6200         YY_BREAK
6201 case 227:
6202 /* rule 227 can match eol */
6203 YY_RULE_SETUP
6204 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);
6205         YY_BREAK
6206 case 228:
6207 /* rule 228 can match eol */
6208 case 229:
6209 /* rule 229 can match eol */
6210 YY_RULE_SETUP
6211 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6212         YY_BREAK
6213 case 230:
6214 /* rule 230 can match eol */
6215 case 231:
6216 /* rule 231 can match eol */
6217 YY_RULE_SETUP
6218 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6219         YY_BREAK
6220 case 232:
6221 /* rule 232 can match eol */
6222 YY_RULE_SETUP
6223 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);
6224         YY_BREAK
6225 case 233:
6226 /* rule 233 can match eol */
6227 YY_RULE_SETUP
6228 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);
6229         YY_BREAK
6230 case 234:
6231 /* rule 234 can match eol */
6232 YY_RULE_SETUP
6233 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);
6234         YY_BREAK
6235 case 235:
6236 /* rule 235 can match eol */
6237 YY_RULE_SETUP
6238 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);
6239         YY_BREAK
6240 case 236:
6241 /* rule 236 can match eol */
6242 YY_RULE_SETUP
6243 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);
6244         YY_BREAK
6245 case 237:
6246 /* rule 237 can match eol */
6247 YY_RULE_SETUP
6248 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);
6249         YY_BREAK
6250 case 238:
6251 YY_RULE_SETUP
6252 {
6253   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6254   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6255   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6256   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6257   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6258   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6259   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6260   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6261  }
6262         YY_BREAK
6263 case 239:
6264 YY_RULE_SETUP
6265 {
6266   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6267   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6268   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6269   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6270   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6271   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6272   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6273   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6274   switch (YY_START) {
6275    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6276    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;
6277   }
6278  }
6279         YY_BREAK
6280 case 240:
6281 YY_RULE_SETUP
6282 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6283         YY_BREAK
6284 case 241:
6285 YY_RULE_SETUP
6286 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6287         YY_BREAK
6288 case YY_STATE_EOF(AL_surfxml_cluster):
6289 FAIL("EOF in attribute list of `cluster' element.");
6290         YY_BREAK
6291
6292 case 242:
6293 /* rule 242 can match eol */
6294 YY_RULE_SETUP
6295 {
6296   LEAVE;
6297   ETag_surfxml_cluster();
6298   popbuffer(); /* attribute */
6299   switch (YY_START) {
6300    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6301    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;
6302   }
6303  }
6304         YY_BREAK
6305 case 243:
6306 /* rule 243 can match eol */
6307 YY_RULE_SETUP
6308 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6309         YY_BREAK
6310 case 244:
6311 YY_RULE_SETUP
6312 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6313         YY_BREAK
6314 case YY_STATE_EOF(E_surfxml_cluster):
6315 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6316         YY_BREAK
6317
6318 case 245:
6319 /* rule 245 can match eol */
6320 YY_RULE_SETUP
6321 FAIL("Starting tag <peer> is not allowed here.");
6322         YY_BREAK
6323 case 246:
6324 /* rule 246 can match eol */
6325 YY_RULE_SETUP
6326 {
6327   AX_surfxml_peer_id = 0;
6328   surfxml_peer_id_isset = 0;
6329   AX_surfxml_peer_power = 0;
6330   surfxml_peer_power_isset = 0;
6331   AX_surfxml_peer_bw_in = 0;
6332   surfxml_peer_bw_in_isset = 0;
6333   AX_surfxml_peer_bw_out = 0;
6334   surfxml_peer_bw_out_isset = 0;
6335   AX_surfxml_peer_lat = 0;
6336   surfxml_peer_lat_isset = 0;
6337   AX_surfxml_peer_coordinates = 0;
6338   surfxml_peer_coordinates_isset = 0;
6339   AX_surfxml_peer_availability_file = 0;
6340   surfxml_peer_availability_file_isset = 0;
6341   AX_surfxml_peer_state_file = 0;
6342   surfxml_peer_state_file_isset = 0;
6343   ENTER(AL_surfxml_peer); pushbuffer(0);
6344   }
6345         YY_BREAK
6346
6347 case 247:
6348 /* rule 247 can match eol */
6349 YY_RULE_SETUP
6350 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);
6351         YY_BREAK
6352 case 248:
6353 /* rule 248 can match eol */
6354 YY_RULE_SETUP
6355 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);
6356         YY_BREAK
6357 case 249:
6358 /* rule 249 can match eol */
6359 YY_RULE_SETUP
6360 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);
6361         YY_BREAK
6362 case 250:
6363 /* rule 250 can match eol */
6364 YY_RULE_SETUP
6365 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);
6366         YY_BREAK
6367 case 251:
6368 /* rule 251 can match eol */
6369 YY_RULE_SETUP
6370 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);
6371         YY_BREAK
6372 case 252:
6373 /* rule 252 can match eol */
6374 YY_RULE_SETUP
6375 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);
6376         YY_BREAK
6377 case 253:
6378 /* rule 253 can match eol */
6379 YY_RULE_SETUP
6380 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);
6381         YY_BREAK
6382 case 254:
6383 /* rule 254 can match eol */
6384 YY_RULE_SETUP
6385 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);
6386         YY_BREAK
6387 case 255:
6388 /* rule 255 can match eol */
6389 YY_RULE_SETUP
6390 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);
6391         YY_BREAK
6392 case 256:
6393 /* rule 256 can match eol */
6394 YY_RULE_SETUP
6395 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);
6396         YY_BREAK
6397 case 257:
6398 /* rule 257 can match eol */
6399 YY_RULE_SETUP
6400 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);
6401         YY_BREAK
6402 case 258:
6403 /* rule 258 can match eol */
6404 YY_RULE_SETUP
6405 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);
6406         YY_BREAK
6407 case 259:
6408 /* rule 259 can match eol */
6409 YY_RULE_SETUP
6410 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);
6411         YY_BREAK
6412 case 260:
6413 /* rule 260 can match eol */
6414 YY_RULE_SETUP
6415 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);
6416         YY_BREAK
6417 case 261:
6418 /* rule 261 can match eol */
6419 YY_RULE_SETUP
6420 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);
6421         YY_BREAK
6422 case 262:
6423 /* rule 262 can match eol */
6424 YY_RULE_SETUP
6425 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);
6426         YY_BREAK
6427 case 263:
6428 YY_RULE_SETUP
6429 {
6430   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6431   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6432   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6433   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6434   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6435   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6436  }
6437         YY_BREAK
6438 case 264:
6439 YY_RULE_SETUP
6440 {
6441   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6442   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6443   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6444   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6445   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6446   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6447   switch (YY_START) {
6448    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6449    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;
6450   }
6451  }
6452         YY_BREAK
6453 case 265:
6454 YY_RULE_SETUP
6455 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6456         YY_BREAK
6457 case 266:
6458 YY_RULE_SETUP
6459 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6460         YY_BREAK
6461 case YY_STATE_EOF(AL_surfxml_peer):
6462 FAIL("EOF in attribute list of `peer' element.");
6463         YY_BREAK
6464
6465 case 267:
6466 /* rule 267 can match eol */
6467 YY_RULE_SETUP
6468 {
6469   LEAVE;
6470   ETag_surfxml_peer();
6471   popbuffer(); /* attribute */
6472   switch (YY_START) {
6473    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6474    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;
6475   }
6476  }
6477         YY_BREAK
6478 case 268:
6479 /* rule 268 can match eol */
6480 YY_RULE_SETUP
6481 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6482         YY_BREAK
6483 case 269:
6484 YY_RULE_SETUP
6485 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6486         YY_BREAK
6487 case YY_STATE_EOF(E_surfxml_peer):
6488 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6489         YY_BREAK
6490
6491 case 270:
6492 /* rule 270 can match eol */
6493 YY_RULE_SETUP
6494 FAIL("Starting tag <router> is not allowed here.");
6495         YY_BREAK
6496 case 271:
6497 /* rule 271 can match eol */
6498 YY_RULE_SETUP
6499 {
6500   AX_surfxml_router_id = 0;
6501   surfxml_router_id_isset = 0;
6502   AX_surfxml_router_coordinates = 0;
6503   surfxml_router_coordinates_isset = 0;
6504   ENTER(AL_surfxml_router); pushbuffer(0);
6505   }
6506         YY_BREAK
6507
6508 case 272:
6509 /* rule 272 can match eol */
6510 YY_RULE_SETUP
6511 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);
6512         YY_BREAK
6513 case 273:
6514 /* rule 273 can match eol */
6515 YY_RULE_SETUP
6516 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);
6517         YY_BREAK
6518 case 274:
6519 /* rule 274 can match eol */
6520 YY_RULE_SETUP
6521 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);
6522         YY_BREAK
6523 case 275:
6524 /* rule 275 can match eol */
6525 YY_RULE_SETUP
6526 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);
6527         YY_BREAK
6528 case 276:
6529 YY_RULE_SETUP
6530 {
6531   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6532   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6533  }
6534         YY_BREAK
6535 case 277:
6536 YY_RULE_SETUP
6537 {
6538   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6539   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6540   switch (YY_START) {
6541    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6542   }
6543  }
6544         YY_BREAK
6545 case 278:
6546 YY_RULE_SETUP
6547 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6548         YY_BREAK
6549 case 279:
6550 YY_RULE_SETUP
6551 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6552         YY_BREAK
6553 case YY_STATE_EOF(AL_surfxml_router):
6554 FAIL("EOF in attribute list of `router' element.");
6555         YY_BREAK
6556
6557 case 280:
6558 /* rule 280 can match eol */
6559 YY_RULE_SETUP
6560 {
6561   LEAVE;
6562   ETag_surfxml_router();
6563   popbuffer(); /* attribute */
6564   switch (YY_START) {
6565    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6566   }
6567  }
6568         YY_BREAK
6569 case 281:
6570 /* rule 281 can match eol */
6571 YY_RULE_SETUP
6572 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6573         YY_BREAK
6574 case 282:
6575 YY_RULE_SETUP
6576 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6577         YY_BREAK
6578 case YY_STATE_EOF(E_surfxml_router):
6579 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6580         YY_BREAK
6581
6582 case 283:
6583 /* rule 283 can match eol */
6584 YY_RULE_SETUP
6585 FAIL("Starting tag <link> is not allowed here.");
6586         YY_BREAK
6587 case 284:
6588 /* rule 284 can match eol */
6589 YY_RULE_SETUP
6590 {
6591   AX_surfxml_link_id = 0;
6592   surfxml_link_id_isset = 0;
6593   AX_surfxml_link_bandwidth = 0;
6594   surfxml_link_bandwidth_isset = 0;
6595   AX_surfxml_link_bandwidth_file = 0;
6596   surfxml_link_bandwidth_file_isset = 0;
6597   AX_surfxml_link_latency = 24;
6598   surfxml_link_latency_isset = 0;
6599   AX_surfxml_link_latency_file = 0;
6600   surfxml_link_latency_file_isset = 0;
6601   AX_surfxml_link_state = A_surfxml_link_state_ON;
6602   surfxml_link_state_isset = 0;
6603   AX_surfxml_link_state_file = 0;
6604   surfxml_link_state_file_isset = 0;
6605   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6606   surfxml_link_sharing_policy_isset = 0;
6607   ENTER(AL_surfxml_link); pushbuffer(0);
6608   }
6609         YY_BREAK
6610
6611 case 285:
6612 /* rule 285 can match eol */
6613 YY_RULE_SETUP
6614 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);
6615         YY_BREAK
6616 case 286:
6617 /* rule 286 can match eol */
6618 YY_RULE_SETUP
6619 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);
6620         YY_BREAK
6621 case 287:
6622 /* rule 287 can match eol */
6623 YY_RULE_SETUP
6624 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);
6625         YY_BREAK
6626 case 288:
6627 /* rule 288 can match eol */
6628 YY_RULE_SETUP
6629 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);
6630         YY_BREAK
6631 case 289:
6632 /* rule 289 can match eol */
6633 YY_RULE_SETUP
6634 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);
6635         YY_BREAK
6636 case 290:
6637 /* rule 290 can match eol */
6638 YY_RULE_SETUP
6639 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);
6640         YY_BREAK
6641 case 291:
6642 /* rule 291 can match eol */
6643 YY_RULE_SETUP
6644 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);
6645         YY_BREAK
6646 case 292:
6647 /* rule 292 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 293:
6652 /* rule 293 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 294:
6657 /* rule 294 can match eol */
6658 YY_RULE_SETUP
6659 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);
6660         YY_BREAK
6661 case 295:
6662 /* rule 295 can match eol */
6663 case 296:
6664 /* rule 296 can match eol */
6665 YY_RULE_SETUP
6666 A_surfxml_link_state = A_surfxml_link_state_ON;
6667         YY_BREAK
6668 case 297:
6669 /* rule 297 can match eol */
6670 case 298:
6671 /* rule 298 can match eol */
6672 YY_RULE_SETUP
6673 A_surfxml_link_state = A_surfxml_link_state_OFF;
6674         YY_BREAK
6675 case 299:
6676 /* rule 299 can match eol */
6677 YY_RULE_SETUP
6678 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);
6679         YY_BREAK
6680 case 300:
6681 /* rule 300 can match eol */
6682 YY_RULE_SETUP
6683 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);
6684         YY_BREAK
6685 case 301:
6686 /* rule 301 can match eol */
6687 case 302:
6688 /* rule 302 can match eol */
6689 YY_RULE_SETUP
6690 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6691         YY_BREAK
6692 case 303:
6693 /* rule 303 can match eol */
6694 case 304:
6695 /* rule 304 can match eol */
6696 YY_RULE_SETUP
6697 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6698         YY_BREAK
6699 case 305:
6700 /* rule 305 can match eol */
6701 case 306:
6702 /* rule 306 can match eol */
6703 YY_RULE_SETUP
6704 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6705         YY_BREAK
6706 case 307:
6707 YY_RULE_SETUP
6708 {
6709   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6710   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6711   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
6712  }
6713         YY_BREAK
6714 case 308:
6715 YY_RULE_SETUP
6716 {
6717   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6718   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6719   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
6720   switch (YY_START) {
6721    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6722    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6723   }
6724  }
6725         YY_BREAK
6726 case 309:
6727 YY_RULE_SETUP
6728 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
6729         YY_BREAK
6730 case 310:
6731 YY_RULE_SETUP
6732 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
6733         YY_BREAK
6734 case YY_STATE_EOF(AL_surfxml_link):
6735 FAIL("EOF in attribute list of `link' element.");
6736         YY_BREAK
6737
6738 case 311:
6739 /* rule 311 can match eol */
6740 YY_RULE_SETUP
6741 {
6742   LEAVE;
6743   ETag_surfxml_link();
6744   popbuffer(); /* attribute */
6745   switch (YY_START) {
6746    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6747    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6748   }
6749  }
6750         YY_BREAK
6751 case 312:
6752 /* rule 312 can match eol */
6753 YY_RULE_SETUP
6754 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
6755         YY_BREAK
6756 case 313:
6757 YY_RULE_SETUP
6758 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
6759         YY_BREAK
6760 case YY_STATE_EOF(E_surfxml_link):
6761 case YY_STATE_EOF(S_surfxml_link_2):
6762 case YY_STATE_EOF(S_surfxml_link):
6763 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
6764         YY_BREAK
6765
6766 case 314:
6767 /* rule 314 can match eol */
6768 YY_RULE_SETUP
6769 FAIL("Starting tag <route> is not allowed here.");
6770         YY_BREAK
6771 case 315:
6772 /* rule 315 can match eol */
6773 YY_RULE_SETUP
6774 {
6775   AX_surfxml_route_src = 0;
6776   surfxml_route_src_isset = 0;
6777   AX_surfxml_route_dst = 0;
6778   surfxml_route_dst_isset = 0;
6779   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6780   surfxml_route_symmetrical_isset = 0;
6781   ENTER(AL_surfxml_route); pushbuffer(0);
6782   }
6783         YY_BREAK
6784
6785 case 316:
6786 /* rule 316 can match eol */
6787 YY_RULE_SETUP
6788 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);
6789         YY_BREAK
6790 case 317:
6791 /* rule 317 can match eol */
6792 YY_RULE_SETUP
6793 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);
6794         YY_BREAK
6795 case 318:
6796 /* rule 318 can match eol */
6797 YY_RULE_SETUP
6798 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);
6799         YY_BREAK
6800 case 319:
6801 /* rule 319 can match eol */
6802 YY_RULE_SETUP
6803 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);
6804         YY_BREAK
6805 case 320:
6806 /* rule 320 can match eol */
6807 case 321:
6808 /* rule 321 can match eol */
6809 YY_RULE_SETUP
6810 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6811         YY_BREAK
6812 case 322:
6813 /* rule 322 can match eol */
6814 case 323:
6815 /* rule 323 can match eol */
6816 YY_RULE_SETUP
6817 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
6818         YY_BREAK
6819 case 324:
6820 YY_RULE_SETUP
6821 {
6822   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6823   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6824   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
6825  }
6826         YY_BREAK
6827 case 325:
6828 YY_RULE_SETUP
6829 {
6830   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6831   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6832   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
6833   switch (YY_START) {
6834    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;
6835   }
6836  }
6837         YY_BREAK
6838 case 326:
6839 YY_RULE_SETUP
6840 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
6841         YY_BREAK
6842 case 327:
6843 YY_RULE_SETUP
6844 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
6845         YY_BREAK
6846 case YY_STATE_EOF(AL_surfxml_route):
6847 FAIL("EOF in attribute list of `route' element.");
6848         YY_BREAK
6849
6850 case 328:
6851 /* rule 328 can match eol */
6852 YY_RULE_SETUP
6853 {
6854   LEAVE;
6855   ETag_surfxml_route();
6856   popbuffer(); /* attribute */
6857   switch (YY_START) {
6858    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;
6859   }
6860  }
6861         YY_BREAK
6862 case 329:
6863 /* rule 329 can match eol */
6864 YY_RULE_SETUP
6865 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
6866         YY_BREAK
6867 case 330:
6868 YY_RULE_SETUP
6869 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
6870         YY_BREAK
6871 case YY_STATE_EOF(S_surfxml_route):
6872 case YY_STATE_EOF(S_surfxml_route_2):
6873 case YY_STATE_EOF(E_surfxml_route):
6874 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
6875         YY_BREAK
6876
6877 case 331:
6878 /* rule 331 can match eol */
6879 YY_RULE_SETUP
6880 FAIL("Starting tag <ASroute> is not allowed here.");
6881         YY_BREAK
6882 case 332:
6883 /* rule 332 can match eol */
6884 YY_RULE_SETUP
6885 {
6886   AX_surfxml_ASroute_src = 0;
6887   surfxml_ASroute_src_isset = 0;
6888   AX_surfxml_ASroute_dst = 0;
6889   surfxml_ASroute_dst_isset = 0;
6890   AX_surfxml_ASroute_gw_src = 0;
6891   surfxml_ASroute_gw_src_isset = 0;
6892   AX_surfxml_ASroute_gw_dst = 0;
6893   surfxml_ASroute_gw_dst_isset = 0;
6894   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6895   surfxml_ASroute_symmetrical_isset = 0;
6896   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6897   }
6898         YY_BREAK
6899
6900 case 333:
6901 /* rule 333 can match eol */
6902 YY_RULE_SETUP
6903 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);
6904         YY_BREAK
6905 case 334:
6906 /* rule 334 can match eol */
6907 YY_RULE_SETUP
6908 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);
6909         YY_BREAK
6910 case 335:
6911 /* rule 335 can match eol */
6912 YY_RULE_SETUP
6913 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);
6914         YY_BREAK
6915 case 336:
6916 /* rule 336 can match eol */
6917 YY_RULE_SETUP
6918 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);
6919         YY_BREAK
6920 case 337:
6921 /* rule 337 can match eol */
6922 YY_RULE_SETUP
6923 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);
6924         YY_BREAK
6925 case 338:
6926 /* rule 338 can match eol */
6927 YY_RULE_SETUP
6928 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);
6929         YY_BREAK
6930 case 339:
6931 /* rule 339 can match eol */
6932 YY_RULE_SETUP
6933 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);
6934         YY_BREAK
6935 case 340:
6936 /* rule 340 can match eol */
6937 YY_RULE_SETUP
6938 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);
6939         YY_BREAK
6940 case 341:
6941 /* rule 341 can match eol */
6942 case 342:
6943 /* rule 342 can match eol */
6944 YY_RULE_SETUP
6945 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6946         YY_BREAK
6947 case 343:
6948 /* rule 343 can match eol */
6949 case 344:
6950 /* rule 344 can match eol */
6951 YY_RULE_SETUP
6952 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6953         YY_BREAK
6954 case 345:
6955 YY_RULE_SETUP
6956 {
6957   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6958   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6959   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6960   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6961   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6962  }
6963         YY_BREAK
6964 case 346:
6965 YY_RULE_SETUP
6966 {
6967   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6968   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6969   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6970   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6971   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6972   switch (YY_START) {
6973    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;
6974   }
6975  }
6976         YY_BREAK
6977 case 347:
6978 YY_RULE_SETUP
6979 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6980         YY_BREAK
6981 case 348:
6982 YY_RULE_SETUP
6983 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6984         YY_BREAK
6985 case YY_STATE_EOF(AL_surfxml_ASroute):
6986 FAIL("EOF in attribute list of `ASroute' element.");
6987         YY_BREAK
6988
6989 case 349:
6990 /* rule 349 can match eol */
6991 YY_RULE_SETUP
6992 {
6993   LEAVE;
6994   ETag_surfxml_ASroute();
6995   popbuffer(); /* attribute */
6996   switch (YY_START) {
6997    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;
6998   }
6999  }
7000         YY_BREAK
7001 case 350:
7002 /* rule 350 can match eol */
7003 YY_RULE_SETUP
7004 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7005         YY_BREAK
7006 case 351:
7007 YY_RULE_SETUP
7008 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7009         YY_BREAK
7010 case YY_STATE_EOF(E_surfxml_ASroute):
7011 case YY_STATE_EOF(S_surfxml_ASroute):
7012 case YY_STATE_EOF(S_surfxml_ASroute_2):
7013 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7014         YY_BREAK
7015
7016 case 352:
7017 /* rule 352 can match eol */
7018 YY_RULE_SETUP
7019 FAIL("Starting tag <link_ctn> is not allowed here.");
7020         YY_BREAK
7021 case 353:
7022 /* rule 353 can match eol */
7023 YY_RULE_SETUP
7024 {
7025   AX_surfxml_link_ctn_id = 0;
7026   surfxml_link_ctn_id_isset = 0;
7027   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7028   surfxml_link_ctn_direction_isset = 0;
7029   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7030   }
7031         YY_BREAK
7032
7033 case 354:
7034 /* rule 354 can match eol */
7035 YY_RULE_SETUP
7036 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);
7037         YY_BREAK
7038 case 355:
7039 /* rule 355 can match eol */
7040 YY_RULE_SETUP
7041 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);
7042         YY_BREAK
7043 case 356:
7044 /* rule 356 can match eol */
7045 case 357:
7046 /* rule 357 can match eol */
7047 YY_RULE_SETUP
7048 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7049         YY_BREAK
7050 case 358:
7051 /* rule 358 can match eol */
7052 case 359:
7053 /* rule 359 can match eol */
7054 YY_RULE_SETUP
7055 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7056         YY_BREAK
7057 case 360:
7058 /* rule 360 can match eol */
7059 case 361:
7060 /* rule 361 can match eol */
7061 YY_RULE_SETUP
7062 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7063         YY_BREAK
7064 case 362:
7065 YY_RULE_SETUP
7066 {
7067   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7068   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7069  }
7070         YY_BREAK
7071 case 363:
7072 YY_RULE_SETUP
7073 {
7074   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7075   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7076   switch (YY_START) {
7077    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7078    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7079    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7080   }
7081  }
7082         YY_BREAK
7083 case 364:
7084 YY_RULE_SETUP
7085 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7086         YY_BREAK
7087 case 365:
7088 YY_RULE_SETUP
7089 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7090         YY_BREAK
7091 case YY_STATE_EOF(AL_surfxml_link_ctn):
7092 FAIL("EOF in attribute list of `link_ctn' element.");
7093         YY_BREAK
7094
7095 case 366:
7096 /* rule 366 can match eol */
7097 YY_RULE_SETUP
7098 {
7099   LEAVE;
7100   ETag_surfxml_link_ctn();
7101   popbuffer(); /* attribute */
7102   switch (YY_START) {
7103    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7104    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7105    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7106   }
7107  }
7108         YY_BREAK
7109 case 367:
7110 /* rule 367 can match eol */
7111 YY_RULE_SETUP
7112 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7113         YY_BREAK
7114 case 368:
7115 YY_RULE_SETUP
7116 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7117         YY_BREAK
7118 case YY_STATE_EOF(E_surfxml_link_ctn):
7119 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7120         YY_BREAK
7121
7122 case 369:
7123 /* rule 369 can match eol */
7124 YY_RULE_SETUP
7125 FAIL("Starting tag <bypassRoute> is not allowed here.");
7126         YY_BREAK
7127 case 370:
7128 /* rule 370 can match eol */
7129 YY_RULE_SETUP
7130 {
7131   AX_surfxml_bypassRoute_src = 0;
7132   surfxml_bypassRoute_src_isset = 0;
7133   AX_surfxml_bypassRoute_dst = 0;
7134   surfxml_bypassRoute_dst_isset = 0;
7135   AX_surfxml_bypassRoute_gw_src = 0;
7136   surfxml_bypassRoute_gw_src_isset = 0;
7137   AX_surfxml_bypassRoute_gw_dst = 0;
7138   surfxml_bypassRoute_gw_dst_isset = 0;
7139   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7140   }
7141         YY_BREAK
7142
7143 case 371:
7144 /* rule 371 can match eol */
7145 YY_RULE_SETUP
7146 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);
7147         YY_BREAK
7148 case 372:
7149 /* rule 372 can match eol */
7150 YY_RULE_SETUP
7151 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);
7152         YY_BREAK
7153 case 373:
7154 /* rule 373 can match eol */
7155 YY_RULE_SETUP
7156 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);
7157         YY_BREAK
7158 case 374:
7159 /* rule 374 can match eol */
7160 YY_RULE_SETUP
7161 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);
7162         YY_BREAK
7163 case 375:
7164 /* rule 375 can match eol */
7165 YY_RULE_SETUP
7166 if (surfxml_bypassRoute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassRoute>");} surfxml_bypassRoute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
7167         YY_BREAK
7168 case 376:
7169 /* rule 376 can match eol */
7170 YY_RULE_SETUP
7171 if (surfxml_bypassRoute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
7172         YY_BREAK
7173 case 377:
7174 /* rule 377 can match eol */
7175 YY_RULE_SETUP
7176 if (surfxml_bypassRoute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
7177         YY_BREAK
7178 case 378:
7179 /* rule 378 can match eol */
7180 YY_RULE_SETUP
7181 if (surfxml_bypassRoute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
7182         YY_BREAK
7183 case 379:
7184 YY_RULE_SETUP
7185 {
7186   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7187   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7188   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
7189   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
7190   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7191  }
7192         YY_BREAK
7193 case 380:
7194 YY_RULE_SETUP
7195 {
7196   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7197   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7198   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
7199   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
7200   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7201   switch (YY_START) {
7202    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
7203   }
7204  }
7205         YY_BREAK
7206 case 381:
7207 YY_RULE_SETUP
7208 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7209         YY_BREAK
7210 case 382:
7211 YY_RULE_SETUP
7212 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7213         YY_BREAK
7214 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7215 FAIL("EOF in attribute list of `bypassRoute' element.");
7216         YY_BREAK
7217
7218 case 383:
7219 /* rule 383 can match eol */
7220 YY_RULE_SETUP
7221 {
7222   LEAVE;
7223   ETag_surfxml_bypassRoute();
7224   popbuffer(); /* attribute */
7225   switch (YY_START) {
7226    case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_8); break;
7227   }
7228  }
7229         YY_BREAK
7230 case 384:
7231 /* rule 384 can match eol */
7232 YY_RULE_SETUP
7233 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7234         YY_BREAK
7235 case 385:
7236 YY_RULE_SETUP
7237 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7238         YY_BREAK
7239 case YY_STATE_EOF(S_surfxml_bypassRoute):
7240 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7241 case YY_STATE_EOF(E_surfxml_bypassRoute):
7242 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7243         YY_BREAK
7244
7245 case 386:
7246 /* rule 386 can match eol */
7247 YY_RULE_SETUP
7248 FAIL("Starting tag <process> is not allowed here.");
7249         YY_BREAK
7250 case 387:
7251 /* rule 387 can match eol */
7252 YY_RULE_SETUP
7253 {
7254   AX_surfxml_process_host = 0;
7255   surfxml_process_host_isset = 0;
7256   AX_surfxml_process_function = 0;
7257   surfxml_process_function_isset = 0;
7258   AX_surfxml_process_start_time = 28;
7259   surfxml_process_start_time_isset = 0;
7260   AX_surfxml_process_kill_time = 33;
7261   surfxml_process_kill_time_isset = 0;
7262   ENTER(AL_surfxml_process); pushbuffer(0);
7263   }
7264         YY_BREAK
7265
7266 case 388:
7267 /* rule 388 can match eol */
7268 YY_RULE_SETUP
7269 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);
7270         YY_BREAK
7271 case 389:
7272 /* rule 389 can match eol */
7273 YY_RULE_SETUP
7274 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);
7275         YY_BREAK
7276 case 390:
7277 /* rule 390 can match eol */
7278 YY_RULE_SETUP
7279 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);
7280         YY_BREAK
7281 case 391:
7282 /* rule 391 can match eol */
7283 YY_RULE_SETUP
7284 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);
7285         YY_BREAK
7286 case 392:
7287 /* rule 392 can match eol */
7288 YY_RULE_SETUP
7289 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);
7290         YY_BREAK
7291 case 393:
7292 /* rule 393 can match eol */
7293 YY_RULE_SETUP
7294 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);
7295         YY_BREAK
7296 case 394:
7297 /* rule 394 can match eol */
7298 YY_RULE_SETUP
7299 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);
7300         YY_BREAK
7301 case 395:
7302 /* rule 395 can match eol */
7303 YY_RULE_SETUP
7304 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);
7305         YY_BREAK
7306 case 396:
7307 YY_RULE_SETUP
7308 {
7309   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7310   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7311   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7312  }
7313         YY_BREAK
7314 case 397:
7315 YY_RULE_SETUP
7316 {
7317   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7318   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7319   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7320   switch (YY_START) {
7321    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;
7322   }
7323  }
7324         YY_BREAK
7325 case 398:
7326 YY_RULE_SETUP
7327 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7328         YY_BREAK
7329 case 399:
7330 YY_RULE_SETUP
7331 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7332         YY_BREAK
7333 case YY_STATE_EOF(AL_surfxml_process):
7334 FAIL("EOF in attribute list of `process' element.");
7335         YY_BREAK
7336
7337 case 400:
7338 /* rule 400 can match eol */
7339 YY_RULE_SETUP
7340 {
7341   LEAVE;
7342   ETag_surfxml_process();
7343   popbuffer(); /* attribute */
7344   switch (YY_START) {
7345    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;
7346   }
7347  }
7348         YY_BREAK
7349 case 401:
7350 /* rule 401 can match eol */
7351 YY_RULE_SETUP
7352 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7353         YY_BREAK
7354 case 402:
7355 YY_RULE_SETUP
7356 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7357         YY_BREAK
7358 case YY_STATE_EOF(E_surfxml_process):
7359 case YY_STATE_EOF(S_surfxml_process):
7360 case YY_STATE_EOF(S_surfxml_process_2):
7361 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7362         YY_BREAK
7363
7364 case 403:
7365 /* rule 403 can match eol */
7366 YY_RULE_SETUP
7367 FAIL("Starting tag <argument> is not allowed here.");
7368         YY_BREAK
7369 case 404:
7370 /* rule 404 can match eol */
7371 YY_RULE_SETUP
7372 {
7373   AX_surfxml_argument_value = 0;
7374   surfxml_argument_value_isset = 0;
7375   ENTER(AL_surfxml_argument); pushbuffer(0);
7376   }
7377         YY_BREAK
7378
7379 case 405:
7380 /* rule 405 can match eol */
7381 YY_RULE_SETUP
7382 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);
7383         YY_BREAK
7384 case 406:
7385 /* rule 406 can match eol */
7386 YY_RULE_SETUP
7387 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);
7388         YY_BREAK
7389 case 407:
7390 YY_RULE_SETUP
7391 {
7392   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7393   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7394  }
7395         YY_BREAK
7396 case 408:
7397 YY_RULE_SETUP
7398 {
7399   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7400   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7401   switch (YY_START) {
7402    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7403   }
7404  }
7405         YY_BREAK
7406 case 409:
7407 YY_RULE_SETUP
7408 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7409         YY_BREAK
7410 case 410:
7411 YY_RULE_SETUP
7412 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7413         YY_BREAK
7414 case YY_STATE_EOF(AL_surfxml_argument):
7415 FAIL("EOF in attribute list of `argument' element.");
7416         YY_BREAK
7417
7418 case 411:
7419 /* rule 411 can match eol */
7420 YY_RULE_SETUP
7421 {
7422   LEAVE;
7423   ETag_surfxml_argument();
7424   popbuffer(); /* attribute */
7425   switch (YY_START) {
7426    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7427   }
7428  }
7429         YY_BREAK
7430 case 412:
7431 /* rule 412 can match eol */
7432 YY_RULE_SETUP
7433 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7434         YY_BREAK
7435 case 413:
7436 YY_RULE_SETUP
7437 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7438         YY_BREAK
7439 case YY_STATE_EOF(E_surfxml_argument):
7440 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7441         YY_BREAK
7442
7443 case 414:
7444 /* rule 414 can match eol */
7445 YY_RULE_SETUP
7446 FAIL("Starting tag <config> is not allowed here.");
7447         YY_BREAK
7448 case 415:
7449 /* rule 415 can match eol */
7450 YY_RULE_SETUP
7451 {
7452   AX_surfxml_config_id = 0;
7453   surfxml_config_id_isset = 0;
7454   ENTER(AL_surfxml_config); pushbuffer(0);
7455   }
7456         YY_BREAK
7457
7458 case 416:
7459 /* rule 416 can match eol */
7460 YY_RULE_SETUP
7461 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);
7462         YY_BREAK
7463 case 417:
7464 /* rule 417 can match eol */
7465 YY_RULE_SETUP
7466 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);
7467         YY_BREAK
7468 case 418:
7469 YY_RULE_SETUP
7470 {
7471   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7472  }
7473         YY_BREAK
7474 case 419:
7475 YY_RULE_SETUP
7476 {
7477   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7478   switch (YY_START) {
7479    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7480   }
7481  }
7482         YY_BREAK
7483 case 420:
7484 YY_RULE_SETUP
7485 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7486         YY_BREAK
7487 case 421:
7488 YY_RULE_SETUP
7489 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7490         YY_BREAK
7491 case YY_STATE_EOF(AL_surfxml_config):
7492 FAIL("EOF in attribute list of `config' element.");
7493         YY_BREAK
7494
7495 case 422:
7496 /* rule 422 can match eol */
7497 YY_RULE_SETUP
7498 {
7499   LEAVE;
7500   ETag_surfxml_config();
7501   popbuffer(); /* attribute */
7502   switch (YY_START) {
7503    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7504   }
7505  }
7506         YY_BREAK
7507 case 423:
7508 /* rule 423 can match eol */
7509 YY_RULE_SETUP
7510 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7511         YY_BREAK
7512 case 424:
7513 YY_RULE_SETUP
7514 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7515         YY_BREAK
7516 case YY_STATE_EOF(S_surfxml_config):
7517 case YY_STATE_EOF(S_surfxml_config_2):
7518 case YY_STATE_EOF(E_surfxml_config):
7519 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7520         YY_BREAK
7521
7522 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7523   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7524 case 425:
7525 /* rule 425 can match eol */
7526 YY_RULE_SETUP
7527 FAIL("Starting tag <prop> is not allowed here.");
7528         YY_BREAK
7529 case 426:
7530 /* rule 426 can match eol */
7531 YY_RULE_SETUP
7532 {
7533   AX_surfxml_prop_id = 0;
7534   surfxml_prop_id_isset = 0;
7535   AX_surfxml_prop_value = 0;
7536   surfxml_prop_value_isset = 0;
7537   ENTER(AL_surfxml_prop); pushbuffer(0);
7538   }
7539         YY_BREAK
7540
7541 case 427:
7542 /* rule 427 can match eol */
7543 YY_RULE_SETUP
7544 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);
7545         YY_BREAK
7546 case 428:
7547 /* rule 428 can match eol */
7548 YY_RULE_SETUP
7549 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);
7550         YY_BREAK
7551 case 429:
7552 /* rule 429 can match eol */
7553 YY_RULE_SETUP
7554 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);
7555         YY_BREAK
7556 case 430:
7557 /* rule 430 can match eol */
7558 YY_RULE_SETUP
7559 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);
7560         YY_BREAK
7561 case 431:
7562 YY_RULE_SETUP
7563 {
7564   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7565   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7566   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7567  }
7568         YY_BREAK
7569 case 432:
7570 YY_RULE_SETUP
7571 {
7572   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7573   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7574   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7575   switch (YY_START) {
7576    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7577    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7578    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7579    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7580    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7581    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7582    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7583   }
7584  }
7585         YY_BREAK
7586 case 433:
7587 YY_RULE_SETUP
7588 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7589         YY_BREAK
7590 case 434:
7591 YY_RULE_SETUP
7592 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7593         YY_BREAK
7594 case YY_STATE_EOF(AL_surfxml_prop):
7595 FAIL("EOF in attribute list of `prop' element.");
7596         YY_BREAK
7597
7598 case 435:
7599 /* rule 435 can match eol */
7600 YY_RULE_SETUP
7601 {
7602   LEAVE;
7603   ETag_surfxml_prop();
7604   popbuffer(); /* attribute */
7605   switch (YY_START) {
7606    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7607    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7608    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7609    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7610    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7611    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7612    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7613   }
7614  }
7615         YY_BREAK
7616 case 436:
7617 /* rule 436 can match eol */
7618 YY_RULE_SETUP
7619 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
7620         YY_BREAK
7621 case 437:
7622 YY_RULE_SETUP
7623 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
7624         YY_BREAK
7625 case YY_STATE_EOF(E_surfxml_prop):
7626 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
7627         YY_BREAK
7628
7629 /* EPILOG: after the root element. */
7630
7631 case 438:
7632 YY_RULE_SETUP
7633 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
7634         YY_BREAK
7635 case YY_STATE_EOF(EPILOG):
7636 SUCCEED;
7637         YY_BREAK
7638
7639 /* CHARACTER DATA. */
7640
7641 /* Non-defined standard entities... */
7642 case 439:
7643 YY_RULE_SETUP
7644 BUFFERPUTC('&');
7645         YY_BREAK
7646 case 440:
7647 YY_RULE_SETUP
7648 BUFFERPUTC('<');
7649         YY_BREAK
7650 case 441:
7651 YY_RULE_SETUP
7652 BUFFERPUTC('>');
7653         YY_BREAK
7654 case 442:
7655 YY_RULE_SETUP
7656 BUFFERPUTC('\'');
7657         YY_BREAK
7658 case 443:
7659 YY_RULE_SETUP
7660 BUFFERPUTC('"');
7661         YY_BREAK
7662 /* Character entities. */
7663 case 444:
7664 YY_RULE_SETUP
7665 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
7666         YY_BREAK
7667 case 445:
7668 YY_RULE_SETUP
7669 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
7670         YY_BREAK
7671
7672 case 446:
7673 /* rule 446 can match eol */
7674 case 447:
7675 /* rule 447 can match eol */
7676 case 448:
7677 /* rule 448 can match eol */
7678 case 449:
7679 /* rule 449 can match eol */
7680 YY_RULE_SETUP
7681 BUFFERPUTC('\n');
7682         YY_BREAK
7683
7684 case 450:
7685 YY_RULE_SETUP
7686 ENTER(CDATA);
7687         YY_BREAK
7688 case 451:
7689 YY_RULE_SETUP
7690 FAIL("Unexpected `]""]>' in character data.");
7691         YY_BREAK
7692
7693 case 452:
7694 YY_RULE_SETUP
7695 BUFFERDONE; LEAVE;
7696         YY_BREAK
7697 case YY_STATE_EOF(VALUE1):
7698 FAIL("EOF in literal (\"'\" expected).");
7699         YY_BREAK
7700
7701 case 453:
7702 YY_RULE_SETUP
7703 BUFFERDONE; LEAVE;
7704         YY_BREAK
7705 case YY_STATE_EOF(VALUE2):
7706 FAIL("EOF in literal (`\"' expected).");
7707         YY_BREAK
7708
7709 case 454:
7710 /* rule 454 can match eol */
7711 YY_RULE_SETUP
7712 BUFFERPUTC(surf_parse_text[0]);
7713         YY_BREAK
7714 case 455:
7715 YY_RULE_SETUP
7716 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
7717         YY_BREAK
7718
7719 case 456:
7720 YY_RULE_SETUP
7721 LEAVE;
7722         YY_BREAK
7723 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
7724 case 457:
7725 YY_RULE_SETUP
7726 BUFFERPUTC(surf_parse_text[0]);
7727         YY_BREAK
7728 case YY_STATE_EOF(CDATA):
7729 FAIL("EOF in CDATA section.");
7730         YY_BREAK
7731
7732 /* Impossible rules to avoid warnings from flex(1). */
7733 /* Ideally, this should be replaced by code in flexml.pl that
7734     generates just the states not covered by other rules. */
7735
7736 case 458:
7737 /* rule 458 can match eol */
7738 YY_RULE_SETUP
7739 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
7740         YY_BREAK
7741
7742 case 459:
7743 YY_RULE_SETUP
7744 ECHO;
7745         YY_BREAK
7746 case YY_STATE_EOF(INITIAL):
7747 case YY_STATE_EOF(ROOT_surfxml_platform):
7748 case YY_STATE_EOF(S_surfxml_platform_2):
7749 case YY_STATE_EOF(S_surfxml_platform_5):
7750 case YY_STATE_EOF(S_surfxml_platform_7):
7751 case YY_STATE_EOF(S_surfxml_include_1):
7752 case YY_STATE_EOF(S_surfxml_random_1):
7753 case YY_STATE_EOF(S_surfxml_AS_2):
7754 case YY_STATE_EOF(S_surfxml_AS_5):
7755 case YY_STATE_EOF(S_surfxml_AS_7):
7756 case YY_STATE_EOF(S_surfxml_AS_10):
7757 case YY_STATE_EOF(S_surfxml_AS_12):
7758 case YY_STATE_EOF(S_surfxml_storage_type_1):
7759 case YY_STATE_EOF(S_surfxml_storage_1):
7760 case YY_STATE_EOF(S_surfxml_host_1):
7761 case YY_STATE_EOF(S_surfxml_link_1):
7762 case YY_STATE_EOF(S_surfxml_route_1):
7763 case YY_STATE_EOF(S_surfxml_ASroute_1):
7764 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
7765 case YY_STATE_EOF(S_surfxml_process_1):
7766 case YY_STATE_EOF(S_surfxml_config_1):
7767 case YY_STATE_EOF(IMPOSSIBLE):
7768         yyterminate();
7769
7770         case YY_END_OF_BUFFER:
7771                 {
7772                 /* Amount of text matched not including the EOB char. */
7773                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
7774
7775                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
7776                 *yy_cp = (yy_hold_char);
7777                 YY_RESTORE_YY_MORE_OFFSET
7778
7779                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
7780                         {
7781                         /* We're scanning a new file or input source.  It's
7782                          * possible that this happened because the user
7783                          * just pointed surf_parse_in at a new source and called
7784                          * surf_parse_lex().  If so, then we have to assure
7785                          * consistency between YY_CURRENT_BUFFER and our
7786                          * globals.  Here is the right place to do so, because
7787                          * this is the first action (other than possibly a
7788                          * back-up) that will match for the new input source.
7789                          */
7790                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
7791                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
7792                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
7793                         }
7794
7795                 /* Note that here we test for yy_c_buf_p "<=" to the position
7796                  * of the first EOB in the buffer, since yy_c_buf_p will
7797                  * already have been incremented past the NUL character
7798                  * (since all states make transitions on EOB to the
7799                  * end-of-buffer state).  Contrast this with the test
7800                  * in input().
7801                  */
7802                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
7803                         { /* This was really a NUL. */
7804                         yy_state_type yy_next_state;
7805
7806                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
7807
7808                         yy_current_state = yy_get_previous_state(  );
7809
7810                         /* Okay, we're now positioned to make the NUL
7811                          * transition.  We couldn't have
7812                          * yy_get_previous_state() go ahead and do it
7813                          * for us because it doesn't know how to deal
7814                          * with the possibility of jamming (and we don't
7815                          * want to build jamming into it because then it
7816                          * will run more slowly).
7817                          */
7818
7819                         yy_next_state = yy_try_NUL_trans( yy_current_state );
7820
7821                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7822
7823                         if ( yy_next_state )
7824                                 {
7825                                 /* Consume the NUL. */
7826                                 yy_cp = ++(yy_c_buf_p);
7827                                 yy_current_state = yy_next_state;
7828                                 goto yy_match;
7829                                 }
7830
7831                         else
7832                                 {
7833                                 yy_cp = (yy_c_buf_p);
7834                                 goto yy_find_action;
7835                                 }
7836                         }
7837
7838                 else switch ( yy_get_next_buffer(  ) )
7839                         {
7840                         case EOB_ACT_END_OF_FILE:
7841                                 {
7842                                 (yy_did_buffer_switch_on_eof) = 0;
7843
7844                                 if ( surf_parse_wrap( ) )
7845                                         {
7846                                         /* Note: because we've taken care in
7847                                          * yy_get_next_buffer() to have set up
7848                                          * surf_parse_text, we can now set up
7849                                          * yy_c_buf_p so that if some total
7850                                          * hoser (like flex itself) wants to
7851                                          * call the scanner after we return the
7852                                          * YY_NULL, it'll still work - another
7853                                          * YY_NULL will get returned.
7854                                          */
7855                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
7856
7857                                         yy_act = YY_STATE_EOF(YY_START);
7858                                         goto do_action;
7859                                         }
7860
7861                                 else
7862                                         {
7863                                         if ( ! (yy_did_buffer_switch_on_eof) )
7864                                                 YY_NEW_FILE;
7865                                         }
7866                                 break;
7867                                 }
7868
7869                         case EOB_ACT_CONTINUE_SCAN:
7870                                 (yy_c_buf_p) =
7871                                         (yytext_ptr) + yy_amount_of_matched_text;
7872
7873                                 yy_current_state = yy_get_previous_state(  );
7874
7875                                 yy_cp = (yy_c_buf_p);
7876                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7877                                 goto yy_match;
7878
7879                         case EOB_ACT_LAST_MATCH:
7880                                 (yy_c_buf_p) =
7881                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
7882
7883                                 yy_current_state = yy_get_previous_state(  );
7884
7885                                 yy_cp = (yy_c_buf_p);
7886                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7887                                 goto yy_find_action;
7888                         }
7889                 break;
7890                 }
7891
7892         default:
7893                 YY_FATAL_ERROR(
7894                         "fatal flex scanner internal error--no action found" );
7895         } /* end of action switch */
7896                 } /* end of scanning one token */
7897 } /* end of surf_parse_lex */
7898
7899 /* yy_get_next_buffer - try to read in a new buffer
7900  *
7901  * Returns a code representing an action:
7902  *      EOB_ACT_LAST_MATCH -
7903  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
7904  *      EOB_ACT_END_OF_FILE - end of file
7905  */
7906 static int yy_get_next_buffer (void)
7907 {
7908         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
7909         register char *source = (yytext_ptr);
7910         register int number_to_move, i;
7911         int ret_val;
7912
7913         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
7914                 YY_FATAL_ERROR(
7915                 "fatal flex scanner internal error--end of buffer missed" );
7916
7917         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
7918                 { /* Don't try to fill the buffer, so this is an EOF. */
7919                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
7920                         {
7921                         /* We matched a single character, the EOB, so
7922                          * treat this as a final EOF.
7923                          */
7924                         return EOB_ACT_END_OF_FILE;
7925                         }
7926
7927                 else
7928                         {
7929                         /* We matched some text prior to the EOB, first
7930                          * process it.
7931                          */
7932                         return EOB_ACT_LAST_MATCH;
7933                         }
7934                 }
7935
7936         /* Try to read more data. */
7937
7938         /* First move last chars to start of buffer. */
7939         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
7940
7941         for ( i = 0; i < number_to_move; ++i )
7942                 *(dest++) = *(source++);
7943
7944         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
7945                 /* don't do the read, it's not guaranteed to return an EOF,
7946                  * just force an EOF
7947                  */
7948                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
7949
7950         else
7951                 {
7952                         int num_to_read =
7953                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
7954
7955                 while ( num_to_read <= 0 )
7956                         { /* Not enough room in the buffer - grow it. */
7957
7958                         /* just a shorter name for the current buffer */
7959                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
7960
7961                         int yy_c_buf_p_offset =
7962                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
7963
7964                         if ( b->yy_is_our_buffer )
7965                                 {
7966                                 int new_size = b->yy_buf_size * 2;
7967
7968                                 if ( new_size <= 0 )
7969                                         b->yy_buf_size += b->yy_buf_size / 8;
7970                                 else
7971                                         b->yy_buf_size *= 2;
7972
7973                                 b->yy_ch_buf = (char *)
7974                                         /* Include room in for 2 EOB chars. */
7975                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
7976                                 }
7977                         else
7978                                 /* Can't grow it, we don't own it. */
7979                                 b->yy_ch_buf = 0;
7980
7981                         if ( ! b->yy_ch_buf )
7982                                 YY_FATAL_ERROR(
7983                                 "fatal error - scanner input buffer overflow" );
7984
7985                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
7986
7987                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
7988                                                 number_to_move - 1;
7989
7990                         }
7991
7992                 if ( num_to_read > YY_READ_BUF_SIZE )
7993                         num_to_read = YY_READ_BUF_SIZE;
7994
7995                 /* Read in more data. */
7996                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
7997                         (yy_n_chars), (size_t) num_to_read );
7998
7999                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8000                 }
8001
8002         if ( (yy_n_chars) == 0 )
8003                 {
8004                 if ( number_to_move == YY_MORE_ADJ )
8005                         {
8006                         ret_val = EOB_ACT_END_OF_FILE;
8007                         surf_parse_restart(surf_parse_in  );
8008                         }
8009
8010                 else
8011                         {
8012                         ret_val = EOB_ACT_LAST_MATCH;
8013                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8014                                 YY_BUFFER_EOF_PENDING;
8015                         }
8016                 }
8017
8018         else
8019                 ret_val = EOB_ACT_CONTINUE_SCAN;
8020
8021         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8022                 /* Extend the array by 50%, plus the number we really need. */
8023                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8024                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8025                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8026                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8027         }
8028
8029         (yy_n_chars) += number_to_move;
8030         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8031         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8032
8033         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8034
8035         return ret_val;
8036 }
8037
8038 /* yy_get_previous_state - get the state just before the EOB char was reached */
8039
8040     static yy_state_type yy_get_previous_state (void)
8041 {
8042         register yy_state_type yy_current_state;
8043         register char *yy_cp;
8044     
8045         yy_current_state = (yy_start);
8046
8047         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8048                 {
8049                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8050                 if ( yy_accept[yy_current_state] )
8051                         {
8052                         (yy_last_accepting_state) = yy_current_state;
8053                         (yy_last_accepting_cpos) = yy_cp;
8054                         }
8055                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8056                         {
8057                         yy_current_state = (int) yy_def[yy_current_state];
8058                         if ( yy_current_state >= 2703 )
8059                                 yy_c = yy_meta[(unsigned int) yy_c];
8060                         }
8061                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8062                 }
8063
8064         return yy_current_state;
8065 }
8066
8067 /* yy_try_NUL_trans - try to make a transition on the NUL character
8068  *
8069  * synopsis
8070  *      next_state = yy_try_NUL_trans( current_state );
8071  */
8072     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8073 {
8074         register int yy_is_jam;
8075         register char *yy_cp = (yy_c_buf_p);
8076
8077         register YY_CHAR yy_c = 1;
8078         if ( yy_accept[yy_current_state] )
8079                 {
8080                 (yy_last_accepting_state) = yy_current_state;
8081                 (yy_last_accepting_cpos) = yy_cp;
8082                 }
8083         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8084                 {
8085                 yy_current_state = (int) yy_def[yy_current_state];
8086                 if ( yy_current_state >= 2703 )
8087                         yy_c = yy_meta[(unsigned int) yy_c];
8088                 }
8089         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8090         yy_is_jam = (yy_current_state == 2702);
8091
8092         return yy_is_jam ? 0 : yy_current_state;
8093 }
8094
8095 #ifndef YY_NO_INPUT
8096 #ifdef __cplusplus
8097     static int yyinput (void)
8098 #else
8099     static int input  (void)
8100 #endif
8101
8102 {
8103         int c;
8104     
8105         *(yy_c_buf_p) = (yy_hold_char);
8106
8107         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8108                 {
8109                 /* yy_c_buf_p now points to the character we want to return.
8110                  * If this occurs *before* the EOB characters, then it's a
8111                  * valid NUL; if not, then we've hit the end of the buffer.
8112                  */
8113                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8114                         /* This was really a NUL. */
8115                         *(yy_c_buf_p) = '\0';
8116
8117                 else
8118                         { /* need more input */
8119                         int offset = (yy_c_buf_p) - (yytext_ptr);
8120                         ++(yy_c_buf_p);
8121
8122                         switch ( yy_get_next_buffer(  ) )
8123                                 {
8124                                 case EOB_ACT_LAST_MATCH:
8125                                         /* This happens because yy_g_n_b()
8126                                          * sees that we've accumulated a
8127                                          * token and flags that we need to
8128                                          * try matching the token before
8129                                          * proceeding.  But for input(),
8130                                          * there's no matching to consider.
8131                                          * So convert the EOB_ACT_LAST_MATCH
8132                                          * to EOB_ACT_END_OF_FILE.
8133                                          */
8134
8135                                         /* Reset buffer status. */
8136                                         surf_parse_restart(surf_parse_in );
8137
8138                                         /*FALLTHROUGH*/
8139
8140                                 case EOB_ACT_END_OF_FILE:
8141                                         {
8142                                         if ( surf_parse_wrap( ) )
8143                                                 return EOF;
8144
8145                                         if ( ! (yy_did_buffer_switch_on_eof) )
8146                                                 YY_NEW_FILE;
8147 #ifdef __cplusplus
8148                                         return yyinput();
8149 #else
8150                                         return input();
8151 #endif
8152                                         }
8153
8154                                 case EOB_ACT_CONTINUE_SCAN:
8155                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8156                                         break;
8157                                 }
8158                         }
8159                 }
8160
8161         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8162         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8163         (yy_hold_char) = *++(yy_c_buf_p);
8164
8165         if ( c == '\n' )
8166                    
8167     surf_parse_lineno++;
8168 ;
8169
8170         return c;
8171 }
8172 #endif  /* ifndef YY_NO_INPUT */
8173
8174 /** Immediately switch to a different input stream.
8175  * @param input_file A readable stream.
8176  * 
8177  * @note This function does not reset the start condition to @c INITIAL .
8178  */
8179     void surf_parse_restart  (FILE * input_file )
8180 {
8181     
8182         if ( ! YY_CURRENT_BUFFER ){
8183         surf_parse_ensure_buffer_stack ();
8184                 YY_CURRENT_BUFFER_LVALUE =
8185             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8186         }
8187
8188         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8189         surf_parse__load_buffer_state( );
8190 }
8191
8192 /** Switch to a different input buffer.
8193  * @param new_buffer The new input buffer.
8194  * 
8195  */
8196     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8197 {
8198     
8199         /* TODO. We should be able to replace this entire function body
8200          * with
8201          *              surf_parse_pop_buffer_state();
8202          *              surf_parse_push_buffer_state(new_buffer);
8203      */
8204         surf_parse_ensure_buffer_stack ();
8205         if ( YY_CURRENT_BUFFER == new_buffer )
8206                 return;
8207
8208         if ( YY_CURRENT_BUFFER )
8209                 {
8210                 /* Flush out information for old buffer. */
8211                 *(yy_c_buf_p) = (yy_hold_char);
8212                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8213                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8214                 }
8215
8216         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8217         surf_parse__load_buffer_state( );
8218
8219         /* We don't actually know whether we did this switch during
8220          * EOF (surf_parse_wrap()) processing, but the only time this flag
8221          * is looked at is after surf_parse_wrap() is called, so it's safe
8222          * to go ahead and always set it.
8223          */
8224         (yy_did_buffer_switch_on_eof) = 1;
8225 }
8226
8227 static void surf_parse__load_buffer_state  (void)
8228 {
8229         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8230         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8231         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8232         (yy_hold_char) = *(yy_c_buf_p);
8233 }
8234
8235 /** Allocate and initialize an input buffer state.
8236  * @param file A readable stream.
8237  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8238  * 
8239  * @return the allocated buffer state.
8240  */
8241     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8242 {
8243         YY_BUFFER_STATE b;
8244     
8245         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8246         if ( ! b )
8247                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8248
8249         b->yy_buf_size = size;
8250
8251         /* yy_ch_buf has to be 2 characters longer than the size given because
8252          * we need to put in 2 end-of-buffer characters.
8253          */
8254         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8255         if ( ! b->yy_ch_buf )
8256                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8257
8258         b->yy_is_our_buffer = 1;
8259
8260         surf_parse__init_buffer(b,file );
8261
8262         return b;
8263 }
8264
8265 /** Destroy the buffer.
8266  * @param b a buffer created with surf_parse__create_buffer()
8267  * 
8268  */
8269     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8270 {
8271     
8272         if ( ! b )
8273                 return;
8274
8275         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8276                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8277
8278         if ( b->yy_is_our_buffer )
8279                 surf_parse_free((void *) b->yy_ch_buf  );
8280
8281         surf_parse_free((void *) b  );
8282 }
8283
8284 #ifndef __cplusplus
8285 extern int isatty (int );
8286 #endif /* __cplusplus */
8287     
8288 /* Initializes or reinitializes a buffer.
8289  * This function is sometimes called more than once on the same buffer,
8290  * such as during a surf_parse_restart() or at EOF.
8291  */
8292     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8293
8294 {
8295         int oerrno = errno;
8296     
8297         surf_parse__flush_buffer(b );
8298
8299         b->yy_input_file = file;
8300         b->yy_fill_buffer = 1;
8301
8302     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8303      * called from surf_parse_restart() or through yy_get_next_buffer.
8304      * In that case, we don't want to reset the lineno or column.
8305      */
8306     if (b != YY_CURRENT_BUFFER){
8307         b->yy_bs_lineno = 1;
8308         b->yy_bs_column = 0;
8309     }
8310
8311         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8312     
8313         errno = oerrno;
8314 }
8315
8316 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8317  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8318  * 
8319  */
8320     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8321 {
8322         if ( ! b )
8323                 return;
8324
8325         b->yy_n_chars = 0;
8326
8327         /* We always need two end-of-buffer characters.  The first causes
8328          * a transition to the end-of-buffer state.  The second causes
8329          * a jam in that state.
8330          */
8331         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8332         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8333
8334         b->yy_buf_pos = &b->yy_ch_buf[0];
8335
8336         b->yy_at_bol = 1;
8337         b->yy_buffer_status = YY_BUFFER_NEW;
8338
8339         if ( b == YY_CURRENT_BUFFER )
8340                 surf_parse__load_buffer_state( );
8341 }
8342
8343 /** Pushes the new state onto the stack. The new state becomes
8344  *  the current state. This function will allocate the stack
8345  *  if necessary.
8346  *  @param new_buffer The new state.
8347  *  
8348  */
8349 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8350 {
8351         if (new_buffer == NULL)
8352                 return;
8353
8354         surf_parse_ensure_buffer_stack();
8355
8356         /* This block is copied from surf_parse__switch_to_buffer. */
8357         if ( YY_CURRENT_BUFFER )
8358                 {
8359                 /* Flush out information for old buffer. */
8360                 *(yy_c_buf_p) = (yy_hold_char);
8361                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8362                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8363                 }
8364
8365         /* Only push if top exists. Otherwise, replace top. */
8366         if (YY_CURRENT_BUFFER)
8367                 (yy_buffer_stack_top)++;
8368         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8369
8370         /* copied from surf_parse__switch_to_buffer. */
8371         surf_parse__load_buffer_state( );
8372         (yy_did_buffer_switch_on_eof) = 1;
8373 }
8374
8375 /** Removes and deletes the top of the stack, if present.
8376  *  The next element becomes the new top.
8377  *  
8378  */
8379 void surf_parse_pop_buffer_state (void)
8380 {
8381         if (!YY_CURRENT_BUFFER)
8382                 return;
8383
8384         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8385         YY_CURRENT_BUFFER_LVALUE = NULL;
8386         if ((yy_buffer_stack_top) > 0)
8387                 --(yy_buffer_stack_top);
8388
8389         if (YY_CURRENT_BUFFER) {
8390                 surf_parse__load_buffer_state( );
8391                 (yy_did_buffer_switch_on_eof) = 1;
8392         }
8393 }
8394
8395 /* Allocates the stack if it does not exist.
8396  *  Guarantees space for at least one push.
8397  */
8398 static void surf_parse_ensure_buffer_stack (void)
8399 {
8400         int num_to_alloc;
8401     
8402         if (!(yy_buffer_stack)) {
8403
8404                 /* First allocation is just for 2 elements, since we don't know if this
8405                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8406                  * immediate realloc on the next call.
8407          */
8408                 num_to_alloc = 1;
8409                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8410                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8411                                                                 );
8412                 if ( ! (yy_buffer_stack) )
8413                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8414                                                                   
8415                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8416                                 
8417                 (yy_buffer_stack_max) = num_to_alloc;
8418                 (yy_buffer_stack_top) = 0;
8419                 return;
8420         }
8421
8422         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8423
8424                 /* Increase the buffer to prepare for a possible push. */
8425                 int grow_size = 8 /* arbitrary grow size */;
8426
8427                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8428                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8429                                                                 ((yy_buffer_stack),
8430                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8431                                                                 );
8432                 if ( ! (yy_buffer_stack) )
8433                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8434
8435                 /* zero only the new slots.*/
8436                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8437                 (yy_buffer_stack_max) = num_to_alloc;
8438         }
8439 }
8440
8441 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8442  * @param base the character buffer
8443  * @param size the size in bytes of the character buffer
8444  * 
8445  * @return the newly allocated buffer state object. 
8446  */
8447 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8448 {
8449         YY_BUFFER_STATE b;
8450     
8451         if ( size < 2 ||
8452              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8453              base[size-1] != YY_END_OF_BUFFER_CHAR )
8454                 /* They forgot to leave room for the EOB's. */
8455                 return 0;
8456
8457         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8458         if ( ! b )
8459                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8460
8461         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8462         b->yy_buf_pos = b->yy_ch_buf = base;
8463         b->yy_is_our_buffer = 0;
8464         b->yy_input_file = 0;
8465         b->yy_n_chars = b->yy_buf_size;
8466         b->yy_is_interactive = 0;
8467         b->yy_at_bol = 1;
8468         b->yy_fill_buffer = 0;
8469         b->yy_buffer_status = YY_BUFFER_NEW;
8470
8471         surf_parse__switch_to_buffer(b  );
8472
8473         return b;
8474 }
8475
8476 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8477  * scan from a @e copy of @a str.
8478  * @param yystr a NUL-terminated string to scan
8479  * 
8480  * @return the newly allocated buffer state object.
8481  * @note If you want to scan bytes that may contain NUL values, then use
8482  *       surf_parse__scan_bytes() instead.
8483  */
8484 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8485 {
8486     
8487         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8488 }
8489
8490 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8491  * scan from a @e copy of @a bytes.
8492  * @param yybytes the byte buffer to scan
8493  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8494  * 
8495  * @return the newly allocated buffer state object.
8496  */
8497 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8498 {
8499         YY_BUFFER_STATE b;
8500         char *buf;
8501         yy_size_t n;
8502         int i;
8503     
8504         /* Get memory for full buffer, including space for trailing EOB's. */
8505         n = _yybytes_len + 2;
8506         buf = (char *) surf_parse_alloc(n  );
8507         if ( ! buf )
8508                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8509
8510         for ( i = 0; i < _yybytes_len; ++i )
8511                 buf[i] = yybytes[i];
8512
8513         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8514
8515         b = surf_parse__scan_buffer(buf,n );
8516         if ( ! b )
8517                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8518
8519         /* It's okay to grow etc. this buffer, and we should throw it
8520          * away when we're done.
8521          */
8522         b->yy_is_our_buffer = 1;
8523
8524         return b;
8525 }
8526
8527     static void yy_push_state (int  new_state )
8528 {
8529         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8530                 {
8531                 yy_size_t new_size;
8532
8533                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8534                 new_size = (yy_start_stack_depth) * sizeof( int );
8535
8536                 if ( ! (yy_start_stack) )
8537                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8538
8539                 else
8540                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8541
8542                 if ( ! (yy_start_stack) )
8543                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8544                 }
8545
8546         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8547
8548         BEGIN(new_state);
8549 }
8550
8551     static void yy_pop_state  (void)
8552 {
8553         if ( --(yy_start_stack_ptr) < 0 )
8554                 YY_FATAL_ERROR( "start-condition stack underflow" );
8555
8556         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8557 }
8558
8559 #ifndef YY_EXIT_FAILURE
8560 #define YY_EXIT_FAILURE 2
8561 #endif
8562
8563 static void yy_fatal_error (yyconst char* msg )
8564 {
8565         (void) fprintf( stderr, "%s\n", msg );
8566         exit( YY_EXIT_FAILURE );
8567 }
8568
8569 /* Redefine yyless() so it works in section 3 code. */
8570
8571 #undef yyless
8572 #define yyless(n) \
8573         do \
8574                 { \
8575                 /* Undo effects of setting up surf_parse_text. */ \
8576         int yyless_macro_arg = (n); \
8577         YY_LESS_LINENO(yyless_macro_arg);\
8578                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8579                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8580                 (yy_hold_char) = *(yy_c_buf_p); \
8581                 *(yy_c_buf_p) = '\0'; \
8582                 surf_parse_leng = yyless_macro_arg; \
8583                 } \
8584         while ( 0 )
8585
8586 /* Accessor  methods (get/set functions) to struct members. */
8587
8588 /** Get the current line number.
8589  * 
8590  */
8591 int surf_parse_get_lineno  (void)
8592 {
8593         
8594     return surf_parse_lineno;
8595 }
8596
8597 /** Get the input stream.
8598  * 
8599  */
8600 FILE *surf_parse_get_in  (void)
8601 {
8602         return surf_parse_in;
8603 }
8604
8605 /** Get the output stream.
8606  * 
8607  */
8608 FILE *surf_parse_get_out  (void)
8609 {
8610         return surf_parse_out;
8611 }
8612
8613 /** Get the length of the current token.
8614  * 
8615  */
8616 int surf_parse_get_leng  (void)
8617 {
8618         return surf_parse_leng;
8619 }
8620
8621 /** Get the current token.
8622  * 
8623  */
8624
8625 char *surf_parse_get_text  (void)
8626 {
8627         return surf_parse_text;
8628 }
8629
8630 /** Set the current line number.
8631  * @param line_number
8632  * 
8633  */
8634 void surf_parse_set_lineno (int  line_number )
8635 {
8636     
8637     surf_parse_lineno = line_number;
8638 }
8639
8640 /** Set the input stream. This does not discard the current
8641  * input buffer.
8642  * @param in_str A readable stream.
8643  * 
8644  * @see surf_parse__switch_to_buffer
8645  */
8646 void surf_parse_set_in (FILE *  in_str )
8647 {
8648         surf_parse_in = in_str ;
8649 }
8650
8651 void surf_parse_set_out (FILE *  out_str )
8652 {
8653         surf_parse_out = out_str ;
8654 }
8655
8656 int surf_parse_get_debug  (void)
8657 {
8658         return surf_parse__flex_debug;
8659 }
8660
8661 void surf_parse_set_debug (int  bdebug )
8662 {
8663         surf_parse__flex_debug = bdebug ;
8664 }
8665
8666 static int yy_init_globals (void)
8667 {
8668         /* Initialization is the same as for the non-reentrant scanner.
8669      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
8670      */
8671
8672     /* We do not touch surf_parse_lineno unless the option is enabled. */
8673     surf_parse_lineno =  1;
8674     
8675     (yy_buffer_stack) = 0;
8676     (yy_buffer_stack_top) = 0;
8677     (yy_buffer_stack_max) = 0;
8678     (yy_c_buf_p) = (char *) 0;
8679     (yy_init) = 0;
8680     (yy_start) = 0;
8681
8682     (yy_start_stack_ptr) = 0;
8683     (yy_start_stack_depth) = 0;
8684     (yy_start_stack) =  NULL;
8685
8686 /* Defined in main.c */
8687 #ifdef YY_STDINIT
8688     surf_parse_in = stdin;
8689     surf_parse_out = stdout;
8690 #else
8691     surf_parse_in = (FILE *) 0;
8692     surf_parse_out = (FILE *) 0;
8693 #endif
8694
8695     /* For future reference: Set errno on error, since we are called by
8696      * surf_parse_lex_init()
8697      */
8698     return 0;
8699 }
8700
8701 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
8702 int surf_parse_lex_destroy  (void)
8703 {
8704     
8705     /* Pop the buffer stack, destroying each element. */
8706         while(YY_CURRENT_BUFFER){
8707                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
8708                 YY_CURRENT_BUFFER_LVALUE = NULL;
8709                 surf_parse_pop_buffer_state();
8710         }
8711
8712         /* Destroy the stack itself. */
8713         surf_parse_free((yy_buffer_stack) );
8714         (yy_buffer_stack) = NULL;
8715
8716     /* Destroy the start condition stack. */
8717         surf_parse_free((yy_start_stack)  );
8718         (yy_start_stack) = NULL;
8719
8720     /* Reset the globals. This is important in a non-reentrant scanner so the next time
8721      * surf_parse_lex() is called, initialization will occur. */
8722     yy_init_globals( );
8723
8724     return 0;
8725 }
8726
8727 /*
8728  * Internal utility routines.
8729  */
8730
8731 #ifndef yytext_ptr
8732 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
8733 {
8734         register int i;
8735         for ( i = 0; i < n; ++i )
8736                 s1[i] = s2[i];
8737 }
8738 #endif
8739
8740 #ifdef YY_NEED_STRLEN
8741 static int yy_flex_strlen (yyconst char * s )
8742 {
8743         register int n;
8744         for ( n = 0; s[n]; ++n )
8745                 ;
8746
8747         return n;
8748 }
8749 #endif
8750
8751 void *surf_parse_alloc (yy_size_t  size )
8752 {
8753         return (void *) malloc( size );
8754 }
8755
8756 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
8757 {
8758         /* The cast to (char *) in the following accommodates both
8759          * implementations that use char* generic pointers, and those
8760          * that use void* generic pointers.  It works with the latter
8761          * because both ANSI C and C++ allow castless assignment from
8762          * any pointer type to void*, and deal with argument conversions
8763          * as though doing an assignment.
8764          */
8765         return (void *) realloc( (char *) ptr, size );
8766 }
8767
8768 void surf_parse_free (void * ptr )
8769 {
8770         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
8771 }
8772
8773 #define YYTABLES_NAME "yytables"
8774
8775 /* Element context stack lookup. */
8776 int surfxml_element_context(int i)
8777 {
8778   return (0<i && i<yy_start_stack_depth
8779           ? yy_start_stack[yy_start_stack_ptr - i]
8780           : 0);
8781 }
8782
8783 #ifdef FLEX_DEBUG
8784 void print_yy_stack(char* fmt, ...)
8785 {
8786   int i = 0; va_list ap; va_start(ap, fmt);
8787   vfprintf(stderr, fmt, ap);
8788   if (surfxml_statenames) {
8789       for (i=1; i<yy_start_stack_ptr; i++) {
8790           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
8791       }
8792       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
8793   }
8794   va_end(ap);
8795 }
8796
8797 void print_surfxml_bufferstack()
8798 {
8799     int i;
8800     fputs("Buffer: ", stderr);
8801     for (i = 0; i < blimit; i++) {
8802        if ( surfxml_bufferstack[i] == '\377' ) break;
8803          putc(surfxml_bufferstack[i], stderr);
8804     }
8805     putc('\n', stderr);
8806 }
8807
8808 static void debug_enter(int state, const char* statename) {
8809   yy_push_state(state);
8810   if (surf_parse__flex_debug) {
8811        print_yy_stack("--ENTER(%s) : ",statename);
8812        print_surfxml_bufferstack();
8813   }
8814 }
8815
8816 static void debug_leave(void) {
8817     if (surf_parse__flex_debug) {
8818         print_yy_stack("--LEAVE : ");
8819         print_surfxml_bufferstack();
8820     }
8821   yy_pop_state();
8822 }
8823
8824 static void debug_set(int state, const char* statename) {
8825   BEGIN(state);
8826   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
8827 }
8828 #endif
8829
8830 static void cleanup(void)
8831 {
8832     if (surfxml_statenames) {
8833         free(surfxml_statenames);
8834         surfxml_statenames = NULL;
8835     }
8836     free(surfxml_bufferstack);
8837     surfxml_bufferstack = NULL;
8838
8839     free(indexstack);
8840     indexstack = NULL;
8841 }
8842
8843 static int fail(const char* fmt, ...)
8844 {
8845     int chars_left, used;
8846     va_list ap; va_start(ap, fmt);
8847 #ifdef FLEXML_yylineno
8848     used = sprintf(flexml_err_msg,
8849                    "Invalid XML (XML input line %d, state %d): ",
8850                    surf_parse_lineno, YY_START);
8851 #else
8852     used = sprintf(flexml_err_msg,
8853                    "Invalid XML (state %d): ",
8854                    YY_START);
8855 #endif
8856     chars_left = flexml_max_err_msg_size - used - 1;
8857     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
8858     va_end(ap);
8859
8860 #ifndef FLEXML_quiet_parser
8861     /* print directly to sdterr */
8862     fprintf(stderr, "%s\n", flexml_err_msg);
8863     flexml_err_msg[0] = '\0';
8864 #endif
8865
8866     cleanup();
8867
8868     return 1;
8869 }
8870