Logo AND Algorithmique Numérique Distribuée

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