Logo AND Algorithmique Numérique Distribuée

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