Logo AND Algorithmique Numérique Distribuée

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