Logo AND Algorithmique Numérique Distribuée

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