Logo AND Algorithmique Numérique Distribuée

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