Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : application alert for state equality detection
[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 524
407 #define YY_END_OF_BUFFER 525
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[3108] =
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,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,  525,  523,   15,   10,   10,   15,
444        15,  503,   10,  503,    5,    6,    5,    8,    9,    8,
445       519,  511,  512,  520,  517,  520,  518,  522,  511,  512,
446       522,  523,   22,   10,   22,   22,   22,   20,   22,   26,
447        10,   26,   26,  523,   26,  523,  523,   26,   33,   10,
448        33,   33,   33,   31,   33,   37,   10,   37,   37,   48,
449
450        10,   48,   48,   48,   46,   48,   48,   48,  520,  519,
451        78,   10,   78,   78,   78,   76,   78,   78,   78,   78,
452        78,   82,   10,   82,  523,   82,  101,   10,  101,  101,
453       101,   99,  101,  101,  101,  105,   10,  105,  128,   10,
454       128,  128,  128,  126,  128,  128,  132,   10,  132,  132,
455       523,  132,  132,  523,  523,  132,  523,  132,  523,  132,
456       145,   10,  145,  145,  145,  143,  145,  145,  145,  145,
457       149,   10,  149,  149,  160,   10,  160,  160,  160,  158,
458       160,  160,  160,  164,   10,  164,  164,  173,   10,  173,
459       173,  173,  171,  173,  173,  177,   10,  177,  186,   10,
460
461       186,  186,  186,  184,  186,  186,  190,   10,  190,  213,
462        10,  213,  213,  213,  211,  213,  213,  213,  213,  213,
463       217,   10,  217,  523,  217,  228,   10,  228,  228,  228,
464       226,  228,  228,  228,  232,   10,  232,  273,   10,  273,
465       273,  273,  271,  273,  273,  273,  273,  273,  273,  273,
466       273,  277,   10,  277,  298,   10,  298,  298,  298,  296,
467       298,  298,  298,  298,  298,  298,  298,  302,   10,  302,
468       311,   10,  311,  311,  311,  309,  311,  311,  315,   10,
469       315,  326,   10,  326,  326,  326,  324,  326,  326,  326,
470       330,   10,  330,  357,   10,  357,  357,  357,  355,  357,
471
472       357,  357,  357,  361,   10,  361,  361,  374,   10,  374,
473       374,  374,  372,  374,  374,  378,   10,  378,  523,  378,
474       395,   10,  395,  395,  395,  393,  395,  395,  395,  399,
475        10,  399,  399,  412,   10,  412,  412,  412,  410,  412,
476       412,  416,   10,  416,  425,   10,  425,  425,  425,  423,
477       425,  425,  429,   10,  429,  429,  442,   10,  442,  442,
478       442,  440,  442,  442,  442,  446,   10,  446,  446,  463,
479        10,  463,  463,  463,  461,  463,  463,  463,  463,  463,
480       467,   10,  467,  523,  467,  474,   10,  474,  474,  474,
481       472,  474,  478,   10,  478,  485,   10,  485,  485,  485,
482
483       483,  485,  489,   10,  489,  489,  498,   10,  498,  498,
484       498,  496,  498,  498,  502,   10,  502,   10,    0,    2,
485         2,    0,    4,    7,  514,  513,    0,    0,    0,    0,
486         0,    0,    0,   21,   23,   23,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
488         0,    0,    0,    0,    0,    0,    0,    0,    0,   32,
489        34,   34,    0,   47,   49,   49,   49,   49,    0,    0,
490         0,   77,   79,   79,   79,   79,   79,   79,   79,   79,
491        79,    0,    0,  100,  102,  102,  102,  102,    0,  127,
492       129,  129,  129,    0,    0,    0,    0,    0,    0,    0,
493
494         0,    0,    0,    0,    0,    0,    0,    0,  144,  146,
495       146,  146,  146,  146,    0,  159,  161,  161,  161,  161,
496         0,  172,  174,  174,  174,    0,  185,  187,  187,  187,
497         0,  212,  214,  214,  214,  214,  214,  214,    0,    0,
498       227,  229,  229,  229,  229,    0,  272,  274,  274,  274,
499       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
500       274,    0,  297,  299,  299,  299,  299,  299,  299,  299,
501       299,    0,  310,  312,  312,  312,    0,  325,  327,  327,
502       327,  327,    0,  356,  358,  358,  358,  358,  358,  358,
503         0,  373,  375,  375,  375,  375,    0,    0,  394,  396,
504
505       396,  396,  396,  396,    0,  411,  413,  413,  413,    0,
506       424,  426,  426,  426,    0,  441,  443,  443,  443,  443,
507         0,  462,  464,  464,  464,  464,  464,  464,    0,    0,
508       473,  475,  475,    0,  484,  486,  486,    0,  497,  499,
509       499,  499,    0,    0,    0,    0,    0,    3,    0,    0,
510         0,    0,    0,    0,    0,  521,    0,   23,    0,    0,
511       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
512         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
513       106,    0,    0,    0,    0,    0,   34,    0,    0,   49,
514         0,    0,   49,    0,    0,    0,  516,   79,    0,    0,
515
516        79,   79,   79,   79,   79,   79,    0,    0,    0,  102,
517       102,  102,    0,    0,    0,    0,  129,    0,    0,  107,
518         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
519         0,  146,    0,    0,  146,  146,    0,    0,  161,    0,
520         0,  161,    0,    0,    0,    0,  174,    0,    0,  187,
521       187,    0,    0,  214,  214,  214,    0,    0,  214,  214,
522         0,    0,    0,    0,  229,    0,    0,    0,    0,    0,
523         0,  274,  274,    0,    0,  274,    0,    0,  274,  274,
524       274,  274,  274,  274,  274,  274,    0,    0,  299,  299,
525       299,    0,    0,  299,  299,  299,    0,    0,  312,    0,
526
527         0,    0,    0,  327,    0,    0,  327,    0,    0,  358,
528         0,    0,  358,  358,  358,    0,    0,  375,  375,  375,
529         0,    0,    0,  396,  396,  396,  396,    0,    0,  413,
530         0,    0,    0,    0,  426,  426,    0,    0,  443,  443,
531       443,    0,    0,  464,  464,  464,  464,  464,    0,    0,
532         0,  475,    0,    0,    0,    0,    0,    0,    0,    0,
533       499,    0,    0,    0,   14,    1,    0,    0,  509,    0,
534         0,    0,  506,  505,    0,    0,   23,    0,    0,   25,
535         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
536         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
537
538         0,    0,  106,    0,    0,    0,    0,    0,   34,    0,
539         0,   36,    0,   49,    0,   41,   40,   49,    0,    0,
540         0,   51,    0,   79,    0,   55,   54,    0,    0,   79,
541         0,    0,   79,   79,   79,    0,    0,   81,    0,    0,
542       102,  102,  102,    0,    0,  104,    0,    0,  109,  108,
543       129,    0,    0,  131,    0,    0,    0,    0,    0,    0,
544         0,    0,    0,    0,    0,    0,  146,    0,  136,  135,
545       146,  146,    0,    0,  148,    0,  161,    0,  153,  152,
546       161,    0,    0,  163,    0,    0,  168,  167,  174,    0,
547         0,  176,    0,  187,  187,    0,    0,  189,    0,  214,
548
549       214,  214,    0,  194,  193,  214,  214,    0,    0,  216,
550         0,    0,    0,  229,    0,  221,  220,    0,  223,  222,
551         0,    0,  231,    0,  274,  274,  274,  274,    0,  248,
552       247,  274,    0,  236,  235,    0,    0,  274,  274,  274,
553       274,  274,  274,  274,    0,    0,  276,    0,  299,  299,
554       299,  299,    0,  281,  280,    0,    0,  299,  299,    0,
555         0,  301,    0,  312,    0,  306,  305,    0,    0,  314,
556         0,  327,    0,  319,  318,  327,    0,    0,  329,    0,
557       358,    0,  334,  333,  358,  358,  358,    0,    0,  360,
558         0,    0,    0,    0,    0,  375,    0,    0,  377,    0,
559
560         0,    0,    0,  396,  396,    0,    0,  396,    0,    0,
561       398,    0,  413,    0,  403,  402,    0,    0,  415,    0,
562         0,    0,    0,    0,    0,    0,  428,    0,    0,    0,
563       443,  443,    0,    0,    0,    0,  445,    0,  464,  464,
564       464,  464,  464,    0,    0,  466,    0,    0,  475,    0,
565         0,  477,    0,    0,  482,  481,    0,    0,  488,    0,
566         0,  493,  492,  499,    0,    0,  501,    0,    0,    0,
567       510,  504,    0,    0,    0,   23,    0,    0,    0,    0,
568         0,    0,    0,  191,    0,  331,    0,    0,  279,    0,
569         0,  490,    0,    0,    0,    0,    0,    0,    0,    0,
570
571       278,    0,    0,    0,    0,    0,    0,    0,   49,    0,
572         0,   79,    0,   59,   58,    0,    0,    0,   57,   56,
573        79,    0,    0,   79,    0,  491,  102,    0,    0,  102,
574         0,  129,    0,  130,    0,    0,    0,  192,  332,    0,
575         0,    0,    0,    0,    0,  146,  146,    0,    0,    0,
576       161,  161,    0,    0,    0,    0,    0,    0,  187,    0,
577       214,  214,    0,    0,  214,  214,    0,    0,    0,    0,
578         0,    0,  274,  274,  274,  274,    0,    0,    0,  250,
579       249,  274,  274,  274,  274,  274,  274,  274,    0,  299,
580       299,  299,  299,    0,  289,  288,  299,  299,    0,  312,
581
582         0,  327,  327,    0,  358,  358,  358,  358,    0,    0,
583       367,  366,    0,  365,  364,  375,    0,  331,    0,  384,
584       383,  396,  396,    0,  382,  381,  396,    0,  413,    0,
585         0,  422,  421,    0,  420,  419,    0,    0,  435,  434,
586       443,  443,    0,  433,  432,    0,  464,    0,    0,  464,
587       464,  464,    0,    0,  475,    0,    0,  499,    0,    0,
588         0,    0,   12,    0,  507,  508,    0,   23,    0,    0,
589         0,    0,    0,    0,    0,  191,    0,    0,  331,    0,
590       165,    0,  279,    0,    0,  490,    0,  362,    0,   39,
591         0,    0,    0,    0,  278,    0,   38,    0,   30,   29,
592
593         0,    0,   43,   42,   49,    0,    0,   79,    0,   61,
594        60,   79,    0,   65,   64,   79,    0,  491,  102,    0,
595         0,    0,    0,    0,    0,  129,    0,    0,    0,  192,
596         0,  332,  363,    0,    0,    0,  363,  362,  146,    0,
597         0,    0,  140,  139,    0,  161,  161,    0,    0,  170,
598       169,    0,    0,  183,  182,  187,    0,  214,  214,    0,
599       198,  197,    0,    0,    0,    0,  214,    0,  166,    0,
600         0,  225,  224,    0,  274,    0,    0,  274,  274,    0,
601       246,  245,    0,    0,  274,  274,  274,  274,  274,  274,
602         0,  299,    0,    0,  299,  299,    0,    0,  299,    0,
603
604       312,    0,  327,  327,    0,  358,  358,  358,    0,    0,
605       358,    0,  375,    0,    0,  396,  396,  396,    0,  413,
606         0,    0,  443,  443,    0,  464,    0,  450,  449,  464,
607       464,  464,    0,    0,    0,    0,    0,    0,    0,    0,
608         0,    0,    0,    0,   11,    0,   23,    0,    0,    0,
609         0,    0,    0,  480,    0,    0,    0,  165,    0,    0,
610         0,   53,  362,  303,    0,   39,    0,  479,   52,    0,
611         0,    0,   38,    0,    0,   49,    0,    0,   79,   79,
612        79,    0,  102,    0,    0,    0,    0,    0,    0,    0,
613         0,    0,   96,   95,    0,  129,    0,    0,    0,    0,
614
615       363,  304,    0,    0,    0,  146,    0,  138,  137,    0,
616       161,    0,    0,    0,    0,    0,    0,    0,  214,  214,
617         0,  196,  195,    0,    0,    0,  214,    0,  215,  166,
618         0,    0,  274,    0,  258,  257,    0,    0,  274,    0,
619       244,  243,    0,    0,  274,  274,  274,  274,    0,    0,
620         0,  299,    0,  285,  284,    0,    0,  299,    0,  283,
621       282,  299,    0,  300,  312,    0,  327,  327,    0,  358,
622       358,  358,    0,    0,    0,  358,    0,  359,  375,    0,
623         0,    0,    0,    0,    0,  396,    0,  413,    0,    0,
624         0,    0,    0,    0,    0,  464,  464,  464,  464,    0,
625
626         0,    0,  471,  470,    0,    0,    0,  495,  494,    0,
627       500,    0,    0,    0,    0,    0,    0,    0,  379,    0,
628         0,    0,    0,  234,  480,    0,   28,    0,    0,    0,
629       448,   53,  303,  150,    0,  479,   52,  233,   27,  447,
630         0,    0,   49,    0,    0,   50,   79,    0,    0,   79,
631         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
632         0,    0,    0,    0,    0,    0,  380,    0,    0,    0,
633         0,  304,  151,    0,    0,    0,    0,    0,    0,  155,
634       154,    0,    0,  175,    0,  181,  180,    0,  214,  214,
635         0,    0,  214,    0,    0,  274,    0,  260,  259,  274,
636
637         0,  238,  237,    0,    0,  274,  274,  274,    0,  240,
638       239,    0,  299,    0,  287,  286,  299,  299,  312,    0,
639       327,    0,    0,    0,  358,    0,    0,  358,  358,    0,
640         0,  358,  375,    0,  376,    0,    0,  388,  387,    0,
641       386,  385,  396,    0,  413,    0,    0,    0,  439,  438,
642         0,  437,  436,    0,  464,  464,  464,  464,    0,    0,
643         0,    0,    0,    0,    0,   17,    0,   19,   18,    0,
644       379,  468,  316,    0,    0,  234,    0,   28,  400,  178,
645        16,  448,  150,    0,    0,  233,   27,  447,    0,    0,
646        49,  515,   79,    0,   67,   66,   79,    0,   80,    0,
647
648        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,  380,  317,    0,    0,
650         0,  151,    0,    0,  142,  141,    0,    0,  157,  156,
651         0,    0,  214,  214,    0,    0,    0,    0,  214,  179,
652         0,  274,  274,    0,  242,  241,  274,  274,  274,    0,
653       299,  299,  299,  312,    0,  313,  327,    0,  323,  322,
654         0,  358,    0,  340,  339,  358,  358,    0,    0,    0,
655         0,  358,  375,  401,  396,    0,  413,    0,    0,    0,
656         0,    0,  464,  464,  464,    0,  469,    0,    0,  487,
657         0,    0,    0,   17,    0,  468,  316,    0,    0,  218,
658
659       400,  178,   16,    0,    0,    0,    0,   35,   49,    0,
660         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,  317,    0,    0,  219,    0,
663         0,    0,  162,    0,  214,  214,    0,  204,    0,  203,
664       214,  179,    0,  274,  274,    0,    0,  274,  274,    0,
665       275,  299,  299,  299,  312,    0,    0,    0,    0,    0,
666       358,  358,  358,    0,  344,    0,  343,  358,  375,  401,
667       396,    0,  397,    0,    0,    0,    0,    0,    0,  452,
668       451,    0,    0,  464,  464,    0,  465,  469,    0,    0,
669
670         0,    0,    0,   24,    0,    0,  218,    0,    0,    0,
671        49,    0,    0,    0,   79,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,  219,    0,    0,    0,  188,  214,  214,  206,
675       205,    0,    0,    0,  274,  274,    0,  270,  269,  274,
676         0,    0,  299,  299,    0,    0,  312,    0,  321,  320,
677         0,  328,    0,  336,  335,  358,  358,  358,  346,  345,
678         0,    0,  375,  396,    0,    0,    0,    0,  414,    0,
679         0,    0,  456,  455,    0,    0,    0,    0,    0,  476,
680
681         0,    0,    0,    0,  417,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
683         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,  418,    0,    0,  214,    0,    0,    0,
686       208,  207,    0,  230,  274,  274,  274,    0,  268,  267,
687       299,    0,    0,    0,  295,  294,    0,    0,  358,  358,
688       358,    0,  348,  347,    0,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690       454,  453,    0,    0,    0,    0,  417,  133,    0,    0,
691
692         0,   45,   44,    0,    0,    0,    0,    0,    0,    0,
693         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,  418,  134,    0,    0,
696         0,  214,    0,  210,  209,  274,  274,  274,  299,    0,
697       291,  290,    0,  308,  307,  358,    0,    0,  358,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
699         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700         0,  430,  133,   84,   83,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
702
703         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
704         0,    0,    0,    0,  110,  118,    0,    0,  431,  134,
705         0,    0,  200,  199,  214,  274,  274,  274,  299,  358,
706         0,  342,  341,  358,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,  405,    0,    0,  404,    0,  427,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,  430,   84,   83,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,  113,    0,    0,    0,    0,  112,
712         0,    0,  431,    0,  147,  214,  274,  274,    0,    0,
713
714       299,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,   75,
717        71,    0,    0,   74,   70,    0,   92,    0,    0,   91,
718         0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
719         0,    0,  214,  274,  274,    0,    0,    0,  299,    0,
720       338,  337,    0,    0,    0,  371,    0,  370,    0,  392,
721         0,  391,    0,  407,  409,  406,  408,    0,  444,  458,
722         0,  457,    0,    0,    0,    0,   12,    0,   12,    0,
723         0,    0,    0,    0,   86,   90,   85,   89,  125,    0,
724
725         0,  123,  124,    0,    0,  122,  214,  274,  274,    0,
726         0,    0,    0,  299,    0,    0,    0,    0,  369,  368,
727       390,  389,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,  115,    0,    0,  114,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731         0,    0,    0,   69,    0,   68,    0,    0,  121,    0,
732       120,    0,  202,  201,    0,  266,  265,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,  293,  292,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,    0,  460,
738       459,    0,   73,   72,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742         0,    0,  117,  116,    0,    0,    0,    0,    0,    0,
743       252,    0,    0,  251,    0,    0,  350,    0,    0,  349,
744         0,    0,    0,    0,    0,  256,    0,  255,    0,  352,
745         0,  351,    0,    0,    0,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,  262,    0,  261,    0,    0,    0,
748         0,    0,    0,  264,  263,  254,  253,  354,  353,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,   13,    0
759     } ;
760
761 static yyconst flex_int32_t yy_ec[256] =
762     {   0,
763         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
764         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
765         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
766         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
767         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
768        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
769        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
770        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
771        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
772        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
773
774        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
775        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
776        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
777         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
778         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
779         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
780         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
781         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
782         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
783         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
784
785         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
786         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
787         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
788         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1
791     } ;
792
793 static yyconst flex_int32_t yy_meta[75] =
794     {   0,
795         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
796         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
797         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
798         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
799         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
800         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
801         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
802         5,    5,    5,    5
803     } ;
804
805 static yyconst flex_int16_t yy_base[3557] =
806     {   0,
807         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
808        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
809       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
810       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
811       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
812       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
813       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
814       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
815       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
816       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
817
818       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
819      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
820      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
821      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
822      1585, 1654, 1341, 1345, 1723,    0, 1348, 1403, 1797, 1864,
823      1406, 1409, 1931, 1988, 1413, 1416, 2045, 2105, 1471, 1474,
824      2165, 2232, 1477, 1481, 1538, 1541, 1544, 1548, 1605, 1608,
825      2299, 2366, 1611, 1615, 1618, 1674, 1677, 1680, 1684, 1687,
826      2433, 2500, 1817, 1820, 1823, 1827, 1884, 1887, 1890, 1894,
827      2567, 2624, 1951, 1954, 2681, 2748, 1957, 1961, 2008, 2011,
828
829      2014, 2018, 2065, 2068, 2815, 2882, 2071, 2075, 2078, 2125,
830      2128, 2131, 2135, 2138, 2949, 3016, 2185, 2188, 2191, 2195,
831      2198, 2252, 2255, 2258, 3083, 3153, 2262, 2265, 3223, 3280,
832      2319, 2322, 2325, 2329, 2332, 2386, 2389, 2392, 3337, 3407,
833      2396, 2399,    0,    0, 8506,11150,11150,   95,  100,   29,
834        41,11150,  103,   51,11150,11150, 8495,11150,11150, 8482,
835     11150, 8497, 8497,  202,11150,11150,11150,11150, 8491, 8491,
836      8446,  153,11150,  161, 8470,    0,  145,11150, 8436,11150,
837       165, 3473,   73, 2404,  315,  357, 8476, 8419,11150,  168,
838      8462,    0,  152,11150, 8424,11150,  261, 8466,   31,11150,
839
840       266, 8457,    0,  245,11150, 8419, 8419, 8417,  421, 8422,
841     11150,  269, 8446,    0,  340,11150, 8412, 8412,  271, 8410,
842       238,11150,  441,  163,  313,  368,11150,  503, 8438,    0,
843       401,11150, 8397, 8397, 8387,11150,  506,  548,11150,  561,
844      8432,    0,  481,11150, 8395, 8383,11150,  571, 2407, 2472,
845       567,  206,   38, 8433,  477, 2399,  572,  907, 8430,   79,
846     11150,  628, 8421,    0,  482,11150, 8377, 8383, 8371, 8376,
847     11150,  638,  426,  597,11150,  697, 8410,    0,  546,11150,
848      8366, 8376, 8350,11150,  703,  631,  691,11150,  706, 8394,
849         0,  549,11150, 8361, 8363,11150,  765,  753,11150,  773,
850
851      8387,    0,  616,11150, 8357, 8332,11150,  776,  818,11150,
852       831, 8380,    0,  815,11150, 8329, 8335, 8341, 8329, 8323,
853     11150,  838,  825, 8374,   87,11150,  841, 8365,    0,  882,
854     11150, 8321, 8327, 8314,11150,  906,  958,11150,  914, 8357,
855         0,  891,11150, 8302,  203, 8308, 8318, 8316,  157,  311,
856       908,11150,  981, 1019,11150, 1039, 8344,    0,  953,11150,
857      8293, 8287, 8294, 8304, 8302, 8287, 8281,11150, 1044, 1032,
858     11150, 1048, 8324,    0,  966,11150, 8280, 8290,11150, 1088,
859      1092,11150, 1105, 8317,    0, 1033,11150, 8287, 8283, 8281,
860     11150, 1112, 1154,11150, 1115, 8309,    0, 1089,11150, 8279,
861
862      8271, 8273,   15,11150, 1118,  559,  699,11150, 1174, 8301,
863         0, 1090,11150, 8249,  181,11150, 1179,  963, 8303, 8254,
864     11150, 1182, 8289,    0, 1158,11150, 8241, 8236,  299,11150,
865      1185, 8290,  302,11150, 1241, 8281,    0, 1225,11150, 8243,
866      8243,11150, 1247, 1290,11150, 1303, 8274,    0, 1226,11150,
867      8226, 8222,11150, 1310, 8275,  761,11150, 1365, 8266,    0,
868      1231,11150, 8214, 8209, 8213,11150, 1368, 8262,  851,11150,
869      1371, 8253,    0, 1287,11150, 8203, 8204, 8209, 8203, 8192,
870     11150, 1376, 1437, 8247,  512,11150, 1433, 8238,    0, 1288,
871     11150, 8204,11150, 1436, 1420,11150, 1440, 8232,    0, 1355,
872
873     11150, 8199,11150, 1444,  387,  814,11150, 1501, 8226,    0,
874      1360,11150, 8193, 8195,11150, 1507, 1549, 1510,  677, 8167,
875     11150, 8228, 8217,11150,11150,11150, 1558,  254, 7651, 7650,
876      7647, 7695, 7654,11150,    0, 7647, 7648, 7672, 7644,  104,
877       437, 7645, 7645, 7648,  372, 1574,  378, 7629, 7630,  625,
878       429, 7655,  634, 7624, 1575, 7619,  693, 1585, 1586,11150,
879         0, 7623, 7620,11150,    0, 7615, 1830, 7604,  372, 7601,
880      7647,11150,    0, 7600, 1897, 7589, 7605, 7590, 7599, 7596,
881      7584, 7569, 1643,11150,    0, 7580, 7563, 7575, 7554,11150,
882         0, 1964, 7552, 7597, 7575,  172, 7550, 7550,  493, 7538,
883
884      7565,  841,  888,  907,  955,  627,  903, 1282,11150,    0,
885      7530, 2021, 7539, 7513, 7519,11150,    0, 7522, 2456, 7519,
886      7492,11150,    0, 2467, 7493, 7492,11150,    0, 7479, 7475,
887      7476,11150,    0, 7483,  967, 2474, 7460, 7480, 7468, 1091,
888     11150,    0, 7452, 2479, 2522, 7465,11150,    0, 7463, 7463,
889      2525, 7444, 2529, 7439, 7435, 7442, 7442, 7420, 7439, 7437,
890      7430, 7432,11150,    0, 7432, 7427, 7404, 2535, 7398, 7393,
891      7409, 7393,11150,    0, 7392, 2547, 7380,11150,    0, 7379,
892      2587, 7359, 7371,11150,    0, 7358, 2590, 7350, 7350, 7345,
893      7333,11150,    0, 7314, 7330, 7318, 7312, 7319,11150,    0,
894
895      7303, 7311, 7306, 7290, 7326,11150,    0, 7275, 2593, 7280,
896     11150,    0, 7270, 7276, 7276,11150,    0, 7252, 7271, 7266,
897      7256,11150,    0, 7242, 7236, 7241, 7248, 7246, 7229, 7226,
898     11150,    0, 7216, 7225,11150,    0, 2596, 7206,11150,    0,
899      2599, 7196, 7189, 7225, 7225, 1470, 7173,11150, 1563,    0,
900      7158, 7157, 7198, 7197, 7149,11150, 7155, 7136, 2644, 2647,
901      1646, 7146, 7149, 7134, 7128, 7133, 7116, 7131, 7113, 7105,
902      7104, 7113, 7115, 7096, 7094, 7079, 7084, 7095, 7081, 7064,
903      1856, 7056, 7070, 7067, 7055, 7055, 7050, 2652, 2655, 7048,
904      2658, 1711, 7038, 7068, 2701, 2706,11150, 7034, 2710, 2095,
905
906      2716, 7024, 2720, 7027, 7031, 7026, 2771, 2782, 7010, 7002,
907      7010, 7009, 2776, 2779, 2728, 2155, 6984, 2785, 2835, 1915,
908      7000, 6985, 6981, 6983, 6975, 6979, 2215, 6964, 6963, 6952,
909      6950, 6950, 2838, 2282, 6963, 6953, 2844, 2848, 6937, 2856,
910      2350, 6950, 2902, 2905, 2908, 2421, 6940, 2911, 2915, 6939,
911      6937, 2972, 2977, 6932, 6921, 6926, 2980, 2554, 6925, 6908,
912      2984, 2987, 6902, 6902, 6906, 3036, 2734, 3039, 2804, 3044,
913      3049, 6909, 1920, 3057, 2936, 6911, 3063, 3104, 3112, 6910,
914      6886, 6881, 6869, 6868, 6864, 6874, 3115, 3118, 6867,   37,
915      6849, 3121, 3130, 3124, 6861, 6844, 3173, 3186, 6838, 3177,
916
917      3142, 3181, 3200, 6851, 3243, 3205, 6844, 3246, 3253, 6842,
918      3249, 3213, 6828, 6807, 6804, 3256, 3302, 3305, 3309, 3312,
919      3315, 3360, 6804, 3363, 3383, 3372, 3386, 3375, 3428, 6811,
920      3436, 3394, 3439, 3442, 3454, 3467, 3472, 3477, 3485, 3499,
921      3506, 3480, 3511, 6809, 6787, 6794, 6793, 6768, 3524, 3543,
922      6771, 6756, 3550, 3553, 3517, 3556, 3565, 3572, 3575, 3584,
923      6746, 3578, 3593, 6794,11150,11150, 1148, 6752,11150, 6787,
924      6786, 6734,11150,11150, 6731, 6729, 6739, 3597, 3600,11150,
925      3603, 1848, 6731, 6714, 6722, 6731, 6711, 6723, 6707, 6710,
926      6706, 6702, 6699, 6691, 6688, 1109, 6697, 6671, 6672, 6669,
927
928      6665, 6665, 1923, 6645, 6651, 6638, 1443, 6652, 3608, 3612,
929      3622,11150, 3626, 3634, 3641,11150,11150, 3637, 6673, 3658,
930      3661,11150, 3664, 6627, 3667,11150,11150, 3683, 3686, 3695,
931      3701, 3706, 6641, 3714, 6638, 3719, 3722,11150, 3725, 1504,
932      6619, 3728, 6618, 3732, 3746,11150, 3751, 3754,11150,11150,
933      6612, 3765, 3770,11150, 3773, 6597, 6599, 6607, 6585, 6592,
934      6579, 6568, 6582, 6574, 6554, 6552, 6566, 3777,11150,11150,
935      6550, 3792, 3795, 3799,11150, 3802, 6546, 3814,11150,11150,
936      6568, 3805, 3810,11150, 3824, 3829,11150,11150, 3837, 3843,
937      3846,11150, 3849, 3855, 3858, 3869, 3876,11150, 3879, 6532,
938
939      6539, 3882, 3888,11150,11150, 6523, 6524, 3900, 3903,11150,
940      3906, 6514, 6507, 3909, 3913,11150,11150, 3927,11150,11150,
941      3935, 3938,11150, 3941, 6506, 6493, 6505, 6495, 3947,11150,
942     11150, 3960, 3963,11150,11150, 3972, 3978, 6480, 6488, 6488,
943      6482, 6476, 6478, 6473, 3986, 3990,11150, 3993, 6468, 6461,
944      6440, 6449, 3996,11150,11150, 4012, 4015, 6430, 6437, 4023,
945      4026,11150, 4030, 6437, 4033,11150,11150, 4045, 4049,11150,
946      4052, 6412, 4055,11150,11150, 6401, 4064, 4071,11150, 4074,
947      6390, 4083,11150,11150, 6398, 6400, 6403, 4077, 4096,11150,
948      4099, 4103, 4106, 4124, 4127, 6385, 4135, 4138,11150, 4142,
949
950      6378, 4145, 4148, 6365, 6365, 4163, 4166, 6376, 4174, 4177,
951     11150, 4181, 6376, 4184,11150,11150, 4196, 4200,11150, 4203,
952      4206, 4215, 4210, 4224, 4232, 4235,11150, 4238, 4241, 4247,
953      6357, 6337, 4259, 4264, 4272, 4277,11150, 4280, 6330, 4284,
954      6348, 6345, 6324, 4287, 4291,11150, 4302, 6322, 6333, 4306,
955      4310,11150, 4313, 4325,11150,11150, 4316, 4321,11150, 4335,
956      4343,11150,11150, 6332, 4354, 4357,11150, 4360, 1447, 4367,
957     11150,11150, 6366, 6355, 6310, 6300, 4379, 6285, 6282, 6291,
958      6269, 6265, 6265, 1982, 6252, 2039, 6251, 6251, 2224, 6260,
959      6259, 2227, 6241, 6250, 6246, 6232, 6227, 6198, 6180, 6174,
960
961      2291, 6169, 6164, 4382, 4387, 4400, 4403, 4406, 6147, 6164,
962      4414, 6129, 4422,11150,11150, 4433, 4436, 4447,11150,11150,
963      6060, 4455, 4460, 6051, 4468, 2294, 6041, 4473, 4476, 4487,
964      4491, 6022, 4494,11150, 6013, 6026, 5993, 2358, 2361, 5987,
965      5932, 5880, 5836, 5831, 5812, 5752, 4497, 4500, 4506, 4519,
966      5751, 5759, 4523, 4526, 4529, 4544, 4547, 4550, 5749, 4558,
967      5747, 5672, 4565, 4568, 4577, 4584, 4588, 5656, 5578, 4591,
968      4595, 4609, 5576, 4612, 5554, 5497, 4615, 4621, 4633,11150,
969     11150, 4641, 5449, 5420, 5358, 5343, 5326,   17, 4644,  145,
970      4647,  249,  314, 4659,11150,11150, 4650,  357, 4655,  389,
971
972      4668,  439,  499, 4676,  561,  633,  650, 4679, 4682, 4688,
973     11150,11150, 4697,11150,11150,  661, 4705, 2487, 4710,11150,
974     11150,  676,  701, 4720,11150,11150,  694, 4728,  702, 4735,
975      4740,11150,11150, 4748,11150,11150, 4756, 4759,11150,11150,
976       703,  746, 4768,11150,11150, 4776,  755, 4779, 4783,  756,
977       774,  798, 4797,  831, 4800, 4804, 4807, 4810, 4818, 1145,
978       877, 4830,11150,  882,11150,11150,  857,  898, 4833,  913,
979       933,  956,  958, 1018, 1031, 2493, 1038, 1048, 2618, 1054,
980      2676, 1090, 2742, 1099, 1140, 2869, 1161, 2875, 1178, 3275,
981      1179, 1179, 1188, 1217, 2944, 1217, 4837, 4840,11150,11150,
982
983      4852, 4856,11150,11150, 1239, 1258, 4864, 1235, 4872,11150,
984     11150, 1286, 4886,11150,11150, 1284, 4894, 2998, 1289, 4899,
985      3238, 3755, 4867, 4907, 4916, 1303, 1296, 1319, 1332, 3007,
986      1354, 3011, 3367, 1367, 1356, 1359, 4920, 4923, 1360, 4926,
987      4929, 4937,11150,11150, 4945, 1365, 4948, 4951, 4957,11150,
988     11150, 4970, 4973,11150,11150, 4989, 4981, 1400, 1420, 4993,
989     11150,11150, 5001, 5007, 5015, 5019, 1434, 5028, 3330, 1442,
990      5033,11150,11150, 5041, 1443, 5047, 5050, 5060, 1430, 5065,
991     11150,11150, 5073, 5078, 5091, 1456, 1469, 1479, 1495, 5094,
992      5097, 1503, 5100, 5103, 5112, 1495, 5118, 5121, 1504, 5130,
993
994      1498, 5136, 1511, 1501, 5140, 1527, 1508, 1528, 5143, 5149,
995      1530, 5164, 1535, 5167, 1565, 5172, 5175, 5178, 5196, 1567,
996      5199, 5202, 5205, 5208, 5211, 1562, 5226,11150,11150, 1586,
997      1584, 1579, 5234, 1600, 5237, 5246, 5255, 5260, 5264, 5268,
998      5282, 1673, 1793, 1665,11150, 1604, 5286, 5289, 1641, 1635,
999      1637, 1815, 1638, 3503, 1650, 1655, 1648, 5292, 1664, 1655,
1000      1655, 5295, 5304, 5308, 1775, 5311, 1785, 5316, 5319, 1773,
1001      1787, 1775, 5322, 1805, 5325, 1811, 1841, 5328, 1817, 5331,
1002      1838, 5334, 5337, 1881, 1868, 1997, 1870, 1885, 1873, 2054,
1003      1884, 5340,11150,11150, 5355, 5359, 1870, 1867, 2006, 1873,
1004
1005      5362, 5365, 1894, 2122, 2125, 5368, 5377,11150,11150, 5386,
1006      5389, 5394, 5398, 5407, 5412, 5415, 5419, 5427, 1905, 1922,
1007      5433,11150,11150, 5442, 1937, 1938, 1919, 5450,11150, 5453,
1008      1949, 5457, 1974, 5462,11150,11150, 5470, 5476, 1976, 5484,
1009     11150,11150, 5492, 5495, 5503, 1980, 1990, 2004, 5506, 5510,
1010      5524, 2028, 5527,11150,11150, 5535, 5539, 2039, 5547,11150,
1011     11150, 2033, 5555,11150, 2045, 5558, 2032, 5561, 5564, 2035,
1012      5567, 2073, 5570, 2100, 2109, 2091, 5579,11150, 2093, 5585,
1013      2086, 5588, 5591, 5599, 5607, 2124, 5617, 2133, 5626, 5629,
1014      5632, 5636, 5650, 5653, 5661, 2142, 2144, 2138, 2151, 5664,
1015
1016      2148, 5669,11150,11150, 5684, 5687, 5691,11150,11150, 5699,
1017     11150, 2194, 2377, 2400, 2160, 5706, 5709, 5718, 5730, 2155,
1018      2171, 2209, 2200, 5737, 5741, 2209, 5744, 2210, 2221, 2214,
1019      5747, 5750, 5753, 5756, 2214, 5759, 5762, 5765, 5768, 5771,
1020      2224, 5774, 2233, 2269, 5777,11150, 2264, 5783, 5786, 2289,
1021      5796, 5803, 5806, 2304, 2302, 2302, 2309, 2305, 2314, 2316,
1022      2317, 2323, 2339, 5815, 5821, 5827, 5835, 2352, 2369, 2348,
1023      2353, 5839, 5842, 5845, 5848, 5856, 5859, 5865, 5877,11150,
1024     11150, 5885, 5890,11150, 5893,11150,11150, 5904, 2362, 2363,
1025      2429, 2507, 2372, 2409, 5909, 2427, 5912,11150,11150, 2430,
1026
1027      5924,11150,11150, 5932, 5937, 2447, 2452, 2463, 5946,11150,
1028     11150, 5954, 2470, 5958,11150,11150, 2475, 2485, 2485, 5966,
1029      2503, 5969, 5973, 5981, 2505, 5987, 5990, 2508, 2500, 2581,
1030      2638, 2505, 2532, 6001,11150, 2542, 6005,11150,11150, 6013,
1031     11150,11150, 2554, 6021, 2545, 6024, 6027, 6030,11150,11150,
1032      6046,11150,11150, 6055, 6059, 6064, 6067, 6077, 6085, 2542,
1033      6091, 6095, 6098, 2603, 2648, 6104, 6110,11150,11150, 6119,
1034      6122, 6125, 6128, 2545, 2548, 6132, 2581, 6138, 6141, 6144,
1035      6147, 6152, 6155, 2584, 2591, 6158, 6161, 6164, 2601, 6167,
1036      2601,11150, 6170, 6173,11150,11150, 6181, 6188,11150, 6192,
1037
1038     11150,11150, 2649, 2657, 2680, 2679, 2690, 2700, 2694, 2715,
1039      2710, 2738, 6200, 6203, 6186, 6191, 6228, 6232, 2704, 2702,
1040      2717, 6235, 2709, 6238,11150,11150, 6248, 6251,11150,11150,
1041      6262, 6267, 2733, 2739, 2766, 2791, 2771, 2792, 2750, 6270,
1042      6273, 2747, 2754, 6277,11150,11150, 6286, 2748, 2759, 6295,
1043      2757, 2790, 2791, 2796, 6298,11150, 6304, 6307,11150,11150,
1044      6322, 6325, 6328,11150,11150, 6336, 6343, 2826, 2848, 2829,
1045      2854, 6346, 2816, 6349, 2817, 6354, 6357, 6364, 6367, 6375,
1046      6378, 6398, 6386, 6406, 6409, 6413, 6416, 6419, 6432,11150,
1047      6438, 2878, 3048, 6441, 6444, 6447, 6451, 2806, 2808, 6463,
1048
1049      6466, 6469, 6472, 2807, 2819, 2858, 6475,11150, 2848, 6478,
1050      6482, 2866, 2881, 2878, 2897, 2885, 2898, 2900, 2896, 2930,
1051      2923, 2934, 6490, 2917, 2928, 2985, 2930, 2925, 2941, 2946,
1052      2975, 3011, 2986, 2987, 3000, 6496, 3010, 3006, 6501, 3004,
1053      6504, 6509,11150, 6512, 3010, 3014, 3093,11150, 3100,11150,
1054      6515, 6518, 6523, 3043, 3089, 6534, 6538, 3081, 6546, 6553,
1055     11150, 3074, 3080, 6556, 3082, 6559, 6565, 6577, 6581, 6584,
1056      6592, 6599, 6602, 3144,11150, 3143,11150, 6605, 3109, 6610,
1057      3122, 6613,11150, 6623, 6626, 6634, 6637, 6641, 6646,11150,
1058     11150, 6661, 6664, 6672, 6675, 6679,11150, 6682, 6685, 3276,
1059
1060      3372, 3201, 6693,11150, 3117, 3134, 6698, 3127, 3139, 3141,
1061      6706, 6712, 3583, 3658, 3132, 3167, 3176, 3181, 3188, 3206,
1062      3183, 3196, 3230, 3243, 3263, 6720, 3205, 3245, 3247, 3260,
1063      3259, 3265, 3259, 3261, 3295, 3297, 3301, 3306, 3312, 3311,
1064      3324, 3346, 6724, 3337, 6727, 6730,11150, 3331, 6733,11150,
1065     11150, 6739, 6742, 6751, 3333, 3370, 6757,11150,11150, 3379,
1066      6765, 6770, 3364, 6783, 6786, 6789, 6804, 6807,11150,11150,
1067      6815,11150, 6818,11150,11150, 6826, 6829, 6834,11150,11150,
1068      6837, 6840, 6848, 6855, 6859, 3507, 3666, 6867,11150, 6873,
1069      6876, 6886,11150,11150, 6882, 6896, 6904, 6907, 6915,11150,
1070
1071      3441, 3429, 3431, 3384, 6918, 3407, 3412, 3414, 6923, 6927,
1072      3428, 3432, 3476, 3434, 3460, 3684, 3450, 3491, 3475, 3490,
1073      3496,11150, 3518, 3507, 3516, 3522,11150, 6941, 3504, 3513,
1074      3510, 3529, 3538, 3569, 3582, 3566, 3575, 3575, 3589, 3598,
1075      3601, 3606, 3589, 6944, 3605, 6947, 6950, 6953, 6956, 6971,
1076     11150,11150, 6979,11150, 3624, 3611, 3624, 6982,11150,11150,
1077      3631, 6993, 6998, 7011,11150,11150, 7006, 7020, 7028, 7031,
1078      7034, 7037,11150,11150, 7052, 7055, 7063, 7066, 3644, 3646,
1079      3657, 3675, 3701, 3701, 7074, 7077, 7087, 3721, 3726, 7096,
1080     11150,11150, 3721, 3809, 7104, 3687, 7107, 7110, 3675, 3676,
1081
1082      7113,11150,11150, 3739, 3727, 3730, 3742, 3760, 3756, 3775,
1083      3793, 7126, 3784, 3812, 3830, 3815, 3802, 3821, 3845, 3833,
1084      7129, 3799, 3801, 3818, 3869, 3870, 3870, 3835, 3830, 3833,
1085      3862, 3912, 3915, 3902, 3867, 3879, 7132, 7135, 7138, 7148,
1086      7151, 3880, 7159,11150,11150, 3881, 3886, 3875, 3898, 7167,
1087     11150,11150, 7175,11150,11150, 7183, 7186, 7190, 7204, 7207,
1088      3925, 3933, 7215, 3966, 3977, 3911, 3922, 3953, 3928, 3942,
1089      3974, 7223, 7226, 3955, 3960, 3973, 3978, 3987, 7229, 7235,
1090      7238, 7248, 7257, 7260, 7263, 3974, 3994, 3998, 3999, 4005,
1091      4018, 4020, 4021, 7266, 7269, 4034, 4040,11150, 4041, 4053,
1092
1093      4058,11150, 4060, 7277, 4040, 4027, 4090,11150,11150, 4055,
1094      4059, 4060, 4046, 4108,11150,11150, 4069, 4068, 7280, 7284,
1095      7287, 7296,11150,11150, 4066, 4067, 4075, 7306, 4077, 7309,
1096      7312,11150,11150, 7320, 4099, 4127, 4120, 4133, 4124, 4137,
1097      4135, 4147, 4139, 4163,11150, 4156, 4166,11150, 7327,11150,
1098      7330, 4169, 4157, 4189, 4183, 4279, 7333, 7340, 7352, 7383,
1099      7430, 7360, 7363, 7366, 4206, 4226, 4240, 4208, 4229, 4248,
1100      4250, 4224, 7371,11150,11150, 4263, 4238, 4239, 4268, 4252,
1101      4263, 7394, 4232, 4235,11150, 4254, 4275, 4269, 4274,11150,
1102      4276, 4291, 7403, 7406,11150, 4290, 4291, 4302, 7409, 7413,
1103
1104      4294, 7421, 7450, 7441, 7459, 4360, 4328, 4363, 4334, 4369,
1105      4337, 4369, 4340, 4386, 4388, 4386, 4389, 7467, 4394, 4371,
1106      4404, 4374, 4401, 7476, 4413, 4421, 7496, 7543, 4413,11150,
1107     11150, 4391, 4418,11150,11150, 4405,11150, 4438, 4440,11150,
1108      4439, 4445, 7470,11150, 4449, 4412, 4415, 4467, 4472, 4434,
1109      4431, 4477, 4434, 4452, 4434, 7516, 4497, 4536, 4460, 7524,
1110     11150,11150, 7532, 4599, 4601,11150, 4511,11150, 4509,11150,
1111      4528,11150, 4528,11150,11150,11150,11150, 7489,11150,11150,
1112      4518,11150, 4519, 4580, 4538, 4562, 4549, 4556, 4548, 7554,
1113      4558, 4576, 4590, 4581,11150,11150,11150,11150,11150, 4649,
1114
1115      4557,11150,11150, 4665, 4568,11150, 7563, 7566, 7569, 4654,
1116      4593, 4693, 4604, 7574, 4706, 4638, 4723, 4658,11150,11150,
1117     11150,11150, 4655, 4666, 7577, 4699, 4689, 4708, 7592, 4712,
1118      4698, 4724, 4718,11150, 4704, 4750,11150, 4717, 4758, 7596,
1119      7599, 7607, 7614, 7625, 7628, 4729, 4742, 4762, 4748, 4757,
1120      4771, 7636, 7644, 4755, 4764, 4793, 4776, 4785, 4801, 4786,
1121      4788, 7639, 4810,11150, 4797,11150, 4811, 4796,11150, 4800,
1122     11150, 7654,11150,11150, 7662,11150,11150, 7670, 4825, 4852,
1123      4820, 4830, 4839, 4843, 4860, 4856, 7678,11150,11150, 4862,
1124      4871, 4868, 4870, 4879, 4877, 4928, 4928, 4936,11150, 4936,
1125
1126      4935, 4902, 4906, 4942, 4939, 4948, 4949, 4950, 4962, 4962,
1127      4968, 4981, 4981, 4982, 4989, 4989, 4994, 5001, 5001,11150,
1128     11150, 5021,11150,11150, 4976, 4980, 5000, 5024, 5015, 5035,
1129      5021, 5024, 5045, 5035, 5032, 5053, 5046, 5044, 5061, 5051,
1130      5049, 5066, 5088, 5105, 5109, 5089, 5091, 5098, 5098, 5115,
1131      5111, 5143, 5128, 5120, 5150, 5135, 5126, 5158, 5146, 5136,
1132      5174, 5166,11150,11150, 5155, 5162, 5163, 5169, 5190, 5184,
1133     11150, 5209, 5188,11150, 5217, 5192,11150, 5217, 5200,11150,
1134      5226, 5197, 5217, 5206, 5220,11150, 5225,11150, 5227,11150,
1135      5235,11150, 5247, 7686, 5250, 5273, 5255, 5273, 5256, 5257,
1136
1137      5259, 5260, 7689, 5341,11150, 5342,11150, 5347, 5346, 5354,
1138      5364, 5356, 5364,11150,11150,11150,11150,11150,11150, 5365,
1139      5423, 5447, 5455, 5362, 5374, 5504, 5588, 5438, 5472, 5520,
1140      5535, 5576, 5594, 5443, 5461, 5379, 5565, 5586, 5592, 5532,
1141      5640, 5659, 5660, 5482, 5483, 5663, 5694, 5603, 5672, 5429,
1142      5628, 5763, 5771, 5716, 5835, 5773, 5801, 5597, 5800, 5715,
1143      5862, 5865, 5880, 5855, 5857, 5878, 5912, 5943, 5945, 5650,
1144      5783, 5934, 6026, 5850, 5871, 5990, 5998, 5911, 5975, 5656,
1145      5978, 6015, 6033, 5977, 5993, 6065, 6168, 6071, 6161, 6053,
1146      6199, 5678, 5960, 6031, 6247, 6173, 6194, 5852, 6177, 6239,
1147
1148      6242, 6272, 5933, 7697, 7700,11150,11150, 7720, 7729, 7738,
1149      7747, 7756, 7765, 7774, 7783, 7792, 7801, 7810, 7819, 7828,
1150      7837, 7846, 7855, 7864, 7873, 7882, 7891, 7900, 7909, 7918,
1151      7927, 7936, 7945, 7954, 7963, 7972, 7981, 7990, 7999, 8008,
1152      8017, 8026, 8035, 8044, 8053, 8062, 8071, 8080, 8089, 8098,
1153      8107, 8116, 8125, 8134, 8143, 8152, 8161, 8170, 8179, 8188,
1154      8197, 8206, 8215, 8224, 8231, 8238, 8245, 8252, 8259, 8266,
1155      8273, 8280, 8287, 8294, 8301, 8308, 8315, 8322, 8329, 8336,
1156      8343, 8350, 8357, 8364, 8371, 8378, 8385, 8392, 8399, 8406,
1157      8415, 8422, 8427, 8434, 8439, 8446, 8451, 8458, 8463, 8470,
1158
1159      8475, 8482, 8487, 8494, 8499, 8506, 8511, 8518, 8523, 8530,
1160      8535, 8542, 8547, 8554, 8559, 8566, 8571, 8578, 8583, 8590,
1161      8595, 8602, 8607, 8614, 8619, 8626, 8631, 8638, 8643, 8650,
1162      8655, 8662, 8667, 8674, 8679, 8686, 8691, 8698, 8703, 8710,
1163      8715, 8722, 8727, 8736, 8742, 8749, 8757, 8764, 8772, 8779,
1164      8787, 8794, 8802, 8809, 8817, 8824, 8832, 8839, 8847, 8854,
1165      8862, 8869, 8877, 8884, 8892, 8899, 8907, 8914, 8922, 8929,
1166      8937, 8944, 8952, 8959, 8967, 8974, 8982, 8989, 8997, 9005,
1167      9013, 9021, 9029, 9036, 9044, 9052, 9060, 9068, 9076, 9083,
1168      9091, 9098, 9106, 9114, 9121, 9129, 9138, 9144, 9151, 9159,
1169
1170      9167, 9175, 9183, 9191, 9198, 9206, 9213, 9221, 9228, 9236,
1171      9243, 9251, 9258, 9266, 9274, 9282, 9290, 9298, 9305, 9313,
1172      9321, 9329, 9336, 9344, 9351, 9359, 9366, 9374, 9381, 9389,
1173      9396, 9404, 9411, 9419, 9426, 9434, 9441, 9449, 9457, 9464,
1174      9472, 9479, 9487, 9494, 9502, 9510, 9517, 9525, 9534, 9543,
1175      9550, 9558, 9566, 9573, 9581, 9588, 9596, 9603, 9611, 9618,
1176      9625, 9633, 9640, 9648, 9656, 9663, 9671, 9678, 9686, 9694,
1177      9701, 9709, 9716, 9724, 9731, 9739, 9746, 9754, 9761, 9769,
1178      9776, 9784, 9791, 9799, 9806, 9814, 9822, 9829, 9837, 9844,
1179      9852, 9860, 9868, 9876, 9884, 9892, 9901, 9910, 9917, 9925,
1180
1181      9933, 9940, 9948, 9955, 9963, 9970, 9978, 9985, 9992,10000,
1182     10007,10015,10023,10031,10039,10046,10054,10062,10069,10077,
1183     10084,10092,10099,10107,10114,10122,10129,10137,10144,10152,
1184     10160,10168,10175,10183,10191,10199,10207,10214,10222,10230,
1185     10238,10246,10255,10264,10272,10280,10288,10295,10303,10310,
1186     10318,10326,10334,10342,10350,10358,10366,10374,10382,10390,
1187     10397,10405,10412,10420,10427,10434,10442,10449,10457,10464,
1188     10471,10479,10486,10494,10501,10509,10517,10525,10532,10540,
1189     10548,10556,10565,10574,10582,10590,10597,10604,10612,10620,
1190     10628,10636,10644,10651,10659,10666,10674,10681,10688,10696,
1191
1192     10703,10711,10718,10725,10732,10740,10747,10755,10763,10771,
1193     10779,10787,10795,10803,10812,10821,10829,10837,10844,10852,
1194     10860,10868,10876,10884,10891,10899,10906,10914,10921,10928,
1195     10936,10944,10952,10959,10966,10974,10982,10990,10998,11006,
1196     11014,11022,11030,11039,11048,11056,11063,11070,11078,11086,
1197     11095,11104,11113,11122,11131,11140
1198     } ;
1199
1200 static yyconst flex_int16_t yy_def[3557] =
1201     {   0,
1202      3108, 3108, 3109, 3109, 3109, 3109, 3110, 3110, 3111, 3111,
1203      3112, 3112, 3113, 3113, 3113, 3113, 3114, 3114, 3108, 3108,
1204      3115, 3115, 3116, 3116, 3116, 3116, 3108, 3108, 3116, 3116,
1205      3116, 3116, 3108, 3108, 3116, 3116, 3108, 3108, 3116, 3116,
1206      3116, 3116, 3117, 3117, 3118, 3118, 3108, 3108, 3118, 3118,
1207      3118, 3118, 3119, 3119, 3113, 3113, 3120, 3120, 3121, 3121,
1208      3108, 3108, 3121, 3121, 3121, 3121, 3122, 3122, 3123, 3123,
1209      3124, 3124, 3125, 3125, 3125, 3125, 3108, 3108, 3125, 3125,
1210      3125, 3125, 3108, 3108, 3125, 3125, 3108, 3108, 3125, 3125,
1211      3125, 3125, 3108, 3108, 3125, 3125, 3108, 3108, 3125, 3125,
1212
1213      3125, 3125, 3126, 3126, 3127, 3127, 3108, 3108, 3127, 3127,
1214      3127, 3127, 3128, 3128, 3129, 3129, 3108, 3108, 3129, 3129,
1215      3129, 3129, 3130, 3130, 3131, 3131, 3132, 3132, 3133, 3133,
1216      3134, 3134, 3135, 3135, 3108, 3108, 3135, 3135, 3135, 3135,
1217      3136, 3136, 3137, 3137, 3107,  145, 3138, 3138, 3139, 3139,
1218      3140, 3140, 3141, 3141, 3142, 3142, 3143, 3143, 3144, 3144,
1219      3145, 3145, 3146, 3146, 3108, 3108, 3146, 3146, 3146, 3146,
1220      3147, 3147, 3148, 3148, 3108, 3108, 3148, 3148, 3148, 3148,
1221      3149, 3149, 3150, 3150, 3108, 3108, 3150, 3150, 3150, 3150,
1222      3151, 3151, 3152, 3152, 3153, 3153, 3154, 3154, 3108, 3108,
1223
1224      3154, 3154, 3154, 3154, 3155, 3155, 3156, 3156, 3108, 3108,
1225      3156, 3156, 3156, 3156, 3157, 3157, 3158, 3158, 3108, 3108,
1226      3158, 3158, 3158, 3158, 3159, 3159, 3160, 3160, 3161, 3161,
1227      3162, 3162, 3108, 3108, 3162, 3162, 3162, 3162, 3163, 3163,
1228      3164, 3164, 3108, 3108, 3107, 3107, 3107, 3107, 3107, 3107,
1229      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1230      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1231      3107, 3107, 3107, 3107, 3107, 3165, 3107, 3107, 3165, 3107,
1232      3107, 3107,  282,  282,  284,  282,  285,  285, 3107, 3107,
1233      3107, 3166, 3107, 3107, 3166, 3107, 3107,  286,  285, 3107,
1234
1235      3107, 3107, 3167, 3107, 3107, 3167, 3167, 3167, 3107, 3107,
1236      3107, 3107, 3107, 3168, 3107, 3107, 3168, 3168, 3168, 3168,
1237      3168, 3107, 3107,  285,  285,  285, 3107, 3107, 3107, 3169,
1238      3107, 3107, 3169, 3169, 3169, 3107, 3107, 3107, 3107, 3107,
1239      3107, 3170, 3107, 3107, 3170, 3170, 3107, 3107,  286,  285,
1240       286,  351,  350,  350,  350,  350,  351,  357,  356,  355,
1241      3107, 3107, 3107, 3171, 3107, 3107, 3171, 3171, 3171, 3171,
1242      3107, 3107,  285,  285, 3107, 3107, 3107, 3172, 3107, 3107,
1243      3172, 3172, 3172, 3107, 3107,  285,  285, 3107, 3107, 3107,
1244      3173, 3107, 3107, 3173, 3173, 3107, 3107, 3107, 3107, 3107,
1245
1246      3107, 3174, 3107, 3107, 3174, 3174, 3107, 3107, 3107, 3107,
1247      3107, 3107, 3175, 3107, 3107, 3175, 3175, 3175, 3175, 3175,
1248      3107, 3107,  285,  423,  423, 3107, 3107, 3107, 3176, 3107,
1249      3107, 3176, 3176, 3176, 3107, 3107, 3107, 3107, 3107, 3107,
1250      3177, 3107, 3107, 3177, 3177, 3177, 3177, 3177, 3177, 3177,
1251      3177, 3107, 3107, 3107, 3107, 3107, 3107, 3178, 3107, 3107,
1252      3178, 3178, 3178, 3178, 3178, 3178, 3178, 3107, 3107, 3107,
1253      3107, 3107, 3107, 3179, 3107, 3107, 3179, 3179, 3107, 3107,
1254      3107, 3107, 3107, 3107, 3180, 3107, 3107, 3180, 3180, 3180,
1255      3107, 3107, 3107, 3107, 3107, 3107, 3181, 3107, 3107, 3181,
1256
1257      3181, 3181, 3181, 3107, 3107,  423,  285, 3107, 3107, 3107,
1258      3182, 3107, 3107, 3182, 3182, 3107, 3107,  285,  518,  518,
1259      3107, 3107, 3107, 3183, 3107, 3107, 3183, 3183, 3183, 3107,
1260      3107,  518,  518, 3107, 3107, 3107, 3184, 3107, 3107, 3184,
1261      3184, 3107, 3107, 3107, 3107, 3107, 3107, 3185, 3107, 3107,
1262      3185, 3185, 3107, 3107,  518,  518, 3107, 3107, 3107, 3186,
1263      3107, 3107, 3186, 3186, 3186, 3107, 3107,  518,  518, 3107,
1264      3107, 3107, 3187, 3107, 3107, 3187, 3187, 3187, 3187, 3187,
1265      3107, 3107,  285,  583,  583, 3107, 3107, 3107, 3188, 3107,
1266      3107, 3188, 3107, 3107, 3107, 3107, 3107, 3107, 3189, 3107,
1267
1268      3107, 3189, 3107, 3107,  583,  285, 3107, 3107, 3107, 3190,
1269      3107, 3107, 3190, 3190, 3107, 3107, 3107, 3107, 3191, 3107,
1270      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1271      3107, 3107, 3107, 3107, 3192, 3192, 3193, 3107, 3107, 3107,
1272      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1273      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1274      3194, 3194, 3195, 3107, 3196, 3196, 3196, 3196, 3107, 3197,
1275      3107, 3107, 3198, 3198, 3198, 3198, 3198, 3198, 3198, 3198,
1276      3198, 3199, 3107, 3107, 3200, 3200, 3200, 3200, 3201, 3107,
1277      3202, 3202, 3202, 3203, 3107, 3107, 3107, 3107, 3107, 3107,
1278
1279      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3204,
1280      3204, 3204, 3204, 3204, 3205, 3107, 3206, 3206, 3206, 3206,
1281      3207, 3107, 3208, 3208, 3208, 3209, 3107, 3210, 3210, 3210,
1282      3211, 3107, 3212, 3212, 3212, 3212, 3212, 3212, 3213, 3107,
1283      3107, 3214, 3214, 3214, 3214, 3215, 3107, 3216, 3216, 3216,
1284      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1285      3216, 3217, 3107, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
1286      3218, 3219, 3107, 3220, 3220, 3220, 3221, 3107, 3222, 3222,
1287      3222, 3222, 3223, 3107, 3224, 3224, 3224, 3224, 3224, 3224,
1288      3225, 3107, 3226, 3226, 3226, 3226, 3227, 3107, 3107, 3228,
1289
1290      3228, 3228, 3228, 3228, 3229, 3107, 3230, 3230, 3230, 3231,
1291      3107, 3232, 3232, 3232, 3233, 3107, 3234, 3234, 3234, 3234,
1292      3235, 3107, 3236, 3236, 3236, 3236, 3236, 3236, 3237, 3107,
1293      3107, 3238, 3238, 3239, 3107, 3240, 3240, 3241, 3107, 3242,
1294      3242, 3242, 3243, 3244, 3107, 3244, 3107, 3107, 3107, 3245,
1295      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3246, 3247, 3247,
1296      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1297      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1298      3107, 3107, 3107, 3107, 3107, 3107, 3248, 3249, 3249, 3250,
1299      3107, 3107, 3250, 3107, 3251, 3251, 3107, 3252, 3107, 3107,
1300
1301      3252, 3252, 3252, 3252, 3252, 3252, 3253, 3253, 3107, 3254,
1302      3254, 3254, 3255, 3255, 3107, 3107, 3256, 3257, 3257, 3107,
1303      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1304      3107, 3258, 3107, 3107, 3258, 3258, 3259, 3259, 3260, 3107,
1305      3107, 3260, 3261, 3261, 3107, 3107, 3262, 3263, 3263, 3264,
1306      3264, 3265, 3265, 3266, 3266, 3266, 3107, 3107, 3266, 3266,
1307      3267, 3267, 3107, 3107, 3268, 3107, 3107, 3107, 3107, 3269,
1308      3269, 3270, 3270, 3107, 3107, 3270, 3107, 3107, 3270, 3270,
1309      3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271, 3272, 3272,
1310      3272, 3107, 3107, 3272, 3272, 3272, 3273, 3273, 3274, 3107,
1311
1312      3107, 3275, 3275, 3276, 3107, 3107, 3276, 3277, 3277, 3278,
1313      3107, 3107, 3278, 3278, 3278, 3279, 3279, 3280, 3280, 3280,
1314      3281, 3281, 3107, 3282, 3282, 3282, 3282, 3283, 3283, 3284,
1315      3107, 3107, 3285, 3285, 3286, 3286, 3287, 3287, 3288, 3288,
1316      3288, 3289, 3289, 3290, 3290, 3290, 3290, 3290, 3291, 3291,
1317      3107, 3292, 3293, 3293, 3107, 3107, 3294, 3294, 3107, 3107,
1318      3295, 3296, 3296, 3297, 3107, 3107, 3297, 3107, 3107, 3298,
1319      3107, 3107, 3107, 3107, 3107, 3107, 3299, 3107, 3300, 3107,
1320      3300, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1321      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1322
1323      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3301, 3107,
1324      3302, 3107, 3302, 3303, 3107, 3107, 3107, 3303, 3107, 3107,
1325      3304, 3107, 3304, 3305, 3107, 3107, 3107, 3107, 3107, 3305,
1326      3107, 3107, 3305, 3305, 3305, 3107, 3306, 3107, 3306, 3107,
1327      3307, 3307, 3307, 3107, 3308, 3107, 3308, 3107, 3107, 3107,
1328      3309, 3107, 3310, 3107, 3310, 3107, 3107, 3107, 3107, 3107,
1329      3107, 3107, 3107, 3107, 3107, 3107, 3311, 3107, 3107, 3107,
1330      3311, 3311, 3107, 3312, 3107, 3312, 3313, 3107, 3107, 3107,
1331      3313, 3107, 3314, 3107, 3314, 3107, 3107, 3107, 3315, 3107,
1332      3316, 3107, 3316, 3317, 3317, 3107, 3318, 3107, 3318, 3319,
1333
1334      3319, 3319, 3107, 3107, 3107, 3319, 3319, 3107, 3320, 3107,
1335      3320, 3107, 3107, 3321, 3107, 3107, 3107, 3107, 3107, 3107,
1336      3107, 3322, 3107, 3322, 3323, 3323, 3323, 3323, 3107, 3107,
1337      3107, 3323, 3107, 3107, 3107, 3107, 3107, 3323, 3323, 3323,
1338      3323, 3323, 3323, 3323, 3107, 3324, 3107, 3324, 3325, 3325,
1339      3325, 3325, 3107, 3107, 3107, 3107, 3107, 3325, 3325, 3107,
1340      3326, 3107, 3326, 3327, 3107, 3107, 3107, 3107, 3328, 3107,
1341      3328, 3329, 3107, 3107, 3107, 3329, 3107, 3330, 3107, 3330,
1342      3331, 3107, 3107, 3107, 3331, 3331, 3331, 3107, 3332, 3107,
1343      3332, 3107, 3107, 3107, 3107, 3333, 3107, 3334, 3107, 3334,
1344
1345      3107, 3107, 3107, 3335, 3335, 3107, 3107, 3335, 3107, 3336,
1346      3107, 3336, 3337, 3107, 3107, 3107, 3107, 3338, 3107, 3338,
1347      3107, 3107, 3107, 3107, 3107, 3339, 3107, 3339, 3107, 3107,
1348      3340, 3340, 3107, 3107, 3107, 3341, 3107, 3341, 3342, 3342,
1349      3342, 3342, 3342, 3107, 3343, 3107, 3343, 3107, 3344, 3107,
1350      3345, 3107, 3345, 3107, 3107, 3107, 3107, 3346, 3107, 3346,
1351      3107, 3107, 3107, 3347, 3107, 3348, 3107, 3348, 3349, 3350,
1352      3107, 3107, 3107, 3107, 3107, 3351, 3352, 3107, 3107, 3107,
1353      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1354      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1355
1356      3107, 3107, 3107, 3107, 3107, 3353, 3107, 3107, 3354, 3107,
1357      3355, 3356, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1358      3356, 3107, 3107, 3356, 3357, 3107, 3358, 3107, 3107, 3358,
1359      3359, 3360, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1360      3107, 3107, 3107, 3107, 3107, 3361, 3361, 3107, 3107, 3362,
1361      3363, 3363, 3364, 3107, 3107, 3365, 3107, 3107, 3366, 3367,
1362      3368, 3368, 3107, 3107, 3368, 3368, 3369, 3107, 3107, 3107,
1363      3107, 3370, 3371, 3371, 3371, 3371, 3107, 3107, 3107, 3107,
1364      3107, 3371, 3371, 3371, 3371, 3371, 3371, 3371, 3372, 3373,
1365      3373, 3373, 3373, 3107, 3107, 3107, 3373, 3373, 3374, 3375,
1366
1367      3376, 3377, 3377, 3378, 3379, 3379, 3379, 3379, 3380, 3107,
1368      3107, 3107, 3107, 3107, 3107, 3381, 3382, 3107, 3107, 3107,
1369      3107, 3383, 3383, 3107, 3107, 3107, 3383, 3384, 3385, 3386,
1370      3107, 3107, 3107, 3107, 3107, 3107, 3387, 3107, 3107, 3107,
1371      3388, 3388, 3107, 3107, 3107, 3389, 3390, 3107, 3107, 3390,
1372      3390, 3390, 3391, 3107, 3392, 3393, 3394, 3395, 3396, 3397,
1373      3398, 3398, 3107, 3398, 3107, 3107, 3107, 3399, 3400, 3107,
1374      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1375      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1376      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1377
1378      3401, 3107, 3107, 3107, 3402, 3107, 3403, 3404, 3107, 3107,
1379      3107, 3404, 3107, 3107, 3107, 3404, 3405, 3107, 3406, 3107,
1380      3107, 3107, 3107, 3107, 3407, 3408, 3107, 3107, 3107, 3107,
1381      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3409, 3107,
1382      3107, 3107, 3107, 3107, 3410, 3411, 3411, 3412, 3107, 3107,
1383      3107, 3413, 3107, 3107, 3107, 3414, 3415, 3416, 3416, 3107,
1384      3107, 3107, 3107, 3107, 3107, 3107, 3416, 3417, 3107, 3107,
1385      3107, 3107, 3107, 3418, 3419, 3107, 3107, 3419, 3419, 3107,
1386      3107, 3107, 3107, 3107, 3419, 3419, 3419, 3419, 3419, 3419,
1387      3420, 3421, 3107, 3107, 3421, 3421, 3107, 3107, 3421, 3422,
1388
1389      3423, 3424, 3425, 3425, 3426, 3427, 3427, 3427, 3107, 3107,
1390      3427, 3428, 3429, 3430, 3107, 3431, 3431, 3431, 3432, 3433,
1391      3434, 3435, 3436, 3436, 3437, 3438, 3107, 3107, 3107, 3438,
1392      3438, 3438, 3439, 3107, 3107, 3107, 3440, 3441, 3107, 3107,
1393      3442, 3443, 3444, 3444, 3107, 3107, 3445, 3446, 3107, 3107,
1394      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1395      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1396      3107, 3107, 3107, 3107, 3447, 3448, 3107, 3449, 3450, 3450,
1397      3450, 3451, 3452, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1398      3107, 3107, 3107, 3107, 3453, 3454, 3107, 3107, 3107, 3107,
1399
1400      3107, 3107, 3107, 3107, 3107, 3455, 3107, 3107, 3107, 3456,
1401      3457, 3107, 3107, 3458, 3459, 3107, 3107, 3460, 3461, 3461,
1402      3107, 3107, 3107, 3107, 3107, 3107, 3461, 3107, 3107, 3107,
1403      3107, 3462, 3463, 3107, 3107, 3107, 3107, 3107, 3463, 3107,
1404      3107, 3107, 3107, 3107, 3463, 3463, 3463, 3463, 3107, 3107,
1405      3464, 3465, 3107, 3107, 3107, 3107, 3107, 3465, 3107, 3107,
1406      3107, 3465, 3107, 3107, 3466, 3467, 3468, 3468, 3469, 3470,
1407      3470, 3470, 3107, 3107, 3107, 3470, 3107, 3107, 3471, 3472,
1408      3107, 3107, 3107, 3107, 3107, 3473, 3474, 3475, 3476, 3477,
1409      3107, 3107, 3107, 3107, 3478, 3479, 3479, 3479, 3479, 3480,
1410
1411      3107, 3107, 3107, 3107, 3481, 3482, 3107, 3107, 3107, 3107,
1412      3107, 3483, 3484, 3484, 3107, 3107, 3107, 3485, 3107, 3107,
1413      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1414      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1415      3107, 3486, 3487, 3107, 3107, 3107, 3488, 3107, 3107, 3488,
1416      3489, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1417      3107, 3107, 3107, 3490, 3107, 3107, 3107, 3107, 3107, 3107,
1418      3107, 3107, 3107, 3107, 3107, 3491, 3107, 3107, 3107, 3107,
1419      3107, 3492, 3107, 3107, 3107, 3107, 3107, 3493, 3494, 3494,
1420      3107, 3107, 3494, 3107, 3495, 3496, 3107, 3107, 3107, 3496,
1421
1422      3107, 3107, 3107, 3107, 3107, 3496, 3496, 3496, 3107, 3107,
1423      3107, 3497, 3498, 3107, 3107, 3107, 3498, 3498, 3499, 3500,
1424      3501, 3107, 3107, 3502, 3503, 3107, 3107, 3503, 3503, 3107,
1425      3107, 3503, 3504, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1426      3107, 3107, 3505, 3506, 3507, 3508, 3509, 3107, 3107, 3107,
1427      3107, 3107, 3107, 3510, 3511, 3511, 3511, 3511, 3512, 3107,
1428      3513, 3514, 3515, 3516, 3516, 3107, 3107, 3107, 3107, 3517,
1429      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1430      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3518,
1431      3519, 3107, 3520, 3107, 3107, 3107, 3520, 3107, 3107, 3107,
1432
1433      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1434      3107, 3107, 3521, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1435      3107, 3107, 3107, 3107, 3107, 3107, 3522, 3107, 3107, 3107,
1436      3523, 3524, 3525, 3525, 3107, 3107, 3107, 3107, 3525, 3107,
1437      3526, 3527, 3527, 3107, 3107, 3107, 3527, 3527, 3527, 3528,
1438      3529, 3529, 3529, 3530, 3107, 3107, 3531, 3107, 3107, 3107,
1439      3532, 3533, 3107, 3107, 3107, 3533, 3533, 3107, 3107, 3107,
1440      3107, 3533, 3534, 3107, 3535, 3536, 3537, 3538, 3539, 3540,
1441      3107, 3107, 3541, 3541, 3541, 3542, 3107, 3543, 3107, 3107,
1442      3544, 3545, 3545, 3107, 3546, 3107, 3107, 3107, 3107, 3107,
1443
1444      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3547, 3107,
1445      3107, 3548, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1446      3107, 3107, 3549, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1447      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1448      3550, 3107, 3107, 3524, 3525, 3525, 3107, 3107, 3107, 3107,
1449      3525, 3107, 3526, 3527, 3527, 3107, 3107, 3527, 3527, 3107,
1450      3107, 3529, 3529, 3529, 3530, 3107, 3107, 3532, 3107, 3107,
1451      3533, 3533, 3533, 3107, 3107, 3107, 3107, 3533, 3534, 3107,
1452      3535, 3107, 3107, 3107, 3107, 3538, 3539, 3540, 3107, 3107,
1453      3107, 3107, 3107, 3541, 3541, 3107, 3107, 3107, 3543, 3544,
1454
1455      3545, 3545, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1456      3547, 3107, 3107, 3107, 3548, 3107, 3107, 3107, 3107, 3107,
1457      3107, 3107, 3107, 3107, 3107, 3549, 3107, 3107, 3107, 3107,
1458      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1459      3107, 3107, 3107, 3107, 3550, 3107, 3107, 3525, 3525, 3107,
1460      3107, 3107, 3107, 3526, 3527, 3527, 3107, 3107, 3107, 3527,
1461      3107, 3107, 3529, 3529, 3107, 3107, 3530, 3107, 3107, 3107,
1462      3107, 3107, 3107, 3107, 3107, 3533, 3533, 3533, 3107, 3107,
1463      3107, 3107, 3534, 3535, 3107, 3107, 3107, 3107, 3107, 3539,
1464      3540, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1465
1466      3544, 3545, 3545, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1467      3107, 3107, 3107, 3107, 3107, 3107, 3548, 3107, 3107, 3107,
1468      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3549, 3107, 3107,
1469      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1470      3107, 3107, 3107, 3107, 3107, 3550, 3525, 3107, 3107, 3107,
1471      3107, 3107, 3107, 3107, 3527, 3527, 3527, 3107, 3107, 3107,
1472      3529, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3533, 3533,
1473      3533, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1474      3107, 3107, 3107, 3107, 3539, 3540, 3107, 3107, 3107, 3107,
1475      3107, 3107, 3544, 3545, 3545, 3107, 3107, 3107, 3107, 3107,
1476
1477      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1478      3107, 3548, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1479      3549, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1480      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3550, 3107,
1481      3107, 3525, 3107, 3107, 3107, 3527, 3527, 3527, 3529, 3107,
1482      3107, 3107, 3107, 3107, 3107, 3533, 3107, 3107, 3533, 3107,
1483      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1484      3107, 3539, 3540, 3107, 3107, 3107, 3107, 3544, 3545, 3545,
1485      3545, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1486      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1487
1488      3107, 3107, 3107, 3549, 3107, 3107, 3107, 3107, 3107, 3107,
1489      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1490      3550, 3107, 3107, 3107, 3525, 3527, 3527, 3527, 3529, 3533,
1491      3107, 3107, 3107, 3533, 3107, 3107, 3107, 3107, 3107, 3107,
1492      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1493      3540, 3107, 3107, 3107, 3107, 3544, 3545, 3545, 3545, 3551,
1494      3552, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1495      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1496      3107, 3549, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1497      3107, 3107, 3107, 3107, 3107, 3525, 3527, 3527, 3107, 3107,
1498
1499      3529, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1500      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3540, 3107, 3107,
1501      3107, 3107, 3544, 3545, 3553, 3554, 3551, 3552, 3107, 3107,
1502      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1503      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1504      3107, 3107, 3525, 3527, 3527, 3107, 3107, 3107, 3529, 3107,
1505      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1506      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1507      3107, 3107, 3107, 3544, 3553, 3545, 3555, 3554, 3556, 3545,
1508      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1509
1510      3107, 3107, 3107, 3107, 3107, 3107, 3525, 3527, 3527, 3107,
1511      3107, 3107, 3107, 3529, 3107, 3107, 3107, 3107, 3107, 3107,
1512      3107, 3107, 3107, 3107, 3544, 3555, 3107, 3556, 3545, 3107,
1513      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1514      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1515      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1516      3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1517      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1518      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1519      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3544, 3107, 3107,
1520
1521      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1522      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1523      3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1524      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1525      3107, 3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1526      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1527      3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1528      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1529      3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1530      3107, 3107, 3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107,
1531
1532      3107, 3107, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1533      3107, 3544, 3544, 3107, 3107, 3107, 3107, 3107, 3107, 3544,
1534      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1535      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1536      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1537      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1538      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1539      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1540      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1541      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1542
1543      3544, 3544, 3544, 3544, 3544, 3107,    0, 3107, 3107, 3107,
1544      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1545      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1546      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1547      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1548      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1549      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1550      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1551      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1552      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1553
1554      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1555      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1556      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1557      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1558      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1559      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1560      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1561      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1562      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1563      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1564
1565      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1566      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1567      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1568      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1569      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1570      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1571      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1572      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1573      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1574      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1575
1576      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1577      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1578      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1579      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1580      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1581      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1582      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1583      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1584      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1585      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1586
1587      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1588      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1589      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1590      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1591      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
1592      3107, 3107, 3107, 3107, 3107, 3107
1593     } ;
1594
1595 static yyconst flex_int16_t yy_nxt[11225] =
1596     {   0,
1597      3107,  248,  249,  248,  248,  249,  248,  248,  249,  248,
1598       248,  249,  248,  253,  249,  253,  259,  250,  256,  259,
1599       250,  256, 3107,  251, 3107,  257,  251, 3107,  257,  254,
1600       253,  249,  253,  619,  260,  262,  263,  260,  262,  263,
1601       264,  265,  663,  264,  265,  619,  254,  269,  270,  620,
1602       266,  262,  263,  266,  267,  622,  264,  262,  263,  652,
1603       267,  621,  264,  269,  270, 3107,  266,  249,  249,  249,
1604       789,  621,  266,  249,  249,  249,  281,  249,  281,  281,
1605       249,  281,  790,  272,  281,  249,  281,  640, 1690,  272,
1606       694,  271,  282, 1250,  655,  282,  618,  618,  618, 1251,
1607
1608       283,  618,  618,  618,  618,  618,  618,  271,  273,  274,
1609       249,  274,  273,  273,  273,  273,  273,  273,  273,  275,
1610       273,  273,  273,  650,  273,  277,  273,  278,  273,  281,
1611       249,  281,  249,  249,  249,  249,  249,  249,  651,  281,
1612       249,  281,  281,  249,  281,  283,  656,  645,  284,  622,
1613       655,  284,  863,  273,  273,  282,  622,  622,  282,  281,
1614       249,  281,  618,  618,  618,  621,  618,  618,  618,  618,
1615       618,  618,  621,  621,  682,  285,  864,  279,  273,  274,
1616       249,  274,  273,  273,  273,  273,  273,  273,  273,  275,
1617       273,  273,  273, 1692,  273,  277,  273,  278,  273,  281,
1618
1619       249,  281,  249,  249,  249,  249,  249,  249,  627,  281,
1620       249,  281,  281,  249,  281,  285,  633,  694,  286,  755,
1621       921,  286,  756,  273,  273,  283,  683,  695,  283,  249,
1622       249,  249,  249,  249,  249,  281,  249,  281,  281,  249,
1623       281,  281,  249,  281,  922,  287,  795,  279,  287,  622,
1624       628,  285,  750,  796,  285,  704,  629,  288,  281,  249,
1625       281,  630,  618,  618,  618,  621,  631,  618,  618,  618,
1626       618,  618,  618,  751,  288,  289,  290,  249,  290,  289,
1627       289,  289,  289,  289,  289,  289,  291,  289,  289,  289,
1628       680,  289,  293,  289,  294,  289,  297,  249,  297,  297,
1629
1630       249,  297,  249,  249,  249,  681,  249,  249,  249,  297,
1631       249,  297,  298,  805,  851,  298, 1695,  852,  286,  676,
1632       289,  289,  286,  677, 3107,  298,  637,  678,  295,  289,
1633       290,  249,  290,  289,  289,  289,  289,  289,  289,  289,
1634       291,  289,  289,  289,  622,  289,  293,  289,  294,  289,
1635       297,  249,  297,  297,  249,  297,  297,  249,  297,  757,
1636       621,  644,  262,  263,  803,  657,  298,  264, 3107,  299,
1637      1696,  804,  299,  758,  289,  289,  683,  309,  658,  682,
1638       651,  845,  295,  300,  301,  249,  301,  300,  300,  300,
1639       300,  300,  300,  300,  302,  300,  300,  300,  838,  300,
1640
1641       304,  300,  305,  300, 1699,  622,  310,  650,  323,  249,
1642       323,  323,  249,  323,  249,  249,  249,  894,  262,  263,
1643       659,  621,  651,  264,  324,  669,  875,  324,  300,  300,
1644       325,  655,  670,  309,  870,  639,  306,  715,  871,  307,
1645       876,  621,  618,  618,  618, 1701,  308,  300,  301,  249,
1646       301,  300,  300,  300,  300,  300,  300,  300,  302,  300,
1647       300,  300,  310,  300,  304,  300,  305,  300,  249,  249,
1648       249,  323,  249,  323,  323,  249,  323,  880,  323,  249,
1649       323,  323,  249,  323,  325,  622,  622,  324, 3107,  683,
1650       324,  876,  300,  300,  326, 1703,  865,  326,  652,  866,
1651
1652       306,  621,  621,  307,  618,  618,  618,  618,  618,  618,
1653       308,  311,  312,  249,  312,  311,  311,  311,  311,  311,
1654       311,  311,  313,  311,  311,  311,  640,  311,  315,  311,
1655       316,  311,  337,  249,  337,  337,  249,  337,  348,  249,
1656       348,  880,  348,  249,  348,  348,  249,  348,  338, 1704,
1657       622,  338,  622,  622,  349,  925,  311,  311,  349,  689,
1658       639,  350,  618,  618,  618,  317,  621,  318,  621,  621,
1659       791,  319,  618,  618,  618,  655,  320,  321,  311,  312,
1660       249,  312,  311,  311,  311,  311,  311,  311,  311,  313,
1661       311,  311,  311,  652,  311,  315,  311,  316,  311,  348,
1662
1663       249,  348,  249,  249,  249,  249,  249,  249,  715,  348,
1664       249,  348,  348,  249,  348,  350,  703, 1706,  351,  645,
1665       622,  351,  657,  311,  311,  352,  698,  697,  352,  618,
1666       618,  618,  317,  700,  318,  655,  621,  707,  319,  618,
1667       618,  618,  721,  320,  321,  327,  328,  249,  328,  327,
1668       327,  327,  327,  327,  327,  327,  329,  327,  327,  327,
1669       655,  327,  331,  327,  332,  327,  348,  249,  348,  348,
1670       249,  348,  249,  249,  249,  880,  249,  249,  249,  348,
1671       249,  348,  353, 1707,  865,  353,  845,  879,  354,  930,
1672       327,  327,  354,  882,  683,  350,  866,  333,  618,  618,
1673
1674       618,  846,  721,  334,  618,  618,  618,  618,  618,  618,
1675       791, 1708,  335,  327,  328,  249,  328,  327,  327,  327,
1676       327,  327,  327,  327,  329,  327,  327,  327, 1713,  327,
1677       331,  327,  332,  327,  348,  249,  348,  249,  249,  249,
1678       249,  249,  249, 1716,  348,  249,  348,  348,  249,  348,
1679       350, 1717,  882,  355,  655,  879,  355,  622,  327,  327,
1680       353, 1718,  655,  353,  726,  333,  618,  618,  618, 1720,
1681      1723,  334,  815,  621,  618,  618,  618,  618,  618,  618,
1682       335,  339,  340,  249,  340,  339,  339,  339,  339,  339,
1683       339,  339,  341,  339,  339,  339, 1724,  339,  343,  339,
1684
1685       344,  339,  348,  249,  348,  348,  249,  348,  249,  249,
1686       249, 1726,  249,  249,  249,  348,  249,  348,  356,  622,
1687       644,  356,  622, 1730,  357,  838,  339,  339,  357,  731,
1688      1731,  358,  618,  618,  618,  621,  739,  345,  621,  618,
1689       618,  618,  618,  618,  618, 1732,  346,  339,  340,  249,
1690       340,  339,  339,  339,  339,  339,  339,  339,  341,  339,
1691       339,  339,  821,  339,  343,  339,  344,  339,  348,  249,
1692       348,  249,  249,  249,  249,  249,  249,  655,  348,  249,
1693       348,  348,  249,  348,  358,  740,  622,  359,  683,  863,
1694       359, 1734,  339,  339,  356,  622, 1563,  356,  348,  249,
1695
1696       348, 1745,  621,  345,  348,  249,  348,  618,  618,  618,
1697       644,  621,  346,  928,  360,  618,  618,  618,  694, 1746,
1698       360,  361,  362,  249,  362,  361,  361,  361,  361,  361,
1699       361,  361,  363,  361,  361,  361,  921,  361,  365,  361,
1700       366,  361,  372,  249,  372,  372,  249,  372,  249,  249,
1701       249,  880,  249,  249,  249,  921,  708,  622,  373, 1747,
1702       864,  373,  622,  759,  325,  931,  361,  361,  325,  746,
1703       622,  367,  699,  621,  797,  760,  761,  368,  621,  928,
1704      1749,  369,  618,  618,  618, 1750,  621,  370,  361,  362,
1705       249,  362,  361,  361,  361,  361,  361,  361,  361,  363,
1706
1707       361,  361,  361,  863,  361,  365,  361,  366,  361,  372,
1708       249,  372,  372,  249,  372,  372,  249,  372, 1751,  372,
1709       249,  372,  798,  622, 1752,  373,  655,  929,  373,  955,
1710       762,  374,  956,  361,  361,  374,  622,  622,  367,  621,
1711       618,  618,  618,  772,  368,  618,  618,  618,  369,  618,
1712       618,  618,  621,  621,  370,  375,  376,  249,  376,  375,
1713       375,  375,  375,  375,  375,  375,  377,  375,  375,  375,
1714      1753,  375,  379,  375,  380,  375,  385,  249,  385,  385,
1715       249,  385,  249,  249,  249, 1754,  249,  249,  249,  618,
1716       618,  618,  386,  622,  622,  386,  622, 1755,  325, 1756,
1717
1718       375,  375,  325,  777, 1757,  381,  618,  618,  618,  621,
1719       621,  382,  621,  618,  618,  618,  618,  618,  618,  618,
1720       618,  618,  383,  375,  376,  249,  376,  375,  375,  375,
1721       375,  375,  375,  375,  377,  375,  375,  375, 1759,  375,
1722       379,  375,  380,  375,  385,  249,  385,  385,  249,  385,
1723       385,  249,  385,  963,  385,  249,  385,  964,  622, 1391,
1724       386, 1760,  622,  386, 1065,  783,  387, 1065,  375,  375,
1725       387, 1369, 1392,  381,  621,  618,  618,  618,  621,  382,
1726       618,  618,  618,  618,  618,  618,  618,  618,  618, 1742,
1727       383,  388,  389,  249,  389,  388,  388,  388,  388,  388,
1728
1729       388,  388,  390,  388,  388,  388, 1761,  388,  392,  388,
1730       393,  388,  397,  249,  397,  397,  249,  397,  408,  249,
1731       408, 1762,  408,  249,  408,  422,  249,  422,  398,  622,
1732       622,  398, 1765, 1768,  409,  622,  388,  388,  409, 1769,
1733      1770,  423,  618,  618,  618,  621,  621,  394,  618,  618,
1734       618,  621,  395,  388,  389,  249,  389,  388,  388,  388,
1735       388,  388,  388,  388,  390,  388,  388,  388, 1771,  388,
1736       392,  388,  393,  388,  422,  249,  422,  249,  249,  249,
1737       249,  249,  249, 1772,  422,  249,  422,  422,  249,  422,
1738       423,  622,  622,  424,  622, 1776,  424, 1777,  388,  388,
1739
1740       423,  810, 1779,  423,  618,  618,  618,  621,  621,  394,
1741       621,  618,  618,  618,  395,  399,  400,  249,  400,  399,
1742       399,  399,  399,  399,  399,  399,  401,  399,  399,  399,
1743       921,  399,  403,  399,  404,  399,  422,  249,  422,  422,
1744       249,  422,  436,  249,  436, 1780,  436,  249,  436,  453,
1745       249,  453,  425, 1781,  929,  425, 1783, 1796,  437,  622,
1746       399,  399,  437, 1797,  622,  454,  618,  618,  618,  618,
1747       618,  618,  618,  618,  618,  621,  405,  618,  618,  618,
1748       621, 1798,  406,  399,  400,  249,  400,  399,  399,  399,
1749       399,  399,  399,  399,  401,  399,  399,  399, 1799,  399,
1750
1751       403,  399,  404,  399,  453,  249,  453,  469,  249,  469,
1752       469,  249,  469, 1800,  480,  249,  480,  480,  249,  480,
1753       454, 1803, 1804,  470,  622, 1805,  470, 1806,  399,  399,
1754       481,  834, 1811,  481,  618,  618,  618,  618,  618,  618,
1755       621,  618,  618,  618,  405,  618,  618,  618,  829, 1819,
1756       406,  410,  411,  249,  411,  410,  410,  410,  410,  410,
1757       410,  410,  412,  410,  410,  410, 1065,  410,  414,  410,
1758       415,  410,  492,  249,  492,  492,  249,  492,  505,  249,
1759       505, 1820,  505,  249,  505,  830, 1560, 1827,  493, 1065,
1760      1831,  493, 1833, 1402,  506, 1839,  410,  410,  506,  416,
1761
1762       683,  417,  618,  618,  618, 1067, 1392,  418,  618,  618,
1763       618,  618,  618,  618,  419, 1845, 1846,  420,  410,  411,
1764       249,  411,  410,  410,  410,  410,  410,  410,  410,  412,
1765       410,  410,  410, 1847,  410,  414,  410,  415,  410,  249,
1766       249,  249,  249,  249,  249,  505,  249,  505, 1848,  505,
1767       249,  505, 1852,  622, 1402,  325, 1858, 1862,  325, 1865,
1768       843,  506, 1867,  410,  410,  506,  416, 1426,  417,  621,
1769       849,  849,  849, 1868,  418,  849,  849,  849, 1870, 1069,
1770      1871,  419, 1872, 1876,  420,  426,  427,  249,  427,  426,
1771       426,  426,  426,  426,  426,  426,  428,  426,  426,  426,
1772
1773      1879,  426,  430,  426,  431,  426,  505,  249,  505,  505,
1774       249,  505,  517,  249,  517, 1881,  517,  249,  517,  249,
1775       249,  249,  507, 1888, 1896,  507,  872,  884,  518,  850,
1776       426,  426,  518,  873,  873,  519,  432,  884,  872,  874,
1777       885,  433, 1897, 1898,  873,  873, 1899, 1082, 1082, 1082,
1778       874,  885, 1901,  434,  426,  427,  249,  427,  426,  426,
1779       426,  426,  426,  426,  426,  428,  426,  426,  426, 1915,
1780       426,  430,  426,  431,  426,  249,  249,  249,  517,  249,
1781       517,  517,  249,  517, 1563,  517,  249,  517,  517,  249,
1782       517,  519, 1065, 1919,  518,  884, 1920,  518, 1921,  426,
1783
1784       426,  520,  873, 1924,  520,  432, 1926, 1927,  909, 1912,
1785       433, 1083, 1115, 1115, 1115, 1928, 1116, 1914, 1929, 1117,
1786      1930, 1931,  434,  438,  439,  249,  439,  438,  438,  438,
1787       438,  438,  438,  438,  440,  438,  438,  438,  441,  438,
1788       442,  438,  443,  438,  441,  441,  441,  441,  441,  441,
1789       441,  441,  441,  441,  441,  441,  441,  441,  441,  441,
1790       441,  441,  441,  441,  441,  441,  441,  441,  438,  438,
1791       441,  444,  445,  446,  441,  441,  441,  441,  441,  447,
1792       441,  441,  448,  441,  441,  441,  449,  441,  450,  451,
1793       441,  441,  441,  441,  441,  441,  441,  455,  456,  249,
1794
1795       456,  455,  455,  455,  455,  455,  455,  455,  457,  455,
1796       455,  455, 1563,  455,  459,  455,  460,  455,  531,  249,
1797       531,  531,  249,  531,  249,  249,  249, 1934,  249,  249,
1798       249,  891,  891,  891,  532, 1935, 1922,  532, 1938, 1939,
1799       519, 1940,  455,  455,  519,  461,  462,  463,  892, 1082,
1800      1082, 1082, 1923,  464, 1913, 1941,  465, 1103, 1103, 1103,
1801       466, 1943, 1944,  467,  455,  456,  249,  456,  455,  455,
1802       455,  455,  455,  455,  455,  457,  455,  455,  455, 1947,
1803       455,  459,  455,  460,  455,  531,  249,  531,  531,  249,
1804       531,  531,  249,  531, 1950,  531,  249,  531,  899,  899,
1805
1806       899,  532, 1954, 1955,  532, 1958, 1959,  533, 1960,  455,
1807       455,  533,  461,  462,  463,  900, 1082, 1082, 1082, 1963,
1808       464, 1083, 1967,  465, 1103, 1103, 1103,  466, 1968, 1971,
1809       467,  471,  472,  249,  472,  471,  471,  471,  471,  471,
1810       471,  471,  473,  471,  471,  471, 1973,  471,  475,  471,
1811       476,  471,  543,  249,  543,  543,  249,  543,  554,  249,
1812       554, 1989,  554,  249,  554,  915,  915,  915,  544, 1226,
1813      1990,  544, 1991, 1992,  555, 1993,  471,  471,  555, 1227,
1814      1156,  477,  916, 1576, 1576, 1576, 1228,  478,  471,  472,
1815       249,  472,  471,  471,  471,  471,  471,  471,  471,  473,
1816
1817       471,  471,  471, 1994,  471,  475,  471,  476,  471,  249,
1818       249,  249,  249,  249,  249,  554,  249,  554, 1956,  554,
1819       249,  554,  933,  933,  933,  519, 1957, 1969,  519, 1577,
1820      1996,  555, 2000,  471,  471,  555, 2006, 2007,  477,  934,
1821      1579, 1579, 1579, 1970,  478,  482,  483,  249,  483,  482,
1822       482,  482,  482,  482,  482,  482,  484,  482,  482,  482,
1823      2008,  482,  486,  482,  487,  482,  554,  249,  554,  554,
1824       249,  554,  567,  249,  567, 1961,  567,  249,  567,  249,
1825       249,  249,  556, 1962, 2013,  556, 1580, 2017,  568, 2018,
1826       482,  482,  568, 2019,  488,  519, 1125, 1125, 1125, 2021,
1827
1828      1126,  489, 2025, 1127,  490,  482,  483,  249,  483,  482,
1829       482,  482,  482,  482,  482,  482,  484,  482,  482,  482,
1830      2029,  482,  486,  482,  487,  482,  249,  249,  249,  567,
1831       249,  567,  567,  249,  567, 2030,  567,  249,  567,  567,
1832       249,  567,  519, 1969, 2031,  568, 1922, 2032,  568, 2033,
1833       482,  482,  569, 2036,  488,  569, 1148, 1148, 1148, 1923,
1834      1149,  489, 1970, 1150,  490,  494,  495,  249,  495,  494,
1835       494,  494,  494,  494,  494,  494,  496,  494,  494,  494,
1836      2043,  494,  498,  494,  499,  494,  582,  249,  582,  582,
1837       249,  582,  249,  249,  249, 2045,  249,  249,  249,  582,
1838
1839       249,  582,  583, 2055, 2056,  583, 2057, 2058,  584, 2060,
1840       494,  494,  584, 1065,  500,  583, 1103, 1103, 1103, 2063,
1841      2066,  501, 2072, 2073,  502, 1583, 1583, 1583, 1586, 1586,
1842      1586,  503,  494,  495,  249,  495,  494,  494,  494,  494,
1843       494,  494,  494,  496,  494,  494,  494, 2074,  494,  498,
1844       494,  499,  494,  582,  249,  582,  582,  249,  582,  582,
1845       249,  582, 2075,  594,  249,  594,  594,  249,  594,  583,
1846      2077, 2079,  585, 2080, 2081,  585, 2085,  494,  494,  595,
1847      1156,  500,  595, 1168, 1168, 1168, 2089, 1169,  501, 2091,
1848      1170,  502, 1595, 1595, 1595, 1618, 1618, 1618,  503,  508,
1849
1850       509,  249,  509,  508,  508,  508,  508,  508,  508,  508,
1851       510,  508,  508,  508, 2092,  508,  512,  508,  513,  508,
1852       604,  249,  604,  604,  249,  604,  249,  249,  249, 2093,
1853       249,  249,  249,  604,  249,  604,  605, 2097, 2103,  605,
1854      2104, 2105,  325, 2106,  508,  508,  325, 2107, 2108,  605,
1855       514, 1178, 1178, 1178, 2109, 1179, 2110, 2111, 1180, 1630,
1856      1630, 1630, 1632, 1632, 1632,  515,  508,  509,  249,  509,
1857       508,  508,  508,  508,  508,  508,  508,  510,  508,  508,
1858       508, 2112,  508,  512,  508,  513,  508,  604,  249,  604,
1859       604,  249,  604,  604,  249,  604, 1563,  616,  249,  616,
1860
1861       616,  249,  616,  605, 2118, 1631,  606, 2119, 1580,  606,
1862      2120,  508,  508,  617, 2121, 3107,  617,  514,  694, 1563,
1863       652, 2133, 1186, 1186, 1186,  652, 1187, 2064,  695, 1188,
1864      2134, 2139,  515,  521,  522,  249,  522,  521,  521,  521,
1865       521,  521,  521,  521,  523,  521,  521,  521,  705,  521,
1866       525,  521,  526,  521,  653, 2135,  696,  940,  940,  940,
1867       654, 2140,  697, 2136,  706, 2065,  698,  655,  945,  945,
1868       945,  656,  699,  700,  941,  957,  957,  957,  521,  521,
1869       966,  966,  966,  694,  527,  946, 2142,  528, 1579, 1579,
1870      1579, 2143,  958,  701, 1576, 1576, 1576,  967, 2147,  529,
1871
1872       521,  522,  249,  522,  521,  521,  521,  521,  521,  521,
1873       521,  523,  521,  521,  521, 2148,  521,  525,  521,  526,
1874       521,  702, 2149,  968,  968,  968,  974,  974,  974, 2151,
1875       977,  977,  977, 2137, 1715,  655,  992,  992,  992,  649,
1876       969, 2138, 2152,  975, 2153,  521,  521,  978, 1000, 1000,
1877      1000,  527, 2154,  993,  528, 1203, 1203, 1203, 2157, 1204,
1878      2162, 2166, 1205, 2167, 2172, 1001,  529,  534,  535,  249,
1879       535,  534,  534,  534,  534,  534,  534,  534,  536,  534,
1880       534,  534, 2173,  534,  538,  534,  539,  534, 1005, 1005,
1881      1005, 1011, 1011, 1011, 1031, 1031, 1031, 1055, 1055, 1055,
1882
1883      1059, 1059, 1059, 2174, 2175, 1006, 2177, 2168, 1012, 2187,
1884      2198, 1032,  534,  534, 1056, 2169, 2199, 1060,  540, 1579,
1885      1579, 1579, 1563,  541,  534,  535,  249,  535,  534,  534,
1886       534,  534,  534,  534,  534,  536,  534,  534,  534, 2200,
1887       534,  538,  534,  539,  534, 1078, 1078, 1078, 1078, 1078,
1888      1078, 2204, 2205, 1110, 1110, 1110, 1110, 1110, 1110,  891,
1889       891,  891, 2206, 1080, 2170, 2192, 1080, 1563, 2209,  534,
1890       534, 1112, 2171, 2213, 1112,  540,  892, 1758, 1758, 1758,
1891       541,  545,  546,  249,  546,  545,  545,  545,  545,  545,
1892       545,  545,  547,  545,  545,  545, 2214,  545,  549,  545,
1893
1894       550,  545, 1120, 1120, 1120, 2215, 1081, 1120, 1120, 1120,
1895      2216,  899,  899,  899, 2193, 2217, 1113, 1128, 1128, 1128,
1896      1122, 1131, 1131, 1131, 2218, 1122,  545,  545,  900,  915,
1897       915,  915,  551, 2219, 1129, 1215, 1215, 1215, 1132, 1216,
1898      2220, 2221, 1217, 1583, 1583, 1583,  916,  552,  545,  546,
1899       249,  546,  545,  545,  545,  545,  545,  545,  545,  547,
1900       545,  545,  545, 2222,  545,  549,  545,  550,  545, 2237,
1901      2238, 1123, 1136, 1136, 1136, 2239, 2240, 1144, 1144, 1144,
1902      1144, 1144, 1144, 1136, 1136, 1136, 1152, 1152, 1152, 2245,
1903      1138, 2246, 2247,  545,  545, 1146, 2248, 2249, 1146,  551,
1904
1905      2250, 1138, 2251, 2254, 1154, 1218, 1218, 1218, 2255, 1219,
1906      2258, 2259, 1220, 2262,  552,  557,  558,  249,  558,  557,
1907       557,  557,  557,  557,  557,  557,  559,  557,  557,  557,
1908      1139,  557,  561,  557,  562,  557, 1152, 1152, 1152,  933,
1909       933,  933, 2263, 2264, 1147, 1173, 1173, 1173, 2265, 1173,
1910      1173, 1173, 2274, 2275, 1154, 2276,  934,  940,  940,  940,
1911       557,  557, 2277, 1175, 2279, 2281,  563, 1175, 2305,  564,
1912      1586, 1586, 1586, 1155,  941, 2306, 1763, 1763, 1763, 2308,
1913      2309,  565,  557,  558,  249,  558,  557,  557,  557,  557,
1914       557,  557,  557,  559,  557,  557,  557, 1563,  557,  561,
1915
1916       557,  562,  557, 1182, 1182, 1182, 1182, 1182, 1182,  945,
1917       945,  945, 1190, 1190, 1190, 1176, 1190, 1190, 1190, 2310,
1918      2311, 1184, 2315, 2316, 1184, 2317,  946,  557,  557, 2301,
1919      1192, 2318, 2319,  563, 1192, 2320,  564, 1229, 1229, 1229,
1920      1764, 1230, 2321, 2322, 1231, 1595, 1595, 1595,  565,  570,
1921       571,  249,  571,  570,  570,  570,  570,  570,  570,  570,
1922       572,  570,  570,  570, 2323,  570,  574,  570,  575,  570,
1923      2324, 2325, 1185, 1196, 1196, 1196, 2327, 1193, 1196, 1196,
1924      1196,  957,  957,  957, 2328, 1208, 1208, 1208, 1208, 1208,
1925      1208, 1198, 2331, 2332,  570,  570, 1198, 2333,  958, 1618,
1926
1927      1618, 1618,  576, 1210,  577, 2334, 1210,  578, 1630, 1630,
1928      1630,  579, 1632, 1632, 1632,  580,  570,  571,  249,  571,
1929       570,  570,  570,  570,  570,  570,  570,  572,  570,  570,
1930       570, 2335,  570,  574,  570,  575,  570,  966,  966,  966,
1931       968,  968,  968, 1199, 2329, 1221, 1221, 1221, 2338, 1211,
1932      1221, 1221, 1221, 2330,  967, 2339, 2340,  969,  974,  974,
1933       974,  570,  570, 1223,  977,  977,  977, 1563, 1223,  576,
1934      2336,  577, 2341, 2342,  578,  975, 2344, 2348,  579, 2337,
1935      2349,  978,  580,  586,  587,  249,  587,  586,  586,  586,
1936       586,  586,  586,  586,  588,  586,  586,  586, 2350,  586,
1937
1938       590,  586,  591,  586, 2302, 1233, 1233, 1233, 2351, 1234,
1939      2355, 1224, 1235, 1236, 1236, 1236, 1245, 1245, 1245, 1245,
1940      1245, 1245,  992,  992,  992, 1256, 1256, 1256,  586,  586,
1941      1237, 1253, 1253, 1253, 1247, 1254, 2356, 1247, 1255,  993,
1942      2360, 2363, 1257, 1265, 1265, 1265, 2364, 1266, 2367, 2379,
1943      1267, 2380,  592,  586,  587,  249,  587,  586,  586,  586,
1944       586,  586,  586,  586,  588,  586,  586,  586, 2383,  586,
1945       590,  586,  591,  586, 1260, 1260, 1260, 1248, 1000, 1000,
1946      1000, 2384, 1268, 1268, 1268, 2404, 2405, 1260, 1260, 1260,
1947      2406, 2407, 1262, 2408, 2417, 1001, 2418, 2419,  586,  586,
1948
1949      1270, 1268, 1268, 1268, 2420, 1262, 1273, 1273, 1273, 2421,
1950      1274, 2422, 2423, 1275, 1282, 1282, 1282, 2424, 1283, 1270,
1951      1563, 1284,  592,  596,  597,  249,  597,  596,  596,  596,
1952       596,  596,  596,  596,  598,  596,  596,  596, 1263,  596,
1953       600,  596,  601,  596, 1005, 1005, 1005, 1277, 1277, 1277,
1954      1011, 1011, 1011, 2425, 1277, 1277, 1277, 1288, 1288, 1288,
1955      1784, 1006, 1271, 2403, 2426, 1279, 1785, 1012,  596,  596,
1956      1786, 2427, 1279, 2429, 1787, 1290, 1766, 1766, 1766,  602,
1957       596,  597,  249,  597,  596,  596,  596,  596,  596,  596,
1958       596,  598,  596,  596,  596, 1065,  596,  600,  596,  601,
1959
1960       596, 1280, 2430, 1288, 1288, 1288, 1292, 1292, 1292, 2431,
1961      1294, 1294, 1294, 3107, 3107, 3107, 1297, 1297, 1297, 2432,
1962      2433, 1290, 1767, 1293, 2434,  596,  596, 1295, 2435, 2436,
1963      3107, 1830, 1830, 1830, 1299, 2401,  602,  607,  608,  249,
1964       608,  607,  607,  607,  607,  607,  607,  607,  609,  607,
1965       607,  607, 2437,  607,  611,  607,  612,  607, 1291, 2438,
1966      2439, 1297, 1297, 1297, 1302, 1302, 1302, 2440, 1801, 1801,
1967      1801, 2441, 1296, 1306, 1306, 1306, 1309, 1309, 1309, 1299,
1968      2442, 1303,  607,  607, 3107, 3107, 3107, 3107, 3107, 3107,
1969      1307, 1563, 2443,  613, 1311, 1314, 1314, 1314, 2444, 1315,
1970
1971      2445, 3107, 1316, 2447, 3107, 2455,  614,  607,  608,  249,
1972       608,  607,  607,  607,  607,  607,  607,  607,  609,  607,
1973       607,  607, 1300,  607,  611,  607,  612,  607, 2402, 1309,
1974      1309, 1309, 1802, 2456, 1304, 2457, 2461, 1031, 1031, 1031,
1975      1317, 1317, 1317, 1317, 1317, 1317, 1308, 1311, 1563, 1305,
1976      1563, 2496,  607,  607, 1032, 1321, 1321, 1321, 1319, 2498,
1977      1065, 1319, 2499,  613, 2500, 2504, 1312, 2505, 1323, 1323,
1978      1323, 2508, 1322, 1325, 1325, 1325,  614,  622, 1325, 1325,
1979      1325, 1335, 1335, 1335,  637, 1324, 1329, 1329, 1329, 2493,
1980      2494, 1327, 2495,  621,  638, 2509, 1327, 2506, 1320, 1337,
1981
1982      3107, 3107, 3107, 1330, 1925, 1925, 1925, 1333, 1333, 1333,
1983      2507, 2512, 1335, 1335, 1335, 2513, 2514, 3107, 1055, 1055,
1984      1055,  639,  640,  641, 1334, 1344, 1344, 1344,  642,  643,
1985      1337, 2479,  644,  645, 2515, 1056,  646, 2516,  647,  648,
1986       649, 2480, 2517, 1346, 1344, 1344, 1344, 2481, 2518, 1328,
1987      1331, 1350, 1350, 1350, 1350, 1350, 1350, 1354, 1354, 1354,
1988      2519, 1355, 1346, 2520, 1356, 1332, 1357, 1357, 1357, 1352,
1989      2522, 2523, 1352, 1357, 1357, 1357, 1059, 1059, 1059, 1365,
1990      1365, 1365, 2524, 1338, 1359, 1361, 1361, 1361, 2525, 1362,
1991      2526, 1359, 1363, 1060, 1365, 1365, 1365, 1367, 1078, 1078,
1992
1993      1078, 1078, 1078, 1078, 1078, 1078, 1078, 2411, 1347, 1404,
1994      1404, 1404, 1367, 1110, 1110, 1110, 1080, 2412, 1353, 1080,
1995      2413, 2527, 1080, 1110, 1110, 1110, 1405, 1110, 1110, 1110,
1996      2528, 1112, 2529, 2530, 1360, 1407, 1407, 1407, 3107, 3107,
1997      3107, 1112, 1115, 1115, 1115, 1112, 1116, 2531, 2532, 1117,
1998      2533, 1377, 1408, 2534, 2535, 3107, 2536, 2538, 1368, 1120,
1999      1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1125, 1125,
2000      1125, 2546, 1126, 2547, 2548, 1127, 1406, 1122, 2549, 2566,
2001      1122, 2567, 2414, 1122, 1128, 1128, 1128, 1413, 1413, 1413,
2002      2482, 1414, 2415, 2568, 1415, 2416, 1416, 1416, 1416, 1409,
2003
2004      2483, 1129, 1131, 1131, 1131, 2510, 2484, 1418, 1418, 1418,
2005      2569, 1419, 1411, 1417, 1420, 1422, 1422, 1422, 2511, 1132,
2006      1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1428,
2007      1428, 1428, 1423, 1144, 1144, 1144, 2570, 2571, 1138, 2582,
2008      1065, 1138, 2584, 2585, 1138, 2574, 1429, 1144, 1144, 1144,
2009      2576, 1146, 1144, 1144, 1144, 1148, 1148, 1148, 2575, 1149,
2010      2586, 2587, 1150, 2577, 2588, 1146, 1152, 1152, 1152, 2589,
2011      1146, 1152, 1152, 1152, 1433, 1433, 1433, 1788, 1168, 1168,
2012      1168, 2590, 1169, 1789, 1154, 1170, 1425, 1790, 2578, 1154,
2013      2591, 1791, 1434, 1448, 1448, 1448, 1173, 1173, 1173, 1431,
2014
2015      1173, 1173, 1173, 1173, 1173, 1173, 1182, 1182, 1182, 2592,
2016      1449, 1182, 1182, 1182, 1175, 1178, 1178, 1178, 1175, 1179,
2017      2593, 1175, 1180, 2596, 1184, 1182, 1182, 1182, 1563, 1184,
2018      1186, 1186, 1186, 2597, 1187, 2598, 2599, 1188, 1454, 1454,
2019      1454, 2600, 2601, 1184, 1190, 1190, 1190, 1190, 1190, 1190,
2020      1190, 1190, 1190, 2602, 2603, 1455, 1457, 1457, 1457, 3107,
2021      3107, 3107, 1192, 2579, 1450, 1192, 2605, 2606, 1192, 2607,
2022      1196, 1196, 1196, 1458, 2608, 2609, 3107, 1196, 1196, 1196,
2023      1196, 1196, 1196, 1463, 1463, 1463, 1453, 1459, 1198, 1203,
2024      1203, 1203, 2610, 1204, 2611, 1198, 1205, 2612, 1198, 2613,
2025
2026      1464, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
2027      1470, 1470, 1470, 2614, 1215, 1215, 1215, 1456, 1216, 1210,
2028      2615, 1217, 1210, 2616, 2617, 1210, 2618, 1471, 1218, 1218,
2029      1218, 2619, 1219, 2625, 2626, 1220, 1221, 1221, 1221, 1221,
2030      1221, 1221, 1221, 1221, 1221, 2627, 1460, 2628, 1229, 1229,
2031      1229, 2629, 1230, 2643, 1223, 1231, 2644, 1223, 2645, 2635,
2032      1223, 1477, 1477, 1477, 1233, 1233, 1233, 2637, 1234, 2636,
2033      2646, 1235, 1467, 1236, 1236, 1236, 2647, 2638, 1478, 1479,
2034      1479, 1479, 2648, 1480, 2652, 2653, 1481, 1245, 1245, 1245,
2035      1237, 1245, 1245, 1245, 1245, 1245, 1245, 1253, 1253, 1253,
2036
2037      2639, 1254, 2654, 2655, 1255, 1247, 1065, 1472, 2665, 1247,
2038      2640, 2641, 1247, 1256, 1256, 1256, 1494, 1494, 1494, 2666,
2039      1495, 2642, 2667, 1496, 1260, 1260, 1260, 1260, 1260, 1260,
2040      1257, 1260, 1260, 1260, 1265, 1265, 1265, 2668, 1266, 2669,
2041      2656, 1267, 1262, 2670, 2671, 1262, 1268, 1268, 1268, 1262,
2042      1268, 1268, 1268, 1268, 1268, 1268, 1273, 1273, 1273, 2672,
2043      1274, 1489, 2676, 1275, 1270, 1277, 1277, 1277, 1270, 2677,
2044      2678, 1270, 1277, 1277, 1277, 1277, 1277, 1277, 1288, 1288,
2045      1288, 2679, 1499, 1279, 1282, 1282, 1282, 2680, 1283, 2681,
2046      1279, 1284, 2683, 1279, 2684, 2685, 1290, 1288, 1288, 1288,
2047
2048      1288, 1288, 1288, 2686, 1292, 1292, 1292, 1510, 1510, 1510,
2049      2687, 1511, 2688, 2689, 1512, 1290, 2690, 2691, 1290, 2692,
2050      1501, 1293, 2696, 2697, 1504, 1294, 1294, 1294, 1513, 1513,
2051      1513, 2698, 1514, 2701, 2706, 1515, 1297, 1297, 1297, 1297,
2052      1297, 1297, 1295, 1297, 1297, 1297, 1302, 1302, 1302, 1519,
2053      1519, 1519, 2707, 1520, 1299, 2708, 1521, 1299, 2709, 2710,
2054      1509, 1299, 2711, 1303, 1306, 1306, 1306, 1524, 1524, 1524,
2055      2712, 1525, 2713, 2714, 1526, 1309, 1309, 1309, 1309, 1309,
2056      1309, 1307, 1309, 1309, 1309, 1314, 1314, 1314, 2715, 1315,
2057      2716, 2717, 1316, 1311, 2719, 2720, 1311, 1317, 1317, 1317,
2058
2059      1311, 1317, 1317, 1317, 1317, 1317, 1317, 1321, 1321, 1321,
2060      1517, 1323, 1323, 1323, 2721, 1319, 1531, 1531, 1531, 1319,
2061      1532, 2722, 1319, 1533, 1322, 1534, 1534, 1534, 1324, 1535,
2062      2729, 2730, 1536, 1325, 1325, 1325, 1325, 1325, 1325, 1325,
2063      1325, 1325, 1329, 1329, 1329, 2731, 1528, 2732, 1538, 1538,
2064      1538, 1327, 1539, 2733, 1327, 1540, 2734, 1327, 2735, 1330,
2065      1333, 1333, 1333, 2736, 1530, 1543, 1543, 1543, 2737, 1544,
2066      2738, 2739, 1545, 1335, 1335, 1335, 2740, 1334, 1335, 1335,
2067      1335, 1335, 1335, 1335, 2741, 1548, 1548, 1548, 1344, 1344,
2068      1344, 1337, 1344, 1344, 1344, 2742, 1337, 2745, 1065, 1337,
2069
2070      2746, 1537, 1549, 1344, 1344, 1344, 1346, 1350, 1350, 1350,
2071      1346, 1350, 1350, 1350, 1350, 1350, 1350, 1357, 1357, 1357,
2072      2747, 1346, 1357, 1357, 1357, 1352, 1354, 1354, 1354, 1352,
2073      1355, 2748, 1352, 1356, 2749, 1359, 1357, 1357, 1357, 2750,
2074      1359, 2723, 2751, 1546, 1361, 1361, 1361, 2752, 1362, 2753,
2075      2754, 1363, 2755, 2759, 1359, 1365, 1365, 1365, 1365, 1365,
2076      1365, 1365, 1365, 1365, 1553, 2766, 2767, 1556, 1562, 1562,
2077      1562, 2768, 2769, 1367, 2770, 2771, 1367, 2772, 2773, 1367,
2078      1078, 1078, 1078, 1404, 1404, 1404, 1563, 1564, 1598, 1598,
2079      1598, 2774, 1599, 2775, 2776, 1600, 1557, 2777, 1080, 2780,
2080
2081      1405, 1110, 1110, 1110, 1407, 1407, 1407, 1602, 1602, 1602,
2082      2781, 1603, 2782, 2783, 1604, 1120, 1120, 1120, 2786, 1112,
2083      1065, 1408, 1559, 1413, 1413, 1413, 2791, 1414, 2792, 2786,
2084      1415, 2793, 2787, 1122, 1416, 1416, 1416, 1609, 1609, 1609,
2085      2789, 1610, 2794, 2795, 1611, 2796, 1569, 2797, 1418, 1418,
2086      1418, 1417, 1419, 2798, 2799, 1420, 1422, 1422, 1422, 1601,
2087      2800, 1613, 1613, 1613, 1607, 1614, 2784, 2801, 1615, 1136,
2088      1136, 1136, 2802, 1423, 1428, 1428, 1428, 1620, 1620, 1620,
2089      2803, 1621, 2804, 2805, 1622, 2806, 2807, 1138, 1623, 1623,
2090      1623, 1429, 1144, 1144, 1144, 1433, 1433, 1433, 1640, 1640,
2091
2092      1640, 1448, 1448, 1448, 2808, 1624, 2809, 1642, 1642, 1642,
2093      1146, 1643, 2814, 1434, 1644, 1641, 2819, 2820, 1449, 1617,
2094      1173, 1173, 1173, 2810, 1182, 1182, 1182, 1454, 1454, 1454,
2095      1649, 1649, 1649, 2821, 1650, 2811, 2822, 1651, 1175, 2823,
2096      2824, 1625, 1184, 2786, 1455, 1190, 1190, 1190, 1457, 1457,
2097      1457, 1653, 1653, 1653, 2827, 1654, 2827, 2787, 1655, 1196,
2098      1196, 1196, 2812, 1192, 2786, 1458, 1463, 1463, 1463, 1660,
2099      1660, 1660, 2830, 1661, 2813, 2789, 1662, 1198, 1663, 1663,
2100      1663, 1563, 1564, 1464, 1645, 1665, 1665, 1665, 1648, 1208,
2101      1208, 1208, 1470, 1470, 1470, 1664, 1671, 1671, 1671, 1065,
2102
2103      1672, 2831, 1666, 1673, 2832, 1652, 2833, 1210, 2836, 1471,
2104      1221, 1221, 1221, 1676, 1676, 1676, 1477, 1477, 1477, 2839,
2105      1657, 2848, 1680, 1680, 1680, 2815, 1681, 2817, 1223, 1682,
2106      1677, 1667, 2851, 1478, 1479, 1479, 1479, 2816, 1480, 2818,
2107      2825, 1481, 1683, 1683, 1683, 1245, 1245, 1245, 1693, 1693,
2108      1693, 1697, 1697, 1697, 2834, 1668, 1260, 1260, 1260, 1684,
2109      1494, 1494, 1494, 1247, 1495, 1694, 2856, 1496, 1698, 1268,
2110      1268, 1268, 2835, 2837, 1262, 2846, 1674, 1277, 1277, 1277,
2111      1709, 1709, 1709, 1288, 1288, 1288, 2859, 1270, 2838, 1510,
2112      1510, 1510, 2860, 1511, 2847, 1279, 1512, 1710, 1513, 1513,
2113
2114      1513, 1290, 1514, 2861, 2827, 1515, 1297, 1297, 1297, 2863,
2115      1691, 1519, 1519, 1519, 2849, 1520, 2827, 2864, 1521, 2865,
2116      1700, 1524, 1524, 1524, 1299, 1525, 1711, 2854, 1526, 1309,
2117      1309, 1309, 2866, 2850, 1705, 1702, 1317, 1317, 1317, 2867,
2118      1712, 1531, 1531, 1531, 2857, 1532, 2855, 1311, 1533, 1534,
2119      1534, 1534, 2868, 1535, 1319, 2869, 1536, 1325, 1325, 1325,
2120      1538, 1538, 1538, 2858, 1539, 2870, 2871, 1540, 2881, 1543,
2121      1543, 1543, 1714, 1544, 2882, 1327, 1545, 1335, 1335, 1335,
2122      1548, 1548, 1548, 2883, 1727, 1727, 1727, 2884, 1728, 2885,
2123      1719, 1729, 2886, 1721, 2890, 1337, 2891, 1549, 1344, 1344,
2124
2125      1344, 1735, 1735, 1735, 1722, 1350, 1350, 1350, 1357, 1357,
2126      1357, 1739, 1739, 1739, 2892, 2893, 1346, 2894, 1736, 1365,
2127      1365, 1365, 2895, 1352, 1725, 2896, 1359, 2897, 1740, 2899,
2128      2900, 1562, 1562, 1562, 1078, 1078, 1078, 1367, 1773, 1773,
2129      1773, 1598, 1598, 1598, 2901, 1599, 2902, 1733, 1600, 1563,
2130      2903, 2904, 1080, 1110, 1110, 1110, 2908, 1602, 1602, 1602,
2131      1738, 1603, 2909, 2905, 1604, 1120, 1120, 1120, 1623, 1623,
2132      1623, 1112, 1737, 1609, 1609, 1609, 2910, 1610, 2906, 2911,
2133      1611, 1741, 1743, 1122, 1774, 1624, 1748, 1613, 1613, 1613,
2134      2907, 1614, 2912, 2913, 1615, 1136, 1136, 1136, 2914, 1744,
2135
2136      1620, 1620, 1620, 2915, 1621, 2916, 2917, 1622, 1792, 1792,
2137      1792, 2918, 1793, 1138, 2919, 1794, 1778, 1144, 1144, 1144,
2138      1775, 1801, 1801, 1801, 1763, 1763, 1763, 1640, 1640, 1640,
2139      1807, 1807, 1807, 2920, 1808, 1146, 2921, 1809, 1642, 1642,
2140      1642, 2923, 1643, 2924, 1641, 1644, 1173, 1173, 1173, 1812,
2141      1812, 1812, 1182, 1182, 1182, 1065, 1782, 2925, 1649, 1649,
2142      1649, 2926, 1650, 2927, 1175, 1651, 1813, 2928, 1795, 2929,
2143      1184, 1190, 1190, 1190, 1653, 1653, 1653, 2930, 1654, 2931,
2144      2922, 1655, 1196, 1196, 1196, 1764, 2932, 2933, 1802, 1192,
2145      1816, 1816, 1816, 1810, 1660, 1660, 1660, 2934, 1661, 1814,
2146
2147      1198, 1662, 1663, 1663, 1663, 2935, 2936, 1817, 1821, 1821,
2148      1821, 2937, 1822, 2938, 2939, 1823, 1665, 1665, 1665, 1664,
2149      1824, 1824, 1824, 2940, 1825, 2941, 2942, 1826, 2944, 1828,
2150      1828, 1828, 2945, 1666, 1671, 1671, 1671, 1815, 1672, 2946,
2151      1065, 1673, 1221, 1221, 1221, 2947, 1818, 1829, 1676, 1676,
2152      1676, 1834, 1834, 1834, 2948, 1835, 2949, 2950, 1836, 2943,
2153      1223, 1837, 1837, 1837, 2951, 1677, 1680, 1680, 1680, 2952,
2154      1681, 2953, 2954, 1682, 1683, 1683, 1683, 2955, 1838, 1840,
2155      1840, 1840, 2956, 1841, 2957, 2958, 1842, 2959, 1832, 2960,
2156      2961, 1684, 1843, 1843, 1843, 1849, 1849, 1849, 1245, 1245,
2157
2158      1245, 1693, 1693, 1693, 1853, 1853, 1853, 1065, 1854, 1844,
2159      2963, 1855, 1850, 1856, 1856, 1856, 1247, 2964, 1694, 1697,
2160      1697, 1697, 1859, 1859, 1859, 2965, 1860, 2962, 2966, 1861,
2161      1857, 1863, 1863, 1863, 2967, 2968, 1698, 1268, 1268, 1268,
2162      2969, 1277, 1277, 1277, 1709, 1709, 1709, 2970, 2971, 1864,
2163      1873, 1873, 1873, 2972, 1874, 1270, 2973, 1875, 2974, 1279,
2164      2975, 1710, 2976, 2977, 1851, 1877, 1877, 1877, 1297, 1297,
2165      1297, 2978, 2979, 1882, 1882, 1882, 1884, 1884, 1884, 3107,
2166      3107, 3107, 2980, 1878, 2982, 1065, 1299, 2983, 1866, 1869,
2167      1883, 2981, 2984, 1885, 2985, 2986, 3107, 1309, 1309, 1309,
2168
2169      1317, 1317, 1317, 1325, 1325, 1325, 1891, 1891, 1891, 1893,
2170      1893, 1893, 1335, 1335, 1335, 1311, 2987, 2988, 1319, 1880,
2171      2989, 1327, 2990, 1892, 2991, 2992, 1894, 1727, 1727, 1727,
2172      1337, 1728, 2993, 2995, 1729, 1344, 1344, 1344, 1735, 1735,
2173      1735, 2996, 2997, 1886, 2998, 1065, 1889, 1902, 1902, 1902,
2174      2999, 1903, 3000, 1346, 1904, 1736, 1350, 1350, 1350, 2994,
2175      3001, 1357, 1357, 1357, 1887, 1739, 1739, 1739, 1890, 1907,
2176      1907, 1907, 3002, 1908, 1352, 3004, 1909, 1895, 3005, 1359,
2177      3006, 3007, 1740, 1910, 1910, 1910, 1900, 1916, 1916, 1916,
2178      1078, 1078, 1078, 1758, 1758, 1758, 1932, 1932, 1932, 3008,
2179
2180      3009, 1911, 3010, 3011, 1917, 1763, 1763, 1763, 1080, 1933,
2181      1933, 1933, 1766, 1766, 1766, 1905, 1906, 1936, 1936, 1936,
2182      1937, 1937, 1937, 1773, 1773, 1773, 1110, 1110, 1110, 1945,
2183      1945, 1945, 1948, 1948, 1948, 1136, 1136, 1136, 1952, 1952,
2184      1952, 1792, 1792, 1792, 1112, 1793, 3014, 1946, 1794, 1949,
2185      3015, 1918, 3016, 1138, 3017, 1953, 1144, 1144, 1144, 3018,
2186      1965, 1965, 1965, 1801, 1801, 1801, 1972, 1972, 1972, 1974,
2187      1974, 1974, 3019, 1689, 1146, 1065, 1942, 1966, 1807, 1807,
2188      1807, 1065, 1808, 1065, 1065, 1809, 1975, 1173, 1173, 1173,
2189      1977, 1977, 1977, 1065, 1951, 1812, 1812, 1812, 1065, 1979,
2190
2191      1979, 1979, 1964, 1980, 1688, 1175, 1981, 1978, 1182, 1182,
2192      1182, 3020, 1813, 1983, 1983, 1983, 1816, 1816, 1816, 3021,
2193      1985, 1985, 1985, 1687, 1986, 3026, 1184, 1987, 1196, 1196,
2194      1196, 1984, 3022, 1817, 1821, 1821, 1821, 3027, 1822, 3038,
2195      1976, 1823, 1065, 1824, 1824, 1824, 1198, 1825, 1065, 3030,
2196      1826, 1828, 1828, 1828, 1830, 1830, 1830, 1065, 1221, 1221,
2197      1221, 1982, 1065, 1834, 1834, 1834, 1065, 1835, 1686, 1829,
2198      1836, 1837, 1837, 1837, 1065, 1988, 1223, 1997, 1997, 1997,
2199      1065, 1998, 3052, 3031, 1999, 1840, 1840, 1840, 1838, 1841,
2200      3023, 1065, 1842, 1843, 1843, 1843, 2001, 2001, 2001, 3036,
2201
2202      2002, 1065, 1065, 2003, 2004, 2004, 2004, 1849, 1849, 1849,
2203      1844, 2009, 2009, 2009, 3024, 2010, 1995, 3037, 2011, 3028,
2204      1685, 2005, 3025, 1065, 1850, 1245, 1245, 1245, 1853, 1853,
2205      1853, 3032, 1854, 3046, 3047, 1855, 1856, 1856, 1856, 1065,
2206      2014, 2014, 2014, 1247, 2015, 1679, 3033, 2016, 1859, 1859,
2207      1859, 1065, 1860, 1857, 1065, 1861, 1863, 1863, 1863, 1268,
2208      1268, 1268, 2022, 2022, 2022, 1277, 1277, 1277, 2026, 2026,
2209      2026, 1873, 1873, 1873, 1864, 1874, 2012, 1270, 1875, 2023,
2210      1877, 1877, 1877, 1279, 1065, 2027, 2034, 2034, 2034, 1882,
2211      1882, 1882, 2037, 2037, 2037, 1065, 2038, 3042, 1878, 2039,
2212
2213      1884, 1884, 1884, 3029, 2035, 1065, 1883, 1065, 2040, 2040,
2214      2040, 1065, 2041, 1065, 2028, 2042, 1065, 1885, 1309, 1309,
2215      1309, 1678, 1065, 2020, 1675, 3039, 2024, 1317, 1317, 1317,
2216      1325, 1325, 1325, 1891, 1891, 1891, 1311, 2048, 2048, 2048,
2217      3040, 2049, 3034, 1670, 2050, 1319, 3041, 1065, 1327, 3060,
2218      1892, 1893, 1893, 1893, 2051, 2051, 2051, 3050, 2052, 1065,
2219      3035, 2053, 1335, 1335, 1335, 1344, 1344, 1344, 1894, 1065,
2220      1902, 1902, 1902, 3048, 1903, 1065, 2046, 1904, 1065, 1065,
2221      1337, 3053, 1065, 1346, 2044, 1350, 1350, 1350, 1357, 1357,
2222      1357, 1065, 1907, 1907, 1907, 2047, 1908, 1065, 3072, 1909,
2223
2224      1910, 1910, 1910, 1352, 3049, 3043, 1359, 1916, 1916, 1916,
2225      2067, 2067, 2067, 1065, 2068, 3044, 3045, 2069, 1911, 1078,
2226      1078, 1078, 3082, 1669, 1917, 3062, 3051, 2054, 1659, 3094,
2227      2059, 2071, 2071, 2071, 1065, 1065, 2061, 1080, 2076, 2076,
2228      2076, 2062, 1925, 1925, 1925, 2078, 2078, 2078, 2082, 2082,
2229      2082, 1932, 1932, 1932, 1933, 1933, 1933, 2083, 2083, 2083,
2230      1936, 1936, 1936, 1937, 1937, 1937, 2086, 2086, 2086, 2087,
2231      2087, 2087, 2088, 2088, 2088, 1110, 1110, 1110, 1945, 1945,
2232      1945, 3056, 1065, 2070, 1948, 1948, 1948, 2094, 2094, 2094,
2233      1065, 2095, 1065, 1112, 2096, 1658, 1946, 2098, 2098, 2098,
2234
2235      1656, 1949, 1065, 2084, 1952, 1952, 1952, 2100, 2100, 2100,
2236      1647, 2101, 1646, 1639, 2102, 2099, 1144, 1144, 1144, 1065,
2237      1065, 1953, 1965, 1965, 1965, 3054, 2090, 3058, 2114, 2114,
2238      2114, 3073, 2115, 3055, 1146, 2116, 2117, 2117, 2117, 1966,
2239      1972, 1972, 1972, 2122, 2122, 2122, 1974, 1974, 1974, 2124,
2240      2124, 2124, 3061, 2125, 1065, 3059, 2126, 1173, 1173, 1173,
2241      1977, 1977, 1977, 1975, 1638, 2113, 2128, 2128, 2128, 1065,
2242      2129, 1065, 3063, 2130, 1065, 1175, 1065, 1978, 1979, 1979,
2243      1979, 1065, 1980, 1637, 1065, 1981, 1182, 1182, 1182, 2123,
2244      1065, 1983, 1983, 1983, 1985, 1985, 1985, 1065, 1986, 1065,
2245
2246      3057, 1987, 1636, 3076, 1184, 1196, 1196, 1196, 2127, 1984,
2247      1221, 1221, 1221, 1997, 1997, 1997, 3066, 1998, 3067, 3100,
2248      1999, 3064, 3080, 1198, 3077, 2001, 2001, 2001, 1223, 2002,
2249      1065, 1065, 2003, 2004, 2004, 2004, 3065, 2131, 2144, 2144,
2250      2144, 3104, 2145, 3068, 3074, 2146, 1635, 2009, 2009, 2009,
2251      2005, 2010, 1065, 1065, 2011, 1245, 1245, 1245, 2132, 2014,
2252      2014, 2014, 1065, 2015, 1065, 2141, 2016, 2155, 2155, 2155,
2253      2022, 2022, 2022, 1247, 2158, 2158, 2158, 3069, 2159, 1065,
2254      1634, 2160, 1277, 1277, 1277, 2156, 3081, 2023, 2026, 2026,
2255      2026, 2163, 2163, 2163, 1065, 2164, 1065, 1065, 2165, 3070,
2256
2257      1279, 3071, 2034, 2034, 2034, 2027, 2037, 2037, 2037, 1065,
2258      2038, 3095, 1065, 2039, 2040, 2040, 2040, 1065, 2041, 2150,
2259      2035, 2042, 1309, 1309, 1309, 1317, 1317, 1317, 1325, 1325,
2260      1325, 2048, 2048, 2048, 1065, 2049, 3075, 3086, 2050, 1633,
2261      1311, 3096, 2161, 1319, 3083, 1065, 1327, 2051, 2051, 2051,
2262      1065, 2052, 1065, 3087, 2053, 3078, 1335, 1335, 1335, 1629,
2263      2181, 2181, 2181, 3079, 2179, 3107, 3107, 3107, 3107, 3107,
2264      3107, 3084, 1065, 2176, 1337, 1628, 2180, 2182, 3107, 3107,
2265      3107, 1627, 3107, 1626, 1065, 3107, 1344, 1344, 1344, 3085,
2266      1065, 2178, 1350, 1350, 1350, 3107, 2189, 2189, 2189, 2191,
2267
2268      2191, 2191, 1619, 1616, 1346, 2194, 2194, 2194, 1612, 3092,
2269      1352, 2067, 2067, 2067, 2190, 2068, 2183, 1065, 2069, 3088,
2270      1078, 1078, 1078, 2071, 2071, 2071, 2196, 2196, 2196, 2197,
2271      2197, 2197, 2184, 2076, 2076, 2076, 3090, 2185, 1080, 2078,
2272      2078, 2078, 2201, 2201, 2201, 2202, 2202, 2202, 2203, 2203,
2273      2203, 2186, 2188, 2082, 2082, 2082, 2083, 2083, 2083, 2086,
2274      2086, 2086, 2087, 2087, 2087, 2088, 2088, 2088, 2207, 2207,
2275      2207, 2210, 2210, 2210, 2094, 2094, 2094, 1608, 2095, 2195,
2276      1065, 2096, 3107, 3107, 3107, 1606, 2208, 1065, 2211, 2098,
2277      2098, 2098, 1065, 2100, 2100, 2100, 1065, 2101, 1605, 3107,
2278
2279      2102, 1144, 1144, 1144, 2114, 2114, 2114, 2099, 2115, 2224,
2280      2225, 2116, 2226, 1065, 2230, 2231, 1597, 2232, 1065, 1146,
2281      2227, 1596, 3089, 2228, 3098, 2233, 3091, 2229, 2234, 2117,
2282      2117, 2117, 2235, 2236, 2236, 2236, 2122, 2122, 2122, 2124,
2283      2124, 2124, 1594, 2125, 3101, 3099, 2126, 1593, 2212, 1173,
2284      1173, 1173, 2128, 2128, 2128, 3093, 2129, 3097, 1065, 2130,
2285      1592, 1065, 2223, 2242, 2242, 2242, 1065, 1175, 1196, 1196,
2286      1196, 2252, 2252, 2252, 1221, 1221, 1221, 3104, 2144, 2144,
2287      2144, 2243, 2145, 1591, 1590, 2146, 1198, 2256, 2256, 2256,
2288      3102, 1065, 1223, 3103, 1589, 2241, 2260, 2260, 2260, 2155,
2289
2290      2155, 2155, 1588, 1587, 2257, 2266, 2266, 2266, 2158, 2158,
2291      2158, 1585, 2159, 1584, 2261, 2160, 1582, 2156, 1581, 2244,
2292      1578, 1575, 2267, 1277, 1277, 1277, 2269, 2269, 2269, 2163,
2293      2163, 2163, 1574, 2164, 2253, 1573, 2165, 3107, 3107, 3107,
2294      1572, 1279, 1571, 2270, 3107, 3107, 3107, 3107, 3107, 3107,
2295      2280, 2280, 2280, 1570, 3107, 2282, 2282, 2282, 2284, 2284,
2296      2284, 3107, 1568, 1567, 3107, 1317, 1317, 1317, 1325, 1325,
2297      1325, 1566, 2271, 2283, 2268, 2285, 1335, 1335, 1335, 2181,
2298      2181, 2181, 1565, 1319, 1558, 1555, 1327, 2292, 2292, 2292,
2299      1554, 1552, 2272, 1551, 1337, 1550, 2182, 1547, 2278, 2289,
2300
2301      2289, 2289, 1542, 2290, 2293, 2273, 2291, 3107, 3107, 3107,
2302      3107, 3107, 3107, 2288, 2296, 2296, 2296, 2298, 2298, 2298,
2303      1350, 1350, 1350, 1541, 3107, 2286, 1529, 3107, 1527, 2287,
2304      1523, 1522, 2297, 2189, 2189, 2189, 1518, 1516, 1352, 2191,
2305      2191, 2191, 2194, 2194, 2194, 2303, 2303, 2303, 2196, 2196,
2306      2196, 2190, 2197, 2197, 2197, 1508, 1507, 1065, 2294, 1506,
2307      1505, 2295, 1503, 2304, 2307, 2307, 2307, 2201, 2201, 2201,
2308      2202, 2202, 2202, 2203, 2203, 2203, 2207, 2207, 2207, 2210,
2309      2210, 2210, 1502, 2312, 2312, 2312, 2299, 2313, 1500, 1498,
2310      2314, 1144, 1144, 1144, 2208, 1497, 2211, 2236, 2236, 2236,
2311
2312      1493, 2300, 2343, 2343, 2343, 1173, 1173, 1173, 1492, 1146,
2313      2242, 2242, 2242, 2346, 2346, 2346, 2352, 2352, 2352, 2252,
2314      2252, 2252, 1491, 1175, 1221, 1221, 1221, 1490, 2243, 1488,
2315      1487, 2347, 1486, 2353, 1485, 2256, 2256, 2256, 1484, 2357,
2316      2357, 2357, 1223, 2358, 1483, 1482, 2359, 2361, 2361, 2361,
2317      1476, 2326, 2257, 1475, 2260, 2260, 2260, 2365, 2365, 2365,
2318      2266, 2266, 2266, 1474, 2362, 1473, 2368, 2368, 2368, 1469,
2319      2369, 2345, 2261, 2370, 2366, 1468, 1466, 2267, 2371, 2371,
2320      2371, 2354, 2269, 2269, 2269, 2373, 2373, 2373, 1465, 2374,
2321      1462, 1461, 2375, 3107, 3107, 3107, 2372, 1452, 1451, 2270,
2322
2323      3107, 3107, 3107, 3107, 3107, 3107, 2381, 2381, 2381, 1447,
2324      3107, 2280, 2280, 2280, 2282, 2282, 2282, 3107, 1446, 1445,
2325      3107, 1444, 1443, 2382, 2284, 2284, 2284, 2385, 2385, 2385,
2326      1442, 2386, 2283, 1441, 2387, 2388, 2388, 2388, 1325, 1325,
2327      1325, 2285, 1335, 1335, 1335, 2376, 1440, 2289, 2289, 2289,
2328      1439, 2290, 1438, 2389, 2291, 1437, 1327, 1436, 2377, 1435,
2329      1337, 2378, 2292, 2292, 2292, 2392, 2392, 2392, 1432, 2393,
2330      1430, 1427, 2394, 2395, 2395, 2395, 2397, 2397, 2397, 2293,
2331      2296, 2296, 2296, 2298, 2298, 2298, 2399, 2399, 2399, 1424,
2332      2396, 1421, 1412, 2398, 2303, 2303, 2303, 1410, 2297, 2307,
2333
2334      2307, 2307, 1403, 1401, 2400, 2390, 2391, 2409, 2409, 2409,
2335      1400, 1399, 2304, 2312, 2312, 2312, 1398, 2313, 1397, 1396,
2336      2314, 1144, 1144, 1144, 2410, 2343, 2343, 2343, 1173, 1173,
2337      1173, 2346, 2346, 2346, 2448, 2448, 2448, 1395, 1394, 1146,
2338      2352, 2352, 2352, 2450, 2450, 2450, 1175, 2451, 1393, 2347,
2339      2452, 2449, 2453, 2453, 2453, 1390, 1389, 2353, 2357, 2357,
2340      2357, 1388, 2358, 1387, 1386, 2359, 2361, 2361, 2361, 1385,
2341      2454, 2458, 2458, 2458, 1384, 2459, 1383, 1382, 2460, 1381,
2342      1380, 2428, 1379, 2362, 2462, 2462, 2462, 2365, 2365, 2365,
2343      2464, 2464, 2464, 1378, 2465, 1376, 1375, 2466, 1374, 2446,
2344
2345      1373, 2463, 1372, 1371, 2366, 2467, 2467, 2467, 2368, 2368,
2346      2368, 1370, 2369, 1065, 1364, 2370, 2371, 2371, 2371, 2373,
2347      2373, 2373, 2468, 2374, 1349, 1348, 2375, 3107, 3107, 3107,
2348      3107, 3107, 3107, 1343, 2372, 3107, 3107, 3107, 2381, 2381,
2349      2381, 2472, 2472, 2472, 3107, 2473, 1342, 3107, 2474, 2475,
2350      2475, 2475, 3107, 1341, 1340, 2382, 2477, 2477, 2477, 1339,
2351      2385, 2385, 2385, 1313, 2386, 1301, 2476, 2387, 2388, 2388,
2352      2388, 1287, 1286, 2478, 1325, 1325, 1325, 1335, 1335, 1335,
2353      1285, 2470, 2469, 2395, 2395, 2395, 2389, 2392, 2392, 2392,
2354      2471, 2393, 1327, 1281, 2394, 1337, 1276, 2487, 2487, 2487,
2355
2356      2396, 2488, 1272, 1264, 2489, 2397, 2397, 2397, 2490, 2490,
2357      2490, 1259, 2491, 1258, 1252, 2492, 2399, 2399, 2399, 2497,
2358      2497, 2497, 2398, 1249, 2409, 2409, 2409, 1244, 2501, 2501,
2359      2501, 1243, 2502, 1242, 2400, 2503, 1241, 1240, 2486, 1239,
2360      2485, 2410, 1144, 1144, 1144, 2537, 2537, 2537, 1173, 1173,
2361      1173, 2540, 2540, 2540, 2448, 2448, 2448, 2543, 2543, 2543,
2362      1146, 2544, 1238, 1232, 2545, 1225, 1175, 1214, 2541, 1213,
2363      1212, 2449, 2450, 2450, 2450, 1207, 2451, 1206, 1202, 2452,
2364      2453, 2453, 2453, 2458, 2458, 2458, 1201, 2459, 1200, 1195,
2365      2460, 1194, 1189, 2521, 2462, 2462, 2462, 2542, 2454, 2550,
2366
2367      2550, 2550, 1181, 2551, 1177, 1172, 2552, 2467, 2467, 2467,
2368      2539, 2463, 2464, 2464, 2464, 1171, 2465, 1167, 1166, 2466,
2369      1165, 2553, 2553, 2553, 2468, 2554, 1164, 1163, 2555, 3107,
2370      3107, 3107, 2557, 2557, 2557, 3107, 3107, 3107, 2472, 2472,
2371      2472, 1162, 2473, 1161, 1160, 2474, 3107, 1159, 1158, 2558,
2372      1157, 1151, 3107, 2475, 2475, 2475, 2560, 2560, 2560, 1143,
2373      2561, 1142, 1141, 2562, 2477, 2477, 2477, 2563, 2563, 2563,
2374      2476, 2564, 1140, 1135, 2565, 1325, 1325, 1325, 1335, 1335,
2375      1335, 2478, 1134, 1133, 2559, 1130, 1124, 2556, 2487, 2487,
2376      2487, 1119, 2488, 1327, 1118, 2489, 1337, 2490, 2490, 2490,
2377
2378      1114, 2491, 1109, 1108, 2492, 2580, 2580, 2580, 2497, 2497,
2379      2497, 2583, 2583, 2583, 2501, 2501, 2501, 1107, 2502, 1106,
2380      1105, 2503, 2581, 1563, 1104, 1102, 2572, 2594, 2594, 2594,
2381      1144, 1144, 1144, 2537, 2537, 2537, 2620, 2620, 2620, 1173,
2382      1173, 1173, 1101, 1100, 2595, 2573, 1099, 1098, 1146, 2540,
2383      2540, 2540, 2622, 2622, 2622, 1097, 2623, 1175, 1096, 2624,
2384      2543, 2543, 2543, 1095, 2544, 1094, 2541, 2545, 2550, 2550,
2385      2550, 1093, 2551, 1092, 1091, 2552, 2553, 2553, 2553, 2604,
2386      2554, 1090, 1089, 2555, 3107, 3107, 3107, 2557, 2557, 2557,
2387      2621, 2631, 2631, 2631, 1088, 2632, 1087, 1086, 2633, 1085,
2388
2389      1084, 3107, 1077, 1076, 2558, 3107, 3107, 3107, 2560, 2560,
2390      2560, 1075, 2561, 1074, 1073, 2562, 2563, 2563, 2563, 1072,
2391      2564, 1071, 3107, 2565, 2649, 2649, 2649, 1335, 1335, 1335,
2392      2657, 2657, 2657, 1068, 1066, 2630, 2580, 2580, 2580, 2659,
2393      2659, 2659, 2650, 2660, 1065, 1337, 2661, 2658, 1563, 2662,
2394      2662, 2662, 1063, 2581, 1563, 1061, 1058, 1563, 2583, 2583,
2395      2583, 2663, 2663, 2663, 2664, 2664, 2664, 2594, 2594, 2594,
2396      2673, 2673, 2673, 1054, 2674, 1052, 2634, 2675, 1144, 1144,
2397      1144, 2693, 2693, 2693, 2595, 2620, 2620, 2620, 2694, 2694,
2398      2694, 1051, 1050, 2651, 1048, 1047, 1146, 2622, 2622, 2622,
2399
2400      1046, 2623, 1045, 1044, 2624, 1043, 2695, 2699, 2699, 2699,
2401      2702, 2702, 2702, 2631, 2631, 2631, 1041, 2632, 1040, 1039,
2402      2633, 2704, 2704, 2704, 2700, 1038, 1036, 2703, 2649, 2649,
2403      2649, 1335, 1335, 1335, 2657, 2657, 2657, 1035, 2705, 1034,
2404      1030, 2724, 2724, 2724, 2682, 2725, 2650, 1029, 2726, 1337,
2405      1027, 2658, 1563, 2659, 2659, 2659, 1026, 2660, 1025, 1563,
2406      2661, 2662, 2662, 2662, 2663, 2663, 2663, 2664, 2664, 2664,
2407      1024, 1563, 2673, 2673, 2673, 1023, 2674, 1022, 1020, 2675,
2408      1019, 1018, 2718, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2409      1561, 1561, 1017, 1015, 1561, 2743, 2743, 2743, 1014, 1561,
2410
2411      1561, 1561, 1563, 1561, 2693, 2693, 2693, 2694, 2694, 2694,
2412      2699, 2699, 2699, 2744, 2756, 2756, 2756, 1013, 2757, 1010,
2413      1009, 2758, 2702, 2702, 2702, 2695, 1007, 2700, 1561, 1561,
2414      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 2703,
2415      1004, 1561, 2704, 2704, 2704, 1003, 1561, 1561, 1561, 1563,
2416      1561, 2760, 2760, 2760,  999, 2761,  998,  996, 2762, 2705,
2417      2763, 2763, 2763,  995, 2764,  994,  991, 2765, 2778, 2778,
2418      2778, 2743, 2743, 2743,  990, 1561, 1561, 2724, 2724, 2724,
2419       989, 2725,  988,  986, 2726,  985, 2779,  984,  983, 2744,
2420      2778, 2778, 2778,  982,  981, 1563, 1561, 1561, 1561, 1561,
2421
2422      1561, 2790, 1561, 1561, 1561,  980,  979, 1561, 2779,  976,
2423       973,  972, 1561, 1561, 1561, 1563, 1561, 2756, 2756, 2756,
2424       971, 2757,  965,  962, 2758, 2760, 2760, 2760,  960, 2761,
2425       959,  954, 2762, 2763, 2763, 2763,  953, 2764,  951,  950,
2426      2765, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2427      1561, 2790,  949,  947, 1561, 2829, 2829, 2829,  944, 1561,
2428      1561, 1561, 1563, 1561, 2840, 2840, 2840, 2842, 2842, 2842,
2429      2844, 2844, 2844, 1563, 1564, 2852, 2852, 2852, 2862, 2862,
2430      2862, 2841,  942,  939, 2843,  938,  936, 2845, 1561, 1561,
2431       935,  932, 2853, 2829, 2829, 2829, 1065, 2840, 2840, 2840,
2432
2433      2872, 2872, 2872,  927, 2873,  926,  924, 2874, 2842, 2842,
2434      2842, 1563,  923,  920, 2841, 2875, 2875, 2875,  919, 2876,
2435       917,  914, 2877,  912,  911, 2843, 2844, 2844, 2844, 2878,
2436      2878, 2878,  910, 2879,  908,  906, 2880, 2852, 2852, 2852,
2437      2862, 2862, 2862, 2845, 1743, 2887, 2887, 2887,  905, 2888,
2438       904,  903, 2889,  902, 2853, 2872, 2872, 2872, 1065, 2873,
2439       901,  898, 2874, 2875, 2875, 2875,  897, 2876,  896,  893,
2440      2877, 2878, 2878, 2878,  890, 2879,  889, 2898, 2880, 2887,
2441      2887, 2887,  887, 2888,  886,  883, 2889, 3003, 3003, 3003,
2442      3003, 3003, 3003,  881, 3012,  878,  877, 3013, 3105, 3105,
2443
2444      3105, 3105, 3105, 3105,  869, 1065,  868,  867, 1065,  862,
2445       861,  860,  858,  857,  856,  855, 3106,  854,  853, 3106,
2446       246,  246,  246,  246,  246,  246,  246,  246,  246,  247,
2447       247,  247,  247,  247,  247,  247,  247,  247,  252,  252,
2448       252,  252,  252,  252,  252,  252,  252,  255,  255,  255,
2449       255,  255,  255,  255,  255,  255,  258,  258,  258,  258,
2450       258,  258,  258,  258,  258,  261,  261,  261,  261,  261,
2451       261,  261,  261,  261,  268,  268,  268,  268,  268,  268,
2452       268,  268,  268,  276,  276,  276,  276,  276,  276,  276,
2453       276,  276,  280,  280,  280,  280,  280,  280,  280,  280,
2454
2455       280,  292,  292,  292,  292,  292,  292,  292,  292,  292,
2456       296,  296,  296,  296,  296,  296,  296,  296,  296,  303,
2457       303,  303,  303,  303,  303,  303,  303,  303,  314,  314,
2458       314,  314,  314,  314,  314,  314,  314,  322,  322,  322,
2459       322,  322,  322,  322,  322,  322,  330,  330,  330,  330,
2460       330,  330,  330,  330,  330,  336,  336,  336,  336,  336,
2461       336,  336,  336,  336,  342,  342,  342,  342,  342,  342,
2462       342,  342,  342,  347,  347,  347,  347,  347,  347,  347,
2463       347,  347,  364,  364,  364,  364,  364,  364,  364,  364,
2464       364,  371,  371,  371,  371,  371,  371,  371,  371,  371,
2465
2466       378,  378,  378,  378,  378,  378,  378,  378,  378,  384,
2467       384,  384,  384,  384,  384,  384,  384,  384,  391,  391,
2468       391,  391,  391,  391,  391,  391,  391,  396,  396,  396,
2469       396,  396,  396,  396,  396,  396,  402,  402,  402,  402,
2470       402,  402,  402,  402,  402,  407,  407,  407,  407,  407,
2471       407,  407,  407,  407,  413,  413,  413,  413,  413,  413,
2472       413,  413,  413,  421,  421,  421,  421,  421,  421,  421,
2473       421,  421,  429,  429,  429,  429,  429,  429,  429,  429,
2474       429,  435,  435,  435,  435,  435,  435,  435,  435,  435,
2475       452,  452,  452,  452,  452,  452,  452,  452,  452,  458,
2476
2477       458,  458,  458,  458,  458,  458,  458,  458,  468,  468,
2478       468,  468,  468,  468,  468,  468,  468,  474,  474,  474,
2479       474,  474,  474,  474,  474,  474,  479,  479,  479,  479,
2480       479,  479,  479,  479,  479,  485,  485,  485,  485,  485,
2481       485,  485,  485,  485,  491,  491,  491,  491,  491,  491,
2482       491,  491,  491,  497,  497,  497,  497,  497,  497,  497,
2483       497,  497,  504,  504,  504,  504,  504,  504,  504,  504,
2484       504,  511,  511,  511,  511,  511,  511,  511,  511,  511,
2485       516,  516,  516,  516,  516,  516,  516,  516,  516,  524,
2486       524,  524,  524,  524,  524,  524,  524,  524,  530,  530,
2487
2488       530,  530,  530,  530,  530,  530,  530,  537,  537,  537,
2489       537,  537,  537,  537,  537,  537,  542,  542,  542,  542,
2490       542,  542,  542,  542,  542,  548,  548,  548,  548,  548,
2491       548,  548,  548,  548,  553,  553,  553,  553,  553,  553,
2492       553,  553,  553,  560,  560,  560,  560,  560,  560,  560,
2493       560,  560,  566,  566,  566,  566,  566,  566,  566,  566,
2494       566,  573,  573,  573,  573,  573,  573,  573,  573,  573,
2495       581,  581,  581,  581,  581,  581,  581,  581,  581,  589,
2496       589,  589,  589,  589,  589,  589,  589,  589,  593,  593,
2497       593,  593,  593,  593,  593,  593,  593,  599,  599,  599,
2498
2499       599,  599,  599,  599,  599,  599,  603,  603,  603,  603,
2500       603,  603,  603,  603,  603,  610,  610,  610,  610,  610,
2501       610,  610,  610,  610,  615,  615,  615,  615,  615,  615,
2502       615,  615,  615,  635,  635,  635,  848,  845,  847,  635,
2503       661,  661,  661,  842,  841,  839,  661,  665,  665,  665,
2504       837,  835,  833,  665,  673,  673,  673,  831, 3107,  828,
2505       673,  685,  685,  685,  827,  826,  825,  685,  691,  691,
2506       691,  824,  822,  821,  691,  710,  710,  710,  820,  819,
2507       818,  710,  717,  717,  717,  816,  815,  814,  717,  723,
2508       723,  723,  813,  811,  809,  723,  728,  728,  728,  808,
2509
2510       806,  805,  728,  733,  733,  733,  802,  801,  799,  733,
2511       742,  742,  742,  644, 3107,  794,  742,  748,  748,  748,
2512       792,  788,  787,  748,  764,  764,  764,  786,  784,  782,
2513       764,  774,  774,  774,  781,  780,  778,  774,  779,  779,
2514       779,  776,  775,  773,  779,  785,  785,  785,  771,  770,
2515       769,  785,  793,  793,  793,  768,  767,  766,  793,  800,
2516       800,  800,  765,  763,  754,  800,  807,  807,  807,  753,
2517       752,  749,  807,  812,  812,  812,  747,  745,  744,  812,
2518       817,  817,  817,  743,  741, 3107,  817,  823,  823,  823,
2519       738,  737,  736,  823,  832,  832,  832,  735,  734,  732,
2520
2521       832,  836,  836,  836,  730,  729,  727,  836,  840,  840,
2522       840,  725,  724,  722,  840,  844,  844,  844,  844,  844,
2523       844,  844,  720,  844,  635,  635,  635,  719,  718,  716,
2524       635,  859,  714,  713,  712,  859,  661,  661,  661,  711,
2525       709, 3107,  661,  888, 3107,  693,  692,  888,  665,  665,
2526       665,  690,  688,  687,  665,  895,  686,  684,  679,  895,
2527       673,  673,  673,  675,  674,  672,  673,  907,  671,  668,
2528       667,  907,  685,  685,  685,  666,  664,  663,  685,  913,
2529       662,  660,  655,  913,  691,  691,  691, 3107,  636,  634,
2530       691,  918,  632,  626,  625,  918,  710,  710,  710,  626,
2531
2532       625,  624,  710,  937,  623, 3107, 3107,  937,  717,  717,
2533       717, 3107, 3107, 3107,  717,  943, 3107, 3107, 3107,  943,
2534       723,  723,  723, 3107, 3107, 3107,  723,  948, 3107, 3107,
2535      3107,  948,  728,  728,  728, 3107, 3107, 3107,  728,  952,
2536      3107, 3107, 3107,  952,  733,  733,  733, 3107, 3107, 3107,
2537       733,  961, 3107, 3107, 3107,  961,  742,  742,  742, 3107,
2538      3107, 3107,  742,  970, 3107, 3107, 3107,  970,  748,  748,
2539       748, 3107, 3107, 3107,  748,  987, 3107, 3107, 3107,  987,
2540       764,  764,  764, 3107, 3107, 3107,  764,  997, 3107, 3107,
2541      3107,  997,  774,  774,  774, 3107, 3107, 3107,  774, 1002,
2542
2543      3107, 3107, 3107, 1002,  779,  779,  779, 3107, 3107, 3107,
2544       779, 1008, 3107, 3107, 3107, 1008,  785,  785,  785, 3107,
2545      3107, 3107,  785, 1016, 3107, 3107, 3107, 1016,  793,  793,
2546       793, 3107, 3107, 3107,  793, 1021, 3107, 3107, 3107, 1021,
2547       800,  800,  800, 3107, 3107, 3107,  800, 1028, 3107, 3107,
2548      3107, 1028,  807,  807,  807, 3107, 3107, 3107,  807, 1033,
2549      3107, 3107, 3107, 1033,  812,  812,  812, 3107, 3107, 3107,
2550       812, 1037, 3107, 3107, 3107, 1037,  817,  817,  817, 3107,
2551      3107, 3107,  817, 1042, 3107, 3107, 3107, 1042,  823,  823,
2552       823, 3107, 3107, 3107,  823, 1049, 3107, 3107, 3107, 1049,
2553
2554       832,  832,  832, 3107, 3107, 3107,  832, 1053, 3107, 3107,
2555      3107, 1053,  836,  836,  836, 3107, 3107, 3107,  836, 1057,
2556      3107, 3107, 3107, 1057,  840,  840,  840, 3107, 3107, 3107,
2557       840, 1062, 3107, 3107, 3107, 1062, 1064, 1064, 1064, 1064,
2558      1064, 1064, 1064, 1064, 1064, 1070, 3107, 3107, 3107, 3107,
2559      1070,  635,  635,  635, 3107, 3107, 3107,  635, 1079, 1079,
2560      1079, 1079, 3107, 3107, 1079, 1079,  661,  661,  661, 3107,
2561      3107, 3107,  661, 1111, 1111, 1111, 1111, 3107, 3107, 1111,
2562      1111,  665,  665,  665, 3107, 3107, 3107,  665, 1121, 1121,
2563      1121, 1121, 3107, 3107, 1121, 1121,  673,  673,  673, 3107,
2564
2565      3107, 3107,  673, 1137, 1137, 1137, 1137, 3107, 3107, 1137,
2566      1137,  685,  685,  685, 3107, 3107, 3107,  685, 1145, 1145,
2567      1145, 1145, 3107, 3107, 1145, 1145,  691,  691,  691, 3107,
2568      3107, 3107,  691, 1153, 1153, 1153, 1153, 3107, 3107, 1153,
2569      1153,  710,  710,  710, 3107, 3107, 3107,  710, 1174, 1174,
2570      1174, 1174, 3107, 3107, 1174, 1174,  717,  717,  717, 3107,
2571      3107, 3107,  717, 1183, 1183, 1183, 1183, 3107, 3107, 1183,
2572      1183,  723,  723,  723, 3107, 3107, 3107,  723, 1191, 1191,
2573      1191, 1191, 3107, 3107, 1191, 1191,  728,  728,  728, 3107,
2574      3107, 3107,  728, 1197, 1197, 1197, 1197, 3107, 3107, 1197,
2575
2576      1197,  733,  733,  733, 3107, 3107, 3107,  733, 1209, 1209,
2577      1209, 1209, 3107, 3107, 1209, 1209,  742,  742,  742, 3107,
2578      3107, 3107,  742, 1222, 1222, 1222, 1222, 3107, 3107, 1222,
2579      1222,  748,  748,  748, 3107, 3107, 3107,  748, 1246, 1246,
2580      1246, 1246, 3107, 3107, 1246, 1246,  764,  764,  764, 3107,
2581      3107, 3107,  764, 1261, 1261, 1261, 1261, 3107, 3107, 1261,
2582      1261,  774,  774,  774, 3107, 3107, 3107,  774, 1269, 1269,
2583      1269, 1269, 3107, 3107, 1269, 1269,  779,  779,  779, 3107,
2584      3107, 3107,  779, 1278, 1278, 1278, 1278, 3107, 3107, 1278,
2585      1278,  785,  785,  785, 3107, 3107, 3107,  785, 1289, 1289,
2586
2587      1289, 1289, 3107, 3107, 1289, 1289,  793,  793,  793,  793,
2588      3107,  793, 3107,  793, 1298, 1298, 1298, 1298, 3107, 3107,
2589      1298, 1298,  800,  800,  800,  800, 3107,  800, 3107,  800,
2590      1310, 1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,  807,
2591       807, 3107, 3107, 3107,  807, 1318, 1318, 1318, 1318, 3107,
2592      3107, 1318, 1318,  812,  812,  812,  812, 3107,  812, 3107,
2593       812, 1326, 1326, 1326, 1326, 3107, 3107, 1326, 1326,  817,
2594       817,  817,  817, 3107,  817, 3107,  817, 1336, 1336, 1336,
2595      1336, 3107, 3107, 1336, 1336,  823,  823,  823, 3107, 3107,
2596      3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345, 1345,
2597
2598       832,  832,  832, 3107, 3107, 3107,  832, 1351, 1351, 1351,
2599      1351, 3107, 3107, 1351, 1351, 1358, 1358, 1358, 1358, 3107,
2600      3107, 1358, 1358,  840,  840,  840, 3107, 3107, 3107,  840,
2601      1366, 1366, 1366, 1366, 3107, 3107, 1366, 1366, 1064, 1064,
2602      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1070, 3107, 1070,
2603      3107, 3107, 1070,  635,  635,  635, 3107, 3107, 3107,  635,
2604      1079, 1079, 1079, 1079, 3107, 3107, 1079, 1079,  661,  661,
2605       661,  661, 3107,  661, 3107,  661, 1111, 1111, 1111, 1111,
2606      3107, 3107, 1111, 1111,  665,  665,  665,  665, 3107,  665,
2607      3107,  665, 1121, 1121, 1121, 1121, 3107, 3107, 1121, 1121,
2608
2609       673,  673,  673, 3107, 3107, 3107,  673, 1137, 1137, 1137,
2610      1137, 3107, 3107, 1137, 1137,  685,  685,  685, 3107, 3107,
2611      3107,  685, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145,
2612       691,  691,  691, 3107, 3107, 3107,  691, 1153, 1153, 1153,
2613      1153, 3107, 3107, 1153, 1153,  710,  710,  710, 3107, 3107,
2614      3107,  710, 1174, 1174, 1174, 1174, 3107, 3107, 1174, 1174,
2615       717,  717,  717, 3107, 3107, 3107,  717, 1183, 1183, 1183,
2616      1183, 3107, 3107, 1183, 1183,  723,  723,  723,  723, 3107,
2617       723, 3107,  723, 1191, 1191, 1191, 1191, 3107, 3107, 1191,
2618      1191,  728,  728,  728,  728, 3107,  728, 3107,  728, 1197,
2619
2620      1197, 1197, 1197, 3107, 3107, 1197, 1197,  733,  733,  733,
2621      3107, 3107, 3107,  733, 1209, 1209, 1209, 1209, 3107, 3107,
2622      1209, 1209,  742,  742,  742,  742, 3107,  742, 3107,  742,
2623      1222, 1222, 1222, 1222, 3107, 3107, 1222, 1222,  748,  748,
2624       748, 3107, 3107, 3107,  748, 1246, 1246, 1246, 1246, 3107,
2625      3107, 1246, 1246,  764,  764,  764, 3107, 3107, 3107,  764,
2626      1261, 1261, 1261, 1261, 3107, 3107, 1261, 1261,  774,  774,
2627       774, 3107, 3107, 3107,  774, 1269, 1269, 1269, 1269, 3107,
2628      3107, 1269, 1269,  779,  779,  779, 3107, 3107, 3107,  779,
2629      1278, 1278, 1278, 1278, 3107, 3107, 1278, 1278,  785,  785,
2630
2631       785, 3107, 3107, 3107,  785, 1289, 1289, 1289, 1289, 3107,
2632      3107, 1289, 1289,  793,  793,  793, 3107, 3107, 3107,  793,
2633      1298, 1298, 1298, 1298, 3107, 3107, 1298, 1298,  800,  800,
2634       800, 3107, 3107, 3107,  800, 1310, 1310, 1310, 1310, 3107,
2635      3107, 1310, 1310,  807,  807,  807, 3107, 3107, 3107,  807,
2636      1318, 1318, 1318, 1318, 3107, 3107, 1318, 1318, 1326, 1326,
2637      1326, 1326, 3107, 3107, 1326, 1326,  817,  817,  817, 3107,
2638      3107, 3107,  817, 1336, 1336, 1336, 1336, 3107, 3107, 1336,
2639      1336,  823,  823,  823, 3107, 3107, 3107,  823, 1345, 1345,
2640      1345, 1345, 3107, 3107, 1345, 1345,  832,  832,  832, 3107,
2641
2642      3107, 3107,  832, 1351, 1351, 1351, 1351, 3107, 3107, 1351,
2643      1351, 1358, 1358, 1358, 1358, 3107, 3107, 1358, 1358,  840,
2644       840,  840, 3107, 3107, 3107,  840, 1366, 1366, 1366, 1366,
2645      3107, 3107, 1366, 1366, 1064, 1064, 1064, 1064, 1064, 1064,
2646      1064, 1064, 1064, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2647      1561, 1561,  635,  635,  635, 3107, 3107, 3107,  635, 1079,
2648      1079, 1079, 1079, 3107, 3107, 1079, 1079, 1111, 1111, 1111,
2649      1111, 3107, 3107, 1111, 1111,  665,  665,  665, 3107, 3107,
2650      3107,  665, 1121, 1121, 1121, 1121, 3107, 3107, 1121, 1121,
2651       673,  673,  673, 3107, 3107, 3107,  673, 1137, 1137, 1137,
2652
2653      1137, 3107, 3107, 1137, 1137,  685,  685,  685, 3107, 3107,
2654      3107,  685, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145,
2655       691,  691,  691, 3107, 3107, 3107,  691,  710,  710,  710,
2656      3107, 3107, 3107,  710, 1174, 1174, 1174, 1174, 3107, 3107,
2657      1174, 1174,  717,  717,  717, 3107, 3107, 3107,  717, 1183,
2658      1183, 1183, 1183, 3107, 3107, 1183, 1183, 1191, 1191, 1191,
2659      1191, 3107, 3107, 1191, 1191,  728,  728,  728, 3107, 3107,
2660      3107,  728, 1197, 1197, 1197, 1197, 3107, 3107, 1197, 1197,
2661       733,  733,  733, 3107, 3107, 3107,  733, 1209, 1209, 1209,
2662      1209, 3107, 3107, 1209, 1209, 1222, 1222, 1222, 1222, 3107,
2663
2664      3107, 1222, 1222,  748,  748,  748, 3107, 3107, 3107,  748,
2665      1246, 1246, 1246, 1246, 3107, 3107, 1246, 1246,  764,  764,
2666       764, 3107, 3107, 3107,  764, 1261, 1261, 1261, 1261, 3107,
2667      3107, 1261, 1261,  774,  774,  774, 3107, 3107, 3107,  774,
2668      1269, 1269, 1269, 1269, 3107, 3107, 1269, 1269,  779,  779,
2669       779, 3107, 3107, 3107,  779, 1278, 1278, 1278, 1278, 3107,
2670      3107, 1278, 1278,  785,  785,  785, 3107, 3107, 3107,  785,
2671      1289, 1289, 1289, 1289, 3107, 3107, 1289, 1289,  793,  793,
2672       793, 3107, 3107, 3107,  793, 1298, 1298, 1298, 1298, 3107,
2673      3107, 1298, 1298,  800,  800,  800, 3107, 3107, 3107,  800,
2674
2675      1310, 1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,  807,
2676       807, 3107, 3107, 3107,  807, 1318, 1318, 1318, 1318, 3107,
2677      3107, 1318, 1318, 1326, 1326, 1326, 1326, 3107, 3107, 1326,
2678      1326,  817,  817,  817, 3107, 3107, 3107,  817, 1336, 1336,
2679      1336, 1336, 3107, 3107, 1336, 1336,  823,  823,  823, 3107,
2680      3107, 3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345,
2681      1345,  832,  832,  832,  832, 3107,  832, 3107,  832, 1351,
2682      1351, 1351, 1351, 3107, 3107, 1351, 1351, 1358, 1358, 1358,
2683      1358, 3107, 3107, 1358, 1358,  840,  840,  840,  840, 3107,
2684       840, 3107,  840, 1366, 1366, 1366, 1366, 3107, 3107, 1366,
2685
2686      1366, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
2687      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,  635,
2688       635,  635, 3107, 3107, 3107,  635, 1079, 1079, 1079, 1079,
2689      3107, 3107, 1079, 1079, 1111, 1111, 1111, 1111, 3107, 3107,
2690      1111, 1111,  665,  665,  665, 3107, 3107, 3107,  665, 1121,
2691      1121, 1121, 1121, 3107, 3107, 1121, 1121,  673,  673,  673,
2692      3107, 3107, 3107,  673, 1137, 1137, 1137, 1137, 3107, 3107,
2693      1137, 1137,  685,  685,  685, 3107, 3107, 3107,  685, 1145,
2694      1145, 1145, 1145, 3107, 3107, 1145, 1145,  691,  691,  691,
2695      3107, 3107, 3107,  691,  710,  710,  710, 3107, 3107, 3107,
2696
2697       710, 1174, 1174, 1174, 1174, 3107, 3107, 1174, 1174,  717,
2698       717,  717, 3107, 3107, 3107,  717, 1183, 1183, 1183, 1183,
2699      3107, 3107, 1183, 1183, 1191, 1191, 1191, 1191, 3107, 3107,
2700      1191, 1191,  728,  728,  728,  728, 3107,  728, 3107,  728,
2701      1197, 1197, 1197, 1197, 3107, 3107, 1197, 1197,  733,  733,
2702       733, 3107, 3107, 3107,  733, 1209, 1209, 1209, 1209, 3107,
2703      3107, 1209, 1209, 1222, 1222, 1222, 1222, 3107, 3107, 1222,
2704      1222,  748,  748,  748, 3107, 3107, 3107,  748, 1246, 1246,
2705      1246, 1246, 3107, 3107, 1246, 1246,  764,  764,  764, 3107,
2706      3107, 3107,  764, 1261, 1261, 1261, 1261, 3107, 3107, 1261,
2707
2708      1261,  774,  774,  774, 3107, 3107, 3107,  774, 1269, 1269,
2709      1269, 1269, 3107, 3107, 1269, 1269,  779,  779,  779, 3107,
2710      3107, 3107,  779, 1278, 1278, 1278, 1278, 3107, 3107, 1278,
2711      1278,  785,  785,  785, 3107, 3107, 3107,  785, 1289, 1289,
2712      1289, 1289, 3107, 3107, 1289, 1289,  793,  793,  793, 3107,
2713      3107, 3107,  793, 1298, 1298, 1298, 1298, 3107, 3107, 1298,
2714      1298,  800,  800,  800,  800, 3107,  800, 3107,  800, 1310,
2715      1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,  807,  807,
2716      3107, 3107, 3107,  807, 1318, 1318, 1318, 1318, 3107, 3107,
2717      1318, 1318, 1326, 1326, 1326, 1326, 3107, 3107, 1326, 1326,
2718
2719       817,  817,  817,  817, 3107,  817, 3107,  817, 1336, 1336,
2720      1336, 1336, 3107, 3107, 1336, 1336,  823,  823,  823, 3107,
2721      3107, 3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345,
2722      1345, 1351, 1351, 1351, 1351, 3107, 3107, 1351, 1351, 1358,
2723      1358, 1358, 1358, 3107, 3107, 1358, 1358, 1366, 1366, 1366,
2724      1366, 3107, 3107, 1366, 1366, 1064, 1064, 1064, 1064, 1064,
2725      1064, 1064, 1064, 1064, 1561, 1561, 1561, 1561, 1561, 1561,
2726      1561, 1561, 1561,  635,  635,  635,  635, 3107,  635, 3107,
2727       635, 1079, 1079, 1079, 1079, 3107, 3107, 1079, 1079, 1111,
2728      1111, 1111, 1111, 3107, 3107, 1111, 1111,  665,  665,  665,
2729
2730      3107, 3107, 3107,  665, 1121, 1121, 1121, 1121, 3107, 3107,
2731      1121, 1121,  673,  673,  673, 3107, 3107, 3107,  673, 1137,
2732      1137, 1137, 1137, 3107, 3107, 1137, 1137,  685,  685,  685,
2733       685, 3107,  685, 3107,  685, 1145, 1145, 1145, 1145, 3107,
2734      3107, 1145, 1145,  691,  691,  691,  691, 3107,  691, 3107,
2735       691,  710,  710,  710,  710, 3107,  710, 3107,  710, 1174,
2736      1174, 1174, 1174, 3107, 3107, 1174, 1174,  717,  717,  717,
2737       717, 3107,  717, 3107,  717, 1183, 1183, 1183, 1183, 3107,
2738      3107, 1183, 1183, 1191, 1191, 1191, 1191, 3107, 3107, 1191,
2739      1191, 1197, 1197, 1197, 1197, 3107, 3107, 1197, 1197,  733,
2740
2741       733,  733, 3107, 3107, 3107,  733, 1222, 1222, 1222, 1222,
2742      3107, 3107, 1222, 1222,  748,  748,  748, 3107, 3107, 3107,
2743       748, 1246, 1246, 1246, 1246, 3107, 3107, 1246, 1246,  764,
2744       764,  764, 3107, 3107, 3107,  764,  774,  774,  774, 3107,
2745      3107, 3107,  774, 1269, 1269, 1269, 1269, 3107, 3107, 1269,
2746      1269,  779,  779,  779, 3107, 3107, 3107,  779, 1278, 1278,
2747      1278, 1278, 3107, 3107, 1278, 1278,  785,  785,  785, 3107,
2748      3107, 3107,  785,  793,  793,  793, 3107, 3107, 3107,  793,
2749      1298, 1298, 1298, 1298, 3107, 3107, 1298, 1298,  800,  800,
2750       800, 3107, 3107, 3107,  800, 1310, 1310, 1310, 1310, 3107,
2751
2752      3107, 1310, 1310,  807,  807,  807, 3107, 3107, 3107,  807,
2753      1318, 1318, 1318, 1318, 3107, 3107, 1318, 1318, 1326, 1326,
2754      1326, 1326, 3107, 3107, 1326, 1326, 1336, 1336, 1336, 1336,
2755      3107, 3107, 1336, 1336,  823,  823,  823, 3107, 3107, 3107,
2756       823, 1345, 1345, 1345, 1345, 3107, 3107, 1345, 1345, 1351,
2757      1351, 1351, 1351, 3107, 3107, 1351, 1351, 1358, 1358, 1358,
2758      1358, 3107, 3107, 1358, 1358, 1064, 1064, 1064, 1064, 1064,
2759      1064, 1064, 1064, 1064, 1561, 1561, 1561, 1561, 1561, 1561,
2760      1561, 1561, 1561, 1079, 1079, 1079, 1079, 3107, 3107, 1079,
2761      1079, 1111, 1111, 1111, 1111, 3107, 3107, 1111, 1111,  665,
2762
2763       665,  665, 3107, 3107, 3107,  665,  673,  673,  673, 3107,
2764      3107, 3107,  673, 1137, 1137, 1137, 1137, 3107, 3107, 1137,
2765      1137, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145, 1174,
2766      1174, 1174, 1174, 3107, 3107, 1174, 1174, 1183, 1183, 1183,
2767      1183, 3107, 3107, 1183, 1183, 1197, 1197, 1197, 1197, 3107,
2768      3107, 1197, 1197,  733,  733,  733, 3107, 3107, 3107,  733,
2769      1222, 1222, 1222, 1222, 3107, 3107, 1222, 1222,  748,  748,
2770       748, 3107, 3107, 3107,  748, 1246, 1246, 1246, 1246, 3107,
2771      3107, 1246, 1246,  764,  764,  764, 3107, 3107, 3107,  764,
2772       774,  774,  774, 3107, 3107, 3107,  774, 1269, 1269, 1269,
2773
2774      1269, 3107, 3107, 1269, 1269,  779,  779,  779, 3107, 3107,
2775      3107,  779, 1278, 1278, 1278, 1278, 3107, 3107, 1278, 1278,
2776       785,  785,  785, 3107, 3107, 3107,  785,  793,  793,  793,
2777      3107, 3107, 3107,  793,  800,  800,  800, 3107, 3107, 3107,
2778       800, 1310, 1310, 1310, 1310, 3107, 3107, 1310, 1310,  807,
2779       807,  807, 3107, 3107, 3107,  807, 1318, 1318, 1318, 1318,
2780      3107, 3107, 1318, 1318, 1326, 1326, 1326, 1326, 3107, 3107,
2781      1326, 1326, 1336, 1336, 1336, 1336, 3107, 3107, 1336, 1336,
2782       823,  823,  823,  823, 3107,  823, 3107,  823, 1345, 1345,
2783      1345, 1345, 3107, 3107, 1345, 1345, 1351, 1351, 1351, 1351,
2784
2785      3107, 3107, 1351, 1351, 1358, 1358, 1358, 1358, 3107, 3107,
2786      1358, 1358, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
2787      1064, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561, 1561,
2788      1079, 1079, 1079, 1079, 3107, 3107, 1079, 1079, 1111, 1111,
2789      1111, 1111, 3107, 3107, 1111, 1111,  665,  665,  665, 3107,
2790      3107, 3107,  665,  673,  673,  673,  673, 3107,  673, 3107,
2791       673, 1145, 1145, 1145, 1145, 3107, 3107, 1145, 1145, 1174,
2792      1174, 1174, 1174, 3107, 3107, 1174, 1174, 1183, 1183, 1183,
2793      1183, 3107, 3107, 1183, 1183, 1197, 1197, 1197, 1197, 3107,
2794      3107, 1197, 1197,  733,  733,  733, 3107, 3107, 3107,  733,
2795
2796      1222, 1222, 1222, 1222, 3107, 3107, 1222, 1222,  748,  748,
2797       748, 3107, 3107, 3107,  748, 1246, 1246, 1246, 1246, 3107,
2798      3107, 1246, 1246,  764,  764,  764, 3107, 3107, 3107,  764,
2799       774,  774,  774, 3107, 3107, 3107,  774,  779,  779,  779,
2800       779, 3107,  779, 3107,  779, 1278, 1278, 1278, 1278, 3107,
2801      3107, 1278, 1278,  785,  785,  785,  785, 3107,  785, 3107,
2802       785,  793,  793,  793, 3107, 3107, 3107,  793,  800,  800,
2803       800, 3107, 3107, 3107,  800, 1310, 1310, 1310, 1310, 3107,
2804      3107, 1310, 1310,  807,  807,  807,  807, 3107,  807, 3107,
2805       807, 1318, 1318, 1318, 1318, 3107, 3107, 1318, 1318, 1326,
2806
2807      1326, 1326, 1326, 3107, 3107, 1326, 1326, 1336, 1336, 1336,
2808      1336, 3107, 3107, 1336, 1336,  823,  823,  823,  823, 3107,
2809       823, 3107,  823, 1345, 1345, 1345, 1345, 3107, 3107, 1345,
2810      1345, 1351, 1351, 1351, 1351, 3107, 3107, 1351, 1351, 1064,
2811      1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1561, 1561,
2812      1561, 1561, 1561, 1561, 1561, 1561, 1561, 1079, 1079, 1079,
2813      1079, 3107, 3107, 1079, 1079,  665,  665,  665, 3107, 3107,
2814      3107,  665,  673,  673,  673, 3107, 3107, 3107,  673, 1145,
2815      1145, 1145, 1145, 3107, 3107, 1145, 1145, 1174, 1174, 1174,
2816      1174, 3107, 3107, 1174, 1174, 2727, 2727, 2727, 2727, 2727,
2817
2818      2727, 2727, 2727, 2727, 2728, 2728, 2728, 2728, 2728, 2728,
2819      2728, 2728, 2728, 2785, 2785, 2785, 2785, 2785, 2785, 2785,
2820      2785, 2785, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788,
2821      2788, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826,
2822      2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828,  245,
2823      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2824      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2825      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2826      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2827      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2828
2829      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2830      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
2831      3107, 3107, 3107, 3107
2832     } ;
2833
2834 static yyconst flex_int16_t yy_chk[11225] =
2835     {   0,
2836         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2837         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2838         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2839         8,    8,    8,  250,   11,   13,   13,   12,   14,   14,
2840        13,   13,  299,   14,   14,  251,    8,   17,   17,  250,
2841        13,   15,   15,   14,   15,  254,   15,   16,   16,  353,
2842        16,  251,   16,   18,   18,    0,   15,   19,   19,   19,
2843       503,  254,   16,   20,   20,   20,   23,   23,   23,   24,
2844        24,   24,  503,   19,   25,   25,   25,  353, 1488,   20,
2845       360,   17,   23,  990,  299,   24,  248,  248,  248,  990,
2846
2847        25,  249,  249,  249,  253,  253,  253,   18,   21,   21,
2848        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2849        21,   21,   21,  283,   21,   21,   21,   21,   21,   26,
2850        26,   26,   27,   27,   27,   28,   28,   28,  283,   29,
2851        29,   29,   30,   30,   30,   26,  360,  425,   27,  277,
2852       425,   28,  640,   21,   21,   29,  293,  272,   30,   31,
2853        31,   31,  274,  274,  274,  277,  281,  281,  281,  290,
2854       290,  290,  293,  272,  324,   31,  640,   21,   22,   22,
2855        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2856        22,   22,   22, 1490,   22,   22,   22,   22,   22,   32,
2857
2858        32,   32,   33,   33,   33,   34,   34,   34,  264,   35,
2859        35,   35,   36,   36,   36,   32,  272,  352,   33,  449,
2860       696,   34,  449,   22,   22,   35,  324,  352,   36,   37,
2861        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2862        40,   41,   41,   41,  696,   37,  515,   22,   38,  304,
2863       264,   39,  445,  515,   40,  352,  264,   41,   42,   42,
2864        42,  264,  297,  297,  297,  304,  264,  301,  301,  301,
2865       312,  312,  312,  445,   42,   43,   43,   43,   43,   43,
2866        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2867       321,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2868
2869        46,   46,   47,   47,   47,  321,   48,   48,   48,   49,
2870        49,   49,   45,  533,  628,   46, 1492,  628,   47,  319,
2871        43,   43,   48,  319,  325,   49,  285,  319,   43,   44,
2872        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2873        44,   44,   44,   44,  315,   44,   44,   44,   44,   44,
2874        50,   50,   50,   51,   51,   51,   52,   52,   52,  450,
2875       315,  533,   55,   55,  529,  285,   50,   55,  286,   51,
2876      1493,  529,   52,  450,   44,   44,  325,   55,  285,  326,
2877       285,  669,   44,   53,   53,   53,   53,   53,   53,   53,
2878        53,   53,   53,   53,   53,   53,   53,   53,  605,   53,
2879
2880        53,   53,   53,   53, 1498,  331,   55,  286,   59,   59,
2881        59,   60,   60,   60,   61,   61,   61,  669,   56,   56,
2882       286,  331,  286,   56,   59,  309,  647,   60,   53,   53,
2883        61,  326,  309,   56,  645,  605,   53,  373,  645,   53,
2884       647,  309,  323,  323,  323, 1500,   53,   54,   54,   54,
2885        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2886        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2887        62,   63,   63,   63,   64,   64,   64,  651,   65,   65,
2888        65,   66,   66,   66,   62,  343,  365,   63,  355,  373,
2889        64,  651,   54,   54,   65, 1502,  641,   66,  355,  641,
2890
2891        54,  343,  365,   54,  328,  328,  328,  337,  337,  337,
2892        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2893        57,   57,   57,   57,   57,   57,  355,   57,   57,   57,
2894        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2895        73,  699,   74,   74,   74,   75,   75,   75,   69, 1503,
2896       379,   70,  338,  392,   73,  699,   57,   57,   74,  338,
2897       585,   75,  340,  340,  340,   57,  379,   57,  338,  392,
2898       506,   57,  348,  348,  348,  585,   57,   57,   58,   58,
2899        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
2900        58,   58,   58,  357,   58,   58,   58,   58,   58,   76,
2901
2902        76,   76,   77,   77,   77,   78,   78,   78,  374,   79,
2903        79,   79,   80,   80,   80,   76,  351, 1505,   77,  506,
2904       403,   78,  357,   58,   58,   79,  351,  357,   80,  362,
2905       362,  362,   58,  351,   58,  357,  403,  357,   58,  372,
2906       372,  372,  386,   58,   58,   67,   67,   67,   67,   67,
2907        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2908       374,   67,   67,   67,   67,   67,   81,   81,   81,   82,
2909        82,   82,   83,   83,   83,  706,   84,   84,   84,   85,
2910        85,   85,   81, 1506,  650,   82,  619,  650,   83,  706,
2911        67,   67,   84,  653,  386,   85,  653,   67,  376,  376,
2912
2913       376,  619,  387,   67,  385,  385,  385,  389,  389,  389,
2914       507, 1507,   67,   68,   68,   68,   68,   68,   68,   68,
2915        68,   68,   68,   68,   68,   68,   68,   68, 1516,   68,
2916        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
2917        88,   88,   88, 1522,   89,   89,   89,   90,   90,   90,
2918        86, 1523,  657,   87,  387,  657,   88,  398,   68,   68,
2919        89, 1527,  507,   90,  398,   68,  397,  397,  397, 1529,
2920      1541,   68,  556,  398,  400,  400,  400,  408,  408,  408,
2921        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2922        71,   71,   71,   71,   71,   71, 1542,   71,   71,   71,
2923
2924        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
2925        93, 1547,   94,   94,   94,   95,   95,   95,   91,  414,
2926       556,   92,  409, 1550,   93,  606,   71,   71,   94,  409,
2927      1551,   95,  411,  411,  411,  414,  423,   71,  409,  422,
2928       422,  422,  427,  427,  427, 1552,   71,   72,   72,   72,
2929        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2930        72,   72,  569,   72,   72,   72,   72,   72,   96,   96,
2931        96,   97,   97,   97,   98,   98,   98,  606,   99,   99,
2932        99,  100,  100,  100,   96,  423,  430,   97,  423,  702,
2933        98, 1554,   72,   72,   99,  442, 1561,  100,  101,  101,
2934
2935       101, 1564,  430,   72,  102,  102,  102,  436,  436,  436,
2936       569,  442,   72,  702,  101,  439,  439,  439,  358, 1567,
2937       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2938       103,  103,  103,  103,  103,  103,  703,  103,  103,  103,
2939       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
2940       107,  707,  108,  108,  108,  704,  358,  459,  105, 1568,
2941       703,  106,  437,  451,  107,  707,  103,  103,  108,  437,
2942       475,  103,  358,  459,  518,  451,  451,  103,  437,  704,
2943      1570,  103,  453,  453,  453, 1571,  475,  103,  104,  104,
2944       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
2945
2946       104,  104,  104,  705,  104,  104,  104,  104,  104,  109,
2947       109,  109,  110,  110,  110,  111,  111,  111, 1572,  112,
2948       112,  112,  518,  454, 1573,  109,  518,  705,  110,  735,
2949       454,  111,  735,  104,  104,  112,  470,  486,  104,  454,
2950       456,  456,  456,  470,  104,  469,  469,  469,  104,  472,
2951       472,  472,  470,  486,  104,  113,  113,  113,  113,  113,
2952       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2953      1574,  113,  113,  113,  113,  113,  115,  115,  115,  116,
2954       116,  116,  117,  117,  117, 1575,  118,  118,  118,  480,
2955       480,  480,  115,  498,  512,  116,  481, 1577,  117, 1578,
2956
2957       113,  113,  118,  481, 1580,  113,  483,  483,  483,  498,
2958       512,  113,  481,  492,  492,  492,  495,  495,  495,  505,
2959       505,  505,  113,  114,  114,  114,  114,  114,  114,  114,
2960       114,  114,  114,  114,  114,  114,  114,  114, 1582,  114,
2961       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
2962       121,  121,  121,  740,  122,  122,  122,  740,  493, 1096,
2963       119, 1584,  525,  120, 1560,  493,  121, 1067,  114,  114,
2964       122, 1067, 1096,  114,  493,  509,  509,  509,  525,  114,
2965       517,  517,  517,  522,  522,  522,  531,  531,  531, 1560,
2966       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
2967
2968       123,  123,  123,  123,  123,  123, 1585,  123,  123,  123,
2969       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
2970       129, 1587,  130,  130,  130,  133,  133,  133,  125,  538,
2971       549,  126, 1589, 1591,  129,  561,  123,  123,  130, 1592,
2972      1593,  133,  535,  535,  535,  538,  549,  123,  543,  543,
2973       543,  561,  123,  124,  124,  124,  124,  124,  124,  124,
2974       124,  124,  124,  124,  124,  124,  124,  124, 1594,  124,
2975       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
2976       136,  136,  136, 1596,  137,  137,  137,  138,  138,  138,
2977       134,  574,  590,  135,  544, 1605,  136, 1606,  124,  124,
2978
2979       137,  544, 1608,  138,  546,  546,  546,  574,  590,  124,
2980       544,  554,  554,  554,  124,  127,  127,  127,  127,  127,
2981       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2982       708,  127,  127,  127,  127,  127,  139,  139,  139,  140,
2983       140,  140,  143,  143,  143, 1612,  144,  144,  144,  147,
2984       147,  147,  139, 1616,  708,  140, 1619, 1626,  143,  600,
2985       127,  127,  144, 1627,  611,  147,  558,  558,  558,  567,
2986       567,  567,  571,  571,  571,  600,  127,  582,  582,  582,
2987       611, 1628,  127,  128,  128,  128,  128,  128,  128,  128,
2988       128,  128,  128,  128,  128,  128,  128,  128, 1629,  128,
2989
2990       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
2991       152,  152,  152, 1631,  155,  155,  155,  156,  156,  156,
2992       148, 1634, 1635,  151,  595, 1636,  152, 1639,  128,  128,
2993       155,  595, 1646,  156,  587,  587,  587,  594,  594,  594,
2994       595,  597,  597,  597,  128,  604,  604,  604,  583, 1658,
2995       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2996       131,  131,  131,  131,  131,  131, 1369,  131,  131,  131,
2997       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
2998       163, 1659,  164,  164,  164,  583, 1369, 1667,  159,  846,
2999      1670,  160, 1675, 1107,  163, 1679,  131,  131,  164,  131,
3000
3001       583,  131,  608,  608,  608,  846, 1107,  131,  616,  616,
3002       616,  618,  618,  618,  131, 1686, 1687,  131,  132,  132,
3003       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3004       132,  132,  132, 1688,  132,  132,  132,  132,  132,  165,
3005       165,  165,  166,  166,  166,  167,  167,  167, 1689,  168,
3006       168,  168, 1692,  617, 1140,  165, 1696, 1699,  166, 1701,
3007       617,  167, 1703,  132,  132,  168,  132, 1140,  132,  617,
3008       627,  627,  627, 1704,  132,  849,  849,  849, 1706,  849,
3009      1707,  132, 1708, 1711,  132,  141,  141,  141,  141,  141,
3010       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3011
3012      1713,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3013       170,  170,  173,  173,  173, 1715,  174,  174,  174,  175,
3014       175,  175,  169, 1720, 1726,  170,  646,  655,  173,  627,
3015       141,  141,  174,  646,  655,  175,  141,  658,  659,  646,
3016       655,  141, 1730, 1731,  658,  659, 1732,  861,  861,  861,
3017       658,  659, 1734,  141,  142,  142,  142,  142,  142,  142,
3018       142,  142,  142,  142,  142,  142,  142,  142,  142, 1746,
3019       142,  142,  142,  142,  142,  176,  176,  176,  177,  177,
3020       177,  178,  178,  178, 1744,  179,  179,  179,  180,  180,
3021       180,  176, 1742, 1749,  177,  683, 1750,  178, 1751,  142,
3022
3023       142,  179,  683, 1753,  180,  142, 1755, 1756,  683, 1742,
3024       142,  861,  892,  892,  892, 1757,  892, 1744, 1759,  892,
3025      1760, 1761,  142,  145,  145,  145,  145,  145,  145,  145,
3026       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3027       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3028       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3029       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3030       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3031       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3032       145,  145,  145,  145,  145,  145,  145,  149,  149,  149,
3033
3034       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3035       149,  149, 1743,  149,  149,  149,  149,  149,  183,  183,
3036       183,  184,  184,  184,  185,  185,  185, 1765,  186,  186,
3037       186,  667,  667,  667,  183, 1767, 1752,  184, 1770, 1771,
3038       185, 1772,  149,  149,  186,  149,  149,  149,  667, 1082,
3039      1082, 1082, 1752,  149, 1743, 1774,  149,  881,  881,  881,
3040       149, 1776, 1777,  149,  150,  150,  150,  150,  150,  150,
3041       150,  150,  150,  150,  150,  150,  150,  150,  150, 1779,
3042       150,  150,  150,  150,  150,  187,  187,  187,  188,  188,
3043       188,  189,  189,  189, 1781,  190,  190,  190,  675,  675,
3044
3045       675,  187, 1784, 1785,  188, 1787, 1788,  189, 1789,  150,
3046       150,  190,  150,  150,  150,  675,  920,  920,  920, 1791,
3047       150,  881, 1797,  150, 1103, 1103, 1103,  150, 1798, 1800,
3048       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3049       153,  153,  153,  153,  153,  153, 1803,  153,  153,  153,
3050       153,  153,  193,  193,  193,  194,  194,  194,  197,  197,
3051       197, 1819,  198,  198,  198,  692,  692,  692,  193,  973,
3052      1820,  194, 1825, 1826,  197, 1827,  153,  153,  198,  973,
3053       920,  153,  692, 1384, 1384, 1384,  973,  153,  154,  154,
3054       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3055
3056       154,  154,  154, 1831,  154,  154,  154,  154,  154,  199,
3057       199,  199,  200,  200,  200,  201,  201,  201, 1786,  202,
3058       202,  202,  712,  712,  712,  199, 1786, 1799,  200, 1384,
3059      1833,  201, 1839,  154,  154,  202, 1846, 1847,  154,  712,
3060      1386, 1386, 1386, 1799,  154,  157,  157,  157,  157,  157,
3061       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3062      1848,  157,  157,  157,  157,  157,  203,  203,  203,  204,
3063       204,  204,  207,  207,  207, 1790,  208,  208,  208,  209,
3064       209,  209,  203, 1790, 1852,  204, 1386, 1858,  207, 1862,
3065       157,  157,  208, 1865,  157,  209,  900,  900,  900, 1867,
3066
3067       900,  157, 1870,  900,  157,  158,  158,  158,  158,  158,
3068       158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3069      1872,  158,  158,  158,  158,  158,  210,  210,  210,  211,
3070       211,  211,  212,  212,  212, 1874,  213,  213,  213,  214,
3071       214,  214,  210, 1804, 1875,  211, 1805, 1876,  212, 1879,
3072       158,  158,  213, 1881,  158,  214,  916,  916,  916, 1804,
3073       916,  158, 1805,  916,  158,  161,  161,  161,  161,  161,
3074       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3075      1886,  161,  161,  161,  161,  161,  217,  217,  217,  218,
3076       218,  218,  219,  219,  219, 1888,  220,  220,  220,  221,
3077
3078       221,  221,  217, 1896, 1897,  218, 1898, 1899,  219, 1901,
3079       161,  161,  220, 1912,  161,  221,  927,  927,  927, 1912,
3080      1915,  161, 1920, 1921,  161, 1389, 1389, 1389, 1392, 1392,
3081      1392,  161,  162,  162,  162,  162,  162,  162,  162,  162,
3082       162,  162,  162,  162,  162,  162,  162, 1922,  162,  162,
3083       162,  162,  162,  222,  222,  222,  223,  223,  223,  224,
3084       224,  224, 1923,  227,  227,  227,  228,  228,  228,  222,
3085      1926, 1928,  223, 1929, 1930,  224, 1935,  162,  162,  227,
3086       927,  162,  228,  934,  934,  934, 1941,  934,  162, 1943,
3087       934,  162, 1401, 1401, 1401, 1426, 1426, 1426,  162,  171,
3088
3089       171,  171,  171,  171,  171,  171,  171,  171,  171,  171,
3090       171,  171,  171,  171, 1944,  171,  171,  171,  171,  171,
3091       231,  231,  231,  232,  232,  232,  233,  233,  233, 1947,
3092       234,  234,  234,  235,  235,  235,  231, 1950, 1954,  232,
3093      1955, 1956,  233, 1957,  171,  171,  234, 1958, 1959,  235,
3094       171,  941,  941,  941, 1960,  941, 1961, 1962,  941, 1438,
3095      1438, 1438, 1439, 1439, 1439,  171,  172,  172,  172,  172,
3096       172,  172,  172,  172,  172,  172,  172,  172,  172,  172,
3097       172, 1963,  172,  172,  172,  172,  172,  236,  236,  236,
3098       237,  237,  237,  238,  238,  238, 1913,  241,  241,  241,
3099
3100       242,  242,  242,  236, 1968, 1438,  237, 1969, 1439,  238,
3101      1970,  172,  172,  241, 1971,  284,  242,  172,  349, 1914,
3102       356, 1989,  946,  946,  946,  284,  946, 1913,  349,  946,
3103      1990, 1993,  172,  181,  181,  181,  181,  181,  181,  181,
3104       181,  181,  181,  181,  181,  181,  181,  181,  356,  181,
3105       181,  181,  181,  181,  284, 1991,  349,  719,  719,  719,
3106       284, 1994,  349, 1991,  356, 1914,  349,  284,  724,  724,
3107       724,  284,  349,  349,  719,  736,  736,  736,  181,  181,
3108       744,  744,  744,  350,  181,  724, 1996,  181, 1518, 1518,
3109      1518, 2000,  736,  350, 1576, 1576, 1576,  744, 2006,  181,
3110
3111       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
3112       182,  182,  182,  182,  182, 2007,  182,  182,  182,  182,
3113       182,  350, 2008,  745,  745,  745,  751,  751,  751, 2013,
3114       753,  753,  753, 1992, 1518,  350,  768,  768,  768,  350,
3115       745, 1992, 2017,  751, 2018,  182,  182,  753,  776,  776,
3116       776,  182, 2019,  768,  182,  958,  958,  958, 2021,  958,
3117      2025, 2028,  958, 2029, 2032,  776,  182,  191,  191,  191,
3118       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
3119       191,  191, 2033,  191,  191,  191,  191,  191,  781,  781,
3120       781,  787,  787,  787,  809,  809,  809,  837,  837,  837,
3121
3122       841,  841,  841, 2036, 2043,  781, 2045, 2030,  787, 2060,
3123      2074,  809,  191,  191,  837, 2030, 2075,  841,  191, 1579,
3124      1579, 1579, 2064,  191,  192,  192,  192,  192,  192,  192,
3125       192,  192,  192,  192,  192,  192,  192,  192,  192, 2077,
3126       192,  192,  192,  192,  192,  859,  859,  859,  860,  860,
3127       860, 2084, 2085,  888,  888,  888,  889,  889,  889,  891,
3128       891,  891, 2089,  859, 2031, 2064,  860, 2065, 2091,  192,
3129       192,  888, 2031, 2103,  889,  192,  891, 1581, 1581, 1581,
3130       192,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3131       195,  195,  195,  195,  195,  195, 2104,  195,  195,  195,
3132
3133       195,  195,  895,  895,  895, 2105,  860,  896,  896,  896,
3134      2106,  899,  899,  899, 2065, 2107,  889,  901,  901,  901,
3135       895,  903,  903,  903, 2108,  896,  195,  195,  899,  915,
3136       915,  915,  195, 2109,  901,  967,  967,  967,  903,  967,
3137      2110, 2111,  967, 1583, 1583, 1583,  915,  195,  196,  196,
3138       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3139       196,  196,  196, 2112,  196,  196,  196,  196,  196, 2119,
3140      2120,  896,  907,  907,  907, 2121, 2123,  913,  913,  913,
3141       914,  914,  914,  908,  908,  908,  918,  918,  918, 2133,
3142       907, 2134, 2135,  196,  196,  913, 2136, 2137,  914,  196,
3143
3144      2138,  908, 2139, 2142,  918,  969,  969,  969, 2143,  969,
3145      2148, 2149,  969, 2151,  196,  205,  205,  205,  205,  205,
3146       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3147       908,  205,  205,  205,  205,  205,  919,  919,  919,  933,
3148       933,  933, 2152, 2153,  914,  937,  937,  937, 2154,  938,
3149       938,  938, 2168, 2169,  919, 2170,  933,  940,  940,  940,
3150       205,  205, 2171,  937, 2173, 2175,  205,  938, 2198,  205,
3151      1586, 1586, 1586,  919,  940, 2199, 1588, 1588, 1588, 2204,
3152      2205,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3153       206,  206,  206,  206,  206,  206,  206, 2192,  206,  206,
3154
3155       206,  206,  206,  943,  943,  943,  944,  944,  944,  945,
3156       945,  945,  948,  948,  948,  938,  949,  949,  949, 2206,
3157      2209,  943, 2212, 2213,  944, 2214,  945,  206,  206, 2192,
3158       948, 2215, 2216,  206,  949, 2217,  206,  975,  975,  975,
3159      1588,  975, 2218, 2219,  975, 1595, 1595, 1595,  206,  215,
3160       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
3161       215,  215,  215,  215, 2220,  215,  215,  215,  215,  215,
3162      2221, 2222,  944,  952,  952,  952, 2224,  949,  953,  953,
3163       953,  957,  957,  957, 2225,  961,  961,  961,  962,  962,
3164       962,  952, 2227, 2228,  215,  215,  953, 2229,  957, 1618,
3165
3166      1618, 1618,  215,  961,  215, 2230,  962,  215, 1630, 1630,
3167      1630,  215, 1632, 1632, 1632,  215,  216,  216,  216,  216,
3168       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
3169       216, 2231,  216,  216,  216,  216,  216,  966,  966,  966,
3170       968,  968,  968,  953, 2226,  970,  970,  970, 2233,  962,
3171       971,  971,  971, 2226,  966, 2234, 2235,  968,  974,  974,
3172       974,  216,  216,  970,  977,  977,  977, 2193,  971,  216,
3173      2232,  216, 2237, 2238,  216,  974, 2240, 2245,  216, 2232,
3174      2246,  977,  216,  225,  225,  225,  225,  225,  225,  225,
3175       225,  225,  225,  225,  225,  225,  225,  225, 2247,  225,
3176
3177       225,  225,  225,  225, 2193,  978,  978,  978, 2249,  978,
3178      2254,  971,  978,  979,  979,  979,  987,  987,  987,  988,
3179       988,  988,  992,  992,  992,  994,  994,  994,  225,  225,
3180       979,  993,  993,  993,  987,  993, 2255,  988,  993,  992,
3181      2258, 2262,  994, 1001, 1001, 1001, 2263, 1001, 2265, 2274,
3182      1001, 2276,  225,  226,  226,  226,  226,  226,  226,  226,
3183       226,  226,  226,  226,  226,  226,  226,  226, 2279,  226,
3184       226,  226,  226,  226,  997,  997,  997,  988, 1000, 1000,
3185      1000, 2281, 1002, 1002, 1002, 2305, 2306,  998,  998,  998,
3186      2308, 2309,  997, 2310, 2315, 1000, 2316, 2317,  226,  226,
3187
3188      1002, 1003, 1003, 1003, 2318,  998, 1006, 1006, 1006, 2319,
3189      1006, 2320, 2321, 1006, 1012, 1012, 1012, 2322, 1012, 1003,
3190      2302, 1012,  226,  229,  229,  229,  229,  229,  229,  229,
3191       229,  229,  229,  229,  229,  229,  229,  229,  998,  229,
3192       229,  229,  229,  229, 1005, 1005, 1005, 1008, 1008, 1008,
3193      1011, 1011, 1011, 2323, 1009, 1009, 1009, 1016, 1016, 1016,
3194      1621, 1005, 1003, 2302, 2324, 1008, 1621, 1011,  229,  229,
3195      1621, 2325, 1009, 2327, 1621, 1016, 1590, 1590, 1590,  229,
3196       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3197       230,  230,  230,  230,  230, 2300,  230,  230,  230,  230,
3198
3199       230, 1009, 2328, 1017, 1017, 1017, 1018, 1018, 1018, 2329,
3200      1019, 1019, 1019, 1020, 1020, 1020, 1021, 1021, 1021, 2330,
3201      2331, 1017, 1590, 1018, 2332,  230,  230, 1019, 2333, 2334,
3202      1020, 1669, 1669, 1669, 1021, 2300,  230,  239,  239,  239,
3203       239,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3204       239,  239, 2335,  239,  239,  239,  239,  239, 1017, 2336,
3205      2337, 1022, 1022, 1022, 1024, 1024, 1024, 2338, 1633, 1633,
3206      1633, 2339, 1020, 1026, 1026, 1026, 1028, 1028, 1028, 1022,
3207      2340, 1024,  239,  239, 1025, 1025, 1025, 1027, 1027, 1027,
3208      1026, 2301, 2341,  239, 1028, 1032, 1032, 1032, 2342, 1032,
3209
3210      2344, 1025, 1032, 2348, 1027, 2355,  239,  240,  240,  240,
3211       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3212       240,  240, 1022,  240,  240,  240,  240,  240, 2301, 1029,
3213      1029, 1029, 1633, 2356, 1025, 2360, 2363, 1031, 1031, 1031,
3214      1033, 1033, 1033, 1034, 1034, 1034, 1027, 1029, 2402, 1025,
3215      2403, 2404,  240,  240, 1031, 1035, 1035, 1035, 1033, 2406,
3216      2401, 1034, 2407,  240, 2408, 2411, 1029, 2412, 1036, 1036,
3217      1036, 2414, 1035, 1037, 1037, 1037,  240,  282, 1038, 1038,
3218      1038, 1042, 1042, 1042,  282, 1036, 1039, 1039, 1039, 2401,
3219      2402, 1037, 2403,  282,  282, 2415, 1038, 2413, 1034, 1042,
3220
3221      1040, 1040, 1040, 1039, 1754, 1754, 1754, 1041, 1041, 1041,
3222      2413, 2417, 1043, 1043, 1043, 2418, 2419, 1040, 1055, 1055,
3223      1055,  282,  282,  282, 1041, 1049, 1049, 1049,  282,  282,
3224      1043, 2386,  282,  282, 2420, 1055,  282, 2421,  282,  282,
3225       282, 2386, 2423, 1049, 1050, 1050, 1050, 2386, 2424, 1038,
3226      1040, 1053, 1053, 1053, 1054, 1054, 1054, 1056, 1056, 1056,
3227      2425, 1056, 1050, 2426, 1056, 1040, 1057, 1057, 1057, 1053,
3228      2429, 2430, 1054, 1058, 1058, 1058, 1059, 1059, 1059, 1062,
3229      1062, 1062, 2431, 1043, 1057, 1060, 1060, 1060, 2432, 1060,
3230      2433, 1058, 1060, 1059, 1063, 1063, 1063, 1062, 1078, 1078,
3231
3232      1078, 1079, 1079, 1079, 1081, 1081, 1081, 2313, 1050, 1109,
3233      1109, 1109, 1063, 1110, 1110, 1110, 1078, 2313, 1054, 1079,
3234      2313, 2434, 1081, 1111, 1111, 1111, 1109, 1113, 1113, 1113,
3235      2435, 1110, 2436, 2437, 1058, 1114, 1114, 1114, 1118, 1118,
3236      1118, 1111, 1115, 1115, 1115, 1113, 1115, 2438, 2439, 1115,
3237      2440, 1081, 1114, 2441, 2442, 1118, 2443, 2445, 1063, 1120,
3238      1120, 1120, 1121, 1121, 1121, 1123, 1123, 1123, 1125, 1125,
3239      1125, 2455, 1125, 2456, 2457, 1125, 1113, 1120, 2461, 2479,
3240      1121, 2480, 2314, 1123, 1128, 1128, 1128, 1129, 1129, 1129,
3241      2387, 1129, 2314, 2481, 1129, 2314, 1130, 1130, 1130, 1118,
3242
3243      2387, 1128, 1131, 1131, 1131, 2416, 2387, 1132, 1132, 1132,
3244      2482, 1132, 1123, 1130, 1132, 1134, 1134, 1134, 2416, 1131,
3245      1136, 1136, 1136, 1137, 1137, 1137, 1139, 1139, 1139, 1142,
3246      1142, 1142, 1134, 1144, 1144, 1144, 2483, 2484, 1136, 2496,
3247      2493, 1137, 2499, 2500, 1139, 2488, 1142, 1145, 1145, 1145,
3248      2489, 1144, 1147, 1147, 1147, 1148, 1148, 1148, 2488, 1148,
3249      2504, 2505, 1148, 2489, 2506, 1145, 1152, 1152, 1152, 2507,
3250      1147, 1153, 1153, 1153, 1155, 1155, 1155, 1622, 1168, 1168,
3251      1168, 2508, 1168, 1622, 1152, 1168, 1139, 1622, 2493, 1153,
3252      2509, 1622, 1155, 1172, 1172, 1172, 1173, 1173, 1173, 1147,
3253
3254      1174, 1174, 1174, 1176, 1176, 1176, 1182, 1182, 1182, 2510,
3255      1172, 1183, 1183, 1183, 1173, 1178, 1178, 1178, 1174, 1178,
3256      2511, 1176, 1178, 2513, 1182, 1185, 1185, 1185, 2494, 1183,
3257      1186, 1186, 1186, 2514, 1186, 2515, 2516, 1186, 1189, 1189,
3258      1189, 2517, 2518, 1185, 1190, 1190, 1190, 1191, 1191, 1191,
3259      1193, 1193, 1193, 2519, 2520, 1189, 1194, 1194, 1194, 1195,
3260      1195, 1195, 1190, 2494, 1176, 1191, 2522, 2523, 1193, 2524,
3261      1196, 1196, 1196, 1194, 2525, 2526, 1195, 1197, 1197, 1197,
3262      1199, 1199, 1199, 1202, 1202, 1202, 1185, 1195, 1196, 1203,
3263      1203, 1203, 2527, 1203, 2528, 1197, 1203, 2529, 1199, 2530,
3264
3265      1202, 1208, 1208, 1208, 1209, 1209, 1209, 1211, 1211, 1211,
3266      1214, 1214, 1214, 2531, 1215, 1215, 1215, 1193, 1215, 1208,
3267      2532, 1215, 1209, 2533, 2534, 1211, 2535, 1214, 1218, 1218,
3268      1218, 2536, 1218, 2542, 2546, 1218, 1221, 1221, 1221, 1222,
3269      1222, 1222, 1224, 1224, 1224, 2547, 1199, 2548, 1229, 1229,
3270      1229, 2549, 1229, 2566, 1221, 1229, 2567, 1222, 2568, 2561,
3271      1224, 1232, 1232, 1232, 1233, 1233, 1233, 2562, 1233, 2561,
3272      2569, 1233, 1211, 1236, 1236, 1236, 2570, 2562, 1232, 1237,
3273      1237, 1237, 2571, 1237, 2574, 2575, 1237, 1245, 1245, 1245,
3274      1236, 1246, 1246, 1246, 1248, 1248, 1248, 1253, 1253, 1253,
3275
3276      2564, 1253, 2576, 2577, 1253, 1245, 2578, 1224, 2586, 1246,
3277      2564, 2565, 1248, 1256, 1256, 1256, 1257, 1257, 1257, 2587,
3278      1257, 2565, 2588, 1257, 1260, 1260, 1260, 1261, 1261, 1261,
3279      1256, 1263, 1263, 1263, 1265, 1265, 1265, 2589, 1265, 2590,
3280      2578, 1265, 1260, 2591, 2592, 1261, 1268, 1268, 1268, 1263,
3281      1269, 1269, 1269, 1271, 1271, 1271, 1273, 1273, 1273, 2593,
3282      1273, 1248, 2596, 1273, 1268, 1277, 1277, 1277, 1269, 2597,
3283      2599, 1271, 1278, 1278, 1278, 1280, 1280, 1280, 1288, 1288,
3284      1288, 2600, 1263, 1277, 1282, 1282, 1282, 2601, 1282, 2603,
3285      1278, 1282, 2605, 1280, 2606, 2607, 1288, 1289, 1289, 1289,
3286
3287      1291, 1291, 1291, 2610, 1292, 1292, 1292, 1293, 1293, 1293,
3288      2611, 1293, 2612, 2613, 1293, 1289, 2614, 2617, 1291, 2618,
3289      1271, 1292, 2625, 2626, 1280, 1294, 1294, 1294, 1295, 1295,
3290      1295, 2627, 1295, 2629, 2635, 1295, 1297, 1297, 1297, 1298,
3291      1298, 1298, 1294, 1300, 1300, 1300, 1302, 1302, 1302, 1303,
3292      1303, 1303, 2636, 1303, 1297, 2637, 1303, 1298, 2638, 2639,
3293      1291, 1300, 2640, 1302, 1306, 1306, 1306, 1307, 1307, 1307,
3294      2641, 1307, 2642, 2643, 1307, 1309, 1309, 1309, 1310, 1310,
3295      1310, 1306, 1312, 1312, 1312, 1314, 1314, 1314, 2644, 1314,
3296      2646, 2647, 1314, 1309, 2652, 2653, 1310, 1317, 1317, 1317,
3297
3298      1312, 1318, 1318, 1318, 1320, 1320, 1320, 1321, 1321, 1321,
3299      1300, 1323, 1323, 1323, 2654, 1317, 1322, 1322, 1322, 1318,
3300      1322, 2655, 1320, 1322, 1321, 1324, 1324, 1324, 1323, 1324,
3301      2665, 2666, 1324, 1325, 1325, 1325, 1326, 1326, 1326, 1328,
3302      1328, 1328, 1329, 1329, 1329, 2667, 1312, 2668, 1330, 1330,
3303      1330, 1325, 1330, 2669, 1326, 1330, 2670, 1328, 2671, 1329,
3304      1333, 1333, 1333, 2672, 1320, 1334, 1334, 1334, 2676, 1334,
3305      2677, 2678, 1334, 1335, 1335, 1335, 2679, 1333, 1336, 1336,
3306      1336, 1338, 1338, 1338, 2680, 1340, 1340, 1340, 1344, 1344,
3307      1344, 1335, 1345, 1345, 1345, 2681, 1336, 2683, 2656, 1338,
3308
3309      2684, 1328, 1340, 1347, 1347, 1347, 1344, 1350, 1350, 1350,
3310      1345, 1351, 1351, 1351, 1353, 1353, 1353, 1357, 1357, 1357,
3311      2686, 1347, 1358, 1358, 1358, 1350, 1354, 1354, 1354, 1351,
3312      1354, 2687, 1353, 1354, 2688, 1357, 1360, 1360, 1360, 2689,
3313      1358, 2656, 2691, 1338, 1361, 1361, 1361, 2692, 1361, 2696,
3314      2697, 1361, 2698, 2701, 1360, 1365, 1365, 1365, 1366, 1366,
3315      1366, 1368, 1368, 1368, 1347, 2706, 2707, 1353, 1370, 1370,
3316      1370, 2708, 2709, 1365, 2710, 2711, 1366, 2712, 2713, 1368,
3317      1377, 1377, 1377, 1404, 1404, 1404, 1370, 1370, 1405, 1405,
3318      1405, 2714, 1405, 2715, 2716, 1405, 1360, 2717, 1377, 2719,
3319
3320      1404, 1406, 1406, 1406, 1407, 1407, 1407, 1408, 1408, 1408,
3321      2720, 1408, 2721, 2722, 1408, 1411, 1411, 1411, 2725, 1406,
3322      2723, 1407, 1368, 1413, 1413, 1413, 2729, 1413, 2732, 2726,
3323      1413, 2733, 2725, 1411, 1416, 1416, 1416, 1417, 1417, 1417,
3324      2726, 1417, 2736, 2738, 1417, 2739, 1377, 2741, 1418, 1418,
3325      1418, 1416, 1418, 2742, 2745, 1418, 1422, 1422, 1422, 1406,
3326      2746, 1423, 1423, 1423, 1411, 1423, 2723, 2747, 1423, 1425,
3327      1425, 1425, 2748, 1422, 1428, 1428, 1428, 1429, 1429, 1429,
3328      2749, 1429, 2750, 2751, 1429, 2752, 2753, 1425, 1430, 1430,
3329      1430, 1428, 1431, 1431, 1431, 1433, 1433, 1433, 1447, 1447,
3330
3331      1447, 1448, 1448, 1448, 2754, 1430, 2755, 1449, 1449, 1449,
3332      1431, 1449, 2759, 1433, 1449, 1447, 2767, 2769, 1448, 1425,
3333      1450, 1450, 1450, 2757, 1453, 1453, 1453, 1454, 1454, 1454,
3334      1455, 1455, 1455, 2771, 1455, 2757, 2773, 1455, 1450, 2781,
3335      2783, 1431, 1453, 2785, 1454, 1456, 1456, 1456, 1457, 1457,
3336      1457, 1458, 1458, 1458, 2787, 1458, 2789, 2785, 1458, 1460,
3337      1460, 1460, 2758, 1456, 2788, 1457, 1463, 1463, 1463, 1464,
3338      1464, 1464, 2791, 1464, 2758, 2788, 1464, 1460, 1465, 1465,
3339      1465, 2786, 2786, 1463, 1450, 1466, 1466, 1466, 1453, 1467,
3340      1467, 1467, 1470, 1470, 1470, 1465, 1471, 1471, 1471, 2784,
3341
3342      1471, 2792, 1466, 1471, 2793, 1456, 2794, 1467, 2801, 1470,
3343      1472, 1472, 1472, 1474, 1474, 1474, 1477, 1477, 1477, 2805,
3344      1460, 2811, 1478, 1478, 1478, 2764, 1478, 2765, 1472, 1478,
3345      1474, 1466, 2813, 1477, 1479, 1479, 1479, 2764, 1479, 2765,
3346      2784, 1479, 1482, 1482, 1482, 1489, 1489, 1489, 1491, 1491,
3347      1491, 1497, 1497, 1497, 2800, 1467, 1499, 1499, 1499, 1482,
3348      1494, 1494, 1494, 1489, 1494, 1491, 2816, 1494, 1497, 1501,
3349      1501, 1501, 2800, 2804, 1499, 2810, 1472, 1504, 1504, 1504,
3350      1508, 1508, 1508, 1509, 1509, 1509, 2818, 1501, 2804, 1510,
3351      1510, 1510, 2823, 1510, 2810, 1504, 1510, 1508, 1513, 1513,
3352
3353      1513, 1509, 1513, 2824, 2826, 1513, 1517, 1517, 1517, 2827,
3354      1489, 1519, 1519, 1519, 2812, 1519, 2828, 2830, 1519, 2831,
3355      1499, 1524, 1524, 1524, 1517, 1524, 1508, 2815, 1524, 1528,
3356      1528, 1528, 2832, 2812, 1504, 1501, 1530, 1530, 1530, 2833,
3357      1509, 1531, 1531, 1531, 2817, 1531, 2815, 1528, 1531, 1534,
3358      1534, 1534, 2835, 1534, 1530, 2836, 1534, 1537, 1537, 1537,
3359      1538, 1538, 1538, 2817, 1538, 2838, 2839, 1538, 2846, 1543,
3360      1543, 1543, 1517, 1543, 2847, 1537, 1543, 1546, 1546, 1546,
3361      1548, 1548, 1548, 2848, 1549, 1549, 1549, 2849, 1549, 2850,
3362      1528, 1549, 2851, 1530, 2854, 1546, 2855, 1548, 1553, 1553,
3363
3364      1553, 1555, 1555, 1555, 1537, 1556, 1556, 1556, 1557, 1557,
3365      1557, 1558, 1558, 1558, 2856, 2857, 1553, 2858, 1555, 1559,
3366      1559, 1559, 2859, 1556, 1546, 2860, 1557, 2861, 1558, 2863,
3367      2865, 1562, 1562, 1562, 1569, 1569, 1569, 1559, 1597, 1597,
3368      1597, 1598, 1598, 1598, 2867, 1598, 2868, 1553, 1598, 1562,
3369      2870, 2879, 1569, 1601, 1601, 1601, 2881, 1602, 1602, 1602,
3370      1557, 1602, 2882, 2879, 1602, 1607, 1607, 1607, 1623, 1623,
3371      1623, 1601, 1556, 1609, 1609, 1609, 2883, 1609, 2880, 2884,
3372      1609, 1559, 1562, 1607, 1597, 1623, 1569, 1613, 1613, 1613,
3373      2880, 1613, 2885, 2886, 1613, 1617, 1617, 1617, 2890, 1562,
3374
3375      1620, 1620, 1620, 2891, 1620, 2892, 2893, 1620, 1624, 1624,
3376      1624, 2894, 1624, 1617, 2895, 1624, 1607, 1625, 1625, 1625,
3377      1601, 1637, 1637, 1637, 1638, 1638, 1638, 1640, 1640, 1640,
3378      1641, 1641, 1641, 2896, 1641, 1625, 2897, 1641, 1642, 1642,
3379      1642, 2900, 1642, 2901, 1640, 1642, 1645, 1645, 1645, 1647,
3380      1647, 1647, 1648, 1648, 1648, 2898, 1617, 2902, 1649, 1649,
3381      1649, 2903, 1649, 2904, 1645, 1649, 1647, 2905, 1625, 2906,
3382      1648, 1652, 1652, 1652, 1653, 1653, 1653, 2907, 1653, 2908,
3383      2898, 1653, 1657, 1657, 1657, 1637, 2909, 2910, 1638, 1652,
3384      1656, 1656, 1656, 1645, 1660, 1660, 1660, 2911, 1660, 1648,
3385
3386      1657, 1660, 1663, 1663, 1663, 2912, 2913, 1656, 1664, 1664,
3387      1664, 2914, 1664, 2915, 2916, 1664, 1665, 1665, 1665, 1663,
3388      1666, 1666, 1666, 2917, 1666, 2918, 2919, 1666, 2925, 1668,
3389      1668, 1668, 2926, 1665, 1671, 1671, 1671, 1652, 1671, 2927,
3390      2922, 1671, 1674, 1674, 1674, 2928, 1657, 1668, 1676, 1676,
3391      1676, 1677, 1677, 1677, 2929, 1677, 2930, 2931, 1677, 2922,
3392      1674, 1678, 1678, 1678, 2932, 1676, 1680, 1680, 1680, 2933,
3393      1680, 2934, 2935, 1680, 1683, 1683, 1683, 2936, 1678, 1684,
3394      1684, 1684, 2937, 1684, 2938, 2939, 1684, 2940, 1674, 2941,
3395      2942, 1683, 1685, 1685, 1685, 1690, 1690, 1690, 1691, 1691,
3396
3397      1691, 1693, 1693, 1693, 1694, 1694, 1694, 2943, 1694, 1685,
3398      2944, 1694, 1690, 1695, 1695, 1695, 1691, 2945, 1693, 1697,
3399      1697, 1697, 1698, 1698, 1698, 2946, 1698, 2943, 2947, 1698,
3400      1695, 1700, 1700, 1700, 2948, 2949, 1697, 1702, 1702, 1702,
3401      2950, 1705, 1705, 1705, 1709, 1709, 1709, 2951, 2952, 1700,
3402      1710, 1710, 1710, 2953, 1710, 1702, 2954, 1710, 2955, 1705,
3403      2956, 1709, 2957, 2958, 1691, 1712, 1712, 1712, 1714, 1714,
3404      1714, 2959, 2960, 1716, 1716, 1716, 1717, 1717, 1717, 1718,
3405      1718, 1718, 2961, 1712, 2965, 2962, 1714, 2966, 1702, 1705,
3406      1716, 2962, 2967, 1717, 2968, 2969, 1718, 1719, 1719, 1719,
3407
3408      1721, 1721, 1721, 1722, 1722, 1722, 1723, 1723, 1723, 1724,
3409      1724, 1724, 1725, 1725, 1725, 1719, 2970, 2972, 1721, 1714,
3410      2973, 1722, 2975, 1723, 2976, 2978, 1724, 1727, 1727, 1727,
3411      1725, 1727, 2979, 2982, 1727, 1733, 1733, 1733, 1735, 1735,
3412      1735, 2983, 2984, 1718, 2985, 2981, 1721, 1736, 1736, 1736,
3413      2987, 1736, 2989, 1733, 1736, 1735, 1737, 1737, 1737, 2981,
3414      2991, 1738, 1738, 1738, 1719, 1739, 1739, 1739, 1722, 1740,
3415      1740, 1740, 2993, 1740, 1737, 2995, 1740, 1725, 2996, 1738,
3416      2997, 2998, 1739, 1741, 1741, 1741, 1733, 1747, 1747, 1747,
3417      1748, 1748, 1748, 1758, 1758, 1758, 1762, 1762, 1762, 2999,
3418
3419      3000, 1741, 3001, 3002, 1747, 1763, 1763, 1763, 1748, 1764,
3420      1764, 1764, 1766, 1766, 1766, 1737, 1738, 1768, 1768, 1768,
3421      1769, 1769, 1769, 1773, 1773, 1773, 1775, 1775, 1775, 1778,
3422      1778, 1778, 1780, 1780, 1780, 1782, 1782, 1782, 1783, 1783,
3423      1783, 1792, 1792, 1792, 1775, 1792, 3004, 1778, 1792, 1780,
3424      3006, 1748, 3008, 1782, 3009, 1783, 1795, 1795, 1795, 3010,
3425      1796, 1796, 1796, 1801, 1801, 1801, 1802, 1802, 1802, 1806,
3426      1806, 1806, 3011, 1487, 1795, 3012, 1775, 1796, 1807, 1807,
3427      1807, 3024, 1807, 3013, 3020, 1807, 1806, 1810, 1810, 1810,
3428      1811, 1811, 1811, 3025, 1782, 1812, 1812, 1812, 3036, 1813,
3429
3430      1813, 1813, 1795, 1813, 1486, 1810, 1813, 1811, 1814, 1814,
3431      1814, 3012, 1812, 1815, 1815, 1815, 1816, 1816, 1816, 3013,
3432      1817, 1817, 1817, 1485, 1817, 3024, 1814, 1817, 1818, 1818,
3433      1818, 1815, 3020, 1816, 1821, 1821, 1821, 3025, 1821, 3036,
3434      1810, 1821, 3021, 1824, 1824, 1824, 1818, 1824, 3050, 3028,
3435      1824, 1828, 1828, 1828, 1830, 1830, 1830, 3028, 1832, 1832,
3436      1832, 1814, 3034, 1834, 1834, 1834, 3022, 1834, 1484, 1828,
3437      1834, 1837, 1837, 1837, 3023, 1818, 1832, 1838, 1838, 1838,
3438      3035, 1838, 3050, 3029, 1838, 1840, 1840, 1840, 1837, 1840,
3439      3021, 3029, 1840, 1843, 1843, 1843, 1844, 1844, 1844, 3034,
3440
3441      1844, 3044, 3045, 1844, 1845, 1845, 1845, 1849, 1849, 1849,
3442      1843, 1850, 1850, 1850, 3022, 1850, 1832, 3035, 1850, 3026,
3443      1483, 1845, 3023, 3026, 1849, 1851, 1851, 1851, 1853, 1853,
3444      1853, 3030, 1853, 3044, 3045, 1853, 1856, 1856, 1856, 3030,
3445      1857, 1857, 1857, 1851, 1857, 1476, 3031, 1857, 1859, 1859,
3446      1859, 3040, 1859, 1856, 3031, 1859, 1863, 1863, 1863, 1866,
3447      1866, 1866, 1868, 1868, 1868, 1869, 1869, 1869, 1871, 1871,
3448      1871, 1873, 1873, 1873, 1863, 1873, 1851, 1866, 1873, 1868,
3449      1877, 1877, 1877, 1869, 3037, 1871, 1880, 1880, 1880, 1882,
3450      1882, 1882, 1883, 1883, 1883, 3032, 1883, 3040, 1877, 1883,
3451
3452      1884, 1884, 1884, 3027, 1880, 3038, 1882, 3027, 1885, 1885,
3453      1885, 3039, 1885, 3033, 1871, 1885, 3058, 1884, 1887, 1887,
3454      1887, 1475, 3048, 1866, 1473, 3037, 1869, 1889, 1889, 1889,
3455      1890, 1890, 1890, 1891, 1891, 1891, 1887, 1892, 1892, 1892,
3456      3038, 1892, 3032, 1469, 1892, 1889, 3039, 3051, 1890, 3058,
3457      1891, 1893, 1893, 1893, 1894, 1894, 1894, 3048, 1894, 3041,
3458      3033, 1894, 1895, 1895, 1895, 1900, 1900, 1900, 1893, 3070,
3459      1902, 1902, 1902, 3046, 1902, 3080, 1889, 1902, 3042, 3043,
3460      1895, 3051, 3046, 1900, 1887, 1905, 1905, 1905, 1906, 1906,
3461      1906, 3049, 1907, 1907, 1907, 1890, 1907, 3092, 3070, 1907,
3462
3463      1910, 1910, 1910, 1905, 3047, 3041, 1906, 1916, 1916, 1916,
3464      1917, 1917, 1917, 3047, 1917, 3042, 3043, 1917, 1910, 1918,
3465      1918, 1918, 3080, 1468, 1916, 3060, 3049, 1895, 1462, 3092,
3466      1900, 1919, 1919, 1919, 3060, 3054, 1905, 1918, 1924, 1924,
3467      1924, 1906, 1925, 1925, 1925, 1927, 1927, 1927, 1931, 1931,
3468      1931, 1932, 1932, 1932, 1933, 1933, 1933, 1934, 1934, 1934,
3469      1936, 1936, 1936, 1937, 1937, 1937, 1938, 1938, 1938, 1939,
3470      1939, 1939, 1940, 1940, 1940, 1942, 1942, 1942, 1945, 1945,
3471      1945, 3054, 3052, 1918, 1948, 1948, 1948, 1949, 1949, 1949,
3472      3053, 1949, 3056, 1942, 1949, 1461, 1945, 1951, 1951, 1951,
3473
3474      1459, 1948, 3071, 1934, 1952, 1952, 1952, 1953, 1953, 1953,
3475      1452, 1953, 1451, 1446, 1953, 1951, 1964, 1964, 1964, 3059,
3476      3057, 1952, 1965, 1965, 1965, 3052, 1942, 3056, 1966, 1966,
3477      1966, 3071, 1966, 3053, 1964, 1966, 1967, 1967, 1967, 1965,
3478      1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974, 1975,
3479      1975, 1975, 3059, 1975, 3055, 3057, 1975, 1976, 1976, 1976,
3480      1977, 1977, 1977, 1974, 1445, 1964, 1978, 1978, 1978, 3074,
3481      1978, 3098, 3061, 1978, 3064, 1976, 3065, 1977, 1979, 1979,
3482      1979, 3061, 1979, 1444, 3062, 1979, 1982, 1982, 1982, 1973,
3483      3075, 1983, 1983, 1983, 1985, 1985, 1985, 3066, 1985, 3063,
3484
3485      3055, 1985, 1443, 3074, 1982, 1988, 1988, 1988, 1976, 1983,
3486      1995, 1995, 1995, 1997, 1997, 1997, 3064, 1997, 3065, 3098,
3487      1997, 3062, 3078, 1988, 3075, 2001, 2001, 2001, 1995, 2001,
3488      3078, 3067, 2001, 2004, 2004, 2004, 3063, 1982, 2005, 2005,
3489      2005, 3103, 2005, 3066, 3072, 2005, 1442, 2009, 2009, 2009,
3490      2004, 2009, 3103, 3072, 2009, 2012, 2012, 2012, 1988, 2014,
3491      2014, 2014, 3068, 2014, 3069, 1995, 2014, 2020, 2020, 2020,
3492      2022, 2022, 2022, 2012, 2023, 2023, 2023, 3067, 2023, 3093,
3493      1441, 2023, 2024, 2024, 2024, 2020, 3079, 2022, 2026, 2026,
3494      2026, 2027, 2027, 2027, 3079, 2027, 3084, 3081, 2027, 3068,
3495
3496      2024, 3069, 2034, 2034, 2034, 2026, 2037, 2037, 2037, 3076,
3497      2037, 3093, 3085, 2037, 2040, 2040, 2040, 3077, 2040, 2012,
3498      2034, 2040, 2044, 2044, 2044, 2046, 2046, 2046, 2047, 2047,
3499      2047, 2048, 2048, 2048, 3082, 2048, 3073, 3084, 2048, 1440,
3500      2044, 3094, 2024, 2046, 3081, 3073, 2047, 2051, 2051, 2051,
3501      3094, 2051, 3083, 3085, 2051, 3076, 2054, 2054, 2054, 1437,
3502      2055, 2055, 2055, 3077, 2047, 2056, 2056, 2056, 2057, 2057,
3503      2057, 3082, 3090, 2044, 2054, 1436, 2054, 2055, 2058, 2058,
3504      2058, 1435, 2056, 1432, 3086, 2057, 2059, 2059, 2059, 3083,
3505      3088, 2046, 2061, 2061, 2061, 2058, 2062, 2062, 2062, 2063,
3506
3507      2063, 2063, 1427, 1424, 2059, 2066, 2066, 2066, 1421, 3090,
3508      2061, 2067, 2067, 2067, 2062, 2067, 2056, 2063, 2067, 3086,
3509      2070, 2070, 2070, 2071, 2071, 2071, 2072, 2072, 2072, 2073,
3510      2073, 2073, 2057, 2076, 2076, 2076, 3088, 2058, 2070, 2078,
3511      2078, 2078, 2079, 2079, 2079, 2080, 2080, 2080, 2081, 2081,
3512      2081, 2059, 2061, 2082, 2082, 2082, 2083, 2083, 2083, 2086,
3513      2086, 2086, 2087, 2087, 2087, 2088, 2088, 2088, 2090, 2090,
3514      2090, 2093, 2093, 2093, 2094, 2094, 2094, 1412, 2094, 2070,
3515      3089, 2094, 2097, 2097, 2097, 1410, 2090, 3087, 2093, 2098,
3516      2098, 2098, 3096, 2100, 2100, 2100, 3099, 2100, 1409, 2097,
3517
3518      2100, 2113, 2113, 2113, 2114, 2114, 2114, 2098, 2114, 2115,
3519      2115, 2114, 2115, 3097, 2116, 2116, 1403, 2116, 3091, 2113,
3520      2115, 1402, 3087, 2115, 3096, 2116, 3089, 2115, 2116, 2117,
3521      2117, 2117, 2116, 2118, 2118, 2118, 2122, 2122, 2122, 2124,
3522      2124, 2124, 1400, 2124, 3099, 3097, 2124, 1399, 2097, 2127,
3523      2127, 2127, 2128, 2128, 2128, 3091, 2128, 3095, 3100, 2128,
3524      1398, 3101, 2113, 2131, 2131, 2131, 3095, 2127, 2132, 2132,
3525      2132, 2140, 2140, 2140, 2141, 2141, 2141, 3102, 2144, 2144,
3526      2144, 2131, 2144, 1397, 1396, 2144, 2132, 2147, 2147, 2147,
3527      3100, 3102, 2141, 3101, 1395, 2127, 2150, 2150, 2150, 2155,
3528
3529      2155, 2155, 1394, 1393, 2147, 2157, 2157, 2157, 2158, 2158,
3530      2158, 1391, 2158, 1390, 2150, 2158, 1388, 2155, 1387, 2132,
3531      1385, 1383, 2157, 2161, 2161, 2161, 2162, 2162, 2162, 2163,
3532      2163, 2163, 1382, 2163, 2141, 1381, 2163, 2166, 2166, 2166,
3533      1380, 2161, 1379, 2162, 2167, 2167, 2167, 2172, 2172, 2172,
3534      2174, 2174, 2174, 1378, 2166, 2176, 2176, 2176, 2177, 2177,
3535      2177, 2167, 1376, 1375, 2172, 2178, 2178, 2178, 2179, 2179,
3536      2179, 1374, 2162, 2176, 2161, 2177, 2180, 2180, 2180, 2181,
3537      2181, 2181, 1373, 2178, 1364, 1349, 2179, 2183, 2183, 2183,
3538      1348, 1343, 2166, 1342, 2180, 1341, 2181, 1339, 2172, 2182,
3539
3540      2182, 2182, 1332, 2182, 2183, 2167, 2182, 2184, 2184, 2184,
3541      2185, 2185, 2185, 2180, 2186, 2186, 2186, 2187, 2187, 2187,
3542      2188, 2188, 2188, 1331, 2184, 2178, 1313, 2185, 1308, 2179,
3543      1305, 1304, 2186, 2189, 2189, 2189, 1301, 1296, 2188, 2191,
3544      2191, 2191, 2194, 2194, 2194, 2195, 2195, 2195, 2196, 2196,
3545      2196, 2189, 2197, 2197, 2197, 1287, 1286, 2191, 2184, 1285,
3546      1281, 2185, 1276, 2195, 2200, 2200, 2200, 2201, 2201, 2201,
3547      2202, 2202, 2202, 2203, 2203, 2203, 2207, 2207, 2207, 2210,
3548      2210, 2210, 1272, 2211, 2211, 2211, 2188, 2211, 1264, 1259,
3549      2211, 2223, 2223, 2223, 2207, 1258, 2210, 2236, 2236, 2236,
3550
3551      1252, 2191, 2239, 2239, 2239, 2241, 2241, 2241, 1251, 2223,
3552      2242, 2242, 2242, 2244, 2244, 2244, 2251, 2251, 2251, 2252,
3553      2252, 2252, 1250, 2241, 2253, 2253, 2253, 1249, 2242, 1244,
3554      1243, 2244, 1242, 2251, 1241, 2256, 2256, 2256, 1240, 2257,
3555      2257, 2257, 2253, 2257, 1239, 1238, 2257, 2259, 2259, 2259,
3556      1228, 2223, 2256, 1227, 2260, 2260, 2260, 2264, 2264, 2264,
3557      2266, 2266, 2266, 1226, 2259, 1225, 2267, 2267, 2267, 1213,
3558      2267, 2241, 2260, 2267, 2264, 1212, 1207, 2266, 2268, 2268,
3559      2268, 2253, 2269, 2269, 2269, 2270, 2270, 2270, 1206, 2270,
3560      1201, 1200, 2270, 2271, 2271, 2271, 2268, 1181, 1177, 2269,
3561
3562      2272, 2272, 2272, 2273, 2273, 2273, 2278, 2278, 2278, 1171,
3563      2271, 2280, 2280, 2280, 2282, 2282, 2282, 2272, 1167, 1166,
3564      2273, 1165, 1164, 2278, 2284, 2284, 2284, 2285, 2285, 2285,
3565      1163, 2285, 2282, 1162, 2285, 2286, 2286, 2286, 2287, 2287,
3566      2287, 2284, 2288, 2288, 2288, 2271, 1161, 2289, 2289, 2289,
3567      1160, 2289, 1159, 2286, 2289, 1158, 2287, 1157, 2272, 1156,
3568      2288, 2273, 2292, 2292, 2292, 2293, 2293, 2293, 1151, 2293,
3569      1143, 1141, 2293, 2294, 2294, 2294, 2295, 2295, 2295, 2292,
3570      2296, 2296, 2296, 2298, 2298, 2298, 2299, 2299, 2299, 1135,
3571      2294, 1133, 1124, 2295, 2303, 2303, 2303, 1119, 2296, 2307,
3572
3573      2307, 2307, 1108, 1106, 2299, 2287, 2288, 2311, 2311, 2311,
3574      1105, 1104, 2303, 2312, 2312, 2312, 1102, 2312, 1101, 1100,
3575      2312, 2326, 2326, 2326, 2311, 2343, 2343, 2343, 2345, 2345,
3576      2345, 2346, 2346, 2346, 2349, 2349, 2349, 1099, 1098, 2326,
3577      2352, 2352, 2352, 2353, 2353, 2353, 2345, 2353, 1097, 2346,
3578      2353, 2349, 2354, 2354, 2354, 1095, 1094, 2352, 2357, 2357,
3579      2357, 1093, 2357, 1092, 1091, 2357, 2361, 2361, 2361, 1090,
3580      2354, 2362, 2362, 2362, 1089, 2362, 1088, 1087, 2362, 1086,
3581      1085, 2326, 1084, 2361, 2364, 2364, 2364, 2365, 2365, 2365,
3582      2366, 2366, 2366, 1083, 2366, 1077, 1076, 2366, 1075, 2345,
3583
3584      1072, 2364, 1071, 1070, 2365, 2367, 2367, 2367, 2368, 2368,
3585      2368, 1068, 2368, 1064, 1061, 2368, 2371, 2371, 2371, 2373,
3586      2373, 2373, 2367, 2373, 1052, 1051, 2373, 2376, 2376, 2376,
3587      2377, 2377, 2377, 1048, 2371, 2378, 2378, 2378, 2381, 2381,
3588      2381, 2382, 2382, 2382, 2376, 2382, 1047, 2377, 2382, 2383,
3589      2383, 2383, 2378, 1046, 1045, 2381, 2384, 2384, 2384, 1044,
3590      2385, 2385, 2385, 1030, 2385, 1023, 2383, 2385, 2388, 2388,
3591      2388, 1015, 1014, 2384, 2390, 2390, 2390, 2391, 2391, 2391,
3592      1013, 2377, 2376, 2395, 2395, 2395, 2388, 2392, 2392, 2392,
3593      2378, 2392, 2390, 1010, 2392, 2391, 1007, 2396, 2396, 2396,
3594
3595      2395, 2396, 1004,  999, 2396, 2397, 2397, 2397, 2398, 2398,
3596      2398,  996, 2398,  995,  991, 2398, 2399, 2399, 2399, 2405,
3597      2405, 2405, 2397,  989, 2409, 2409, 2409,  986, 2410, 2410,
3598      2410,  985, 2410,  984, 2399, 2410,  983,  982, 2391,  981,
3599      2390, 2409, 2428, 2428, 2428, 2444, 2444, 2444, 2446, 2446,
3600      2446, 2447, 2447, 2447, 2448, 2448, 2448, 2449, 2449, 2449,
3601      2428, 2449,  980,  976, 2449,  972, 2446,  965, 2447,  964,
3602       963, 2448, 2450, 2450, 2450,  960, 2450,  959,  956, 2450,
3603      2453, 2453, 2453, 2458, 2458, 2458,  955, 2458,  954,  951,
3604      2458,  950,  947, 2428, 2462, 2462, 2462, 2447, 2453, 2463,
3605
3606      2463, 2463,  942, 2463,  939,  936, 2463, 2467, 2467, 2467,
3607      2446, 2462, 2464, 2464, 2464,  935, 2464,  932,  931, 2464,
3608       930, 2468, 2468, 2468, 2467, 2468,  929,  928, 2468, 2469,
3609      2469, 2469, 2470, 2470, 2470, 2471, 2471, 2471, 2472, 2472,
3610      2472,  926, 2472,  925,  924, 2472, 2469,  923,  922, 2470,
3611       921,  917, 2471, 2475, 2475, 2475, 2476, 2476, 2476,  912,
3612      2476,  911,  910, 2476, 2477, 2477, 2477, 2478, 2478, 2478,
3613      2475, 2478,  909,  906, 2478, 2485, 2485, 2485, 2486, 2486,
3614      2486, 2477,  905,  904, 2471,  902,  898, 2469, 2487, 2487,
3615      2487,  894, 2487, 2485,  893, 2487, 2486, 2490, 2490, 2490,
3616
3617       890, 2490,  887,  886, 2490, 2495, 2495, 2495, 2497, 2497,
3618      2497, 2498, 2498, 2498, 2501, 2501, 2501,  885, 2501,  884,
3619       883, 2501, 2495, 2495,  882,  880, 2485, 2512, 2512, 2512,
3620      2521, 2521, 2521, 2537, 2537, 2537, 2538, 2538, 2538, 2539,
3621      2539, 2539,  879,  878, 2512, 2486,  877,  876, 2521, 2540,
3622      2540, 2540, 2541, 2541, 2541,  875, 2541, 2539,  874, 2541,
3623      2543, 2543, 2543,  873, 2543,  872, 2540, 2543, 2550, 2550,
3624      2550,  871, 2550,  870,  869, 2550, 2553, 2553, 2553, 2521,
3625      2553,  868,  867, 2553, 2556, 2556, 2556, 2557, 2557, 2557,
3626      2539, 2558, 2558, 2558,  866, 2558,  865,  864, 2558,  863,
3627
3628       862, 2556,  858,  857, 2557, 2559, 2559, 2559, 2560, 2560,
3629      2560,  855, 2560,  854,  853, 2560, 2563, 2563, 2563,  852,
3630      2563,  851, 2559, 2563, 2572, 2572, 2572, 2573, 2573, 2573,
3631      2579, 2579, 2579,  847,  845, 2556, 2580, 2580, 2580, 2581,
3632      2581, 2581, 2572, 2581,  844, 2573, 2581, 2579, 2579, 2582,
3633      2582, 2582,  843, 2580, 2580,  842,  838, 2581, 2583, 2583,
3634      2583, 2584, 2584, 2584, 2585, 2585, 2585, 2594, 2594, 2594,
3635      2595, 2595, 2595,  834, 2595,  833, 2559, 2595, 2604, 2604,
3636      2604, 2619, 2619, 2619, 2594, 2620, 2620, 2620, 2621, 2621,
3637      2621,  830,  829, 2573,  828,  827, 2604, 2622, 2622, 2622,
3638
3639       826, 2622,  825,  824, 2622,  821, 2621, 2628, 2628, 2628,
3640      2630, 2630, 2630, 2631, 2631, 2631,  820, 2631,  819,  818,
3641      2631, 2634, 2634, 2634, 2628,  815,  814, 2630, 2649, 2649,
3642      2649, 2651, 2651, 2651, 2657, 2657, 2657,  813, 2634,  810,
3643       808, 2658, 2658, 2658, 2604, 2658, 2649,  805, 2658, 2651,
3644       804, 2657, 2657, 2659, 2659, 2659,  803, 2659,  802, 2658,
3645      2659, 2662, 2662, 2662, 2663, 2663, 2663, 2664, 2664, 2664,
3646       801, 2659, 2673, 2673, 2673,  798, 2673,  797,  796, 2673,
3647       795,  794, 2651, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
3648      2660, 2660,  791,  790, 2660, 2682, 2682, 2682,  789, 2660,
3649
3650      2660, 2660, 2660, 2660, 2693, 2693, 2693, 2694, 2694, 2694,
3651      2699, 2699, 2699, 2682, 2700, 2700, 2700,  788, 2700,  786,
3652       783, 2700, 2702, 2702, 2702, 2694,  782, 2699, 2660, 2660,
3653      2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2661, 2702,
3654       780, 2661, 2704, 2704, 2704,  777, 2661, 2661, 2661, 2661,
3655      2661, 2703, 2703, 2703,  775, 2703,  772,  771, 2703, 2704,
3656      2705, 2705, 2705,  770, 2705,  769,  767, 2705, 2718, 2718,
3657      2718, 2743, 2743, 2743,  766, 2661, 2661, 2724, 2724, 2724,
3658       765, 2724,  762,  761, 2724,  760, 2718,  759,  758, 2743,
3659      2778, 2778, 2778,  757,  756, 2724, 2727, 2727, 2727, 2727,
3660
3661      2727, 2727, 2727, 2727, 2727,  755,  754, 2727, 2778,  752,
3662       750,  749, 2727, 2727, 2727, 2727, 2727, 2756, 2756, 2756,
3663       746, 2756,  743,  739, 2756, 2760, 2760, 2760,  738, 2760,
3664       737,  734, 2760, 2763, 2763, 2763,  731, 2763,  730,  729,
3665      2763, 2727, 2727, 2728, 2728, 2728, 2728, 2728, 2728, 2728,
3666      2728, 2728,  726,  725, 2728, 2790, 2790, 2790,  721, 2728,
3667      2728, 2728, 2728, 2728, 2807, 2807, 2807, 2808, 2808, 2808,
3668      2809, 2809, 2809, 2790, 2790, 2814, 2814, 2814, 2825, 2825,
3669      2825, 2807,  720,  718, 2808,  715,  714, 2809, 2728, 2728,
3670       713,  711, 2814, 2829, 2829, 2829, 2825, 2840, 2840, 2840,
3671
3672      2841, 2841, 2841,  701, 2841,  700,  698, 2841, 2842, 2842,
3673      2842, 2829,  697,  695, 2840, 2843, 2843, 2843,  694, 2843,
3674       693,  689, 2843,  688,  687, 2842, 2844, 2844, 2844, 2845,
3675      2845, 2845,  686, 2845,  682,  681, 2845, 2852, 2852, 2852,
3676      2862, 2862, 2862, 2844, 2829, 2853, 2853, 2853,  680, 2853,
3677       679,  678, 2853,  677, 2852, 2872, 2872, 2872, 2862, 2872,
3678       676,  674, 2872, 2875, 2875, 2875,  671, 2875,  670,  668,
3679      2875, 2878, 2878, 2878,  666, 2878,  663, 2862, 2878, 2887,
3680      2887, 2887,  662, 2887,  656,  654, 2887, 2994, 2994, 2994,
3681      3003, 3003, 3003,  652, 3003,  649,  648, 3003, 3104, 3104,
3682
3683      3104, 3105, 3105, 3105,  644, 2994,  643,  642, 3003,  639,
3684       638,  637,  636,  633,  632,  631, 3104,  630,  629, 3105,
3685      3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3108, 3109,
3686      3109, 3109, 3109, 3109, 3109, 3109, 3109, 3109, 3110, 3110,
3687      3110, 3110, 3110, 3110, 3110, 3110, 3110, 3111, 3111, 3111,
3688      3111, 3111, 3111, 3111, 3111, 3111, 3112, 3112, 3112, 3112,
3689      3112, 3112, 3112, 3112, 3112, 3113, 3113, 3113, 3113, 3113,
3690      3113, 3113, 3113, 3113, 3114, 3114, 3114, 3114, 3114, 3114,
3691      3114, 3114, 3114, 3115, 3115, 3115, 3115, 3115, 3115, 3115,
3692      3115, 3115, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116,
3693
3694      3116, 3117, 3117, 3117, 3117, 3117, 3117, 3117, 3117, 3117,
3695      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118, 3119,
3696      3119, 3119, 3119, 3119, 3119, 3119, 3119, 3119, 3120, 3120,
3697      3120, 3120, 3120, 3120, 3120, 3120, 3120, 3121, 3121, 3121,
3698      3121, 3121, 3121, 3121, 3121, 3121, 3122, 3122, 3122, 3122,
3699      3122, 3122, 3122, 3122, 3122, 3123, 3123, 3123, 3123, 3123,
3700      3123, 3123, 3123, 3123, 3124, 3124, 3124, 3124, 3124, 3124,
3701      3124, 3124, 3124, 3125, 3125, 3125, 3125, 3125, 3125, 3125,
3702      3125, 3125, 3126, 3126, 3126, 3126, 3126, 3126, 3126, 3126,
3703      3126, 3127, 3127, 3127, 3127, 3127, 3127, 3127, 3127, 3127,
3704
3705      3128, 3128, 3128, 3128, 3128, 3128, 3128, 3128, 3128, 3129,
3706      3129, 3129, 3129, 3129, 3129, 3129, 3129, 3129, 3130, 3130,
3707      3130, 3130, 3130, 3130, 3130, 3130, 3130, 3131, 3131, 3131,
3708      3131, 3131, 3131, 3131, 3131, 3131, 3132, 3132, 3132, 3132,
3709      3132, 3132, 3132, 3132, 3132, 3133, 3133, 3133, 3133, 3133,
3710      3133, 3133, 3133, 3133, 3134, 3134, 3134, 3134, 3134, 3134,
3711      3134, 3134, 3134, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
3712      3135, 3135, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
3713      3136, 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137, 3137,
3714      3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3139,
3715
3716      3139, 3139, 3139, 3139, 3139, 3139, 3139, 3139, 3140, 3140,
3717      3140, 3140, 3140, 3140, 3140, 3140, 3140, 3141, 3141, 3141,
3718      3141, 3141, 3141, 3141, 3141, 3141, 3142, 3142, 3142, 3142,
3719      3142, 3142, 3142, 3142, 3142, 3143, 3143, 3143, 3143, 3143,
3720      3143, 3143, 3143, 3143, 3144, 3144, 3144, 3144, 3144, 3144,
3721      3144, 3144, 3144, 3145, 3145, 3145, 3145, 3145, 3145, 3145,
3722      3145, 3145, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146,
3723      3146, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147, 3147,
3724      3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3148, 3149,
3725      3149, 3149, 3149, 3149, 3149, 3149, 3149, 3149, 3150, 3150,
3726
3727      3150, 3150, 3150, 3150, 3150, 3150, 3150, 3151, 3151, 3151,
3728      3151, 3151, 3151, 3151, 3151, 3151, 3152, 3152, 3152, 3152,
3729      3152, 3152, 3152, 3152, 3152, 3153, 3153, 3153, 3153, 3153,
3730      3153, 3153, 3153, 3153, 3154, 3154, 3154, 3154, 3154, 3154,
3731      3154, 3154, 3154, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
3732      3155, 3155, 3156, 3156, 3156, 3156, 3156, 3156, 3156, 3156,
3733      3156, 3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157,
3734      3158, 3158, 3158, 3158, 3158, 3158, 3158, 3158, 3158, 3159,
3735      3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3160, 3160,
3736      3160, 3160, 3160, 3160, 3160, 3160, 3160, 3161, 3161, 3161,
3737
3738      3161, 3161, 3161, 3161, 3161, 3161, 3162, 3162, 3162, 3162,
3739      3162, 3162, 3162, 3162, 3162, 3163, 3163, 3163, 3163, 3163,
3740      3163, 3163, 3163, 3163, 3164, 3164, 3164, 3164, 3164, 3164,
3741      3164, 3164, 3164, 3165, 3165, 3165,  623,  622,  620, 3165,
3742      3166, 3166, 3166,  614,  613,  609, 3166, 3167, 3167, 3167,
3743       602,  598,  592, 3167, 3168, 3168, 3168,  588,  584,  580,
3744      3168, 3169, 3169, 3169,  579,  578,  577, 3169, 3170, 3170,
3745      3170,  576,  572,  568, 3170, 3171, 3171, 3171,  565,  564,
3746       563, 3171, 3172, 3172, 3172,  559,  555,  552, 3172, 3173,
3747      3173, 3173,  551,  547,  541, 3173, 3174, 3174, 3174,  540,
3748
3749       536,  532, 3174, 3175, 3175, 3175,  528,  527,  523, 3175,
3750      3176, 3176, 3176,  520,  519,  514, 3176, 3177, 3177, 3177,
3751       510,  502,  501, 3177, 3178, 3178, 3178,  500,  496,  490,
3752      3178, 3179, 3179, 3179,  489,  488,  484, 3179, 3180, 3180,
3753      3180,  478,  477,  473, 3180, 3181, 3181, 3181,  467,  466,
3754       465, 3181, 3182, 3182, 3182,  464,  463,  462, 3182, 3183,
3755      3183, 3183,  461,  457,  448, 3183, 3184, 3184, 3184,  447,
3756       446,  444, 3184, 3185, 3185, 3185,  440,  434,  433, 3185,
3757      3186, 3186, 3186,  432,  428,  424, 3186, 3187, 3187, 3187,
3758       420,  419,  418, 3187, 3188, 3188, 3188,  417,  416,  412,
3759
3760      3188, 3189, 3189, 3189,  406,  405,  401, 3189, 3190, 3190,
3761      3190,  395,  394,  390, 3190, 3191, 3191, 3191, 3191, 3191,
3762      3191, 3191,  383, 3191, 3192, 3192, 3192,  382,  381,  377,
3763      3192, 3193,  370,  369,  368, 3193, 3194, 3194, 3194,  367,
3764       363,  359, 3194, 3195,  354,  346,  345, 3195, 3196, 3196,
3765      3196,  341,  335,  334, 3196, 3197,  333,  329,  320, 3197,
3766      3198, 3198, 3198,  318,  317,  313, 3198, 3199,  310,  308,
3767       307, 3199, 3200, 3200, 3200,  306,  302,  298, 3200, 3201,
3768       295,  291,  288, 3201, 3202, 3202, 3202,  287,  279,  275,
3769      3202, 3203,  271,  270,  269, 3203, 3204, 3204, 3204,  263,
3770
3771       262,  260, 3204, 3205,  257,  245,    0, 3205, 3206, 3206,
3772      3206,    0,    0,    0, 3206, 3207,    0,    0,    0, 3207,
3773      3208, 3208, 3208,    0,    0,    0, 3208, 3209,    0,    0,
3774         0, 3209, 3210, 3210, 3210,    0,    0,    0, 3210, 3211,
3775         0,    0,    0, 3211, 3212, 3212, 3212,    0,    0,    0,
3776      3212, 3213,    0,    0,    0, 3213, 3214, 3214, 3214,    0,
3777         0,    0, 3214, 3215,    0,    0,    0, 3215, 3216, 3216,
3778      3216,    0,    0,    0, 3216, 3217,    0,    0,    0, 3217,
3779      3218, 3218, 3218,    0,    0,    0, 3218, 3219,    0,    0,
3780         0, 3219, 3220, 3220, 3220,    0,    0,    0, 3220, 3221,
3781
3782         0,    0,    0, 3221, 3222, 3222, 3222,    0,    0,    0,
3783      3222, 3223,    0,    0,    0, 3223, 3224, 3224, 3224,    0,
3784         0,    0, 3224, 3225,    0,    0,    0, 3225, 3226, 3226,
3785      3226,    0,    0,    0, 3226, 3227,    0,    0,    0, 3227,
3786      3228, 3228, 3228,    0,    0,    0, 3228, 3229,    0,    0,
3787         0, 3229, 3230, 3230, 3230,    0,    0,    0, 3230, 3231,
3788         0,    0,    0, 3231, 3232, 3232, 3232,    0,    0,    0,
3789      3232, 3233,    0,    0,    0, 3233, 3234, 3234, 3234,    0,
3790         0,    0, 3234, 3235,    0,    0,    0, 3235, 3236, 3236,
3791      3236,    0,    0,    0, 3236, 3237,    0,    0,    0, 3237,
3792
3793      3238, 3238, 3238,    0,    0,    0, 3238, 3239,    0,    0,
3794         0, 3239, 3240, 3240, 3240,    0,    0,    0, 3240, 3241,
3795         0,    0,    0, 3241, 3242, 3242, 3242,    0,    0,    0,
3796      3242, 3243,    0,    0,    0, 3243, 3244, 3244, 3244, 3244,
3797      3244, 3244, 3244, 3244, 3244, 3245,    0,    0,    0,    0,
3798      3245, 3246, 3246, 3246,    0,    0,    0, 3246, 3247, 3247,
3799      3247, 3247,    0,    0, 3247, 3247, 3248, 3248, 3248,    0,
3800         0,    0, 3248, 3249, 3249, 3249, 3249,    0,    0, 3249,
3801      3249, 3250, 3250, 3250,    0,    0,    0, 3250, 3251, 3251,
3802      3251, 3251,    0,    0, 3251, 3251, 3252, 3252, 3252,    0,
3803
3804         0,    0, 3252, 3253, 3253, 3253, 3253,    0,    0, 3253,
3805      3253, 3254, 3254, 3254,    0,    0,    0, 3254, 3255, 3255,
3806      3255, 3255,    0,    0, 3255, 3255, 3256, 3256, 3256,    0,
3807         0,    0, 3256, 3257, 3257, 3257, 3257,    0,    0, 3257,
3808      3257, 3258, 3258, 3258,    0,    0,    0, 3258, 3259, 3259,
3809      3259, 3259,    0,    0, 3259, 3259, 3260, 3260, 3260,    0,
3810         0,    0, 3260, 3261, 3261, 3261, 3261,    0,    0, 3261,
3811      3261, 3262, 3262, 3262,    0,    0,    0, 3262, 3263, 3263,
3812      3263, 3263,    0,    0, 3263, 3263, 3264, 3264, 3264,    0,
3813         0,    0, 3264, 3265, 3265, 3265, 3265,    0,    0, 3265,
3814
3815      3265, 3266, 3266, 3266,    0,    0,    0, 3266, 3267, 3267,
3816      3267, 3267,    0,    0, 3267, 3267, 3268, 3268, 3268,    0,
3817         0,    0, 3268, 3269, 3269, 3269, 3269,    0,    0, 3269,
3818      3269, 3270, 3270, 3270,    0,    0,    0, 3270, 3271, 3271,
3819      3271, 3271,    0,    0, 3271, 3271, 3272, 3272, 3272,    0,
3820         0,    0, 3272, 3273, 3273, 3273, 3273,    0,    0, 3273,
3821      3273, 3274, 3274, 3274,    0,    0,    0, 3274, 3275, 3275,
3822      3275, 3275,    0,    0, 3275, 3275, 3276, 3276, 3276,    0,
3823         0,    0, 3276, 3277, 3277, 3277, 3277,    0,    0, 3277,
3824      3277, 3278, 3278, 3278,    0,    0,    0, 3278, 3279, 3279,
3825
3826      3279, 3279,    0,    0, 3279, 3279, 3280, 3280, 3280, 3280,
3827         0, 3280,    0, 3280, 3281, 3281, 3281, 3281,    0,    0,
3828      3281, 3281, 3282, 3282, 3282, 3282,    0, 3282,    0, 3282,
3829      3283, 3283, 3283, 3283,    0,    0, 3283, 3283, 3284, 3284,
3830      3284,    0,    0,    0, 3284, 3285, 3285, 3285, 3285,    0,
3831         0, 3285, 3285, 3286, 3286, 3286, 3286,    0, 3286,    0,
3832      3286, 3287, 3287, 3287, 3287,    0,    0, 3287, 3287, 3288,
3833      3288, 3288, 3288,    0, 3288,    0, 3288, 3289, 3289, 3289,
3834      3289,    0,    0, 3289, 3289, 3290, 3290, 3290,    0,    0,
3835         0, 3290, 3291, 3291, 3291, 3291,    0,    0, 3291, 3291,
3836
3837      3292, 3292, 3292,    0,    0,    0, 3292, 3293, 3293, 3293,
3838      3293,    0,    0, 3293, 3293, 3294, 3294, 3294, 3294,    0,
3839         0, 3294, 3294, 3295, 3295, 3295,    0,    0,    0, 3295,
3840      3296, 3296, 3296, 3296,    0,    0, 3296, 3296, 3297, 3297,
3841      3297, 3297, 3297, 3297, 3297, 3297, 3297, 3298,    0, 3298,
3842         0,    0, 3298, 3299, 3299, 3299,    0,    0,    0, 3299,
3843      3300, 3300, 3300, 3300,    0,    0, 3300, 3300, 3301, 3301,
3844      3301, 3301,    0, 3301,    0, 3301, 3302, 3302, 3302, 3302,
3845         0,    0, 3302, 3302, 3303, 3303, 3303, 3303,    0, 3303,
3846         0, 3303, 3304, 3304, 3304, 3304,    0,    0, 3304, 3304,
3847
3848      3305, 3305, 3305,    0,    0,    0, 3305, 3306, 3306, 3306,
3849      3306,    0,    0, 3306, 3306, 3307, 3307, 3307,    0,    0,
3850         0, 3307, 3308, 3308, 3308, 3308,    0,    0, 3308, 3308,
3851      3309, 3309, 3309,    0,    0,    0, 3309, 3310, 3310, 3310,
3852      3310,    0,    0, 3310, 3310, 3311, 3311, 3311,    0,    0,
3853         0, 3311, 3312, 3312, 3312, 3312,    0,    0, 3312, 3312,
3854      3313, 3313, 3313,    0,    0,    0, 3313, 3314, 3314, 3314,
3855      3314,    0,    0, 3314, 3314, 3315, 3315, 3315, 3315,    0,
3856      3315,    0, 3315, 3316, 3316, 3316, 3316,    0,    0, 3316,
3857      3316, 3317, 3317, 3317, 3317,    0, 3317,    0, 3317, 3318,
3858
3859      3318, 3318, 3318,    0,    0, 3318, 3318, 3319, 3319, 3319,
3860         0,    0,    0, 3319, 3320, 3320, 3320, 3320,    0,    0,
3861      3320, 3320, 3321, 3321, 3321, 3321,    0, 3321,    0, 3321,
3862      3322, 3322, 3322, 3322,    0,    0, 3322, 3322, 3323, 3323,
3863      3323,    0,    0,    0, 3323, 3324, 3324, 3324, 3324,    0,
3864         0, 3324, 3324, 3325, 3325, 3325,    0,    0,    0, 3325,
3865      3326, 3326, 3326, 3326,    0,    0, 3326, 3326, 3327, 3327,
3866      3327,    0,    0,    0, 3327, 3328, 3328, 3328, 3328,    0,
3867         0, 3328, 3328, 3329, 3329, 3329,    0,    0,    0, 3329,
3868      3330, 3330, 3330, 3330,    0,    0, 3330, 3330, 3331, 3331,
3869
3870      3331,    0,    0,    0, 3331, 3332, 3332, 3332, 3332,    0,
3871         0, 3332, 3332, 3333, 3333, 3333,    0,    0,    0, 3333,
3872      3334, 3334, 3334, 3334,    0,    0, 3334, 3334, 3335, 3335,
3873      3335,    0,    0,    0, 3335, 3336, 3336, 3336, 3336,    0,
3874         0, 3336, 3336, 3337, 3337, 3337,    0,    0,    0, 3337,
3875      3338, 3338, 3338, 3338,    0,    0, 3338, 3338, 3339, 3339,
3876      3339, 3339,    0,    0, 3339, 3339, 3340, 3340, 3340,    0,
3877         0,    0, 3340, 3341, 3341, 3341, 3341,    0,    0, 3341,
3878      3341, 3342, 3342, 3342,    0,    0,    0, 3342, 3343, 3343,
3879      3343, 3343,    0,    0, 3343, 3343, 3344, 3344, 3344,    0,
3880
3881         0,    0, 3344, 3345, 3345, 3345, 3345,    0,    0, 3345,
3882      3345, 3346, 3346, 3346, 3346,    0,    0, 3346, 3346, 3347,
3883      3347, 3347,    0,    0,    0, 3347, 3348, 3348, 3348, 3348,
3884         0,    0, 3348, 3348, 3349, 3349, 3349, 3349, 3349, 3349,
3885      3349, 3349, 3349, 3350, 3350, 3350, 3350, 3350, 3350, 3350,
3886      3350, 3350, 3351, 3351, 3351,    0,    0,    0, 3351, 3352,
3887      3352, 3352, 3352,    0,    0, 3352, 3352, 3353, 3353, 3353,
3888      3353,    0,    0, 3353, 3353, 3354, 3354, 3354,    0,    0,
3889         0, 3354, 3355, 3355, 3355, 3355,    0,    0, 3355, 3355,
3890      3356, 3356, 3356,    0,    0,    0, 3356, 3357, 3357, 3357,
3891
3892      3357,    0,    0, 3357, 3357, 3358, 3358, 3358,    0,    0,
3893         0, 3358, 3359, 3359, 3359, 3359,    0,    0, 3359, 3359,
3894      3360, 3360, 3360,    0,    0,    0, 3360, 3361, 3361, 3361,
3895         0,    0,    0, 3361, 3362, 3362, 3362, 3362,    0,    0,
3896      3362, 3362, 3363, 3363, 3363,    0,    0,    0, 3363, 3364,
3897      3364, 3364, 3364,    0,    0, 3364, 3364, 3365, 3365, 3365,
3898      3365,    0,    0, 3365, 3365, 3366, 3366, 3366,    0,    0,
3899         0, 3366, 3367, 3367, 3367, 3367,    0,    0, 3367, 3367,
3900      3368, 3368, 3368,    0,    0,    0, 3368, 3369, 3369, 3369,
3901      3369,    0,    0, 3369, 3369, 3370, 3370, 3370, 3370,    0,
3902
3903         0, 3370, 3370, 3371, 3371, 3371,    0,    0,    0, 3371,
3904      3372, 3372, 3372, 3372,    0,    0, 3372, 3372, 3373, 3373,
3905      3373,    0,    0,    0, 3373, 3374, 3374, 3374, 3374,    0,
3906         0, 3374, 3374, 3375, 3375, 3375,    0,    0,    0, 3375,
3907      3376, 3376, 3376, 3376,    0,    0, 3376, 3376, 3377, 3377,
3908      3377,    0,    0,    0, 3377, 3378, 3378, 3378, 3378,    0,
3909         0, 3378, 3378, 3379, 3379, 3379,    0,    0,    0, 3379,
3910      3380, 3380, 3380, 3380,    0,    0, 3380, 3380, 3381, 3381,
3911      3381,    0,    0,    0, 3381, 3382, 3382, 3382, 3382,    0,
3912         0, 3382, 3382, 3383, 3383, 3383,    0,    0,    0, 3383,
3913
3914      3384, 3384, 3384, 3384,    0,    0, 3384, 3384, 3385, 3385,
3915      3385,    0,    0,    0, 3385, 3386, 3386, 3386, 3386,    0,
3916         0, 3386, 3386, 3387, 3387, 3387, 3387,    0,    0, 3387,
3917      3387, 3388, 3388, 3388,    0,    0,    0, 3388, 3389, 3389,
3918      3389, 3389,    0,    0, 3389, 3389, 3390, 3390, 3390,    0,
3919         0,    0, 3390, 3391, 3391, 3391, 3391,    0,    0, 3391,
3920      3391, 3392, 3392, 3392, 3392,    0, 3392,    0, 3392, 3393,
3921      3393, 3393, 3393,    0,    0, 3393, 3393, 3394, 3394, 3394,
3922      3394,    0,    0, 3394, 3394, 3395, 3395, 3395, 3395,    0,
3923      3395,    0, 3395, 3396, 3396, 3396, 3396,    0,    0, 3396,
3924
3925      3396, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397,
3926      3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3399,
3927      3399, 3399,    0,    0,    0, 3399, 3400, 3400, 3400, 3400,
3928         0,    0, 3400, 3400, 3401, 3401, 3401, 3401,    0,    0,
3929      3401, 3401, 3402, 3402, 3402,    0,    0,    0, 3402, 3403,
3930      3403, 3403, 3403,    0,    0, 3403, 3403, 3404, 3404, 3404,
3931         0,    0,    0, 3404, 3405, 3405, 3405, 3405,    0,    0,
3932      3405, 3405, 3406, 3406, 3406,    0,    0,    0, 3406, 3407,
3933      3407, 3407, 3407,    0,    0, 3407, 3407, 3408, 3408, 3408,
3934         0,    0,    0, 3408, 3409, 3409, 3409,    0,    0,    0,
3935
3936      3409, 3410, 3410, 3410, 3410,    0,    0, 3410, 3410, 3411,
3937      3411, 3411,    0,    0,    0, 3411, 3412, 3412, 3412, 3412,
3938         0,    0, 3412, 3412, 3413, 3413, 3413, 3413,    0,    0,
3939      3413, 3413, 3414, 3414, 3414, 3414,    0, 3414,    0, 3414,
3940      3415, 3415, 3415, 3415,    0,    0, 3415, 3415, 3416, 3416,
3941      3416,    0,    0,    0, 3416, 3417, 3417, 3417, 3417,    0,
3942         0, 3417, 3417, 3418, 3418, 3418, 3418,    0,    0, 3418,
3943      3418, 3419, 3419, 3419,    0,    0,    0, 3419, 3420, 3420,
3944      3420, 3420,    0,    0, 3420, 3420, 3421, 3421, 3421,    0,
3945         0,    0, 3421, 3422, 3422, 3422, 3422,    0,    0, 3422,
3946
3947      3422, 3423, 3423, 3423,    0,    0,    0, 3423, 3424, 3424,
3948      3424, 3424,    0,    0, 3424, 3424, 3425, 3425, 3425,    0,
3949         0,    0, 3425, 3426, 3426, 3426, 3426,    0,    0, 3426,
3950      3426, 3427, 3427, 3427,    0,    0,    0, 3427, 3428, 3428,
3951      3428, 3428,    0,    0, 3428, 3428, 3429, 3429, 3429,    0,
3952         0,    0, 3429, 3430, 3430, 3430, 3430,    0,    0, 3430,
3953      3430, 3431, 3431, 3431, 3431,    0, 3431,    0, 3431, 3432,
3954      3432, 3432, 3432,    0,    0, 3432, 3432, 3433, 3433, 3433,
3955         0,    0,    0, 3433, 3434, 3434, 3434, 3434,    0,    0,
3956      3434, 3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435,
3957
3958      3436, 3436, 3436, 3436,    0, 3436,    0, 3436, 3437, 3437,
3959      3437, 3437,    0,    0, 3437, 3437, 3438, 3438, 3438,    0,
3960         0,    0, 3438, 3439, 3439, 3439, 3439,    0,    0, 3439,
3961      3439, 3440, 3440, 3440, 3440,    0,    0, 3440, 3440, 3441,
3962      3441, 3441, 3441,    0,    0, 3441, 3441, 3442, 3442, 3442,
3963      3442,    0,    0, 3442, 3442, 3443, 3443, 3443, 3443, 3443,
3964      3443, 3443, 3443, 3443, 3444, 3444, 3444, 3444, 3444, 3444,
3965      3444, 3444, 3444, 3445, 3445, 3445, 3445,    0, 3445,    0,
3966      3445, 3446, 3446, 3446, 3446,    0,    0, 3446, 3446, 3447,
3967      3447, 3447, 3447,    0,    0, 3447, 3447, 3448, 3448, 3448,
3968
3969         0,    0,    0, 3448, 3449, 3449, 3449, 3449,    0,    0,
3970      3449, 3449, 3450, 3450, 3450,    0,    0,    0, 3450, 3451,
3971      3451, 3451, 3451,    0,    0, 3451, 3451, 3452, 3452, 3452,
3972      3452,    0, 3452,    0, 3452, 3453, 3453, 3453, 3453,    0,
3973         0, 3453, 3453, 3454, 3454, 3454, 3454,    0, 3454,    0,
3974      3454, 3455, 3455, 3455, 3455,    0, 3455,    0, 3455, 3456,
3975      3456, 3456, 3456,    0,    0, 3456, 3456, 3457, 3457, 3457,
3976      3457,    0, 3457,    0, 3457, 3458, 3458, 3458, 3458,    0,
3977         0, 3458, 3458, 3459, 3459, 3459, 3459,    0,    0, 3459,
3978      3459, 3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461,
3979
3980      3461, 3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,
3981         0,    0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0,
3982      3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465,
3983      3465, 3465,    0,    0,    0, 3465, 3466, 3466, 3466,    0,
3984         0,    0, 3466, 3467, 3467, 3467, 3467,    0,    0, 3467,
3985      3467, 3468, 3468, 3468,    0,    0,    0, 3468, 3469, 3469,
3986      3469, 3469,    0,    0, 3469, 3469, 3470, 3470, 3470,    0,
3987         0,    0, 3470, 3471, 3471, 3471,    0,    0,    0, 3471,
3988      3472, 3472, 3472, 3472,    0,    0, 3472, 3472, 3473, 3473,
3989      3473,    0,    0,    0, 3473, 3474, 3474, 3474, 3474,    0,
3990
3991         0, 3474, 3474, 3475, 3475, 3475,    0,    0,    0, 3475,
3992      3476, 3476, 3476, 3476,    0,    0, 3476, 3476, 3477, 3477,
3993      3477, 3477,    0,    0, 3477, 3477, 3478, 3478, 3478, 3478,
3994         0,    0, 3478, 3478, 3479, 3479, 3479,    0,    0,    0,
3995      3479, 3480, 3480, 3480, 3480,    0,    0, 3480, 3480, 3481,
3996      3481, 3481, 3481,    0,    0, 3481, 3481, 3482, 3482, 3482,
3997      3482,    0,    0, 3482, 3482, 3483, 3483, 3483, 3483, 3483,
3998      3483, 3483, 3483, 3483, 3484, 3484, 3484, 3484, 3484, 3484,
3999      3484, 3484, 3484, 3485, 3485, 3485, 3485,    0,    0, 3485,
4000      3485, 3486, 3486, 3486, 3486,    0,    0, 3486, 3486, 3487,
4001
4002      3487, 3487,    0,    0,    0, 3487, 3488, 3488, 3488,    0,
4003         0,    0, 3488, 3489, 3489, 3489, 3489,    0,    0, 3489,
4004      3489, 3490, 3490, 3490, 3490,    0,    0, 3490, 3490, 3491,
4005      3491, 3491, 3491,    0,    0, 3491, 3491, 3492, 3492, 3492,
4006      3492,    0,    0, 3492, 3492, 3493, 3493, 3493, 3493,    0,
4007         0, 3493, 3493, 3494, 3494, 3494,    0,    0,    0, 3494,
4008      3495, 3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496,
4009      3496,    0,    0,    0, 3496, 3497, 3497, 3497, 3497,    0,
4010         0, 3497, 3497, 3498, 3498, 3498,    0,    0,    0, 3498,
4011      3499, 3499, 3499,    0,    0,    0, 3499, 3500, 3500, 3500,
4012
4013      3500,    0,    0, 3500, 3500, 3501, 3501, 3501,    0,    0,
4014         0, 3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502,
4015      3503, 3503, 3503,    0,    0,    0, 3503, 3504, 3504, 3504,
4016         0,    0,    0, 3504, 3505, 3505, 3505,    0,    0,    0,
4017      3505, 3506, 3506, 3506, 3506,    0,    0, 3506, 3506, 3507,
4018      3507, 3507,    0,    0,    0, 3507, 3508, 3508, 3508, 3508,
4019         0,    0, 3508, 3508, 3509, 3509, 3509, 3509,    0,    0,
4020      3509, 3509, 3510, 3510, 3510, 3510,    0,    0, 3510, 3510,
4021      3511, 3511, 3511, 3511,    0, 3511,    0, 3511, 3512, 3512,
4022      3512, 3512,    0,    0, 3512, 3512, 3513, 3513, 3513, 3513,
4023
4024         0,    0, 3513, 3513, 3514, 3514, 3514, 3514,    0,    0,
4025      3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
4026      3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4027      3517, 3517, 3517, 3517,    0,    0, 3517, 3517, 3518, 3518,
4028      3518, 3518,    0,    0, 3518, 3518, 3519, 3519, 3519,    0,
4029         0,    0, 3519, 3520, 3520, 3520, 3520,    0, 3520,    0,
4030      3520, 3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522,
4031      3522, 3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,
4032      3523,    0,    0, 3523, 3523, 3524, 3524, 3524, 3524,    0,
4033         0, 3524, 3524, 3525, 3525, 3525,    0,    0,    0, 3525,
4034
4035      3526, 3526, 3526, 3526,    0,    0, 3526, 3526, 3527, 3527,
4036      3527,    0,    0,    0, 3527, 3528, 3528, 3528, 3528,    0,
4037         0, 3528, 3528, 3529, 3529, 3529,    0,    0,    0, 3529,
4038      3530, 3530, 3530,    0,    0,    0, 3530, 3531, 3531, 3531,
4039      3531,    0, 3531,    0, 3531, 3532, 3532, 3532, 3532,    0,
4040         0, 3532, 3532, 3533, 3533, 3533, 3533,    0, 3533,    0,
4041      3533, 3534, 3534, 3534,    0,    0,    0, 3534, 3535, 3535,
4042      3535,    0,    0,    0, 3535, 3536, 3536, 3536, 3536,    0,
4043         0, 3536, 3536, 3537, 3537, 3537, 3537,    0, 3537,    0,
4044      3537, 3538, 3538, 3538, 3538,    0,    0, 3538, 3538, 3539,
4045
4046      3539, 3539, 3539,    0,    0, 3539, 3539, 3540, 3540, 3540,
4047      3540,    0,    0, 3540, 3540, 3541, 3541, 3541, 3541,    0,
4048      3541,    0, 3541, 3542, 3542, 3542, 3542,    0,    0, 3542,
4049      3542, 3543, 3543, 3543, 3543,    0,    0, 3543, 3543, 3544,
4050      3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3545, 3545,
4051      3545, 3545, 3545, 3545, 3545, 3545, 3545, 3546, 3546, 3546,
4052      3546,    0,    0, 3546, 3546, 3547, 3547, 3547,    0,    0,
4053         0, 3547, 3548, 3548, 3548,    0,    0,    0, 3548, 3549,
4054      3549, 3549, 3549,    0,    0, 3549, 3549, 3550, 3550, 3550,
4055      3550,    0,    0, 3550, 3550, 3551, 3551, 3551, 3551, 3551,
4056
4057      3551, 3551, 3551, 3551, 3552, 3552, 3552, 3552, 3552, 3552,
4058      3552, 3552, 3552, 3553, 3553, 3553, 3553, 3553, 3553, 3553,
4059      3553, 3553, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
4060      3554, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555,
4061      3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3107,
4062      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4063      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4064      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4065      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4066      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4067
4068      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4069      3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107, 3107,
4070      3107, 3107, 3107, 3107
4071     } ;
4072
4073 /* Table of booleans, true if rule could match eol. */
4074 static yyconst flex_int32_t yy_rule_can_match_eol[525] =
4075     {   0,
4076 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4077     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4078     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4079     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4080     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4081     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4082     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4083     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4084     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4085     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4086     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4087     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4088     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4089     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4090     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4091     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4092     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4093     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4094     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4095     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4096     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4097     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4098     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4099     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4100     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4101     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4102     0, 0, 0, 1, 0,     };
4103
4104 static yy_state_type yy_last_accepting_state;
4105 static char *yy_last_accepting_cpos;
4106
4107 extern int surf_parse__flex_debug;
4108 int surf_parse__flex_debug = 0;
4109
4110 /* The intent behind this definition is that it'll catch
4111  * any uses of REJECT which flex missed.
4112  */
4113 #define REJECT reject_used_but_not_detected
4114 #define yymore() yymore_used_but_not_detected
4115 #define YY_MORE_ADJ 0
4116 #define YY_RESTORE_YY_MORE_OFFSET
4117 char *surf_parse_text;
4118 /* Validating XML processor for src/surf/simgrid.dtd.
4119  *
4120  * This program was generated with the FleXML XML processor generator.
4121  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4122  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4123  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4124  * 
4125  * There are two, intertwined parts to this program, part A and part B.
4126  *
4127  * Part A
4128  * ------
4129  * 
4130  * Some parts, here collectively called "Part A", are found in the 
4131  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4132  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4133  *
4134  * You can redistribute, use, perform, display and/or modify "Part A"
4135  * provided the following two conditions hold:
4136  *
4137  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4138  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4139  *    FITNESS FOR A PARTICULAR PURPOSE.
4140  *
4141  * 2. The program distribution conditions do not in any way affect the
4142  *    distribution conditions of the FleXML system used to generate this
4143  *    file or any version of FleXML derived from that system.
4144  *
4145  * Notice that these are explicit rights granted to you for files
4146  * generated by the FleXML system.  For your rights in connection with
4147  * the FleXML system itself please consult the GNU General Public License.
4148  * 
4149  * Part B
4150  * ------
4151  * 
4152  * The other parts, here collectively called "Part B", and which came 
4153  * from the DTD used by FleXML to generate this program, can be 
4154  * distributed (or not, as the case may be) under the terms of whoever
4155  * wrote them, provided these terms respect and obey the two conditions 
4156  * above under the heading "Part A".
4157  *
4158  * The author of and contributors to FleXML specifically disclaim
4159  * any copyright interest in "Part B", unless "Part B" was written 
4160  * by the author of or contributors to FleXML.
4161  * 
4162  */
4163
4164 /* Version strings. */
4165 const char rcs_surfxml_flexml_skeleton[] =
4166  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4167 const char rcs_surfxml_flexml[] =
4168  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4169
4170 /* ANSI headers. */
4171 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4172 #include <stdio.h>
4173 #include <string.h>
4174 #include <assert.h>
4175 #include <stdarg.h>
4176 #include <ctype.h>
4177      
4178 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4179 # ifndef __STRICT_ANSI__
4180 #  include <io.h>
4181 #  include <process.h>
4182 # endif
4183 #else
4184 # include <unistd.h>
4185 #endif
4186      
4187 #ifndef FLEXML_INDEXSTACKSIZE
4188 #define FLEXML_INDEXSTACKSIZE 1000
4189 #endif
4190
4191 /* Generated definitions. */
4192 #define FLEXML_yylineno
4193 #ifndef FLEXML_BUFFERSTACKSIZE
4194 #define FLEXML_BUFFERSTACKSIZE 1000000
4195 #endif
4196 #define FLEXML_NEED_BUFFERLIT
4197
4198 /* XML processor api. */
4199 /* FleXML-provided data. */
4200 int surfxml_pcdata_ix;
4201 extern char *surfxml_bufferstack;
4202 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4203 AT_surfxml_mount_name AX_surfxml_mount_name;
4204 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4205 short int surfxml_mount_name_isset;
4206 AT_surfxml_random_generator AX_surfxml_random_generator;
4207 #define A_surfxml_random_generator AX_surfxml_random_generator
4208 short int surfxml_random_generator_isset;
4209 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4210 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4211 short int surfxml_ASroute_gw_dst_isset;
4212 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4213 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4214 short int surfxml_trace_connect_element_isset;
4215 AT_surfxml_prop_id AX_surfxml_prop_id;
4216 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4217 short int surfxml_prop_id_isset;
4218 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4219 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4220 short int surfxml_host_link_up_isset;
4221 AT_surfxml_host_id AX_surfxml_host_id;
4222 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4223 short int surfxml_host_id_isset;
4224 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4225 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4226 short int surfxml_ASroute_symmetrical_isset;
4227 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4228 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4229 short int surfxml_peer_lat_isset;
4230 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4231 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4232 short int surfxml_process_on_failure_isset;
4233 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4234 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4235 short int surfxml_link_latency_file_isset;
4236 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4237 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4238 short int surfxml_peer_availability_file_isset;
4239 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4240 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4241 short int surfxml_link_ctn_direction_isset;
4242 AT_surfxml_host_state AX_surfxml_host_state;
4243 #define A_surfxml_host_state AX_surfxml_host_state
4244 short int surfxml_host_state_isset;
4245 AT_surfxml_AS_id AX_surfxml_AS_id;
4246 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4247 short int surfxml_AS_id_isset;
4248 AT_surfxml_host_power AX_surfxml_host_power;
4249 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4250 short int surfxml_host_power_isset;
4251 AT_surfxml_router_id AX_surfxml_router_id;
4252 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4253 short int surfxml_router_id_isset;
4254 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4255 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4256 short int surfxml_storage_type_id_isset;
4257 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4258 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4259 short int surfxml_process_start_time_isset;
4260 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4261 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4262 short int surfxml_cluster_suffix_isset;
4263 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4264 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4265 short int surfxml_bypassASroute_dst_isset;
4266 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4267 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4268 short int surfxml_host_link_id_isset;
4269 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4270 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4271 short int surfxml_ASroute_src_isset;
4272 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4273 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4274 short int surfxml_cluster_prefix_isset;
4275 AT_surfxml_trace_file AX_surfxml_trace_file;
4276 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4277 short int surfxml_trace_file_isset;
4278 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4279 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4280 short int surfxml_link_sharing_policy_isset;
4281 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4282 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4283 short int surfxml_storage_typeId_isset;
4284 AT_surfxml_random_min AX_surfxml_random_min;
4285 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4286 short int surfxml_random_min_isset;
4287 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4288 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4289 short int surfxml_link_ctn_id_isset;
4290 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4291 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4292 short int surfxml_peer_bw_out_isset;
4293 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4294 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4295 short int surfxml_cluster_availability_file_isset;
4296 AT_surfxml_storage_content AX_surfxml_storage_content;
4297 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4298 short int surfxml_storage_content_isset;
4299 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4300 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4301 short int surfxml_process_kill_time_isset;
4302 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4303 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4304 short int surfxml_cluster_bb_bw_isset;
4305 AT_surfxml_argument_value AX_surfxml_argument_value;
4306 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4307 short int surfxml_argument_value_isset;
4308 AT_surfxml_link_state AX_surfxml_link_state;
4309 #define A_surfxml_link_state AX_surfxml_link_state
4310 short int surfxml_link_state_isset;
4311 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4312 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4313 short int surfxml_ASroute_gw_src_isset;
4314 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4315 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4316 short int surfxml_AS_routing_isset;
4317 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4318 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4319 short int surfxml_link_bandwidth_isset;
4320 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4321 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4322 short int surfxml_cluster_id_isset;
4323 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4324 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4325 short int surfxml_peer_bw_in_isset;
4326 AT_surfxml_random_mean AX_surfxml_random_mean;
4327 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4328 short int surfxml_random_mean_isset;
4329 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4330 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4331 short int surfxml_storage_type_size_isset;
4332 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4333 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4334 short int surfxml_cluster_bb_lat_isset;
4335 AT_surfxml_link_latency AX_surfxml_link_latency;
4336 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4337 short int surfxml_link_latency_isset;
4338 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4339 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4340 short int surfxml_backbone_bandwidth_isset;
4341 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4342 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4343 short int surfxml_backbone_id_isset;
4344 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4345 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4346 short int surfxml_trace_connect_kind_isset;
4347 AT_surfxml_random_seed AX_surfxml_random_seed;
4348 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4349 short int surfxml_random_seed_isset;
4350 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4351 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4352 short int surfxml_cluster_state_file_isset;
4353 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4354 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4355 short int surfxml_link_bandwidth_file_isset;
4356 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4357 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4358 short int surfxml_storage_type_content_isset;
4359 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4360 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4361 short int surfxml_route_symmetrical_isset;
4362 AT_surfxml_random_id AX_surfxml_random_id;
4363 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4364 short int surfxml_random_id_isset;
4365 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4366 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4367 short int surfxml_mstorage_name_isset;
4368 AT_surfxml_random_max AX_surfxml_random_max;
4369 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4370 short int surfxml_random_max_isset;
4371 AT_surfxml_link_id AX_surfxml_link_id;
4372 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4373 short int surfxml_link_id_isset;
4374 AT_surfxml_process_host AX_surfxml_process_host;
4375 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4376 short int surfxml_process_host_isset;
4377 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4378 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4379 short int surfxml_host_availability_file_isset;
4380 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4381 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4382 short int surfxml_cluster_lat_isset;
4383 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4384 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4385 short int surfxml_router_coordinates_isset;
4386 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4387 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4388 short int surfxml_trace_periodicity_isset;
4389 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4390 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4391 short int surfxml_cluster_bb_sharing_policy_isset;
4392 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4393 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4394 short int surfxml_peer_coordinates_isset;
4395 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4396 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4397 short int surfxml_peer_state_file_isset;
4398 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4399 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4400 short int surfxml_bypassASroute_src_isset;
4401 AT_surfxml_prop_value AX_surfxml_prop_value;
4402 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4403 short int surfxml_prop_value_isset;
4404 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4405 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4406 short int surfxml_mstorage_typeId_isset;
4407 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4408 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4409 short int surfxml_ASroute_dst_isset;
4410 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4411 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4412 short int surfxml_link_state_file_isset;
4413 AT_surfxml_random_radical AX_surfxml_random_radical;
4414 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4415 short int surfxml_random_radical_isset;
4416 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4417 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4418 short int surfxml_bypassASroute_gw_src_isset;
4419 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4420 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4421 short int surfxml_trace_connect_trace_isset;
4422 AT_surfxml_mount_id AX_surfxml_mount_id;
4423 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4424 short int surfxml_mount_id_isset;
4425 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4426 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4427 short int surfxml_cluster_power_isset;
4428 AT_surfxml_process_function AX_surfxml_process_function;
4429 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4430 short int surfxml_process_function_isset;
4431 AT_surfxml_peer_id AX_surfxml_peer_id;
4432 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4433 short int surfxml_peer_id_isset;
4434 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4435 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4436 short int surfxml_cluster_router_id_isset;
4437 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4438 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4439 short int surfxml_cluster_sharing_policy_isset;
4440 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4441 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4442 short int surfxml_bypassRoute_dst_isset;
4443 AT_surfxml_host_core AX_surfxml_host_core;
4444 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4445 short int surfxml_host_core_isset;
4446 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4447 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4448 short int surfxml_storage_type_model_isset;
4449 AT_surfxml_host_availability AX_surfxml_host_availability;
4450 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4451 short int surfxml_host_availability_isset;
4452 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4453 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4454 short int surfxml_bypassRoute_src_isset;
4455 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4456 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4457 short int surfxml_backbone_latency_isset;
4458 AT_surfxml_route_src AX_surfxml_route_src;
4459 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4460 short int surfxml_route_src_isset;
4461 AT_surfxml_storage_id AX_surfxml_storage_id;
4462 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4463 short int surfxml_storage_id_isset;
4464 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4465 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4466 short int surfxml_host_coordinates_isset;
4467 AT_surfxml_trace_id AX_surfxml_trace_id;
4468 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4469 short int surfxml_trace_id_isset;
4470 AT_surfxml_peer_power AX_surfxml_peer_power;
4471 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4472 short int surfxml_peer_power_isset;
4473 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4474 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4475 short int surfxml_cluster_radical_isset;
4476 AT_surfxml_config_id AX_surfxml_config_id;
4477 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4478 short int surfxml_config_id_isset;
4479 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4480 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4481 short int surfxml_bypassASroute_gw_dst_isset;
4482 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4483 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4484 short int surfxml_host_link_down_isset;
4485 AT_surfxml_include_file AX_surfxml_include_file;
4486 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4487 short int surfxml_include_file_isset;
4488 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4489 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4490 short int surfxml_random_std_deviation_isset;
4491 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4492 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4493 short int surfxml_cluster_core_isset;
4494 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4495 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4496 short int surfxml_host_state_file_isset;
4497 AT_surfxml_route_dst AX_surfxml_route_dst;
4498 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4499 short int surfxml_route_dst_isset;
4500 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4501 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4502 short int surfxml_cluster_bw_isset;
4503 AT_surfxml_platform_version AX_surfxml_platform_version;
4504 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4505 short int surfxml_platform_version_isset;
4506
4507 /* XML state. */
4508 #ifdef FLEX_DEBUG
4509 # define ENTER(state)   debug_enter(state,#state)
4510 # define LEAVE          debug_leave()
4511 # define SET(state)     debug_set(state,#state)
4512   static void debug_enter(int, const char*);
4513   static void debug_leave(void);
4514   static void debug_set(int, const char*);
4515 #else
4516 # define ENTER(state)   (yy_push_state(state))
4517 # define LEAVE          (yy_pop_state())
4518 # define SET(state)     BEGIN(state)
4519 #endif
4520
4521 /* Generic actions. */
4522 #define SKIP    /*skip*/
4523 #define SUCCEED        CLEANUP; return 0
4524
4525 #define FAIL    return fail
4526 static int fail(const char*, ...);
4527
4528 enum {flexml_max_err_msg_size = 512};
4529 static char flexml_err_msg[flexml_max_err_msg_size];
4530 const char * surfxml_parse_err_msg()
4531 {
4532     return flexml_err_msg;
4533 }
4534 static void reset_surfxml_parse_err_msg()
4535 {
4536     flexml_err_msg[0] = '\0';
4537 }
4538
4539 /* Cleanup */
4540 static void cleanup(void);
4541 #define CLEANUP  cleanup()
4542
4543 /* Text buffer stack handling. */
4544 char *surfxml_bufferstack = NULL;
4545 static int blimit = FLEXML_BUFFERSTACKSIZE;
4546 static int bnext = 1;
4547
4548 static int *indexstack = NULL;
4549 static int ilimit = FLEXML_INDEXSTACKSIZE;
4550 static int inext = 1;
4551
4552 #define BUFFERSET(P)  (P = bnext)
4553 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4554 #define BUFFERDONE    (BUFFERPUTC('\0'))
4555
4556 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4557
4558 /* after this is called, there are at least 2 slots left in the stack */
4559 static int ck_blimit()
4560 {
4561      if (bnext >= blimit) {
4562          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4563          {
4564              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4565              assert(temp);
4566              surfxml_bufferstack = temp;
4567          }
4568      }
4569      return 0;
4570 }
4571
4572 /* after this is called, there are at least 2 slots left in the stack */
4573 static int ck_ilimit()
4574 {
4575      if (inext >= ilimit) {
4576          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4577          {
4578              int *temp = (int *) realloc(indexstack, ilimit);
4579              assert(temp);
4580              indexstack = temp;
4581          }
4582      }
4583      return 0;
4584 }
4585
4586 #ifdef FLEXML_NEED_BUFFERLIT
4587 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4588 {
4589    BUFFERSET(*pp);
4590    if (c) {
4591       const char *s = strchr(text, c), *e = strrchr(text, c);
4592       assert(s && e && s <= e);
4593       ++s;
4594       while (s < e) {
4595          if (isspace(*s)) {
4596             BUFFERPUTC(' ');
4597             do ++s; while (s < e && isspace(*s));
4598          } else
4599            BUFFERPUTC(*s++);
4600       }
4601    } else {
4602       const char *s = text;
4603       while (*s)
4604         BUFFERPUTC(*s++);
4605    }
4606    BUFFERDONE;
4607 }
4608 #endif
4609
4610 static void pushbuffer(int p)
4611 {
4612     ck_ilimit();
4613     indexstack[inext++] = p;
4614     indexstack[inext++] = bnext;    
4615 }
4616
4617 static int popbuffer(void)
4618 {
4619     assert(inext >= 2);
4620     bnext = indexstack[--inext];
4621     return indexstack[--inext];
4622 }
4623
4624 /* General internal entities are `unput' back onto the input stream... */
4625 #define ENTITYTEXT(T) \
4626   { char *s = (T), *e = s+strlen(s);\
4627     while (--e >= s) { unput(*e); }}
4628
4629 /* Flex standard options. */
4630 #define YY_NO_INPUT 1
4631 /* Flex user-requested options. */
4632 /* XML character classes (currently restricted to ASCII). */
4633 /* "Common syntactic structures." */
4634 /* "Names and Tokens." */
4635 /* Miscellaneous. */
4636 /* Parser states (flex `exclusive start conditions'):
4637  *
4638  * PROLOG       the XML prolog of the document before <?xml...>
4639  * DOCTYPE      the XML prolog of the document after <?xml...>
4640  * EPILOG       after the root element
4641  * INCOMMENT    inside an XML comment <!--....-->
4642  * INPI         inside an XML PI <?...?>
4643  * VALUE1       inside a '...'-delimited literal
4644  * VALUE2       inside a "..."-delimited literal
4645  * CDATA        inside a <![CDATA[...] ]> section.
4646  * ROOT_<tag>   expect root element <tag>
4647  * AL_<tag>     inside the attribute list for <tag>
4648  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4649  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4650  */
4651
4652 /* State names. */
4653 const char* *surfxml_statenames=NULL;
4654
4655 #define INITIAL 0
4656 #define PROLOG 1
4657 #define DOCTYPE 2
4658 #define EPILOG 3
4659 #define INCOMMENT 4
4660 #define INPI 5
4661 #define VALUE1 6
4662 #define VALUE2 7
4663 #define CDATA 8
4664 #define ROOT_surfxml_platform 9
4665 #define AL_surfxml_platform 10
4666 #define S_surfxml_platform 11
4667 #define S_surfxml_platform_1 12
4668 #define S_surfxml_platform_2 13
4669 #define S_surfxml_platform_3 14
4670 #define S_surfxml_platform_4 15
4671 #define S_surfxml_platform_5 16
4672 #define S_surfxml_platform_6 17
4673 #define S_surfxml_platform_7 18
4674 #define S_surfxml_platform_8 19
4675 #define E_surfxml_platform 20
4676 #define AL_surfxml_include 21
4677 #define S_surfxml_include 22
4678 #define S_surfxml_include_1 23
4679 #define S_surfxml_include_2 24
4680 #define E_surfxml_include 25
4681 #define AL_surfxml_trace 26
4682 #define IN_trace 27
4683 #define AL_surfxml_random 28
4684 #define S_surfxml_random 29
4685 #define S_surfxml_random_1 30
4686 #define S_surfxml_random_2 31
4687 #define E_surfxml_random 32
4688 #define AL_surfxml_trace_connect 33
4689 #define E_surfxml_trace_connect 34
4690 #define AL_surfxml_AS 35
4691 #define S_surfxml_AS 36
4692 #define S_surfxml_AS_1 37
4693 #define S_surfxml_AS_2 38
4694 #define S_surfxml_AS_3 39
4695 #define S_surfxml_AS_4 40
4696 #define S_surfxml_AS_5 41
4697 #define S_surfxml_AS_6 42
4698 #define S_surfxml_AS_7 43
4699 #define S_surfxml_AS_8 44
4700 #define S_surfxml_AS_9 45
4701 #define S_surfxml_AS_10 46
4702 #define S_surfxml_AS_11 47
4703 #define S_surfxml_AS_12 48
4704 #define S_surfxml_AS_13 49
4705 #define E_surfxml_AS 50
4706 #define AL_surfxml_storage_type 51
4707 #define S_surfxml_storage_type 52
4708 #define S_surfxml_storage_type_1 53
4709 #define S_surfxml_storage_type_2 54
4710 #define E_surfxml_storage_type 55
4711 #define AL_surfxml_storage 56
4712 #define S_surfxml_storage 57
4713 #define S_surfxml_storage_1 58
4714 #define S_surfxml_storage_2 59
4715 #define E_surfxml_storage 60
4716 #define AL_surfxml_mount 61
4717 #define E_surfxml_mount 62
4718 #define AL_surfxml_mstorage 63
4719 #define E_surfxml_mstorage 64
4720 #define AL_surfxml_host 65
4721 #define S_surfxml_host 66
4722 #define S_surfxml_host_1 67
4723 #define S_surfxml_host_2 68
4724 #define E_surfxml_host 69
4725 #define AL_surfxml_host_link 70
4726 #define E_surfxml_host_link 71
4727 #define AL_surfxml_cluster 72
4728 #define E_surfxml_cluster 73
4729 #define AL_surfxml_peer 74
4730 #define E_surfxml_peer 75
4731 #define AL_surfxml_router 76
4732 #define E_surfxml_router 77
4733 #define AL_surfxml_backbone 78
4734 #define E_surfxml_backbone 79
4735 #define AL_surfxml_link 80
4736 #define S_surfxml_link 81
4737 #define S_surfxml_link_1 82
4738 #define S_surfxml_link_2 83
4739 #define E_surfxml_link 84
4740 #define AL_surfxml_route 85
4741 #define S_surfxml_route 86
4742 #define S_surfxml_route_1 87
4743 #define S_surfxml_route_2 88
4744 #define E_surfxml_route 89
4745 #define AL_surfxml_ASroute 90
4746 #define S_surfxml_ASroute 91
4747 #define S_surfxml_ASroute_1 92
4748 #define S_surfxml_ASroute_2 93
4749 #define E_surfxml_ASroute 94
4750 #define AL_surfxml_link_ctn 95
4751 #define E_surfxml_link_ctn 96
4752 #define AL_surfxml_bypassRoute 97
4753 #define S_surfxml_bypassRoute 98
4754 #define S_surfxml_bypassRoute_1 99
4755 #define S_surfxml_bypassRoute_2 100
4756 #define E_surfxml_bypassRoute 101
4757 #define AL_surfxml_bypassASroute 102
4758 #define S_surfxml_bypassASroute 103
4759 #define S_surfxml_bypassASroute_1 104
4760 #define S_surfxml_bypassASroute_2 105
4761 #define E_surfxml_bypassASroute 106
4762 #define AL_surfxml_process 107
4763 #define S_surfxml_process 108
4764 #define S_surfxml_process_1 109
4765 #define S_surfxml_process_2 110
4766 #define E_surfxml_process 111
4767 #define AL_surfxml_argument 112
4768 #define E_surfxml_argument 113
4769 #define AL_surfxml_config 114
4770 #define S_surfxml_config 115
4771 #define S_surfxml_config_1 116
4772 #define S_surfxml_config_2 117
4773 #define E_surfxml_config 118
4774 #define AL_surfxml_prop 119
4775 #define E_surfxml_prop 120
4776 #define IMPOSSIBLE 121
4777
4778 #ifndef YY_NO_UNISTD_H
4779 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4780  * down here because we want the user's section 1 to have been scanned first.
4781  * The user has a chance to override it with an option.
4782  */
4783 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4784 #  ifndef __STRICT_ANSI__
4785 #    include <io.h>
4786 #    include <process.h>
4787 #  endif
4788 #else
4789 #  include <unistd.h>
4790 #endif
4791 #endif
4792
4793 #ifndef YY_EXTRA_TYPE
4794 #define YY_EXTRA_TYPE void *
4795 #endif
4796
4797 static int yy_init_globals (void );
4798
4799 /* Accessor methods to globals.
4800    These are made visible to non-reentrant scanners for convenience. */
4801
4802 int surf_parse_lex_destroy (void );
4803
4804 int surf_parse_get_debug (void );
4805
4806 void surf_parse_set_debug (int debug_flag  );
4807
4808 YY_EXTRA_TYPE surf_parse_get_extra (void );
4809
4810 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4811
4812 FILE *surf_parse_get_in (void );
4813
4814 void surf_parse_set_in  (FILE * in_str  );
4815
4816 FILE *surf_parse_get_out (void );
4817
4818 void surf_parse_set_out  (FILE * out_str  );
4819
4820 int surf_parse_get_leng (void );
4821
4822 char *surf_parse_get_text (void );
4823
4824 int surf_parse_get_lineno (void );
4825
4826 void surf_parse_set_lineno (int line_number  );
4827
4828 /* Macros after this point can all be overridden by user definitions in
4829  * section 1.
4830  */
4831
4832 #ifndef YY_SKIP_YYWRAP
4833 #ifdef __cplusplus
4834 extern "C" int surf_parse_wrap (void );
4835 #else
4836 extern int surf_parse_wrap (void );
4837 #endif
4838 #endif
4839
4840 #ifndef yytext_ptr
4841 static void yy_flex_strncpy (char *,yyconst char *,int );
4842 #endif
4843
4844 #ifdef YY_NEED_STRLEN
4845 static int yy_flex_strlen (yyconst char * );
4846 #endif
4847
4848 #ifndef YY_NO_INPUT
4849
4850 #ifdef __cplusplus
4851 static int yyinput (void );
4852 #else
4853 static int input (void );
4854 #endif
4855
4856 #endif
4857
4858         static int yy_start_stack_ptr = 0;
4859         static int yy_start_stack_depth = 0;
4860         static int *yy_start_stack = NULL;
4861     
4862     static void yy_push_state (int new_state );
4863     
4864     static void yy_pop_state (void );
4865     
4866 /* Amount of stuff to slurp up with each read. */
4867 #ifndef YY_READ_BUF_SIZE
4868 #ifdef __ia64__
4869 /* On IA-64, the buffer size is 16k, not 8k */
4870 #define YY_READ_BUF_SIZE 16384
4871 #else
4872 #define YY_READ_BUF_SIZE 8192
4873 #endif /* __ia64__ */
4874 #endif
4875
4876 /* Copy whatever the last rule matched to the standard output. */
4877 #ifndef ECHO
4878 /* This used to be an fputs(), but since the string might contain NUL's,
4879  * we now use fwrite().
4880  */
4881 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4882 #endif
4883
4884 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4885  * is returned in "result".
4886  */
4887 #ifndef YY_INPUT
4888 #define YY_INPUT(buf,result,max_size) \
4889         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4890                 { \
4891                 int c = '*'; \
4892                 size_t n; \
4893                 for ( n = 0; n < max_size && \
4894                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4895                         buf[n] = (char) c; \
4896                 if ( c == '\n' ) \
4897                         buf[n++] = (char) c; \
4898                 if ( c == EOF && ferror( surf_parse_in ) ) \
4899                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4900                 result = n; \
4901                 } \
4902         else \
4903                 { \
4904                 errno=0; \
4905                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4906                         { \
4907                         if( errno != EINTR) \
4908                                 { \
4909                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4910                                 break; \
4911                                 } \
4912                         errno=0; \
4913                         clearerr(surf_parse_in); \
4914                         } \
4915                 }\
4916 \
4917
4918 #endif
4919
4920 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4921  * we don't want an extra ';' after the "return" because that will cause
4922  * some compilers to complain about unreachable statements.
4923  */
4924 #ifndef yyterminate
4925 #define yyterminate() return YY_NULL
4926 #endif
4927
4928 /* Number of entries by which start-condition stack grows. */
4929 #ifndef YY_START_STACK_INCR
4930 #define YY_START_STACK_INCR 25
4931 #endif
4932
4933 /* Report a fatal error. */
4934 #ifndef YY_FATAL_ERROR
4935 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4936 #endif
4937
4938 /* end tables serialization structures and prototypes */
4939
4940 /* Default declaration of generated scanner - a define so the user can
4941  * easily add parameters.
4942  */
4943 #ifndef YY_DECL
4944 #define YY_DECL_IS_OURS 1
4945
4946 extern int surf_parse_lex (void);
4947
4948 #define YY_DECL int surf_parse_lex (void)
4949 #endif /* !YY_DECL */
4950
4951 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4952  * have been set up.
4953  */
4954 #ifndef YY_USER_ACTION
4955 #define YY_USER_ACTION
4956 #endif
4957
4958 /* Code executed at the end of each rule. */
4959 #ifndef YY_BREAK
4960 #define YY_BREAK break;
4961 #endif
4962
4963 #define YY_RULE_SETUP \
4964         YY_USER_ACTION
4965
4966 /** The main scanner function which does all the work.
4967  */
4968 YY_DECL
4969 {
4970         register yy_state_type yy_current_state;
4971         register char *yy_cp, *yy_bp;
4972         register int yy_act;
4973     
4974  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4975  SET(PROLOG);
4976  reset_surfxml_parse_err_msg();
4977  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4978  assert(surfxml_bufferstack);
4979  #ifdef FLEX_DEBUG
4980  {
4981      int i;
4982      for (i = 0; i < blimit; i++) {
4983          surfxml_bufferstack[i] = '\377';
4984      }
4985  }
4986  #endif
4987  surfxml_bufferstack[0] = '\0';
4988  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4989  assert(indexstack);
4990  indexstack[0] = 0;
4991
4992   /* FleXML_init */
4993   bnext = inext = 1;
4994   surfxml_bufferliteral('\0', &bnext, "0.0");
4995   surfxml_bufferliteral('\0', &bnext, "2147483647");
4996   surfxml_bufferliteral('\0', &bnext, "1");
4997   surfxml_bufferliteral('\0', &bnext, "1.0");
4998   surfxml_bufferliteral('\0', &bnext, "1");
4999   surfxml_bufferliteral('\0', &bnext, "0.0");
5000   surfxml_bufferliteral('\0', &bnext, "-1.0");
5001   surfxml_bufferliteral('\0', &bnext, "-1.0");
5002   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5003   surfxml_statenames[PROLOG] = NULL;
5004   surfxml_statenames[DOCTYPE] = NULL;
5005   surfxml_statenames[EPILOG] = NULL;
5006   surfxml_statenames[INCOMMENT] = NULL;
5007   surfxml_statenames[INPI] = NULL;
5008   surfxml_statenames[VALUE1] = NULL;
5009   surfxml_statenames[VALUE2] = NULL;
5010   surfxml_statenames[CDATA] = NULL;
5011   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5012   surfxml_statenames[AL_surfxml_platform] = NULL;
5013   surfxml_statenames[S_surfxml_platform] = "platform";
5014   surfxml_statenames[S_surfxml_platform_1] = "platform";
5015   surfxml_statenames[S_surfxml_platform_2] = "platform";
5016   surfxml_statenames[S_surfxml_platform_3] = "platform";
5017   surfxml_statenames[S_surfxml_platform_4] = "platform";
5018   surfxml_statenames[S_surfxml_platform_5] = "platform";
5019   surfxml_statenames[S_surfxml_platform_6] = "platform";
5020   surfxml_statenames[S_surfxml_platform_7] = "platform";
5021   surfxml_statenames[S_surfxml_platform_8] = "platform";
5022   surfxml_statenames[E_surfxml_platform] = "platform";
5023   surfxml_statenames[AL_surfxml_include] = NULL;
5024   surfxml_statenames[S_surfxml_include] = "include";
5025   surfxml_statenames[S_surfxml_include_1] = "include";
5026   surfxml_statenames[S_surfxml_include_2] = "include";
5027   surfxml_statenames[E_surfxml_include] = "include";
5028   surfxml_statenames[AL_surfxml_trace] = NULL;
5029   surfxml_statenames[IN_trace] = "trace";
5030   surfxml_statenames[AL_surfxml_random] = NULL;
5031   surfxml_statenames[S_surfxml_random] = "random";
5032   surfxml_statenames[S_surfxml_random_1] = "random";
5033   surfxml_statenames[S_surfxml_random_2] = "random";
5034   surfxml_statenames[E_surfxml_random] = "random";
5035   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5036   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5037   surfxml_statenames[AL_surfxml_AS] = NULL;
5038   surfxml_statenames[S_surfxml_AS] = "AS";
5039   surfxml_statenames[S_surfxml_AS_1] = "AS";
5040   surfxml_statenames[S_surfxml_AS_2] = "AS";
5041   surfxml_statenames[S_surfxml_AS_3] = "AS";
5042   surfxml_statenames[S_surfxml_AS_4] = "AS";
5043   surfxml_statenames[S_surfxml_AS_5] = "AS";
5044   surfxml_statenames[S_surfxml_AS_6] = "AS";
5045   surfxml_statenames[S_surfxml_AS_7] = "AS";
5046   surfxml_statenames[S_surfxml_AS_8] = "AS";
5047   surfxml_statenames[S_surfxml_AS_9] = "AS";
5048   surfxml_statenames[S_surfxml_AS_10] = "AS";
5049   surfxml_statenames[S_surfxml_AS_11] = "AS";
5050   surfxml_statenames[S_surfxml_AS_12] = "AS";
5051   surfxml_statenames[S_surfxml_AS_13] = "AS";
5052   surfxml_statenames[E_surfxml_AS] = "AS";
5053   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5054   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5055   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5056   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5057   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5058   surfxml_statenames[AL_surfxml_storage] = NULL;
5059   surfxml_statenames[S_surfxml_storage] = "storage";
5060   surfxml_statenames[S_surfxml_storage_1] = "storage";
5061   surfxml_statenames[S_surfxml_storage_2] = "storage";
5062   surfxml_statenames[E_surfxml_storage] = "storage";
5063   surfxml_statenames[AL_surfxml_mount] = NULL;
5064   surfxml_statenames[E_surfxml_mount] = "mount";
5065   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5066   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5067   surfxml_statenames[AL_surfxml_host] = NULL;
5068   surfxml_statenames[S_surfxml_host] = "host";
5069   surfxml_statenames[S_surfxml_host_1] = "host";
5070   surfxml_statenames[S_surfxml_host_2] = "host";
5071   surfxml_statenames[E_surfxml_host] = "host";
5072   surfxml_statenames[AL_surfxml_host_link] = NULL;
5073   surfxml_statenames[E_surfxml_host_link] = "host_link";
5074   surfxml_statenames[AL_surfxml_cluster] = NULL;
5075   surfxml_statenames[E_surfxml_cluster] = "cluster";
5076   surfxml_statenames[AL_surfxml_peer] = NULL;
5077   surfxml_statenames[E_surfxml_peer] = "peer";
5078   surfxml_statenames[AL_surfxml_router] = NULL;
5079   surfxml_statenames[E_surfxml_router] = "router";
5080   surfxml_statenames[AL_surfxml_backbone] = NULL;
5081   surfxml_statenames[E_surfxml_backbone] = "backbone";
5082   surfxml_statenames[AL_surfxml_link] = NULL;
5083   surfxml_statenames[S_surfxml_link] = "link";
5084   surfxml_statenames[S_surfxml_link_1] = "link";
5085   surfxml_statenames[S_surfxml_link_2] = "link";
5086   surfxml_statenames[E_surfxml_link] = "link";
5087   surfxml_statenames[AL_surfxml_route] = NULL;
5088   surfxml_statenames[S_surfxml_route] = "route";
5089   surfxml_statenames[S_surfxml_route_1] = "route";
5090   surfxml_statenames[S_surfxml_route_2] = "route";
5091   surfxml_statenames[E_surfxml_route] = "route";
5092   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5093   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5094   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5095   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5096   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5097   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5098   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5099   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5100   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5101   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5102   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5103   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5104   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5105   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5106   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5107   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5108   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5109   surfxml_statenames[AL_surfxml_process] = NULL;
5110   surfxml_statenames[S_surfxml_process] = "process";
5111   surfxml_statenames[S_surfxml_process_1] = "process";
5112   surfxml_statenames[S_surfxml_process_2] = "process";
5113   surfxml_statenames[E_surfxml_process] = "process";
5114   surfxml_statenames[AL_surfxml_argument] = NULL;
5115   surfxml_statenames[E_surfxml_argument] = "argument";
5116   surfxml_statenames[AL_surfxml_config] = NULL;
5117   surfxml_statenames[S_surfxml_config] = "config";
5118   surfxml_statenames[S_surfxml_config_1] = "config";
5119   surfxml_statenames[S_surfxml_config_2] = "config";
5120   surfxml_statenames[E_surfxml_config] = "config";
5121   surfxml_statenames[AL_surfxml_prop] = NULL;
5122   surfxml_statenames[E_surfxml_prop] = "prop";
5123   }
5124
5125  /* COMMENTS and PIs: handled uniformly for efficiency. */
5126
5127         if ( !(yy_init) )
5128                 {
5129                 (yy_init) = 1;
5130
5131 #ifdef YY_USER_INIT
5132                 YY_USER_INIT;
5133 #endif
5134
5135                 if ( ! (yy_start) )
5136                         (yy_start) = 1; /* first start state */
5137
5138                 if ( ! surf_parse_in )
5139                         surf_parse_in = stdin;
5140
5141                 if ( ! surf_parse_out )
5142                         surf_parse_out = stdout;
5143
5144                 if ( ! YY_CURRENT_BUFFER ) {
5145                         surf_parse_ensure_buffer_stack ();
5146                         YY_CURRENT_BUFFER_LVALUE =
5147                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5148                 }
5149
5150                 surf_parse__load_buffer_state( );
5151                 }
5152
5153         while ( 1 )             /* loops until end-of-file is reached */
5154                 {
5155                 yy_cp = (yy_c_buf_p);
5156
5157                 /* Support of surf_parse_text. */
5158                 *yy_cp = (yy_hold_char);
5159
5160                 /* yy_bp points to the position in yy_ch_buf of the start of
5161                  * the current run.
5162                  */
5163                 yy_bp = yy_cp;
5164
5165                 yy_current_state = (yy_start);
5166 yy_match:
5167                 do
5168                         {
5169                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5170                         if ( yy_accept[yy_current_state] )
5171                                 {
5172                                 (yy_last_accepting_state) = yy_current_state;
5173                                 (yy_last_accepting_cpos) = yy_cp;
5174                                 }
5175                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5176                                 {
5177                                 yy_current_state = (int) yy_def[yy_current_state];
5178                                 if ( yy_current_state >= 3108 )
5179                                         yy_c = yy_meta[(unsigned int) yy_c];
5180                                 }
5181                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5182                         ++yy_cp;
5183                         }
5184                 while ( yy_base[yy_current_state] != 11150 );
5185
5186 yy_find_action:
5187                 yy_act = yy_accept[yy_current_state];
5188                 if ( yy_act == 0 )
5189                         { /* have to back up */
5190                         yy_cp = (yy_last_accepting_cpos);
5191                         yy_current_state = (yy_last_accepting_state);
5192                         yy_act = yy_accept[yy_current_state];
5193                         }
5194
5195                 YY_DO_BEFORE_ACTION;
5196
5197                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5198                         {
5199                         int yyl;
5200                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5201                                 if ( surf_parse_text[yyl] == '\n' )
5202                                            
5203     surf_parse_lineno++;
5204 ;
5205                         }
5206
5207 do_action:      /* This label is used only to access EOF actions. */
5208
5209                 switch ( yy_act )
5210         { /* beginning of action switch */
5211                         case 0: /* must back up */
5212                         /* undo the effects of YY_DO_BEFORE_ACTION */
5213                         *yy_cp = (yy_hold_char);
5214                         yy_cp = (yy_last_accepting_cpos);
5215                         yy_current_state = (yy_last_accepting_state);
5216                         goto yy_find_action;
5217
5218 case 1:
5219 YY_RULE_SETUP
5220 ENTER(INCOMMENT);
5221         YY_BREAK
5222 case 2:
5223 YY_RULE_SETUP
5224 ENTER(INPI);
5225         YY_BREAK
5226
5227 case 3:
5228 YY_RULE_SETUP
5229 LEAVE;
5230         YY_BREAK
5231 case 4:
5232 case 5:
5233 case 6:
5234 /* rule 6 can match eol */
5235 YY_RULE_SETUP
5236 SKIP;
5237         YY_BREAK
5238 case YY_STATE_EOF(INCOMMENT):
5239 FAIL("EOF in comment.");
5240         YY_BREAK
5241
5242 case 7:
5243 YY_RULE_SETUP
5244 LEAVE;
5245         YY_BREAK
5246 case 8:
5247 case 9:
5248 /* rule 9 can match eol */
5249 YY_RULE_SETUP
5250 SKIP;
5251         YY_BREAK
5252 case YY_STATE_EOF(INPI):
5253 FAIL("EOF in PI (processing instruction).");
5254         YY_BREAK
5255
5256 /* SPACES: skipped uniformly */
5257 case 10:
5258 /* rule 10 can match eol */
5259 YY_RULE_SETUP
5260 SKIP;
5261         YY_BREAK
5262 /* PROLOG: determine root element and process it. */
5263
5264 case 11:
5265 /* rule 11 can match eol */
5266 YY_RULE_SETUP
5267 SET(DOCTYPE); 
5268         YY_BREAK
5269 case 12:
5270 /* rule 12 can match eol */
5271 YY_RULE_SETUP
5272 FAIL("Bad declaration %s.",surf_parse_text);
5273         YY_BREAK
5274
5275 case 13:
5276 /* rule 13 can match eol */
5277 YY_RULE_SETUP
5278 SET(ROOT_surfxml_platform);
5279         YY_BREAK
5280 case 14:
5281 /* rule 14 can match eol */
5282 YY_RULE_SETUP
5283 FAIL("Bad declaration %s.",surf_parse_text);
5284         YY_BREAK
5285 case 15:
5286 YY_RULE_SETUP
5287 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5288         YY_BREAK
5289 case YY_STATE_EOF(PROLOG):
5290 case YY_STATE_EOF(DOCTYPE):
5291 FAIL("EOF in prolog.");
5292         YY_BREAK
5293
5294 /* RULES DERIVED FROM DTD. */
5295 /* <!-- Small DTD for SURF based tools. -->  */
5296 case 16:
5297 /* rule 16 can match eol */
5298 YY_RULE_SETUP
5299 FAIL("Starting tag <platform> is not allowed here.");
5300         YY_BREAK
5301 case 17:
5302 /* rule 17 can match eol */
5303 YY_RULE_SETUP
5304 {
5305   AX_surfxml_platform_version = 1;
5306   surfxml_platform_version_isset = 0;
5307   ENTER(AL_surfxml_platform); pushbuffer(0);
5308   }
5309         YY_BREAK
5310
5311 case 18:
5312 /* rule 18 can match eol */
5313 YY_RULE_SETUP
5314 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
5315         YY_BREAK
5316 case 19:
5317 /* rule 19 can match eol */
5318 YY_RULE_SETUP
5319 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
5320         YY_BREAK
5321 case 20:
5322 YY_RULE_SETUP
5323 {
5324   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5325  }
5326         YY_BREAK
5327 case 21:
5328 YY_RULE_SETUP
5329 {
5330   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5331   switch (YY_START) {
5332    case ROOT_surfxml_platform: SET(EPILOG); break;
5333   }
5334  }
5335         YY_BREAK
5336 case 22:
5337 YY_RULE_SETUP
5338 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5339         YY_BREAK
5340 case 23:
5341 YY_RULE_SETUP
5342 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5343         YY_BREAK
5344 case YY_STATE_EOF(AL_surfxml_platform):
5345 FAIL("EOF in attribute list of `platform' element.");
5346         YY_BREAK
5347
5348 case 24:
5349 /* rule 24 can match eol */
5350 YY_RULE_SETUP
5351 {
5352   LEAVE;
5353   ETag_surfxml_platform();
5354   popbuffer(); /* attribute */
5355   switch (YY_START) {
5356    case ROOT_surfxml_platform: SET(EPILOG); break;
5357   }
5358  }
5359         YY_BREAK
5360 case 25:
5361 /* rule 25 can match eol */
5362 YY_RULE_SETUP
5363 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5364         YY_BREAK
5365 case 26:
5366 YY_RULE_SETUP
5367 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5368         YY_BREAK
5369 case YY_STATE_EOF(S_surfxml_platform_8):
5370 case YY_STATE_EOF(S_surfxml_platform_1):
5371 case YY_STATE_EOF(S_surfxml_platform_3):
5372 case YY_STATE_EOF(S_surfxml_platform):
5373 case YY_STATE_EOF(S_surfxml_platform_4):
5374 case YY_STATE_EOF(S_surfxml_platform_6):
5375 case YY_STATE_EOF(E_surfxml_platform):
5376 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5377         YY_BREAK
5378
5379 case 27:
5380 /* rule 27 can match eol */
5381 YY_RULE_SETUP
5382 FAIL("Starting tag <include> is not allowed here.");
5383         YY_BREAK
5384 case 28:
5385 /* rule 28 can match eol */
5386 YY_RULE_SETUP
5387 {
5388   AX_surfxml_include_file = 0;
5389   surfxml_include_file_isset = 0;
5390   ENTER(AL_surfxml_include); pushbuffer(0);
5391   }
5392         YY_BREAK
5393
5394 case 29:
5395 /* rule 29 can match eol */
5396 YY_RULE_SETUP
5397 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5398         YY_BREAK
5399 case 30:
5400 /* rule 30 can match eol */
5401 YY_RULE_SETUP
5402 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5403         YY_BREAK
5404 case 31:
5405 YY_RULE_SETUP
5406 {
5407   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5408   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5409  }
5410         YY_BREAK
5411 case 32:
5412 YY_RULE_SETUP
5413 {
5414   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5415   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5416   switch (YY_START) {
5417    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5418    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5419    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5420    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5421   }
5422  }
5423         YY_BREAK
5424 case 33:
5425 YY_RULE_SETUP
5426 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5427         YY_BREAK
5428 case 34:
5429 YY_RULE_SETUP
5430 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5431         YY_BREAK
5432 case YY_STATE_EOF(AL_surfxml_include):
5433 FAIL("EOF in attribute list of `include' element.");
5434         YY_BREAK
5435
5436 case 35:
5437 /* rule 35 can match eol */
5438 YY_RULE_SETUP
5439 {
5440   LEAVE;
5441   ETag_surfxml_include();
5442   popbuffer(); /* attribute */
5443   switch (YY_START) {
5444    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5445    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5446    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5447    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5448   }
5449  }
5450         YY_BREAK
5451 case 36:
5452 /* rule 36 can match eol */
5453 YY_RULE_SETUP
5454 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5455         YY_BREAK
5456 case 37:
5457 YY_RULE_SETUP
5458 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5459         YY_BREAK
5460 case YY_STATE_EOF(E_surfxml_include):
5461 case YY_STATE_EOF(S_surfxml_include):
5462 case YY_STATE_EOF(S_surfxml_include_2):
5463 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5464         YY_BREAK
5465
5466 case 38:
5467 /* rule 38 can match eol */
5468 YY_RULE_SETUP
5469 FAIL("Starting tag <trace> is not allowed here.");
5470         YY_BREAK
5471 case 39:
5472 /* rule 39 can match eol */
5473 YY_RULE_SETUP
5474 {
5475   AX_surfxml_trace_id = 0;
5476   surfxml_trace_id_isset = 0;
5477   AX_surfxml_trace_file = 0;
5478   surfxml_trace_file_isset = 0;
5479   AX_surfxml_trace_periodicity = 0;
5480   surfxml_trace_periodicity_isset = 0;
5481   ENTER(AL_surfxml_trace); pushbuffer(0);
5482   }
5483         YY_BREAK
5484
5485 case 40:
5486 /* rule 40 can match eol */
5487 YY_RULE_SETUP
5488 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
5489         YY_BREAK
5490 case 41:
5491 /* rule 41 can match eol */
5492 YY_RULE_SETUP
5493 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
5494         YY_BREAK
5495 case 42:
5496 /* rule 42 can match eol */
5497 YY_RULE_SETUP
5498 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
5499         YY_BREAK
5500 case 43:
5501 /* rule 43 can match eol */
5502 YY_RULE_SETUP
5503 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
5504         YY_BREAK
5505 case 44:
5506 /* rule 44 can match eol */
5507 YY_RULE_SETUP
5508 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
5509         YY_BREAK
5510 case 45:
5511 /* rule 45 can match eol */
5512 YY_RULE_SETUP
5513 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
5514         YY_BREAK
5515 case 46:
5516 YY_RULE_SETUP
5517 {
5518   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5519   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5520   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5521  }
5522         YY_BREAK
5523 case 47:
5524 YY_RULE_SETUP
5525 {
5526   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5527   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5528   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5529   switch (YY_START) {
5530    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5531    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5532    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5533    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5534    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;
5535    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5536    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5537   }
5538  }
5539         YY_BREAK
5540 case 48:
5541 YY_RULE_SETUP
5542 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5543         YY_BREAK
5544 case 49:
5545 YY_RULE_SETUP
5546 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5547         YY_BREAK
5548 case YY_STATE_EOF(AL_surfxml_trace):
5549 FAIL("EOF in attribute list of `trace' element.");
5550         YY_BREAK
5551
5552 case 50:
5553 /* rule 50 can match eol */
5554 YY_RULE_SETUP
5555 {
5556   LEAVE;
5557   BUFFERDONE;
5558   ETag_surfxml_trace();
5559   surfxml_pcdata_ix = popbuffer();
5560   popbuffer(); /* attribute */
5561   switch (YY_START) {
5562    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5563    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5564    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5565    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5566    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;
5567    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5568    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5569   }
5570  }
5571         YY_BREAK
5572 case 51:
5573 /* rule 51 can match eol */
5574 YY_RULE_SETUP
5575 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5576         YY_BREAK
5577 case YY_STATE_EOF(IN_trace):
5578 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5579         YY_BREAK
5580
5581 case 52:
5582 /* rule 52 can match eol */
5583 YY_RULE_SETUP
5584 FAIL("Starting tag <random> is not allowed here.");
5585         YY_BREAK
5586 case 53:
5587 /* rule 53 can match eol */
5588 YY_RULE_SETUP
5589 {
5590   AX_surfxml_random_id = 0;
5591   surfxml_random_id_isset = 0;
5592   AX_surfxml_random_min = 0;
5593   surfxml_random_min_isset = 0;
5594   AX_surfxml_random_max = 0;
5595   surfxml_random_max_isset = 0;
5596   AX_surfxml_random_mean = 0;
5597   surfxml_random_mean_isset = 0;
5598   AX_surfxml_random_std_deviation = 0;
5599   surfxml_random_std_deviation_isset = 0;
5600   AX_surfxml_random_seed = 5;
5601   surfxml_random_seed_isset = 0;
5602   AX_surfxml_random_radical = 0;
5603   surfxml_random_radical_isset = 0;
5604   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5605   surfxml_random_generator_isset = 0;
5606   ENTER(AL_surfxml_random); pushbuffer(0);
5607   }
5608         YY_BREAK
5609
5610 case 54:
5611 /* rule 54 can match eol */
5612 YY_RULE_SETUP
5613 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5614         YY_BREAK
5615 case 55:
5616 /* rule 55 can match eol */
5617 YY_RULE_SETUP
5618 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5619         YY_BREAK
5620 case 56:
5621 /* rule 56 can match eol */
5622 YY_RULE_SETUP
5623 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5624         YY_BREAK
5625 case 57:
5626 /* rule 57 can match eol */
5627 YY_RULE_SETUP
5628 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5629         YY_BREAK
5630 case 58:
5631 /* rule 58 can match eol */
5632 YY_RULE_SETUP
5633 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5634         YY_BREAK
5635 case 59:
5636 /* rule 59 can match eol */
5637 YY_RULE_SETUP
5638 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5639         YY_BREAK
5640 case 60:
5641 /* rule 60 can match eol */
5642 YY_RULE_SETUP
5643 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5644         YY_BREAK
5645 case 61:
5646 /* rule 61 can match eol */
5647 YY_RULE_SETUP
5648 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5649         YY_BREAK
5650 case 62:
5651 /* rule 62 can match eol */
5652 YY_RULE_SETUP
5653 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std_deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
5654         YY_BREAK
5655 case 63:
5656 /* rule 63 can match eol */
5657 YY_RULE_SETUP
5658 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std_deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
5659         YY_BREAK
5660 case 64:
5661 /* rule 64 can match eol */
5662 YY_RULE_SETUP
5663 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5664         YY_BREAK
5665 case 65:
5666 /* rule 65 can match eol */
5667 YY_RULE_SETUP
5668 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5669         YY_BREAK
5670 case 66:
5671 /* rule 66 can match eol */
5672 YY_RULE_SETUP
5673 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5674         YY_BREAK
5675 case 67:
5676 /* rule 67 can match eol */
5677 YY_RULE_SETUP
5678 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5679         YY_BREAK
5680 case 68:
5681 /* rule 68 can match eol */
5682 case 69:
5683 /* rule 69 can match eol */
5684 YY_RULE_SETUP
5685 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5686         YY_BREAK
5687 case 70:
5688 /* rule 70 can match eol */
5689 case 71:
5690 /* rule 71 can match eol */
5691 YY_RULE_SETUP
5692 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5693         YY_BREAK
5694 case 72:
5695 /* rule 72 can match eol */
5696 case 73:
5697 /* rule 73 can match eol */
5698 YY_RULE_SETUP
5699 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5700         YY_BREAK
5701 case 74:
5702 /* rule 74 can match eol */
5703 case 75:
5704 /* rule 75 can match eol */
5705 YY_RULE_SETUP
5706 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5707         YY_BREAK
5708 case 76:
5709 YY_RULE_SETUP
5710 {
5711   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5712   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5713   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5714   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5715   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5716   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5717  }
5718         YY_BREAK
5719 case 77:
5720 YY_RULE_SETUP
5721 {
5722   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5723   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5724   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5725   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5726   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5727   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5728   switch (YY_START) {
5729    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5730   }
5731  }
5732         YY_BREAK
5733 case 78:
5734 YY_RULE_SETUP
5735 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5736         YY_BREAK
5737 case 79:
5738 YY_RULE_SETUP
5739 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5740         YY_BREAK
5741 case YY_STATE_EOF(AL_surfxml_random):
5742 FAIL("EOF in attribute list of `random' element.");
5743         YY_BREAK
5744
5745 case 80:
5746 /* rule 80 can match eol */
5747 YY_RULE_SETUP
5748 {
5749   LEAVE;
5750   ETag_surfxml_random();
5751   popbuffer(); /* attribute */
5752   switch (YY_START) {
5753    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5754   }
5755  }
5756         YY_BREAK
5757 case 81:
5758 /* rule 81 can match eol */
5759 YY_RULE_SETUP
5760 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5761         YY_BREAK
5762 case 82:
5763 YY_RULE_SETUP
5764 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5765         YY_BREAK
5766 case YY_STATE_EOF(S_surfxml_random):
5767 case YY_STATE_EOF(S_surfxml_random_2):
5768 case YY_STATE_EOF(E_surfxml_random):
5769 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5770         YY_BREAK
5771
5772 case 83:
5773 /* rule 83 can match eol */
5774 YY_RULE_SETUP
5775 FAIL("Starting tag <trace_connect> is not allowed here.");
5776         YY_BREAK
5777 case 84:
5778 /* rule 84 can match eol */
5779 YY_RULE_SETUP
5780 {
5781   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5782   surfxml_trace_connect_kind_isset = 0;
5783   AX_surfxml_trace_connect_trace = 0;
5784   surfxml_trace_connect_trace_isset = 0;
5785   AX_surfxml_trace_connect_element = 0;
5786   surfxml_trace_connect_element_isset = 0;
5787   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5788   }
5789         YY_BREAK
5790
5791 case 85:
5792 /* rule 85 can match eol */
5793 case 86:
5794 /* rule 86 can match eol */
5795 YY_RULE_SETUP
5796 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5797         YY_BREAK
5798 case 87:
5799 /* rule 87 can match eol */
5800 case 88:
5801 /* rule 88 can match eol */
5802 YY_RULE_SETUP
5803 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5804         YY_BREAK
5805 case 89:
5806 /* rule 89 can match eol */
5807 case 90:
5808 /* rule 90 can match eol */
5809 YY_RULE_SETUP
5810 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5811         YY_BREAK
5812 case 91:
5813 /* rule 91 can match eol */
5814 case 92:
5815 /* rule 92 can match eol */
5816 YY_RULE_SETUP
5817 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5818         YY_BREAK
5819 case 93:
5820 /* rule 93 can match eol */
5821 case 94:
5822 /* rule 94 can match eol */
5823 YY_RULE_SETUP
5824 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5825         YY_BREAK
5826 case 95:
5827 /* rule 95 can match eol */
5828 YY_RULE_SETUP
5829 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");} surfxml_trace_connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
5830         YY_BREAK
5831 case 96:
5832 /* rule 96 can match eol */
5833 YY_RULE_SETUP
5834 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");}  surfxml_trace_connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
5835         YY_BREAK
5836 case 97:
5837 /* rule 97 can match eol */
5838 YY_RULE_SETUP
5839 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");} surfxml_trace_connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
5840         YY_BREAK
5841 case 98:
5842 /* rule 98 can match eol */
5843 YY_RULE_SETUP
5844 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");}  surfxml_trace_connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
5845         YY_BREAK
5846 case 99:
5847 YY_RULE_SETUP
5848 {
5849   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5850   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5851   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5852  }
5853         YY_BREAK
5854 case 100:
5855 YY_RULE_SETUP
5856 {
5857   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5858   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5859   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5860   switch (YY_START) {
5861    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5862    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5863    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5864    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5865    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;
5866    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5867    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5868   }
5869  }
5870         YY_BREAK
5871 case 101:
5872 YY_RULE_SETUP
5873 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5874         YY_BREAK
5875 case 102:
5876 YY_RULE_SETUP
5877 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5878         YY_BREAK
5879 case YY_STATE_EOF(AL_surfxml_trace_connect):
5880 FAIL("EOF in attribute list of `trace_connect' element.");
5881         YY_BREAK
5882
5883 case 103:
5884 /* rule 103 can match eol */
5885 YY_RULE_SETUP
5886 {
5887   LEAVE;
5888   ETag_surfxml_trace_connect();
5889   popbuffer(); /* attribute */
5890   switch (YY_START) {
5891    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5892    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5893    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5894    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5895    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;
5896    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5897    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5898   }
5899  }
5900         YY_BREAK
5901 case 104:
5902 /* rule 104 can match eol */
5903 YY_RULE_SETUP
5904 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5905         YY_BREAK
5906 case 105:
5907 YY_RULE_SETUP
5908 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5909         YY_BREAK
5910 case YY_STATE_EOF(E_surfxml_trace_connect):
5911 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5912         YY_BREAK
5913
5914 case 106:
5915 /* rule 106 can match eol */
5916 YY_RULE_SETUP
5917 FAIL("Starting tag <AS> is not allowed here.");
5918         YY_BREAK
5919 case 107:
5920 /* rule 107 can match eol */
5921 YY_RULE_SETUP
5922 {
5923   AX_surfxml_AS_id = 0;
5924   surfxml_AS_id_isset = 0;
5925   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
5926   surfxml_AS_routing_isset = 0;
5927   ENTER(AL_surfxml_AS); pushbuffer(0);
5928   }
5929         YY_BREAK
5930
5931 case 108:
5932 /* rule 108 can match eol */
5933 YY_RULE_SETUP
5934 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5935         YY_BREAK
5936 case 109:
5937 /* rule 109 can match eol */
5938 YY_RULE_SETUP
5939 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5940         YY_BREAK
5941 case 110:
5942 /* rule 110 can match eol */
5943 case 111:
5944 /* rule 111 can match eol */
5945 YY_RULE_SETUP
5946 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5947         YY_BREAK
5948 case 112:
5949 /* rule 112 can match eol */
5950 case 113:
5951 /* rule 113 can match eol */
5952 YY_RULE_SETUP
5953 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5954         YY_BREAK
5955 case 114:
5956 /* rule 114 can match eol */
5957 case 115:
5958 /* rule 115 can match eol */
5959 YY_RULE_SETUP
5960 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5961         YY_BREAK
5962 case 116:
5963 /* rule 116 can match eol */
5964 case 117:
5965 /* rule 117 can match eol */
5966 YY_RULE_SETUP
5967 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5968         YY_BREAK
5969 case 118:
5970 /* rule 118 can match eol */
5971 case 119:
5972 /* rule 119 can match eol */
5973 YY_RULE_SETUP
5974 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5975         YY_BREAK
5976 case 120:
5977 /* rule 120 can match eol */
5978 case 121:
5979 /* rule 121 can match eol */
5980 YY_RULE_SETUP
5981 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
5982         YY_BREAK
5983 case 122:
5984 /* rule 122 can match eol */
5985 case 123:
5986 /* rule 123 can match eol */
5987 YY_RULE_SETUP
5988 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5989         YY_BREAK
5990 case 124:
5991 /* rule 124 can match eol */
5992 case 125:
5993 /* rule 125 can match eol */
5994 YY_RULE_SETUP
5995 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5996         YY_BREAK
5997 case 126:
5998 YY_RULE_SETUP
5999 {
6000   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6001   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6002  }
6003         YY_BREAK
6004 case 127:
6005 YY_RULE_SETUP
6006 {
6007   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6008   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6009   switch (YY_START) {
6010    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6011    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;
6012    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6013   }
6014  }
6015         YY_BREAK
6016 case 128:
6017 YY_RULE_SETUP
6018 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6019         YY_BREAK
6020 case 129:
6021 YY_RULE_SETUP
6022 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6023         YY_BREAK
6024 case YY_STATE_EOF(AL_surfxml_AS):
6025 FAIL("EOF in attribute list of `AS' element.");
6026         YY_BREAK
6027
6028 case 130:
6029 /* rule 130 can match eol */
6030 YY_RULE_SETUP
6031 {
6032   LEAVE;
6033   ETag_surfxml_AS();
6034   popbuffer(); /* attribute */
6035   switch (YY_START) {
6036    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6037    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;
6038    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6039   }
6040  }
6041         YY_BREAK
6042 case 131:
6043 /* rule 131 can match eol */
6044 YY_RULE_SETUP
6045 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6046         YY_BREAK
6047 case 132:
6048 YY_RULE_SETUP
6049 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6050         YY_BREAK
6051 case YY_STATE_EOF(S_surfxml_AS_9):
6052 case YY_STATE_EOF(S_surfxml_AS_1):
6053 case YY_STATE_EOF(S_surfxml_AS_11):
6054 case YY_STATE_EOF(S_surfxml_AS_6):
6055 case YY_STATE_EOF(E_surfxml_AS):
6056 case YY_STATE_EOF(S_surfxml_AS_3):
6057 case YY_STATE_EOF(S_surfxml_AS_13):
6058 case YY_STATE_EOF(S_surfxml_AS_8):
6059 case YY_STATE_EOF(S_surfxml_AS):
6060 case YY_STATE_EOF(S_surfxml_AS_4):
6061 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6062         YY_BREAK
6063
6064 case 133:
6065 /* rule 133 can match eol */
6066 YY_RULE_SETUP
6067 FAIL("Starting tag <storage_type> is not allowed here.");
6068         YY_BREAK
6069 case 134:
6070 /* rule 134 can match eol */
6071 YY_RULE_SETUP
6072 {
6073   AX_surfxml_storage_type_id = 0;
6074   surfxml_storage_type_id_isset = 0;
6075   AX_surfxml_storage_type_model = 0;
6076   surfxml_storage_type_model_isset = 0;
6077   AX_surfxml_storage_type_size = 0;
6078   surfxml_storage_type_size_isset = 0;
6079   AX_surfxml_storage_type_content = 0;
6080   surfxml_storage_type_content_isset = 0;
6081   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6082   }
6083         YY_BREAK
6084
6085 case 135:
6086 /* rule 135 can match eol */
6087 YY_RULE_SETUP
6088 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");} surfxml_storage_type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
6089         YY_BREAK
6090 case 136:
6091 /* rule 136 can match eol */
6092 YY_RULE_SETUP
6093 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");}  surfxml_storage_type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
6094         YY_BREAK
6095 case 137:
6096 /* rule 137 can match eol */
6097 YY_RULE_SETUP
6098 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");} surfxml_storage_type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
6099         YY_BREAK
6100 case 138:
6101 /* rule 138 can match eol */
6102 YY_RULE_SETUP
6103 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");}  surfxml_storage_type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
6104         YY_BREAK
6105 case 139:
6106 /* rule 139 can match eol */
6107 YY_RULE_SETUP
6108 if (surfxml_storage_type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage_type>");} surfxml_storage_type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_size);
6109         YY_BREAK
6110 case 140:
6111 /* rule 140 can match eol */
6112 YY_RULE_SETUP
6113 if (surfxml_storage_type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage_type>");}  surfxml_storage_type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_size);
6114         YY_BREAK
6115 case 141:
6116 /* rule 141 can match eol */
6117 YY_RULE_SETUP
6118 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");} surfxml_storage_type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
6119         YY_BREAK
6120 case 142:
6121 /* rule 142 can match eol */
6122 YY_RULE_SETUP
6123 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");}  surfxml_storage_type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
6124         YY_BREAK
6125 case 143:
6126 YY_RULE_SETUP
6127 {
6128   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6129   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6130   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6131   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6132  }
6133         YY_BREAK
6134 case 144:
6135 YY_RULE_SETUP
6136 {
6137   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6138   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6139   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6140   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6141   switch (YY_START) {
6142    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6143    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6144   }
6145  }
6146         YY_BREAK
6147 case 145:
6148 YY_RULE_SETUP
6149 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6150         YY_BREAK
6151 case 146:
6152 YY_RULE_SETUP
6153 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6154         YY_BREAK
6155 case YY_STATE_EOF(AL_surfxml_storage_type):
6156 FAIL("EOF in attribute list of `storage_type' element.");
6157         YY_BREAK
6158
6159 case 147:
6160 /* rule 147 can match eol */
6161 YY_RULE_SETUP
6162 {
6163   LEAVE;
6164   ETag_surfxml_storage_type();
6165   popbuffer(); /* attribute */
6166   switch (YY_START) {
6167    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6168    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6169   }
6170  }
6171         YY_BREAK
6172 case 148:
6173 /* rule 148 can match eol */
6174 YY_RULE_SETUP
6175 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6176         YY_BREAK
6177 case 149:
6178 YY_RULE_SETUP
6179 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6180         YY_BREAK
6181 case YY_STATE_EOF(E_surfxml_storage_type):
6182 case YY_STATE_EOF(S_surfxml_storage_type_2):
6183 case YY_STATE_EOF(S_surfxml_storage_type):
6184 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6185         YY_BREAK
6186
6187 case 150:
6188 /* rule 150 can match eol */
6189 YY_RULE_SETUP
6190 FAIL("Starting tag <storage> is not allowed here.");
6191         YY_BREAK
6192 case 151:
6193 /* rule 151 can match eol */
6194 YY_RULE_SETUP
6195 {
6196   AX_surfxml_storage_id = 0;
6197   surfxml_storage_id_isset = 0;
6198   AX_surfxml_storage_typeId = 0;
6199   surfxml_storage_typeId_isset = 0;
6200   AX_surfxml_storage_content = 0;
6201   surfxml_storage_content_isset = 0;
6202   ENTER(AL_surfxml_storage); pushbuffer(0);
6203   }
6204         YY_BREAK
6205
6206 case 152:
6207 /* rule 152 can match eol */
6208 YY_RULE_SETUP
6209 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
6210         YY_BREAK
6211 case 153:
6212 /* rule 153 can match eol */
6213 YY_RULE_SETUP
6214 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
6215         YY_BREAK
6216 case 154:
6217 /* rule 154 can match eol */
6218 YY_RULE_SETUP
6219 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
6220         YY_BREAK
6221 case 155:
6222 /* rule 155 can match eol */
6223 YY_RULE_SETUP
6224 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
6225         YY_BREAK
6226 case 156:
6227 /* rule 156 can match eol */
6228 YY_RULE_SETUP
6229 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6230         YY_BREAK
6231 case 157:
6232 /* rule 157 can match eol */
6233 YY_RULE_SETUP
6234 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6235         YY_BREAK
6236 case 158:
6237 YY_RULE_SETUP
6238 {
6239   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6240   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6241   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6242  }
6243         YY_BREAK
6244 case 159:
6245 YY_RULE_SETUP
6246 {
6247   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6248   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6249   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6250   switch (YY_START) {
6251    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6252    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6253   }
6254  }
6255         YY_BREAK
6256 case 160:
6257 YY_RULE_SETUP
6258 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6259         YY_BREAK
6260 case 161:
6261 YY_RULE_SETUP
6262 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6263         YY_BREAK
6264 case YY_STATE_EOF(AL_surfxml_storage):
6265 FAIL("EOF in attribute list of `storage' element.");
6266         YY_BREAK
6267
6268 case 162:
6269 /* rule 162 can match eol */
6270 YY_RULE_SETUP
6271 {
6272   LEAVE;
6273   ETag_surfxml_storage();
6274   popbuffer(); /* attribute */
6275   switch (YY_START) {
6276    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6277    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6278   }
6279  }
6280         YY_BREAK
6281 case 163:
6282 /* rule 163 can match eol */
6283 YY_RULE_SETUP
6284 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6285         YY_BREAK
6286 case 164:
6287 YY_RULE_SETUP
6288 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6289         YY_BREAK
6290 case YY_STATE_EOF(E_surfxml_storage):
6291 case YY_STATE_EOF(S_surfxml_storage):
6292 case YY_STATE_EOF(S_surfxml_storage_2):
6293 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6294         YY_BREAK
6295
6296 case 165:
6297 /* rule 165 can match eol */
6298 YY_RULE_SETUP
6299 FAIL("Starting tag <mount> is not allowed here.");
6300         YY_BREAK
6301 case 166:
6302 /* rule 166 can match eol */
6303 YY_RULE_SETUP
6304 {
6305   AX_surfxml_mount_id = 0;
6306   surfxml_mount_id_isset = 0;
6307   AX_surfxml_mount_name = 0;
6308   surfxml_mount_name_isset = 0;
6309   ENTER(AL_surfxml_mount); pushbuffer(0);
6310   }
6311         YY_BREAK
6312
6313 case 167:
6314 /* rule 167 can match eol */
6315 YY_RULE_SETUP
6316 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6317         YY_BREAK
6318 case 168:
6319 /* rule 168 can match eol */
6320 YY_RULE_SETUP
6321 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6322         YY_BREAK
6323 case 169:
6324 /* rule 169 can match eol */
6325 YY_RULE_SETUP
6326 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
6327         YY_BREAK
6328 case 170:
6329 /* rule 170 can match eol */
6330 YY_RULE_SETUP
6331 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
6332         YY_BREAK
6333 case 171:
6334 YY_RULE_SETUP
6335 {
6336   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6337   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6338   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6339  }
6340         YY_BREAK
6341 case 172:
6342 YY_RULE_SETUP
6343 {
6344   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6345   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6346   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6347   switch (YY_START) {
6348    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6349   }
6350  }
6351         YY_BREAK
6352 case 173:
6353 YY_RULE_SETUP
6354 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6355         YY_BREAK
6356 case 174:
6357 YY_RULE_SETUP
6358 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6359         YY_BREAK
6360 case YY_STATE_EOF(AL_surfxml_mount):
6361 FAIL("EOF in attribute list of `mount' element.");
6362         YY_BREAK
6363
6364 case 175:
6365 /* rule 175 can match eol */
6366 YY_RULE_SETUP
6367 {
6368   LEAVE;
6369   ETag_surfxml_mount();
6370   popbuffer(); /* attribute */
6371   switch (YY_START) {
6372    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6373   }
6374  }
6375         YY_BREAK
6376 case 176:
6377 /* rule 176 can match eol */
6378 YY_RULE_SETUP
6379 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6380         YY_BREAK
6381 case 177:
6382 YY_RULE_SETUP
6383 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6384         YY_BREAK
6385 case YY_STATE_EOF(E_surfxml_mount):
6386 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6387         YY_BREAK
6388
6389 case 178:
6390 /* rule 178 can match eol */
6391 YY_RULE_SETUP
6392 FAIL("Starting tag <mstorage> is not allowed here.");
6393         YY_BREAK
6394 case 179:
6395 /* rule 179 can match eol */
6396 YY_RULE_SETUP
6397 {
6398   AX_surfxml_mstorage_typeId = 0;
6399   surfxml_mstorage_typeId_isset = 0;
6400   AX_surfxml_mstorage_name = 0;
6401   surfxml_mstorage_name_isset = 0;
6402   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6403   }
6404         YY_BREAK
6405
6406 case 180:
6407 /* rule 180 can match eol */
6408 YY_RULE_SETUP
6409 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6410         YY_BREAK
6411 case 181:
6412 /* rule 181 can match eol */
6413 YY_RULE_SETUP
6414 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6415         YY_BREAK
6416 case 182:
6417 /* rule 182 can match eol */
6418 YY_RULE_SETUP
6419 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6420         YY_BREAK
6421 case 183:
6422 /* rule 183 can match eol */
6423 YY_RULE_SETUP
6424 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6425         YY_BREAK
6426 case 184:
6427 YY_RULE_SETUP
6428 {
6429   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6430   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6431   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6432  }
6433         YY_BREAK
6434 case 185:
6435 YY_RULE_SETUP
6436 {
6437   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6438   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6439   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6440   switch (YY_START) {
6441    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6442   }
6443  }
6444         YY_BREAK
6445 case 186:
6446 YY_RULE_SETUP
6447 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6448         YY_BREAK
6449 case 187:
6450 YY_RULE_SETUP
6451 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6452         YY_BREAK
6453 case YY_STATE_EOF(AL_surfxml_mstorage):
6454 FAIL("EOF in attribute list of `mstorage' element.");
6455         YY_BREAK
6456
6457 case 188:
6458 /* rule 188 can match eol */
6459 YY_RULE_SETUP
6460 {
6461   LEAVE;
6462   ETag_surfxml_mstorage();
6463   popbuffer(); /* attribute */
6464   switch (YY_START) {
6465    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6466   }
6467  }
6468         YY_BREAK
6469 case 189:
6470 /* rule 189 can match eol */
6471 YY_RULE_SETUP
6472 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6473         YY_BREAK
6474 case 190:
6475 YY_RULE_SETUP
6476 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6477         YY_BREAK
6478 case YY_STATE_EOF(E_surfxml_mstorage):
6479 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6480         YY_BREAK
6481
6482 case 191:
6483 /* rule 191 can match eol */
6484 YY_RULE_SETUP
6485 FAIL("Starting tag <host> is not allowed here.");
6486         YY_BREAK
6487 case 192:
6488 /* rule 192 can match eol */
6489 YY_RULE_SETUP
6490 {
6491   AX_surfxml_host_id = 0;
6492   surfxml_host_id_isset = 0;
6493   AX_surfxml_host_power = 0;
6494   surfxml_host_power_isset = 0;
6495   AX_surfxml_host_core = 16;
6496   surfxml_host_core_isset = 0;
6497   AX_surfxml_host_availability = 18;
6498   surfxml_host_availability_isset = 0;
6499   AX_surfxml_host_availability_file = 0;
6500   surfxml_host_availability_file_isset = 0;
6501   AX_surfxml_host_state = A_surfxml_host_state_ON;
6502   surfxml_host_state_isset = 0;
6503   AX_surfxml_host_state_file = 0;
6504   surfxml_host_state_file_isset = 0;
6505   AX_surfxml_host_coordinates = 0;
6506   surfxml_host_coordinates_isset = 0;
6507   ENTER(AL_surfxml_host); pushbuffer(0);
6508   }
6509         YY_BREAK
6510
6511 case 193:
6512 /* rule 193 can match eol */
6513 YY_RULE_SETUP
6514 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
6515         YY_BREAK
6516 case 194:
6517 /* rule 194 can match eol */
6518 YY_RULE_SETUP
6519 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
6520         YY_BREAK
6521 case 195:
6522 /* rule 195 can match eol */
6523 YY_RULE_SETUP
6524 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6525         YY_BREAK
6526 case 196:
6527 /* rule 196 can match eol */
6528 YY_RULE_SETUP
6529 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6530         YY_BREAK
6531 case 197:
6532 /* rule 197 can match eol */
6533 YY_RULE_SETUP
6534 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
6535         YY_BREAK
6536 case 198:
6537 /* rule 198 can match eol */
6538 YY_RULE_SETUP
6539 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
6540         YY_BREAK
6541 case 199:
6542 /* rule 199 can match eol */
6543 YY_RULE_SETUP
6544 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6545         YY_BREAK
6546 case 200:
6547 /* rule 200 can match eol */
6548 YY_RULE_SETUP
6549 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6550         YY_BREAK
6551 case 201:
6552 /* rule 201 can match eol */
6553 YY_RULE_SETUP
6554 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
6555         YY_BREAK
6556 case 202:
6557 /* rule 202 can match eol */
6558 YY_RULE_SETUP
6559 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
6560         YY_BREAK
6561 case 203:
6562 /* rule 203 can match eol */
6563 case 204:
6564 /* rule 204 can match eol */
6565 YY_RULE_SETUP
6566 A_surfxml_host_state = A_surfxml_host_state_ON;
6567         YY_BREAK
6568 case 205:
6569 /* rule 205 can match eol */
6570 case 206:
6571 /* rule 206 can match eol */
6572 YY_RULE_SETUP
6573 A_surfxml_host_state = A_surfxml_host_state_OFF;
6574         YY_BREAK
6575 case 207:
6576 /* rule 207 can match eol */
6577 YY_RULE_SETUP
6578 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
6579         YY_BREAK
6580 case 208:
6581 /* rule 208 can match eol */
6582 YY_RULE_SETUP
6583 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
6584         YY_BREAK
6585 case 209:
6586 /* rule 209 can match eol */
6587 YY_RULE_SETUP
6588 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
6589         YY_BREAK
6590 case 210:
6591 /* rule 210 can match eol */
6592 YY_RULE_SETUP
6593 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
6594         YY_BREAK
6595 case 211:
6596 YY_RULE_SETUP
6597 {
6598   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6599   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6600   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6601  }
6602         YY_BREAK
6603 case 212:
6604 YY_RULE_SETUP
6605 {
6606   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6607   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6608   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6609   switch (YY_START) {
6610    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6611   }
6612  }
6613         YY_BREAK
6614 case 213:
6615 YY_RULE_SETUP
6616 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6617         YY_BREAK
6618 case 214:
6619 YY_RULE_SETUP
6620 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6621         YY_BREAK
6622 case YY_STATE_EOF(AL_surfxml_host):
6623 FAIL("EOF in attribute list of `host' element.");
6624         YY_BREAK
6625
6626 case 215:
6627 /* rule 215 can match eol */
6628 YY_RULE_SETUP
6629 {
6630   LEAVE;
6631   ETag_surfxml_host();
6632   popbuffer(); /* attribute */
6633   switch (YY_START) {
6634    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6635   }
6636  }
6637         YY_BREAK
6638 case 216:
6639 /* rule 216 can match eol */
6640 YY_RULE_SETUP
6641 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6642         YY_BREAK
6643 case 217:
6644 YY_RULE_SETUP
6645 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6646         YY_BREAK
6647 case YY_STATE_EOF(S_surfxml_host):
6648 case YY_STATE_EOF(E_surfxml_host):
6649 case YY_STATE_EOF(S_surfxml_host_2):
6650 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6651         YY_BREAK
6652
6653 case 218:
6654 /* rule 218 can match eol */
6655 YY_RULE_SETUP
6656 FAIL("Starting tag <host_link> is not allowed here.");
6657         YY_BREAK
6658 case 219:
6659 /* rule 219 can match eol */
6660 YY_RULE_SETUP
6661 {
6662   AX_surfxml_host_link_id = 0;
6663   surfxml_host_link_id_isset = 0;
6664   AX_surfxml_host_link_up = 0;
6665   surfxml_host_link_up_isset = 0;
6666   AX_surfxml_host_link_down = 0;
6667   surfxml_host_link_down_isset = 0;
6668   ENTER(AL_surfxml_host_link); pushbuffer(0);
6669   }
6670         YY_BREAK
6671
6672 case 220:
6673 /* rule 220 can match eol */
6674 YY_RULE_SETUP
6675 if (surfxml_host_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host_link>");} surfxml_host_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_id);
6676         YY_BREAK
6677 case 221:
6678 /* rule 221 can match eol */
6679 YY_RULE_SETUP
6680 if (surfxml_host_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host_link>");}  surfxml_host_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_id);
6681         YY_BREAK
6682 case 222:
6683 /* rule 222 can match eol */
6684 YY_RULE_SETUP
6685 if (surfxml_host_link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host_link>");} surfxml_host_link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_up);
6686         YY_BREAK
6687 case 223:
6688 /* rule 223 can match eol */
6689 YY_RULE_SETUP
6690 if (surfxml_host_link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host_link>");}  surfxml_host_link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_up);
6691         YY_BREAK
6692 case 224:
6693 /* rule 224 can match eol */
6694 YY_RULE_SETUP
6695 if (surfxml_host_link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host_link>");} surfxml_host_link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_down);
6696         YY_BREAK
6697 case 225:
6698 /* rule 225 can match eol */
6699 YY_RULE_SETUP
6700 if (surfxml_host_link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host_link>");}  surfxml_host_link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_down);
6701         YY_BREAK
6702 case 226:
6703 YY_RULE_SETUP
6704 {
6705   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6706   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6707   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6708   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6709  }
6710         YY_BREAK
6711 case 227:
6712 YY_RULE_SETUP
6713 {
6714   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6715   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6716   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6717   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6718   switch (YY_START) {
6719    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6720   }
6721  }
6722         YY_BREAK
6723 case 228:
6724 YY_RULE_SETUP
6725 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6726         YY_BREAK
6727 case 229:
6728 YY_RULE_SETUP
6729 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6730         YY_BREAK
6731 case YY_STATE_EOF(AL_surfxml_host_link):
6732 FAIL("EOF in attribute list of `host_link' element.");
6733         YY_BREAK
6734
6735 case 230:
6736 /* rule 230 can match eol */
6737 YY_RULE_SETUP
6738 {
6739   LEAVE;
6740   ETag_surfxml_host_link();
6741   popbuffer(); /* attribute */
6742   switch (YY_START) {
6743    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6744   }
6745  }
6746         YY_BREAK
6747 case 231:
6748 /* rule 231 can match eol */
6749 YY_RULE_SETUP
6750 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6751         YY_BREAK
6752 case 232:
6753 YY_RULE_SETUP
6754 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6755         YY_BREAK
6756 case YY_STATE_EOF(E_surfxml_host_link):
6757 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6758         YY_BREAK
6759
6760 case 233:
6761 /* rule 233 can match eol */
6762 YY_RULE_SETUP
6763 FAIL("Starting tag <cluster> is not allowed here.");
6764         YY_BREAK
6765 case 234:
6766 /* rule 234 can match eol */
6767 YY_RULE_SETUP
6768 {
6769   AX_surfxml_cluster_id = 0;
6770   surfxml_cluster_id_isset = 0;
6771   AX_surfxml_cluster_prefix = 0;
6772   surfxml_cluster_prefix_isset = 0;
6773   AX_surfxml_cluster_suffix = 0;
6774   surfxml_cluster_suffix_isset = 0;
6775   AX_surfxml_cluster_radical = 0;
6776   surfxml_cluster_radical_isset = 0;
6777   AX_surfxml_cluster_power = 0;
6778   surfxml_cluster_power_isset = 0;
6779   AX_surfxml_cluster_core = 22;
6780   surfxml_cluster_core_isset = 0;
6781   AX_surfxml_cluster_bw = 0;
6782   surfxml_cluster_bw_isset = 0;
6783   AX_surfxml_cluster_lat = 0;
6784   surfxml_cluster_lat_isset = 0;
6785   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6786   surfxml_cluster_sharing_policy_isset = 0;
6787   AX_surfxml_cluster_bb_bw = 0;
6788   surfxml_cluster_bb_bw_isset = 0;
6789   AX_surfxml_cluster_bb_lat = 0;
6790   surfxml_cluster_bb_lat_isset = 0;
6791   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6792   surfxml_cluster_bb_sharing_policy_isset = 0;
6793   AX_surfxml_cluster_availability_file = 0;
6794   surfxml_cluster_availability_file_isset = 0;
6795   AX_surfxml_cluster_state_file = 0;
6796   surfxml_cluster_state_file_isset = 0;
6797   AX_surfxml_cluster_router_id = 0;
6798   surfxml_cluster_router_id_isset = 0;
6799   ENTER(AL_surfxml_cluster); pushbuffer(0);
6800   }
6801         YY_BREAK
6802
6803 case 235:
6804 /* rule 235 can match eol */
6805 YY_RULE_SETUP
6806 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6807         YY_BREAK
6808 case 236:
6809 /* rule 236 can match eol */
6810 YY_RULE_SETUP
6811 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6812         YY_BREAK
6813 case 237:
6814 /* rule 237 can match eol */
6815 YY_RULE_SETUP
6816 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6817         YY_BREAK
6818 case 238:
6819 /* rule 238 can match eol */
6820 YY_RULE_SETUP
6821 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6822         YY_BREAK
6823 case 239:
6824 /* rule 239 can match eol */
6825 YY_RULE_SETUP
6826 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6827         YY_BREAK
6828 case 240:
6829 /* rule 240 can match eol */
6830 YY_RULE_SETUP
6831 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6832         YY_BREAK
6833 case 241:
6834 /* rule 241 can match eol */
6835 YY_RULE_SETUP
6836 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6837         YY_BREAK
6838 case 242:
6839 /* rule 242 can match eol */
6840 YY_RULE_SETUP
6841 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6842         YY_BREAK
6843 case 243:
6844 /* rule 243 can match eol */
6845 YY_RULE_SETUP
6846 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
6847         YY_BREAK
6848 case 244:
6849 /* rule 244 can match eol */
6850 YY_RULE_SETUP
6851 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
6852         YY_BREAK
6853 case 245:
6854 /* rule 245 can match eol */
6855 YY_RULE_SETUP
6856 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6857         YY_BREAK
6858 case 246:
6859 /* rule 246 can match eol */
6860 YY_RULE_SETUP
6861 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6862         YY_BREAK
6863 case 247:
6864 /* rule 247 can match eol */
6865 YY_RULE_SETUP
6866 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6867         YY_BREAK
6868 case 248:
6869 /* rule 248 can match eol */
6870 YY_RULE_SETUP
6871 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6872         YY_BREAK
6873 case 249:
6874 /* rule 249 can match eol */
6875 YY_RULE_SETUP
6876 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6877         YY_BREAK
6878 case 250:
6879 /* rule 250 can match eol */
6880 YY_RULE_SETUP
6881 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6882         YY_BREAK
6883 case 251:
6884 /* rule 251 can match eol */
6885 case 252:
6886 /* rule 252 can match eol */
6887 YY_RULE_SETUP
6888 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6889         YY_BREAK
6890 case 253:
6891 /* rule 253 can match eol */
6892 case 254:
6893 /* rule 254 can match eol */
6894 YY_RULE_SETUP
6895 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6896         YY_BREAK
6897 case 255:
6898 /* rule 255 can match eol */
6899 case 256:
6900 /* rule 256 can match eol */
6901 YY_RULE_SETUP
6902 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6903         YY_BREAK
6904 case 257:
6905 /* rule 257 can match eol */
6906 YY_RULE_SETUP
6907 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
6908         YY_BREAK
6909 case 258:
6910 /* rule 258 can match eol */
6911 YY_RULE_SETUP
6912 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
6913         YY_BREAK
6914 case 259:
6915 /* rule 259 can match eol */
6916 YY_RULE_SETUP
6917 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
6918         YY_BREAK
6919 case 260:
6920 /* rule 260 can match eol */
6921 YY_RULE_SETUP
6922 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
6923         YY_BREAK
6924 case 261:
6925 /* rule 261 can match eol */
6926 case 262:
6927 /* rule 262 can match eol */
6928 YY_RULE_SETUP
6929 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6930         YY_BREAK
6931 case 263:
6932 /* rule 263 can match eol */
6933 case 264:
6934 /* rule 264 can match eol */
6935 YY_RULE_SETUP
6936 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6937         YY_BREAK
6938 case 265:
6939 /* rule 265 can match eol */
6940 YY_RULE_SETUP
6941 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
6942         YY_BREAK
6943 case 266:
6944 /* rule 266 can match eol */
6945 YY_RULE_SETUP
6946 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
6947         YY_BREAK
6948 case 267:
6949 /* rule 267 can match eol */
6950 YY_RULE_SETUP
6951 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
6952         YY_BREAK
6953 case 268:
6954 /* rule 268 can match eol */
6955 YY_RULE_SETUP
6956 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
6957         YY_BREAK
6958 case 269:
6959 /* rule 269 can match eol */
6960 YY_RULE_SETUP
6961 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
6962         YY_BREAK
6963 case 270:
6964 /* rule 270 can match eol */
6965 YY_RULE_SETUP
6966 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
6967         YY_BREAK
6968 case 271:
6969 YY_RULE_SETUP
6970 {
6971   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6972   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6973   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6974   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6975   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6976   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6977   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6978   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6979  }
6980         YY_BREAK
6981 case 272:
6982 YY_RULE_SETUP
6983 {
6984   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6985   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6986   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6987   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6988   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6989   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6990   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6991   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6992   switch (YY_START) {
6993    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6994    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;
6995    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6996   }
6997  }
6998         YY_BREAK
6999 case 273:
7000 YY_RULE_SETUP
7001 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7002         YY_BREAK
7003 case 274:
7004 YY_RULE_SETUP
7005 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7006         YY_BREAK
7007 case YY_STATE_EOF(AL_surfxml_cluster):
7008 FAIL("EOF in attribute list of `cluster' element.");
7009         YY_BREAK
7010
7011 case 275:
7012 /* rule 275 can match eol */
7013 YY_RULE_SETUP
7014 {
7015   LEAVE;
7016   ETag_surfxml_cluster();
7017   popbuffer(); /* attribute */
7018   switch (YY_START) {
7019    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7020    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;
7021    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7022   }
7023  }
7024         YY_BREAK
7025 case 276:
7026 /* rule 276 can match eol */
7027 YY_RULE_SETUP
7028 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7029         YY_BREAK
7030 case 277:
7031 YY_RULE_SETUP
7032 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7033         YY_BREAK
7034 case YY_STATE_EOF(E_surfxml_cluster):
7035 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7036         YY_BREAK
7037
7038 case 278:
7039 /* rule 278 can match eol */
7040 YY_RULE_SETUP
7041 FAIL("Starting tag <peer> is not allowed here.");
7042         YY_BREAK
7043 case 279:
7044 /* rule 279 can match eol */
7045 YY_RULE_SETUP
7046 {
7047   AX_surfxml_peer_id = 0;
7048   surfxml_peer_id_isset = 0;
7049   AX_surfxml_peer_power = 0;
7050   surfxml_peer_power_isset = 0;
7051   AX_surfxml_peer_bw_in = 0;
7052   surfxml_peer_bw_in_isset = 0;
7053   AX_surfxml_peer_bw_out = 0;
7054   surfxml_peer_bw_out_isset = 0;
7055   AX_surfxml_peer_lat = 0;
7056   surfxml_peer_lat_isset = 0;
7057   AX_surfxml_peer_coordinates = 0;
7058   surfxml_peer_coordinates_isset = 0;
7059   AX_surfxml_peer_availability_file = 0;
7060   surfxml_peer_availability_file_isset = 0;
7061   AX_surfxml_peer_state_file = 0;
7062   surfxml_peer_state_file_isset = 0;
7063   ENTER(AL_surfxml_peer); pushbuffer(0);
7064   }
7065         YY_BREAK
7066
7067 case 280:
7068 /* rule 280 can match eol */
7069 YY_RULE_SETUP
7070 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7071         YY_BREAK
7072 case 281:
7073 /* rule 281 can match eol */
7074 YY_RULE_SETUP
7075 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7076         YY_BREAK
7077 case 282:
7078 /* rule 282 can match eol */
7079 YY_RULE_SETUP
7080 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7081         YY_BREAK
7082 case 283:
7083 /* rule 283 can match eol */
7084 YY_RULE_SETUP
7085 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7086         YY_BREAK
7087 case 284:
7088 /* rule 284 can match eol */
7089 YY_RULE_SETUP
7090 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw_in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
7091         YY_BREAK
7092 case 285:
7093 /* rule 285 can match eol */
7094 YY_RULE_SETUP
7095 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw_in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
7096         YY_BREAK
7097 case 286:
7098 /* rule 286 can match eol */
7099 YY_RULE_SETUP
7100 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw_out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
7101         YY_BREAK
7102 case 287:
7103 /* rule 287 can match eol */
7104 YY_RULE_SETUP
7105 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw_out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
7106         YY_BREAK
7107 case 288:
7108 /* rule 288 can match eol */
7109 YY_RULE_SETUP
7110 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7111         YY_BREAK
7112 case 289:
7113 /* rule 289 can match eol */
7114 YY_RULE_SETUP
7115 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7116         YY_BREAK
7117 case 290:
7118 /* rule 290 can match eol */
7119 YY_RULE_SETUP
7120 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7121         YY_BREAK
7122 case 291:
7123 /* rule 291 can match eol */
7124 YY_RULE_SETUP
7125 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7126         YY_BREAK
7127 case 292:
7128 /* rule 292 can match eol */
7129 YY_RULE_SETUP
7130 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
7131         YY_BREAK
7132 case 293:
7133 /* rule 293 can match eol */
7134 YY_RULE_SETUP
7135 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
7136         YY_BREAK
7137 case 294:
7138 /* rule 294 can match eol */
7139 YY_RULE_SETUP
7140 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
7141         YY_BREAK
7142 case 295:
7143 /* rule 295 can match eol */
7144 YY_RULE_SETUP
7145 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
7146         YY_BREAK
7147 case 296:
7148 YY_RULE_SETUP
7149 {
7150   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7151   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7152   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7153   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7154   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7155   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7156  }
7157         YY_BREAK
7158 case 297:
7159 YY_RULE_SETUP
7160 {
7161   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7162   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7163   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7164   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7165   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7166   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7167   switch (YY_START) {
7168    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7169    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;
7170    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7171   }
7172  }
7173         YY_BREAK
7174 case 298:
7175 YY_RULE_SETUP
7176 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7177         YY_BREAK
7178 case 299:
7179 YY_RULE_SETUP
7180 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7181         YY_BREAK
7182 case YY_STATE_EOF(AL_surfxml_peer):
7183 FAIL("EOF in attribute list of `peer' element.");
7184         YY_BREAK
7185
7186 case 300:
7187 /* rule 300 can match eol */
7188 YY_RULE_SETUP
7189 {
7190   LEAVE;
7191   ETag_surfxml_peer();
7192   popbuffer(); /* attribute */
7193   switch (YY_START) {
7194    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7195    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;
7196    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7197   }
7198  }
7199         YY_BREAK
7200 case 301:
7201 /* rule 301 can match eol */
7202 YY_RULE_SETUP
7203 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7204         YY_BREAK
7205 case 302:
7206 YY_RULE_SETUP
7207 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7208         YY_BREAK
7209 case YY_STATE_EOF(E_surfxml_peer):
7210 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7211         YY_BREAK
7212
7213 case 303:
7214 /* rule 303 can match eol */
7215 YY_RULE_SETUP
7216 FAIL("Starting tag <router> is not allowed here.");
7217         YY_BREAK
7218 case 304:
7219 /* rule 304 can match eol */
7220 YY_RULE_SETUP
7221 {
7222   AX_surfxml_router_id = 0;
7223   surfxml_router_id_isset = 0;
7224   AX_surfxml_router_coordinates = 0;
7225   surfxml_router_coordinates_isset = 0;
7226   ENTER(AL_surfxml_router); pushbuffer(0);
7227   }
7228         YY_BREAK
7229
7230 case 305:
7231 /* rule 305 can match eol */
7232 YY_RULE_SETUP
7233 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
7234         YY_BREAK
7235 case 306:
7236 /* rule 306 can match eol */
7237 YY_RULE_SETUP
7238 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
7239         YY_BREAK
7240 case 307:
7241 /* rule 307 can match eol */
7242 YY_RULE_SETUP
7243 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
7244         YY_BREAK
7245 case 308:
7246 /* rule 308 can match eol */
7247 YY_RULE_SETUP
7248 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
7249         YY_BREAK
7250 case 309:
7251 YY_RULE_SETUP
7252 {
7253   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7254   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7255  }
7256         YY_BREAK
7257 case 310:
7258 YY_RULE_SETUP
7259 {
7260   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7261   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7262   switch (YY_START) {
7263    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7264   }
7265  }
7266         YY_BREAK
7267 case 311:
7268 YY_RULE_SETUP
7269 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7270         YY_BREAK
7271 case 312:
7272 YY_RULE_SETUP
7273 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7274         YY_BREAK
7275 case YY_STATE_EOF(AL_surfxml_router):
7276 FAIL("EOF in attribute list of `router' element.");
7277         YY_BREAK
7278
7279 case 313:
7280 /* rule 313 can match eol */
7281 YY_RULE_SETUP
7282 {
7283   LEAVE;
7284   ETag_surfxml_router();
7285   popbuffer(); /* attribute */
7286   switch (YY_START) {
7287    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7288   }
7289  }
7290         YY_BREAK
7291 case 314:
7292 /* rule 314 can match eol */
7293 YY_RULE_SETUP
7294 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7295         YY_BREAK
7296 case 315:
7297 YY_RULE_SETUP
7298 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7299         YY_BREAK
7300 case YY_STATE_EOF(E_surfxml_router):
7301 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7302         YY_BREAK
7303
7304 case 316:
7305 /* rule 316 can match eol */
7306 YY_RULE_SETUP
7307 FAIL("Starting tag <backbone> is not allowed here.");
7308         YY_BREAK
7309 case 317:
7310 /* rule 317 can match eol */
7311 YY_RULE_SETUP
7312 {
7313   AX_surfxml_backbone_id = 0;
7314   surfxml_backbone_id_isset = 0;
7315   AX_surfxml_backbone_bandwidth = 0;
7316   surfxml_backbone_bandwidth_isset = 0;
7317   AX_surfxml_backbone_latency = 0;
7318   surfxml_backbone_latency_isset = 0;
7319   ENTER(AL_surfxml_backbone); pushbuffer(0);
7320   }
7321         YY_BREAK
7322
7323 case 318:
7324 /* rule 318 can match eol */
7325 YY_RULE_SETUP
7326 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7327         YY_BREAK
7328 case 319:
7329 /* rule 319 can match eol */
7330 YY_RULE_SETUP
7331 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7332         YY_BREAK
7333 case 320:
7334 /* rule 320 can match eol */
7335 YY_RULE_SETUP
7336 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7337         YY_BREAK
7338 case 321:
7339 /* rule 321 can match eol */
7340 YY_RULE_SETUP
7341 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7342         YY_BREAK
7343 case 322:
7344 /* rule 322 can match eol */
7345 YY_RULE_SETUP
7346 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7347         YY_BREAK
7348 case 323:
7349 /* rule 323 can match eol */
7350 YY_RULE_SETUP
7351 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7352         YY_BREAK
7353 case 324:
7354 YY_RULE_SETUP
7355 {
7356   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7357   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7358   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7359   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7360  }
7361         YY_BREAK
7362 case 325:
7363 YY_RULE_SETUP
7364 {
7365   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7366   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7367   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7368   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7369   switch (YY_START) {
7370    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7371    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7372   }
7373  }
7374         YY_BREAK
7375 case 326:
7376 YY_RULE_SETUP
7377 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7378         YY_BREAK
7379 case 327:
7380 YY_RULE_SETUP
7381 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7382         YY_BREAK
7383 case YY_STATE_EOF(AL_surfxml_backbone):
7384 FAIL("EOF in attribute list of `backbone' element.");
7385         YY_BREAK
7386
7387 case 328:
7388 /* rule 328 can match eol */
7389 YY_RULE_SETUP
7390 {
7391   LEAVE;
7392   ETag_surfxml_backbone();
7393   popbuffer(); /* attribute */
7394   switch (YY_START) {
7395    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7396    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7397   }
7398  }
7399         YY_BREAK
7400 case 329:
7401 /* rule 329 can match eol */
7402 YY_RULE_SETUP
7403 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7404         YY_BREAK
7405 case 330:
7406 YY_RULE_SETUP
7407 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7408         YY_BREAK
7409 case YY_STATE_EOF(E_surfxml_backbone):
7410 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7411         YY_BREAK
7412
7413 case 331:
7414 /* rule 331 can match eol */
7415 YY_RULE_SETUP
7416 FAIL("Starting tag <link> is not allowed here.");
7417         YY_BREAK
7418 case 332:
7419 /* rule 332 can match eol */
7420 YY_RULE_SETUP
7421 {
7422   AX_surfxml_link_id = 0;
7423   surfxml_link_id_isset = 0;
7424   AX_surfxml_link_bandwidth = 0;
7425   surfxml_link_bandwidth_isset = 0;
7426   AX_surfxml_link_bandwidth_file = 0;
7427   surfxml_link_bandwidth_file_isset = 0;
7428   AX_surfxml_link_latency = 24;
7429   surfxml_link_latency_isset = 0;
7430   AX_surfxml_link_latency_file = 0;
7431   surfxml_link_latency_file_isset = 0;
7432   AX_surfxml_link_state = A_surfxml_link_state_ON;
7433   surfxml_link_state_isset = 0;
7434   AX_surfxml_link_state_file = 0;
7435   surfxml_link_state_file_isset = 0;
7436   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7437   surfxml_link_sharing_policy_isset = 0;
7438   ENTER(AL_surfxml_link); pushbuffer(0);
7439   }
7440         YY_BREAK
7441
7442 case 333:
7443 /* rule 333 can match eol */
7444 YY_RULE_SETUP
7445 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
7446         YY_BREAK
7447 case 334:
7448 /* rule 334 can match eol */
7449 YY_RULE_SETUP
7450 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
7451         YY_BREAK
7452 case 335:
7453 /* rule 335 can match eol */
7454 YY_RULE_SETUP
7455 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
7456         YY_BREAK
7457 case 336:
7458 /* rule 336 can match eol */
7459 YY_RULE_SETUP
7460 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
7461         YY_BREAK
7462 case 337:
7463 /* rule 337 can match eol */
7464 YY_RULE_SETUP
7465 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
7466         YY_BREAK
7467 case 338:
7468 /* rule 338 can match eol */
7469 YY_RULE_SETUP
7470 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
7471         YY_BREAK
7472 case 339:
7473 /* rule 339 can match eol */
7474 YY_RULE_SETUP
7475 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
7476         YY_BREAK
7477 case 340:
7478 /* rule 340 can match eol */
7479 YY_RULE_SETUP
7480 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
7481         YY_BREAK
7482 case 341:
7483 /* rule 341 can match eol */
7484 YY_RULE_SETUP
7485 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
7486         YY_BREAK
7487 case 342:
7488 /* rule 342 can match eol */
7489 YY_RULE_SETUP
7490 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
7491         YY_BREAK
7492 case 343:
7493 /* rule 343 can match eol */
7494 case 344:
7495 /* rule 344 can match eol */
7496 YY_RULE_SETUP
7497 A_surfxml_link_state = A_surfxml_link_state_ON;
7498         YY_BREAK
7499 case 345:
7500 /* rule 345 can match eol */
7501 case 346:
7502 /* rule 346 can match eol */
7503 YY_RULE_SETUP
7504 A_surfxml_link_state = A_surfxml_link_state_OFF;
7505         YY_BREAK
7506 case 347:
7507 /* rule 347 can match eol */
7508 YY_RULE_SETUP
7509 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
7510         YY_BREAK
7511 case 348:
7512 /* rule 348 can match eol */
7513 YY_RULE_SETUP
7514 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
7515         YY_BREAK
7516 case 349:
7517 /* rule 349 can match eol */
7518 case 350:
7519 /* rule 350 can match eol */
7520 YY_RULE_SETUP
7521 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7522         YY_BREAK
7523 case 351:
7524 /* rule 351 can match eol */
7525 case 352:
7526 /* rule 352 can match eol */
7527 YY_RULE_SETUP
7528 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7529         YY_BREAK
7530 case 353:
7531 /* rule 353 can match eol */
7532 case 354:
7533 /* rule 354 can match eol */
7534 YY_RULE_SETUP
7535 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7536         YY_BREAK
7537 case 355:
7538 YY_RULE_SETUP
7539 {
7540   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7541   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7542   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7543  }
7544         YY_BREAK
7545 case 356:
7546 YY_RULE_SETUP
7547 {
7548   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7549   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7550   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7551   switch (YY_START) {
7552    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7553    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7554   }
7555  }
7556         YY_BREAK
7557 case 357:
7558 YY_RULE_SETUP
7559 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7560         YY_BREAK
7561 case 358:
7562 YY_RULE_SETUP
7563 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7564         YY_BREAK
7565 case YY_STATE_EOF(AL_surfxml_link):
7566 FAIL("EOF in attribute list of `link' element.");
7567         YY_BREAK
7568
7569 case 359:
7570 /* rule 359 can match eol */
7571 YY_RULE_SETUP
7572 {
7573   LEAVE;
7574   ETag_surfxml_link();
7575   popbuffer(); /* attribute */
7576   switch (YY_START) {
7577    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7578    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7579   }
7580  }
7581         YY_BREAK
7582 case 360:
7583 /* rule 360 can match eol */
7584 YY_RULE_SETUP
7585 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7586         YY_BREAK
7587 case 361:
7588 YY_RULE_SETUP
7589 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7590         YY_BREAK
7591 case YY_STATE_EOF(E_surfxml_link):
7592 case YY_STATE_EOF(S_surfxml_link_2):
7593 case YY_STATE_EOF(S_surfxml_link):
7594 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7595         YY_BREAK
7596
7597 case 362:
7598 /* rule 362 can match eol */
7599 YY_RULE_SETUP
7600 FAIL("Starting tag <route> is not allowed here.");
7601         YY_BREAK
7602 case 363:
7603 /* rule 363 can match eol */
7604 YY_RULE_SETUP
7605 {
7606   AX_surfxml_route_src = 0;
7607   surfxml_route_src_isset = 0;
7608   AX_surfxml_route_dst = 0;
7609   surfxml_route_dst_isset = 0;
7610   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7611   surfxml_route_symmetrical_isset = 0;
7612   ENTER(AL_surfxml_route); pushbuffer(0);
7613   }
7614         YY_BREAK
7615
7616 case 364:
7617 /* rule 364 can match eol */
7618 YY_RULE_SETUP
7619 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
7620         YY_BREAK
7621 case 365:
7622 /* rule 365 can match eol */
7623 YY_RULE_SETUP
7624 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
7625         YY_BREAK
7626 case 366:
7627 /* rule 366 can match eol */
7628 YY_RULE_SETUP
7629 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
7630         YY_BREAK
7631 case 367:
7632 /* rule 367 can match eol */
7633 YY_RULE_SETUP
7634 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
7635         YY_BREAK
7636 case 368:
7637 /* rule 368 can match eol */
7638 case 369:
7639 /* rule 369 can match eol */
7640 YY_RULE_SETUP
7641 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7642         YY_BREAK
7643 case 370:
7644 /* rule 370 can match eol */
7645 case 371:
7646 /* rule 371 can match eol */
7647 YY_RULE_SETUP
7648 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7649         YY_BREAK
7650 case 372:
7651 YY_RULE_SETUP
7652 {
7653   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7654   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7655   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7656  }
7657         YY_BREAK
7658 case 373:
7659 YY_RULE_SETUP
7660 {
7661   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7662   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7663   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7664   switch (YY_START) {
7665    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;
7666   }
7667  }
7668         YY_BREAK
7669 case 374:
7670 YY_RULE_SETUP
7671 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7672         YY_BREAK
7673 case 375:
7674 YY_RULE_SETUP
7675 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7676         YY_BREAK
7677 case YY_STATE_EOF(AL_surfxml_route):
7678 FAIL("EOF in attribute list of `route' element.");
7679         YY_BREAK
7680
7681 case 376:
7682 /* rule 376 can match eol */
7683 YY_RULE_SETUP
7684 {
7685   LEAVE;
7686   ETag_surfxml_route();
7687   popbuffer(); /* attribute */
7688   switch (YY_START) {
7689    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;
7690   }
7691  }
7692         YY_BREAK
7693 case 377:
7694 /* rule 377 can match eol */
7695 YY_RULE_SETUP
7696 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7697         YY_BREAK
7698 case 378:
7699 YY_RULE_SETUP
7700 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7701         YY_BREAK
7702 case YY_STATE_EOF(S_surfxml_route):
7703 case YY_STATE_EOF(S_surfxml_route_2):
7704 case YY_STATE_EOF(E_surfxml_route):
7705 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7706         YY_BREAK
7707
7708 case 379:
7709 /* rule 379 can match eol */
7710 YY_RULE_SETUP
7711 FAIL("Starting tag <ASroute> is not allowed here.");
7712         YY_BREAK
7713 case 380:
7714 /* rule 380 can match eol */
7715 YY_RULE_SETUP
7716 {
7717   AX_surfxml_ASroute_src = 0;
7718   surfxml_ASroute_src_isset = 0;
7719   AX_surfxml_ASroute_dst = 0;
7720   surfxml_ASroute_dst_isset = 0;
7721   AX_surfxml_ASroute_gw_src = 0;
7722   surfxml_ASroute_gw_src_isset = 0;
7723   AX_surfxml_ASroute_gw_dst = 0;
7724   surfxml_ASroute_gw_dst_isset = 0;
7725   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7726   surfxml_ASroute_symmetrical_isset = 0;
7727   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7728   }
7729         YY_BREAK
7730
7731 case 381:
7732 /* rule 381 can match eol */
7733 YY_RULE_SETUP
7734 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
7735         YY_BREAK
7736 case 382:
7737 /* rule 382 can match eol */
7738 YY_RULE_SETUP
7739 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
7740         YY_BREAK
7741 case 383:
7742 /* rule 383 can match eol */
7743 YY_RULE_SETUP
7744 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
7745         YY_BREAK
7746 case 384:
7747 /* rule 384 can match eol */
7748 YY_RULE_SETUP
7749 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
7750         YY_BREAK
7751 case 385:
7752 /* rule 385 can match eol */
7753 YY_RULE_SETUP
7754 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
7755         YY_BREAK
7756 case 386:
7757 /* rule 386 can match eol */
7758 YY_RULE_SETUP
7759 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
7760         YY_BREAK
7761 case 387:
7762 /* rule 387 can match eol */
7763 YY_RULE_SETUP
7764 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7765         YY_BREAK
7766 case 388:
7767 /* rule 388 can match eol */
7768 YY_RULE_SETUP
7769 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7770         YY_BREAK
7771 case 389:
7772 /* rule 389 can match eol */
7773 case 390:
7774 /* rule 390 can match eol */
7775 YY_RULE_SETUP
7776 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7777         YY_BREAK
7778 case 391:
7779 /* rule 391 can match eol */
7780 case 392:
7781 /* rule 392 can match eol */
7782 YY_RULE_SETUP
7783 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7784         YY_BREAK
7785 case 393:
7786 YY_RULE_SETUP
7787 {
7788   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7789   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7790   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7791   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7792   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7793  }
7794         YY_BREAK
7795 case 394:
7796 YY_RULE_SETUP
7797 {
7798   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7799   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7800   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7801   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7802   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7803   switch (YY_START) {
7804    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;
7805   }
7806  }
7807         YY_BREAK
7808 case 395:
7809 YY_RULE_SETUP
7810 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7811         YY_BREAK
7812 case 396:
7813 YY_RULE_SETUP
7814 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7815         YY_BREAK
7816 case YY_STATE_EOF(AL_surfxml_ASroute):
7817 FAIL("EOF in attribute list of `ASroute' element.");
7818         YY_BREAK
7819
7820 case 397:
7821 /* rule 397 can match eol */
7822 YY_RULE_SETUP
7823 {
7824   LEAVE;
7825   ETag_surfxml_ASroute();
7826   popbuffer(); /* attribute */
7827   switch (YY_START) {
7828    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;
7829   }
7830  }
7831         YY_BREAK
7832 case 398:
7833 /* rule 398 can match eol */
7834 YY_RULE_SETUP
7835 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7836         YY_BREAK
7837 case 399:
7838 YY_RULE_SETUP
7839 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7840         YY_BREAK
7841 case YY_STATE_EOF(E_surfxml_ASroute):
7842 case YY_STATE_EOF(S_surfxml_ASroute):
7843 case YY_STATE_EOF(S_surfxml_ASroute_2):
7844 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7845         YY_BREAK
7846
7847 case 400:
7848 /* rule 400 can match eol */
7849 YY_RULE_SETUP
7850 FAIL("Starting tag <link_ctn> is not allowed here.");
7851         YY_BREAK
7852 case 401:
7853 /* rule 401 can match eol */
7854 YY_RULE_SETUP
7855 {
7856   AX_surfxml_link_ctn_id = 0;
7857   surfxml_link_ctn_id_isset = 0;
7858   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7859   surfxml_link_ctn_direction_isset = 0;
7860   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7861   }
7862         YY_BREAK
7863
7864 case 402:
7865 /* rule 402 can match eol */
7866 YY_RULE_SETUP
7867 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");} surfxml_link_ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
7868         YY_BREAK
7869 case 403:
7870 /* rule 403 can match eol */
7871 YY_RULE_SETUP
7872 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");}  surfxml_link_ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
7873         YY_BREAK
7874 case 404:
7875 /* rule 404 can match eol */
7876 case 405:
7877 /* rule 405 can match eol */
7878 YY_RULE_SETUP
7879 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7880         YY_BREAK
7881 case 406:
7882 /* rule 406 can match eol */
7883 case 407:
7884 /* rule 407 can match eol */
7885 YY_RULE_SETUP
7886 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7887         YY_BREAK
7888 case 408:
7889 /* rule 408 can match eol */
7890 case 409:
7891 /* rule 409 can match eol */
7892 YY_RULE_SETUP
7893 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7894         YY_BREAK
7895 case 410:
7896 YY_RULE_SETUP
7897 {
7898   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7899   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7900  }
7901         YY_BREAK
7902 case 411:
7903 YY_RULE_SETUP
7904 {
7905   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7906   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7907   switch (YY_START) {
7908    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7909    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7910    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7911    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7912   }
7913  }
7914         YY_BREAK
7915 case 412:
7916 YY_RULE_SETUP
7917 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7918         YY_BREAK
7919 case 413:
7920 YY_RULE_SETUP
7921 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7922         YY_BREAK
7923 case YY_STATE_EOF(AL_surfxml_link_ctn):
7924 FAIL("EOF in attribute list of `link_ctn' element.");
7925         YY_BREAK
7926
7927 case 414:
7928 /* rule 414 can match eol */
7929 YY_RULE_SETUP
7930 {
7931   LEAVE;
7932   ETag_surfxml_link_ctn();
7933   popbuffer(); /* attribute */
7934   switch (YY_START) {
7935    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7936    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7937    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7938    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7939   }
7940  }
7941         YY_BREAK
7942 case 415:
7943 /* rule 415 can match eol */
7944 YY_RULE_SETUP
7945 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7946         YY_BREAK
7947 case 416:
7948 YY_RULE_SETUP
7949 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7950         YY_BREAK
7951 case YY_STATE_EOF(E_surfxml_link_ctn):
7952 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7953         YY_BREAK
7954
7955 case 417:
7956 /* rule 417 can match eol */
7957 YY_RULE_SETUP
7958 FAIL("Starting tag <bypassRoute> is not allowed here.");
7959         YY_BREAK
7960 case 418:
7961 /* rule 418 can match eol */
7962 YY_RULE_SETUP
7963 {
7964   AX_surfxml_bypassRoute_src = 0;
7965   surfxml_bypassRoute_src_isset = 0;
7966   AX_surfxml_bypassRoute_dst = 0;
7967   surfxml_bypassRoute_dst_isset = 0;
7968   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7969   }
7970         YY_BREAK
7971
7972 case 419:
7973 /* rule 419 can match eol */
7974 YY_RULE_SETUP
7975 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7976         YY_BREAK
7977 case 420:
7978 /* rule 420 can match eol */
7979 YY_RULE_SETUP
7980 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7981         YY_BREAK
7982 case 421:
7983 /* rule 421 can match eol */
7984 YY_RULE_SETUP
7985 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7986         YY_BREAK
7987 case 422:
7988 /* rule 422 can match eol */
7989 YY_RULE_SETUP
7990 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7991         YY_BREAK
7992 case 423:
7993 YY_RULE_SETUP
7994 {
7995   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7996   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7997   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7998  }
7999         YY_BREAK
8000 case 424:
8001 YY_RULE_SETUP
8002 {
8003   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8004   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8005   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8006   switch (YY_START) {
8007    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;
8008   }
8009  }
8010         YY_BREAK
8011 case 425:
8012 YY_RULE_SETUP
8013 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8014         YY_BREAK
8015 case 426:
8016 YY_RULE_SETUP
8017 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8018         YY_BREAK
8019 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8020 FAIL("EOF in attribute list of `bypassRoute' element.");
8021         YY_BREAK
8022
8023 case 427:
8024 /* rule 427 can match eol */
8025 YY_RULE_SETUP
8026 {
8027   LEAVE;
8028   ETag_surfxml_bypassRoute();
8029   popbuffer(); /* attribute */
8030   switch (YY_START) {
8031    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;
8032   }
8033  }
8034         YY_BREAK
8035 case 428:
8036 /* rule 428 can match eol */
8037 YY_RULE_SETUP
8038 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8039         YY_BREAK
8040 case 429:
8041 YY_RULE_SETUP
8042 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8043         YY_BREAK
8044 case YY_STATE_EOF(S_surfxml_bypassRoute):
8045 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8046 case YY_STATE_EOF(E_surfxml_bypassRoute):
8047 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8048         YY_BREAK
8049
8050 case 430:
8051 /* rule 430 can match eol */
8052 YY_RULE_SETUP
8053 FAIL("Starting tag <bypassASroute> is not allowed here.");
8054         YY_BREAK
8055 case 431:
8056 /* rule 431 can match eol */
8057 YY_RULE_SETUP
8058 {
8059   AX_surfxml_bypassASroute_src = 0;
8060   surfxml_bypassASroute_src_isset = 0;
8061   AX_surfxml_bypassASroute_dst = 0;
8062   surfxml_bypassASroute_dst_isset = 0;
8063   AX_surfxml_bypassASroute_gw_src = 0;
8064   surfxml_bypassASroute_gw_src_isset = 0;
8065   AX_surfxml_bypassASroute_gw_dst = 0;
8066   surfxml_bypassASroute_gw_dst_isset = 0;
8067   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8068   }
8069         YY_BREAK
8070
8071 case 432:
8072 /* rule 432 can match eol */
8073 YY_RULE_SETUP
8074 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
8075         YY_BREAK
8076 case 433:
8077 /* rule 433 can match eol */
8078 YY_RULE_SETUP
8079 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
8080         YY_BREAK
8081 case 434:
8082 /* rule 434 can match eol */
8083 YY_RULE_SETUP
8084 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
8085         YY_BREAK
8086 case 435:
8087 /* rule 435 can match eol */
8088 YY_RULE_SETUP
8089 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
8090         YY_BREAK
8091 case 436:
8092 /* rule 436 can match eol */
8093 YY_RULE_SETUP
8094 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8095         YY_BREAK
8096 case 437:
8097 /* rule 437 can match eol */
8098 YY_RULE_SETUP
8099 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8100         YY_BREAK
8101 case 438:
8102 /* rule 438 can match eol */
8103 YY_RULE_SETUP
8104 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8105         YY_BREAK
8106 case 439:
8107 /* rule 439 can match eol */
8108 YY_RULE_SETUP
8109 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8110         YY_BREAK
8111 case 440:
8112 YY_RULE_SETUP
8113 {
8114   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8115   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8116   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8117   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8118   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8119  }
8120         YY_BREAK
8121 case 441:
8122 YY_RULE_SETUP
8123 {
8124   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8125   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8126   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8127   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8128   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8129   switch (YY_START) {
8130    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;
8131   }
8132  }
8133         YY_BREAK
8134 case 442:
8135 YY_RULE_SETUP
8136 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8137         YY_BREAK
8138 case 443:
8139 YY_RULE_SETUP
8140 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8141         YY_BREAK
8142 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8143 FAIL("EOF in attribute list of `bypassASroute' element.");
8144         YY_BREAK
8145
8146 case 444:
8147 /* rule 444 can match eol */
8148 YY_RULE_SETUP
8149 {
8150   LEAVE;
8151   ETag_surfxml_bypassASroute();
8152   popbuffer(); /* attribute */
8153   switch (YY_START) {
8154    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;
8155   }
8156  }
8157         YY_BREAK
8158 case 445:
8159 /* rule 445 can match eol */
8160 YY_RULE_SETUP
8161 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8162         YY_BREAK
8163 case 446:
8164 YY_RULE_SETUP
8165 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8166         YY_BREAK
8167 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8168 case YY_STATE_EOF(E_surfxml_bypassASroute):
8169 case YY_STATE_EOF(S_surfxml_bypassASroute):
8170 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8171         YY_BREAK
8172
8173 case 447:
8174 /* rule 447 can match eol */
8175 YY_RULE_SETUP
8176 FAIL("Starting tag <process> is not allowed here.");
8177         YY_BREAK
8178 case 448:
8179 /* rule 448 can match eol */
8180 YY_RULE_SETUP
8181 {
8182   AX_surfxml_process_host = 0;
8183   surfxml_process_host_isset = 0;
8184   AX_surfxml_process_function = 0;
8185   surfxml_process_function_isset = 0;
8186   AX_surfxml_process_start_time = 28;
8187   surfxml_process_start_time_isset = 0;
8188   AX_surfxml_process_kill_time = 33;
8189   surfxml_process_kill_time_isset = 0;
8190   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8191   surfxml_process_on_failure_isset = 0;
8192   ENTER(AL_surfxml_process); pushbuffer(0);
8193   }
8194         YY_BREAK
8195
8196 case 449:
8197 /* rule 449 can match eol */
8198 YY_RULE_SETUP
8199 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8200         YY_BREAK
8201 case 450:
8202 /* rule 450 can match eol */
8203 YY_RULE_SETUP
8204 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8205         YY_BREAK
8206 case 451:
8207 /* rule 451 can match eol */
8208 YY_RULE_SETUP
8209 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8210         YY_BREAK
8211 case 452:
8212 /* rule 452 can match eol */
8213 YY_RULE_SETUP
8214 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8215         YY_BREAK
8216 case 453:
8217 /* rule 453 can match eol */
8218 YY_RULE_SETUP
8219 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
8220         YY_BREAK
8221 case 454:
8222 /* rule 454 can match eol */
8223 YY_RULE_SETUP
8224 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
8225         YY_BREAK
8226 case 455:
8227 /* rule 455 can match eol */
8228 YY_RULE_SETUP
8229 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
8230         YY_BREAK
8231 case 456:
8232 /* rule 456 can match eol */
8233 YY_RULE_SETUP
8234 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
8235         YY_BREAK
8236 case 457:
8237 /* rule 457 can match eol */
8238 case 458:
8239 /* rule 458 can match eol */
8240 YY_RULE_SETUP
8241 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8242         YY_BREAK
8243 case 459:
8244 /* rule 459 can match eol */
8245 case 460:
8246 /* rule 460 can match eol */
8247 YY_RULE_SETUP
8248 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8249         YY_BREAK
8250 case 461:
8251 YY_RULE_SETUP
8252 {
8253   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8254   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8255   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8256  }
8257         YY_BREAK
8258 case 462:
8259 YY_RULE_SETUP
8260 {
8261   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8262   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8263   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8264   switch (YY_START) {
8265    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;
8266   }
8267  }
8268         YY_BREAK
8269 case 463:
8270 YY_RULE_SETUP
8271 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8272         YY_BREAK
8273 case 464:
8274 YY_RULE_SETUP
8275 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8276         YY_BREAK
8277 case YY_STATE_EOF(AL_surfxml_process):
8278 FAIL("EOF in attribute list of `process' element.");
8279         YY_BREAK
8280
8281 case 465:
8282 /* rule 465 can match eol */
8283 YY_RULE_SETUP
8284 {
8285   LEAVE;
8286   ETag_surfxml_process();
8287   popbuffer(); /* attribute */
8288   switch (YY_START) {
8289    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;
8290   }
8291  }
8292         YY_BREAK
8293 case 466:
8294 /* rule 466 can match eol */
8295 YY_RULE_SETUP
8296 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8297         YY_BREAK
8298 case 467:
8299 YY_RULE_SETUP
8300 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8301         YY_BREAK
8302 case YY_STATE_EOF(E_surfxml_process):
8303 case YY_STATE_EOF(S_surfxml_process):
8304 case YY_STATE_EOF(S_surfxml_process_2):
8305 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8306         YY_BREAK
8307
8308 case 468:
8309 /* rule 468 can match eol */
8310 YY_RULE_SETUP
8311 FAIL("Starting tag <argument> is not allowed here.");
8312         YY_BREAK
8313 case 469:
8314 /* rule 469 can match eol */
8315 YY_RULE_SETUP
8316 {
8317   AX_surfxml_argument_value = 0;
8318   surfxml_argument_value_isset = 0;
8319   ENTER(AL_surfxml_argument); pushbuffer(0);
8320   }
8321         YY_BREAK
8322
8323 case 470:
8324 /* rule 470 can match eol */
8325 YY_RULE_SETUP
8326 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
8327         YY_BREAK
8328 case 471:
8329 /* rule 471 can match eol */
8330 YY_RULE_SETUP
8331 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
8332         YY_BREAK
8333 case 472:
8334 YY_RULE_SETUP
8335 {
8336   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8337   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8338  }
8339         YY_BREAK
8340 case 473:
8341 YY_RULE_SETUP
8342 {
8343   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8344   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8345   switch (YY_START) {
8346    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8347   }
8348  }
8349         YY_BREAK
8350 case 474:
8351 YY_RULE_SETUP
8352 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8353         YY_BREAK
8354 case 475:
8355 YY_RULE_SETUP
8356 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8357         YY_BREAK
8358 case YY_STATE_EOF(AL_surfxml_argument):
8359 FAIL("EOF in attribute list of `argument' element.");
8360         YY_BREAK
8361
8362 case 476:
8363 /* rule 476 can match eol */
8364 YY_RULE_SETUP
8365 {
8366   LEAVE;
8367   ETag_surfxml_argument();
8368   popbuffer(); /* attribute */
8369   switch (YY_START) {
8370    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8371   }
8372  }
8373         YY_BREAK
8374 case 477:
8375 /* rule 477 can match eol */
8376 YY_RULE_SETUP
8377 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8378         YY_BREAK
8379 case 478:
8380 YY_RULE_SETUP
8381 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8382         YY_BREAK
8383 case YY_STATE_EOF(E_surfxml_argument):
8384 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8385         YY_BREAK
8386
8387 case 479:
8388 /* rule 479 can match eol */
8389 YY_RULE_SETUP
8390 FAIL("Starting tag <config> is not allowed here.");
8391         YY_BREAK
8392 case 480:
8393 /* rule 480 can match eol */
8394 YY_RULE_SETUP
8395 {
8396   AX_surfxml_config_id = 0;
8397   surfxml_config_id_isset = 0;
8398   ENTER(AL_surfxml_config); pushbuffer(0);
8399   }
8400         YY_BREAK
8401
8402 case 481:
8403 /* rule 481 can match eol */
8404 YY_RULE_SETUP
8405 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8406         YY_BREAK
8407 case 482:
8408 /* rule 482 can match eol */
8409 YY_RULE_SETUP
8410 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8411         YY_BREAK
8412 case 483:
8413 YY_RULE_SETUP
8414 {
8415   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8416  }
8417         YY_BREAK
8418 case 484:
8419 YY_RULE_SETUP
8420 {
8421   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8422   switch (YY_START) {
8423    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8424   }
8425  }
8426         YY_BREAK
8427 case 485:
8428 YY_RULE_SETUP
8429 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8430         YY_BREAK
8431 case 486:
8432 YY_RULE_SETUP
8433 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8434         YY_BREAK
8435 case YY_STATE_EOF(AL_surfxml_config):
8436 FAIL("EOF in attribute list of `config' element.");
8437         YY_BREAK
8438
8439 case 487:
8440 /* rule 487 can match eol */
8441 YY_RULE_SETUP
8442 {
8443   LEAVE;
8444   ETag_surfxml_config();
8445   popbuffer(); /* attribute */
8446   switch (YY_START) {
8447    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8448   }
8449  }
8450         YY_BREAK
8451 case 488:
8452 /* rule 488 can match eol */
8453 YY_RULE_SETUP
8454 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8455         YY_BREAK
8456 case 489:
8457 YY_RULE_SETUP
8458 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8459         YY_BREAK
8460 case YY_STATE_EOF(S_surfxml_config):
8461 case YY_STATE_EOF(S_surfxml_config_2):
8462 case YY_STATE_EOF(E_surfxml_config):
8463 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8464         YY_BREAK
8465
8466 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8467   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8468 case 490:
8469 /* rule 490 can match eol */
8470 YY_RULE_SETUP
8471 FAIL("Starting tag <prop> is not allowed here.");
8472         YY_BREAK
8473 case 491:
8474 /* rule 491 can match eol */
8475 YY_RULE_SETUP
8476 {
8477   AX_surfxml_prop_id = 0;
8478   surfxml_prop_id_isset = 0;
8479   AX_surfxml_prop_value = 0;
8480   surfxml_prop_value_isset = 0;
8481   ENTER(AL_surfxml_prop); pushbuffer(0);
8482   }
8483         YY_BREAK
8484
8485 case 492:
8486 /* rule 492 can match eol */
8487 YY_RULE_SETUP
8488 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
8489         YY_BREAK
8490 case 493:
8491 /* rule 493 can match eol */
8492 YY_RULE_SETUP
8493 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
8494         YY_BREAK
8495 case 494:
8496 /* rule 494 can match eol */
8497 YY_RULE_SETUP
8498 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
8499         YY_BREAK
8500 case 495:
8501 /* rule 495 can match eol */
8502 YY_RULE_SETUP
8503 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
8504         YY_BREAK
8505 case 496:
8506 YY_RULE_SETUP
8507 {
8508   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8509   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8510   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8511  }
8512         YY_BREAK
8513 case 497:
8514 YY_RULE_SETUP
8515 {
8516   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8517   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8518   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8519   switch (YY_START) {
8520    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8521    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8522    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8523    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8524    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8525    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8526    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8527   }
8528  }
8529         YY_BREAK
8530 case 498:
8531 YY_RULE_SETUP
8532 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8533         YY_BREAK
8534 case 499:
8535 YY_RULE_SETUP
8536 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8537         YY_BREAK
8538 case YY_STATE_EOF(AL_surfxml_prop):
8539 FAIL("EOF in attribute list of `prop' element.");
8540         YY_BREAK
8541
8542 case 500:
8543 /* rule 500 can match eol */
8544 YY_RULE_SETUP
8545 {
8546   LEAVE;
8547   ETag_surfxml_prop();
8548   popbuffer(); /* attribute */
8549   switch (YY_START) {
8550    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8551    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8552    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8553    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8554    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8555    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8556    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8557   }
8558  }
8559         YY_BREAK
8560 case 501:
8561 /* rule 501 can match eol */
8562 YY_RULE_SETUP
8563 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8564         YY_BREAK
8565 case 502:
8566 YY_RULE_SETUP
8567 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8568         YY_BREAK
8569 case YY_STATE_EOF(E_surfxml_prop):
8570 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8571         YY_BREAK
8572
8573 /* EPILOG: after the root element. */
8574
8575 case 503:
8576 YY_RULE_SETUP
8577 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8578         YY_BREAK
8579 case YY_STATE_EOF(EPILOG):
8580 SUCCEED;
8581         YY_BREAK
8582
8583 /* CHARACTER DATA. */
8584
8585 /* Non-defined standard entities... */
8586 case 504:
8587 YY_RULE_SETUP
8588 BUFFERPUTC('&');
8589         YY_BREAK
8590 case 505:
8591 YY_RULE_SETUP
8592 BUFFERPUTC('<');
8593         YY_BREAK
8594 case 506:
8595 YY_RULE_SETUP
8596 BUFFERPUTC('>');
8597         YY_BREAK
8598 case 507:
8599 YY_RULE_SETUP
8600 BUFFERPUTC('\'');
8601         YY_BREAK
8602 case 508:
8603 YY_RULE_SETUP
8604 BUFFERPUTC('"');
8605         YY_BREAK
8606 /* Character entities. */
8607 case 509:
8608 YY_RULE_SETUP
8609 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8610         YY_BREAK
8611 case 510:
8612 YY_RULE_SETUP
8613 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8614         YY_BREAK
8615
8616 case 511:
8617 /* rule 511 can match eol */
8618 case 512:
8619 /* rule 512 can match eol */
8620 case 513:
8621 /* rule 513 can match eol */
8622 case 514:
8623 /* rule 514 can match eol */
8624 YY_RULE_SETUP
8625 BUFFERPUTC('\n');
8626         YY_BREAK
8627
8628 case 515:
8629 YY_RULE_SETUP
8630 ENTER(CDATA);
8631         YY_BREAK
8632 case 516:
8633 YY_RULE_SETUP
8634 FAIL("Unexpected `]""]>' in character data.");
8635         YY_BREAK
8636
8637 case 517:
8638 YY_RULE_SETUP
8639 BUFFERDONE; LEAVE;
8640         YY_BREAK
8641 case YY_STATE_EOF(VALUE1):
8642 FAIL("EOF in literal (\"'\" expected).");
8643         YY_BREAK
8644
8645 case 518:
8646 YY_RULE_SETUP
8647 BUFFERDONE; LEAVE;
8648         YY_BREAK
8649 case YY_STATE_EOF(VALUE2):
8650 FAIL("EOF in literal (`\"' expected).");
8651         YY_BREAK
8652
8653 case 519:
8654 /* rule 519 can match eol */
8655 YY_RULE_SETUP
8656 BUFFERPUTC(surf_parse_text[0]);
8657         YY_BREAK
8658 case 520:
8659 YY_RULE_SETUP
8660 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8661         YY_BREAK
8662
8663 case 521:
8664 YY_RULE_SETUP
8665 LEAVE;
8666         YY_BREAK
8667 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8668 case 522:
8669 YY_RULE_SETUP
8670 BUFFERPUTC(surf_parse_text[0]);
8671         YY_BREAK
8672 case YY_STATE_EOF(CDATA):
8673 FAIL("EOF in CDATA section.");
8674         YY_BREAK
8675
8676 /* Impossible rules to avoid warnings from flex(1). */
8677 /* Ideally, this should be replaced by code in flexml.pl that
8678     generates just the states not covered by other rules. */
8679
8680 case 523:
8681 /* rule 523 can match eol */
8682 YY_RULE_SETUP
8683 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8684         YY_BREAK
8685
8686 case 524:
8687 YY_RULE_SETUP
8688 ECHO;
8689         YY_BREAK
8690 case YY_STATE_EOF(INITIAL):
8691 case YY_STATE_EOF(ROOT_surfxml_platform):
8692 case YY_STATE_EOF(S_surfxml_platform_2):
8693 case YY_STATE_EOF(S_surfxml_platform_5):
8694 case YY_STATE_EOF(S_surfxml_platform_7):
8695 case YY_STATE_EOF(S_surfxml_include_1):
8696 case YY_STATE_EOF(S_surfxml_random_1):
8697 case YY_STATE_EOF(S_surfxml_AS_2):
8698 case YY_STATE_EOF(S_surfxml_AS_5):
8699 case YY_STATE_EOF(S_surfxml_AS_7):
8700 case YY_STATE_EOF(S_surfxml_AS_10):
8701 case YY_STATE_EOF(S_surfxml_AS_12):
8702 case YY_STATE_EOF(S_surfxml_storage_type_1):
8703 case YY_STATE_EOF(S_surfxml_storage_1):
8704 case YY_STATE_EOF(S_surfxml_host_1):
8705 case YY_STATE_EOF(S_surfxml_link_1):
8706 case YY_STATE_EOF(S_surfxml_route_1):
8707 case YY_STATE_EOF(S_surfxml_ASroute_1):
8708 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8709 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8710 case YY_STATE_EOF(S_surfxml_process_1):
8711 case YY_STATE_EOF(S_surfxml_config_1):
8712 case YY_STATE_EOF(IMPOSSIBLE):
8713         yyterminate();
8714
8715         case YY_END_OF_BUFFER:
8716                 {
8717                 /* Amount of text matched not including the EOB char. */
8718                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8719
8720                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8721                 *yy_cp = (yy_hold_char);
8722                 YY_RESTORE_YY_MORE_OFFSET
8723
8724                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8725                         {
8726                         /* We're scanning a new file or input source.  It's
8727                          * possible that this happened because the user
8728                          * just pointed surf_parse_in at a new source and called
8729                          * surf_parse_lex().  If so, then we have to assure
8730                          * consistency between YY_CURRENT_BUFFER and our
8731                          * globals.  Here is the right place to do so, because
8732                          * this is the first action (other than possibly a
8733                          * back-up) that will match for the new input source.
8734                          */
8735                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8736                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8737                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8738                         }
8739
8740                 /* Note that here we test for yy_c_buf_p "<=" to the position
8741                  * of the first EOB in the buffer, since yy_c_buf_p will
8742                  * already have been incremented past the NUL character
8743                  * (since all states make transitions on EOB to the
8744                  * end-of-buffer state).  Contrast this with the test
8745                  * in input().
8746                  */
8747                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8748                         { /* This was really a NUL. */
8749                         yy_state_type yy_next_state;
8750
8751                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8752
8753                         yy_current_state = yy_get_previous_state(  );
8754
8755                         /* Okay, we're now positioned to make the NUL
8756                          * transition.  We couldn't have
8757                          * yy_get_previous_state() go ahead and do it
8758                          * for us because it doesn't know how to deal
8759                          * with the possibility of jamming (and we don't
8760                          * want to build jamming into it because then it
8761                          * will run more slowly).
8762                          */
8763
8764                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8765
8766                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8767
8768                         if ( yy_next_state )
8769                                 {
8770                                 /* Consume the NUL. */
8771                                 yy_cp = ++(yy_c_buf_p);
8772                                 yy_current_state = yy_next_state;
8773                                 goto yy_match;
8774                                 }
8775
8776                         else
8777                                 {
8778                                 yy_cp = (yy_c_buf_p);
8779                                 goto yy_find_action;
8780                                 }
8781                         }
8782
8783                 else switch ( yy_get_next_buffer(  ) )
8784                         {
8785                         case EOB_ACT_END_OF_FILE:
8786                                 {
8787                                 (yy_did_buffer_switch_on_eof) = 0;
8788
8789                                 if ( surf_parse_wrap( ) )
8790                                         {
8791                                         /* Note: because we've taken care in
8792                                          * yy_get_next_buffer() to have set up
8793                                          * surf_parse_text, we can now set up
8794                                          * yy_c_buf_p so that if some total
8795                                          * hoser (like flex itself) wants to
8796                                          * call the scanner after we return the
8797                                          * YY_NULL, it'll still work - another
8798                                          * YY_NULL will get returned.
8799                                          */
8800                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8801
8802                                         yy_act = YY_STATE_EOF(YY_START);
8803                                         goto do_action;
8804                                         }
8805
8806                                 else
8807                                         {
8808                                         if ( ! (yy_did_buffer_switch_on_eof) )
8809                                                 YY_NEW_FILE;
8810                                         }
8811                                 break;
8812                                 }
8813
8814                         case EOB_ACT_CONTINUE_SCAN:
8815                                 (yy_c_buf_p) =
8816                                         (yytext_ptr) + yy_amount_of_matched_text;
8817
8818                                 yy_current_state = yy_get_previous_state(  );
8819
8820                                 yy_cp = (yy_c_buf_p);
8821                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8822                                 goto yy_match;
8823
8824                         case EOB_ACT_LAST_MATCH:
8825                                 (yy_c_buf_p) =
8826                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8827
8828                                 yy_current_state = yy_get_previous_state(  );
8829
8830                                 yy_cp = (yy_c_buf_p);
8831                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8832                                 goto yy_find_action;
8833                         }
8834                 break;
8835                 }
8836
8837         default:
8838                 YY_FATAL_ERROR(
8839                         "fatal flex scanner internal error--no action found" );
8840         } /* end of action switch */
8841                 } /* end of scanning one token */
8842 } /* end of surf_parse_lex */
8843
8844 /* yy_get_next_buffer - try to read in a new buffer
8845  *
8846  * Returns a code representing an action:
8847  *      EOB_ACT_LAST_MATCH -
8848  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8849  *      EOB_ACT_END_OF_FILE - end of file
8850  */
8851 static int yy_get_next_buffer (void)
8852 {
8853         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8854         register char *source = (yytext_ptr);
8855         register int number_to_move, i;
8856         int ret_val;
8857
8858         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8859                 YY_FATAL_ERROR(
8860                 "fatal flex scanner internal error--end of buffer missed" );
8861
8862         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8863                 { /* Don't try to fill the buffer, so this is an EOF. */
8864                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8865                         {
8866                         /* We matched a single character, the EOB, so
8867                          * treat this as a final EOF.
8868                          */
8869                         return EOB_ACT_END_OF_FILE;
8870                         }
8871
8872                 else
8873                         {
8874                         /* We matched some text prior to the EOB, first
8875                          * process it.
8876                          */
8877                         return EOB_ACT_LAST_MATCH;
8878                         }
8879                 }
8880
8881         /* Try to read more data. */
8882
8883         /* First move last chars to start of buffer. */
8884         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8885
8886         for ( i = 0; i < number_to_move; ++i )
8887                 *(dest++) = *(source++);
8888
8889         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8890                 /* don't do the read, it's not guaranteed to return an EOF,
8891                  * just force an EOF
8892                  */
8893                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8894
8895         else
8896                 {
8897                         int num_to_read =
8898                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8899
8900                 while ( num_to_read <= 0 )
8901                         { /* Not enough room in the buffer - grow it. */
8902
8903                         /* just a shorter name for the current buffer */
8904                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8905
8906                         int yy_c_buf_p_offset =
8907                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8908
8909                         if ( b->yy_is_our_buffer )
8910                                 {
8911                                 int new_size = b->yy_buf_size * 2;
8912
8913                                 if ( new_size <= 0 )
8914                                         b->yy_buf_size += b->yy_buf_size / 8;
8915                                 else
8916                                         b->yy_buf_size *= 2;
8917
8918                                 b->yy_ch_buf = (char *)
8919                                         /* Include room in for 2 EOB chars. */
8920                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8921                                 }
8922                         else
8923                                 /* Can't grow it, we don't own it. */
8924                                 b->yy_ch_buf = 0;
8925
8926                         if ( ! b->yy_ch_buf )
8927                                 YY_FATAL_ERROR(
8928                                 "fatal error - scanner input buffer overflow" );
8929
8930                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8931
8932                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8933                                                 number_to_move - 1;
8934
8935                         }
8936
8937                 if ( num_to_read > YY_READ_BUF_SIZE )
8938                         num_to_read = YY_READ_BUF_SIZE;
8939
8940                 /* Read in more data. */
8941                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8942                         (yy_n_chars), (size_t) num_to_read );
8943
8944                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8945                 }
8946
8947         if ( (yy_n_chars) == 0 )
8948                 {
8949                 if ( number_to_move == YY_MORE_ADJ )
8950                         {
8951                         ret_val = EOB_ACT_END_OF_FILE;
8952                         surf_parse_restart(surf_parse_in  );
8953                         }
8954
8955                 else
8956                         {
8957                         ret_val = EOB_ACT_LAST_MATCH;
8958                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8959                                 YY_BUFFER_EOF_PENDING;
8960                         }
8961                 }
8962
8963         else
8964                 ret_val = EOB_ACT_CONTINUE_SCAN;
8965
8966         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8967                 /* Extend the array by 50%, plus the number we really need. */
8968                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8969                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8970                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8971                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8972         }
8973
8974         (yy_n_chars) += number_to_move;
8975         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8976         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8977
8978         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8979
8980         return ret_val;
8981 }
8982
8983 /* yy_get_previous_state - get the state just before the EOB char was reached */
8984
8985     static yy_state_type yy_get_previous_state (void)
8986 {
8987         register yy_state_type yy_current_state;
8988         register char *yy_cp;
8989     
8990         yy_current_state = (yy_start);
8991
8992         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8993                 {
8994                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8995                 if ( yy_accept[yy_current_state] )
8996                         {
8997                         (yy_last_accepting_state) = yy_current_state;
8998                         (yy_last_accepting_cpos) = yy_cp;
8999                         }
9000                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9001                         {
9002                         yy_current_state = (int) yy_def[yy_current_state];
9003                         if ( yy_current_state >= 3108 )
9004                                 yy_c = yy_meta[(unsigned int) yy_c];
9005                         }
9006                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9007                 }
9008
9009         return yy_current_state;
9010 }
9011
9012 /* yy_try_NUL_trans - try to make a transition on the NUL character
9013  *
9014  * synopsis
9015  *      next_state = yy_try_NUL_trans( current_state );
9016  */
9017     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9018 {
9019         register int yy_is_jam;
9020         register char *yy_cp = (yy_c_buf_p);
9021
9022         register YY_CHAR yy_c = 1;
9023         if ( yy_accept[yy_current_state] )
9024                 {
9025                 (yy_last_accepting_state) = yy_current_state;
9026                 (yy_last_accepting_cpos) = yy_cp;
9027                 }
9028         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9029                 {
9030                 yy_current_state = (int) yy_def[yy_current_state];
9031                 if ( yy_current_state >= 3108 )
9032                         yy_c = yy_meta[(unsigned int) yy_c];
9033                 }
9034         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9035         yy_is_jam = (yy_current_state == 3107);
9036
9037         return yy_is_jam ? 0 : yy_current_state;
9038 }
9039
9040 #ifndef YY_NO_INPUT
9041 #ifdef __cplusplus
9042     static int yyinput (void)
9043 #else
9044     static int input  (void)
9045 #endif
9046
9047 {
9048         int c;
9049     
9050         *(yy_c_buf_p) = (yy_hold_char);
9051
9052         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9053                 {
9054                 /* yy_c_buf_p now points to the character we want to return.
9055                  * If this occurs *before* the EOB characters, then it's a
9056                  * valid NUL; if not, then we've hit the end of the buffer.
9057                  */
9058                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9059                         /* This was really a NUL. */
9060                         *(yy_c_buf_p) = '\0';
9061
9062                 else
9063                         { /* need more input */
9064                         int offset = (yy_c_buf_p) - (yytext_ptr);
9065                         ++(yy_c_buf_p);
9066
9067                         switch ( yy_get_next_buffer(  ) )
9068                                 {
9069                                 case EOB_ACT_LAST_MATCH:
9070                                         /* This happens because yy_g_n_b()
9071                                          * sees that we've accumulated a
9072                                          * token and flags that we need to
9073                                          * try matching the token before
9074                                          * proceeding.  But for input(),
9075                                          * there's no matching to consider.
9076                                          * So convert the EOB_ACT_LAST_MATCH
9077                                          * to EOB_ACT_END_OF_FILE.
9078                                          */
9079
9080                                         /* Reset buffer status. */
9081                                         surf_parse_restart(surf_parse_in );
9082
9083                                         /*FALLTHROUGH*/
9084
9085                                 case EOB_ACT_END_OF_FILE:
9086                                         {
9087                                         if ( surf_parse_wrap( ) )
9088                                                 return EOF;
9089
9090                                         if ( ! (yy_did_buffer_switch_on_eof) )
9091                                                 YY_NEW_FILE;
9092 #ifdef __cplusplus
9093                                         return yyinput();
9094 #else
9095                                         return input();
9096 #endif
9097                                         }
9098
9099                                 case EOB_ACT_CONTINUE_SCAN:
9100                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9101                                         break;
9102                                 }
9103                         }
9104                 }
9105
9106         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9107         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9108         (yy_hold_char) = *++(yy_c_buf_p);
9109
9110         if ( c == '\n' )
9111                    
9112     surf_parse_lineno++;
9113 ;
9114
9115         return c;
9116 }
9117 #endif  /* ifndef YY_NO_INPUT */
9118
9119 /** Immediately switch to a different input stream.
9120  * @param input_file A readable stream.
9121  * 
9122  * @note This function does not reset the start condition to @c INITIAL .
9123  */
9124     void surf_parse_restart  (FILE * input_file )
9125 {
9126     
9127         if ( ! YY_CURRENT_BUFFER ){
9128         surf_parse_ensure_buffer_stack ();
9129                 YY_CURRENT_BUFFER_LVALUE =
9130             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9131         }
9132
9133         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9134         surf_parse__load_buffer_state( );
9135 }
9136
9137 /** Switch to a different input buffer.
9138  * @param new_buffer The new input buffer.
9139  * 
9140  */
9141     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9142 {
9143     
9144         /* TODO. We should be able to replace this entire function body
9145          * with
9146          *              surf_parse_pop_buffer_state();
9147          *              surf_parse_push_buffer_state(new_buffer);
9148      */
9149         surf_parse_ensure_buffer_stack ();
9150         if ( YY_CURRENT_BUFFER == new_buffer )
9151                 return;
9152
9153         if ( YY_CURRENT_BUFFER )
9154                 {
9155                 /* Flush out information for old buffer. */
9156                 *(yy_c_buf_p) = (yy_hold_char);
9157                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9158                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9159                 }
9160
9161         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9162         surf_parse__load_buffer_state( );
9163
9164         /* We don't actually know whether we did this switch during
9165          * EOF (surf_parse_wrap()) processing, but the only time this flag
9166          * is looked at is after surf_parse_wrap() is called, so it's safe
9167          * to go ahead and always set it.
9168          */
9169         (yy_did_buffer_switch_on_eof) = 1;
9170 }
9171
9172 static void surf_parse__load_buffer_state  (void)
9173 {
9174         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9175         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9176         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9177         (yy_hold_char) = *(yy_c_buf_p);
9178 }
9179
9180 /** Allocate and initialize an input buffer state.
9181  * @param file A readable stream.
9182  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9183  * 
9184  * @return the allocated buffer state.
9185  */
9186     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9187 {
9188         YY_BUFFER_STATE b;
9189     
9190         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9191         if ( ! b )
9192                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9193
9194         b->yy_buf_size = size;
9195
9196         /* yy_ch_buf has to be 2 characters longer than the size given because
9197          * we need to put in 2 end-of-buffer characters.
9198          */
9199         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9200         if ( ! b->yy_ch_buf )
9201                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9202
9203         b->yy_is_our_buffer = 1;
9204
9205         surf_parse__init_buffer(b,file );
9206
9207         return b;
9208 }
9209
9210 /** Destroy the buffer.
9211  * @param b a buffer created with surf_parse__create_buffer()
9212  * 
9213  */
9214     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9215 {
9216     
9217         if ( ! b )
9218                 return;
9219
9220         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9221                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9222
9223         if ( b->yy_is_our_buffer )
9224                 surf_parse_free((void *) b->yy_ch_buf  );
9225
9226         surf_parse_free((void *) b  );
9227 }
9228
9229 #ifndef __cplusplus
9230 extern int isatty (int );
9231 #endif /* __cplusplus */
9232     
9233 /* Initializes or reinitializes a buffer.
9234  * This function is sometimes called more than once on the same buffer,
9235  * such as during a surf_parse_restart() or at EOF.
9236  */
9237     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9238
9239 {
9240         int oerrno = errno;
9241     
9242         surf_parse__flush_buffer(b );
9243
9244         b->yy_input_file = file;
9245         b->yy_fill_buffer = 1;
9246
9247     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9248      * called from surf_parse_restart() or through yy_get_next_buffer.
9249      * In that case, we don't want to reset the lineno or column.
9250      */
9251     if (b != YY_CURRENT_BUFFER){
9252         b->yy_bs_lineno = 1;
9253         b->yy_bs_column = 0;
9254     }
9255
9256         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9257     
9258         errno = oerrno;
9259 }
9260
9261 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9262  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9263  * 
9264  */
9265     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9266 {
9267         if ( ! b )
9268                 return;
9269
9270         b->yy_n_chars = 0;
9271
9272         /* We always need two end-of-buffer characters.  The first causes
9273          * a transition to the end-of-buffer state.  The second causes
9274          * a jam in that state.
9275          */
9276         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9277         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9278
9279         b->yy_buf_pos = &b->yy_ch_buf[0];
9280
9281         b->yy_at_bol = 1;
9282         b->yy_buffer_status = YY_BUFFER_NEW;
9283
9284         if ( b == YY_CURRENT_BUFFER )
9285                 surf_parse__load_buffer_state( );
9286 }
9287
9288 /** Pushes the new state onto the stack. The new state becomes
9289  *  the current state. This function will allocate the stack
9290  *  if necessary.
9291  *  @param new_buffer The new state.
9292  *  
9293  */
9294 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9295 {
9296         if (new_buffer == NULL)
9297                 return;
9298
9299         surf_parse_ensure_buffer_stack();
9300
9301         /* This block is copied from surf_parse__switch_to_buffer. */
9302         if ( YY_CURRENT_BUFFER )
9303                 {
9304                 /* Flush out information for old buffer. */
9305                 *(yy_c_buf_p) = (yy_hold_char);
9306                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9307                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9308                 }
9309
9310         /* Only push if top exists. Otherwise, replace top. */
9311         if (YY_CURRENT_BUFFER)
9312                 (yy_buffer_stack_top)++;
9313         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9314
9315         /* copied from surf_parse__switch_to_buffer. */
9316         surf_parse__load_buffer_state( );
9317         (yy_did_buffer_switch_on_eof) = 1;
9318 }
9319
9320 /** Removes and deletes the top of the stack, if present.
9321  *  The next element becomes the new top.
9322  *  
9323  */
9324 void surf_parse_pop_buffer_state (void)
9325 {
9326         if (!YY_CURRENT_BUFFER)
9327                 return;
9328
9329         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9330         YY_CURRENT_BUFFER_LVALUE = NULL;
9331         if ((yy_buffer_stack_top) > 0)
9332                 --(yy_buffer_stack_top);
9333
9334         if (YY_CURRENT_BUFFER) {
9335                 surf_parse__load_buffer_state( );
9336                 (yy_did_buffer_switch_on_eof) = 1;
9337         }
9338 }
9339
9340 /* Allocates the stack if it does not exist.
9341  *  Guarantees space for at least one push.
9342  */
9343 static void surf_parse_ensure_buffer_stack (void)
9344 {
9345         int num_to_alloc;
9346     
9347         if (!(yy_buffer_stack)) {
9348
9349                 /* First allocation is just for 2 elements, since we don't know if this
9350                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9351                  * immediate realloc on the next call.
9352          */
9353                 num_to_alloc = 1;
9354                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9355                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9356                                                                 );
9357                 if ( ! (yy_buffer_stack) )
9358                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9359                                                                   
9360                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9361                                 
9362                 (yy_buffer_stack_max) = num_to_alloc;
9363                 (yy_buffer_stack_top) = 0;
9364                 return;
9365         }
9366
9367         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9368
9369                 /* Increase the buffer to prepare for a possible push. */
9370                 int grow_size = 8 /* arbitrary grow size */;
9371
9372                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9373                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9374                                                                 ((yy_buffer_stack),
9375                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9376                                                                 );
9377                 if ( ! (yy_buffer_stack) )
9378                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9379
9380                 /* zero only the new slots.*/
9381                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9382                 (yy_buffer_stack_max) = num_to_alloc;
9383         }
9384 }
9385
9386 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9387  * @param base the character buffer
9388  * @param size the size in bytes of the character buffer
9389  * 
9390  * @return the newly allocated buffer state object. 
9391  */
9392 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9393 {
9394         YY_BUFFER_STATE b;
9395     
9396         if ( size < 2 ||
9397              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9398              base[size-1] != YY_END_OF_BUFFER_CHAR )
9399                 /* They forgot to leave room for the EOB's. */
9400                 return 0;
9401
9402         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9403         if ( ! b )
9404                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9405
9406         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9407         b->yy_buf_pos = b->yy_ch_buf = base;
9408         b->yy_is_our_buffer = 0;
9409         b->yy_input_file = 0;
9410         b->yy_n_chars = b->yy_buf_size;
9411         b->yy_is_interactive = 0;
9412         b->yy_at_bol = 1;
9413         b->yy_fill_buffer = 0;
9414         b->yy_buffer_status = YY_BUFFER_NEW;
9415
9416         surf_parse__switch_to_buffer(b  );
9417
9418         return b;
9419 }
9420
9421 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9422  * scan from a @e copy of @a str.
9423  * @param yystr a NUL-terminated string to scan
9424  * 
9425  * @return the newly allocated buffer state object.
9426  * @note If you want to scan bytes that may contain NUL values, then use
9427  *       surf_parse__scan_bytes() instead.
9428  */
9429 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9430 {
9431     
9432         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9433 }
9434
9435 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9436  * scan from a @e copy of @a bytes.
9437  * @param yybytes the byte buffer to scan
9438  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9439  * 
9440  * @return the newly allocated buffer state object.
9441  */
9442 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9443 {
9444         YY_BUFFER_STATE b;
9445         char *buf;
9446         yy_size_t n;
9447         int i;
9448     
9449         /* Get memory for full buffer, including space for trailing EOB's. */
9450         n = _yybytes_len + 2;
9451         buf = (char *) surf_parse_alloc(n  );
9452         if ( ! buf )
9453                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9454
9455         for ( i = 0; i < _yybytes_len; ++i )
9456                 buf[i] = yybytes[i];
9457
9458         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9459
9460         b = surf_parse__scan_buffer(buf,n );
9461         if ( ! b )
9462                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9463
9464         /* It's okay to grow etc. this buffer, and we should throw it
9465          * away when we're done.
9466          */
9467         b->yy_is_our_buffer = 1;
9468
9469         return b;
9470 }
9471
9472     static void yy_push_state (int  new_state )
9473 {
9474         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9475                 {
9476                 yy_size_t new_size;
9477
9478                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9479                 new_size = (yy_start_stack_depth) * sizeof( int );
9480
9481                 if ( ! (yy_start_stack) )
9482                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9483
9484                 else
9485                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9486
9487                 if ( ! (yy_start_stack) )
9488                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9489                 }
9490
9491         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9492
9493         BEGIN(new_state);
9494 }
9495
9496     static void yy_pop_state  (void)
9497 {
9498         if ( --(yy_start_stack_ptr) < 0 )
9499                 YY_FATAL_ERROR( "start-condition stack underflow" );
9500
9501         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9502 }
9503
9504 #ifndef YY_EXIT_FAILURE
9505 #define YY_EXIT_FAILURE 2
9506 #endif
9507
9508 static void yy_fatal_error (yyconst char* msg )
9509 {
9510         (void) fprintf( stderr, "%s\n", msg );
9511         exit( YY_EXIT_FAILURE );
9512 }
9513
9514 /* Redefine yyless() so it works in section 3 code. */
9515
9516 #undef yyless
9517 #define yyless(n) \
9518         do \
9519                 { \
9520                 /* Undo effects of setting up surf_parse_text. */ \
9521         int yyless_macro_arg = (n); \
9522         YY_LESS_LINENO(yyless_macro_arg);\
9523                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9524                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9525                 (yy_hold_char) = *(yy_c_buf_p); \
9526                 *(yy_c_buf_p) = '\0'; \
9527                 surf_parse_leng = yyless_macro_arg; \
9528                 } \
9529         while ( 0 )
9530
9531 /* Accessor  methods (get/set functions) to struct members. */
9532
9533 /** Get the current line number.
9534  * 
9535  */
9536 int surf_parse_get_lineno  (void)
9537 {
9538         
9539     return surf_parse_lineno;
9540 }
9541
9542 /** Get the input stream.
9543  * 
9544  */
9545 FILE *surf_parse_get_in  (void)
9546 {
9547         return surf_parse_in;
9548 }
9549
9550 /** Get the output stream.
9551  * 
9552  */
9553 FILE *surf_parse_get_out  (void)
9554 {
9555         return surf_parse_out;
9556 }
9557
9558 /** Get the length of the current token.
9559  * 
9560  */
9561 int surf_parse_get_leng  (void)
9562 {
9563         return surf_parse_leng;
9564 }
9565
9566 /** Get the current token.
9567  * 
9568  */
9569
9570 char *surf_parse_get_text  (void)
9571 {
9572         return surf_parse_text;
9573 }
9574
9575 /** Set the current line number.
9576  * @param line_number
9577  * 
9578  */
9579 void surf_parse_set_lineno (int  line_number )
9580 {
9581     
9582     surf_parse_lineno = line_number;
9583 }
9584
9585 /** Set the input stream. This does not discard the current
9586  * input buffer.
9587  * @param in_str A readable stream.
9588  * 
9589  * @see surf_parse__switch_to_buffer
9590  */
9591 void surf_parse_set_in (FILE *  in_str )
9592 {
9593         surf_parse_in = in_str ;
9594 }
9595
9596 void surf_parse_set_out (FILE *  out_str )
9597 {
9598         surf_parse_out = out_str ;
9599 }
9600
9601 int surf_parse_get_debug  (void)
9602 {
9603         return surf_parse__flex_debug;
9604 }
9605
9606 void surf_parse_set_debug (int  bdebug )
9607 {
9608         surf_parse__flex_debug = bdebug ;
9609 }
9610
9611 static int yy_init_globals (void)
9612 {
9613         /* Initialization is the same as for the non-reentrant scanner.
9614      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9615      */
9616
9617     /* We do not touch surf_parse_lineno unless the option is enabled. */
9618     surf_parse_lineno =  1;
9619     
9620     (yy_buffer_stack) = 0;
9621     (yy_buffer_stack_top) = 0;
9622     (yy_buffer_stack_max) = 0;
9623     (yy_c_buf_p) = (char *) 0;
9624     (yy_init) = 0;
9625     (yy_start) = 0;
9626
9627     (yy_start_stack_ptr) = 0;
9628     (yy_start_stack_depth) = 0;
9629     (yy_start_stack) =  NULL;
9630
9631 /* Defined in main.c */
9632 #ifdef YY_STDINIT
9633     surf_parse_in = stdin;
9634     surf_parse_out = stdout;
9635 #else
9636     surf_parse_in = (FILE *) 0;
9637     surf_parse_out = (FILE *) 0;
9638 #endif
9639
9640     /* For future reference: Set errno on error, since we are called by
9641      * surf_parse_lex_init()
9642      */
9643     return 0;
9644 }
9645
9646 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9647 int surf_parse_lex_destroy  (void)
9648 {
9649     
9650     /* Pop the buffer stack, destroying each element. */
9651         while(YY_CURRENT_BUFFER){
9652                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9653                 YY_CURRENT_BUFFER_LVALUE = NULL;
9654                 surf_parse_pop_buffer_state();
9655         }
9656
9657         /* Destroy the stack itself. */
9658         surf_parse_free((yy_buffer_stack) );
9659         (yy_buffer_stack) = NULL;
9660
9661     /* Destroy the start condition stack. */
9662         surf_parse_free((yy_start_stack)  );
9663         (yy_start_stack) = NULL;
9664
9665     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9666      * surf_parse_lex() is called, initialization will occur. */
9667     yy_init_globals( );
9668
9669     return 0;
9670 }
9671
9672 /*
9673  * Internal utility routines.
9674  */
9675
9676 #ifndef yytext_ptr
9677 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9678 {
9679         register int i;
9680         for ( i = 0; i < n; ++i )
9681                 s1[i] = s2[i];
9682 }
9683 #endif
9684
9685 #ifdef YY_NEED_STRLEN
9686 static int yy_flex_strlen (yyconst char * s )
9687 {
9688         register int n;
9689         for ( n = 0; s[n]; ++n )
9690                 ;
9691
9692         return n;
9693 }
9694 #endif
9695
9696 void *surf_parse_alloc (yy_size_t  size )
9697 {
9698         return (void *) malloc( size );
9699 }
9700
9701 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9702 {
9703         /* The cast to (char *) in the following accommodates both
9704          * implementations that use char* generic pointers, and those
9705          * that use void* generic pointers.  It works with the latter
9706          * because both ANSI C and C++ allow castless assignment from
9707          * any pointer type to void*, and deal with argument conversions
9708          * as though doing an assignment.
9709          */
9710         return (void *) realloc( (char *) ptr, size );
9711 }
9712
9713 void surf_parse_free (void * ptr )
9714 {
9715         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9716 }
9717
9718 #define YYTABLES_NAME "yytables"
9719
9720 /* Element context stack lookup. */
9721 int surfxml_element_context(int i)
9722 {
9723   return (0<i && i<yy_start_stack_depth
9724           ? yy_start_stack[yy_start_stack_ptr - i]
9725           : 0);
9726 }
9727
9728 #ifdef FLEX_DEBUG
9729 void print_yy_stack(char* fmt, ...)
9730 {
9731   int i = 0; va_list ap; va_start(ap, fmt);
9732   vfprintf(stderr, fmt, ap);
9733   if (surfxml_statenames) {
9734       for (i=1; i<yy_start_stack_ptr; i++) {
9735           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9736       }
9737       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9738   }
9739   va_end(ap);
9740 }
9741
9742 void print_surfxml_bufferstack()
9743 {
9744     int i;
9745     fputs("Buffer: ", stderr);
9746     for (i = 0; i < blimit; i++) {
9747        if ( surfxml_bufferstack[i] == '\377' ) break;
9748          putc(surfxml_bufferstack[i], stderr);
9749     }
9750     putc('\n', stderr);
9751 }
9752
9753 static void debug_enter(int state, const char* statename) {
9754   yy_push_state(state);
9755   if (surf_parse__flex_debug) {
9756        print_yy_stack("--ENTER(%s) : ",statename);
9757        print_surfxml_bufferstack();
9758   }
9759 }
9760
9761 static void debug_leave(void) {
9762     if (surf_parse__flex_debug) {
9763         print_yy_stack("--LEAVE : ");
9764         print_surfxml_bufferstack();
9765     }
9766   yy_pop_state();
9767 }
9768
9769 static void debug_set(int state, const char* statename) {
9770   BEGIN(state);
9771   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9772 }
9773 #endif
9774
9775 static void cleanup(void)
9776 {
9777     if (surfxml_statenames) {
9778         free(surfxml_statenames);
9779         surfxml_statenames = NULL;
9780     }
9781     free(surfxml_bufferstack);
9782     surfxml_bufferstack = NULL;
9783
9784     free(indexstack);
9785     indexstack = NULL;
9786 }
9787
9788 static int fail(const char* fmt, ...)
9789 {
9790     int chars_left, used;
9791     va_list ap; va_start(ap, fmt);
9792 #ifdef FLEXML_yylineno
9793     used = sprintf(flexml_err_msg,
9794                    "Invalid XML (XML input line %d, state %d): ",
9795                    surf_parse_lineno, YY_START);
9796 #else
9797     used = sprintf(flexml_err_msg,
9798                    "Invalid XML (state %d): ",
9799                    YY_START);
9800 #endif
9801     chars_left = flexml_max_err_msg_size - used - 1;
9802     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9803     va_end(ap);
9804
9805 #ifndef FLEXML_quiet_parser
9806     /* print directly to sdterr */
9807     fprintf(stderr, "%s\n", flexml_err_msg);
9808     flexml_err_msg[0] = '\0';
9809 #endif
9810
9811     cleanup();
9812
9813     return 1;
9814 }
9815