Logo AND Algorithmique Numérique Distribuée

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