Logo AND Algorithmique Numérique Distribuée

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