Logo AND Algorithmique Numérique Distribuée

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