Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add disk usage and size parameters for storage.
[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 474
407 #define YY_END_OF_BUFFER 475
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[2797] =
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,  475,  473,   15,   10,
443        10,   15,   15,  453,   10,  453,    5,    6,    5,    8,
444         9,    8,  469,  461,  462,  470,  467,  470,  468,  472,
445       461,  462,  472,  473,   22,   10,   22,   22,   22,   20,
446        22,   26,   10,   26,   26,  473,   26,  473,  473,   26,
447        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
448        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
449
450       470,  469,   78,   10,   78,   78,   78,   76,   78,   78,
451        78,   78,   78,   82,   10,   82,  473,   82,  101,   10,
452       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
453       114,   10,  114,  114,  114,  112,  114,  114,  118,   10,
454       118,  118,  473,  118,  118,  473,  473,  118,  473,  118,
455       473,  118,  131,   10,  131,  131,  131,  129,  131,  131,
456       131,  131,  135,   10,  135,  135,  144,   10,  144,  144,
457       144,  142,  144,  144,  148,   10,  148,  148,  157,   10,
458       157,  157,  157,  155,  157,  157,  161,   10,  161,  170,
459        10,  170,  170,  170,  168,  170,  170,  174,   10,  174,
460
461       197,   10,  197,  197,  197,  195,  197,  197,  197,  197,
462       197,  201,   10,  201,  473,  201,  242,   10,  242,  242,
463       242,  240,  242,  242,  242,  242,  242,  242,  242,  242,
464       246,   10,  246,  267,   10,  267,  267,  267,  265,  267,
465       267,  267,  267,  267,  267,  267,  271,   10,  271,  280,
466        10,  280,  280,  280,  278,  280,  280,  284,   10,  284,
467       311,   10,  311,  311,  311,  309,  311,  311,  311,  311,
468       315,   10,  315,  315,  328,   10,  328,  328,  328,  326,
469       328,  328,  332,   10,  332,  473,  332,  349,   10,  349,
470       349,  349,  347,  349,  349,  349,  353,   10,  353,  353,
471
472       366,   10,  366,  366,  366,  364,  366,  366,  370,   10,
473       370,  379,   10,  379,  379,  379,  377,  379,  379,  383,
474        10,  383,  383,  396,   10,  396,  396,  396,  394,  396,
475       396,  396,  400,   10,  400,  400,  413,   10,  413,  413,
476       413,  411,  413,  413,  413,  413,  417,   10,  417,  473,
477       417,  424,   10,  424,  424,  424,  422,  424,  428,   10,
478       428,  435,   10,  435,  435,  435,  433,  435,  439,   10,
479       439,  439,  448,   10,  448,  448,  448,  446,  448,  448,
480       452,   10,  452,   10,    0,    2,    2,    0,    4,    7,
481       464,  463,    0,    0,    0,    0,    0,    0,    0,   21,
482
483        23,   23,    0,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485         0,    0,    0,    0,    0,   32,   34,   34,    0,   47,
486        49,   49,   49,   49,    0,    0,    0,   77,   79,   79,
487        79,   79,   79,   79,   79,   79,   79,    0,    0,  100,
488       102,  102,  102,  102,    0,  113,  115,  115,  115,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,  130,  132,  132,  132,  132,  132,    0,  143,  145,
491       145,  145,    0,  156,  158,  158,  158,    0,  169,  171,
492       171,  171,    0,  196,  198,  198,  198,  198,  198,  198,
493
494         0,    0,  241,  243,  243,  243,  243,  243,  243,  243,
495       243,  243,  243,  243,  243,  243,  243,    0,  266,  268,
496       268,  268,  268,  268,  268,  268,  268,    0,  279,  281,
497       281,  281,    0,  310,  312,  312,  312,  312,  312,  312,
498         0,  327,  329,  329,  329,  329,    0,    0,  348,  350,
499       350,  350,  350,  350,    0,  365,  367,  367,  367,    0,
500       378,  380,  380,  380,    0,  395,  397,  397,  397,  397,
501         0,  412,  414,  414,  414,  414,  414,    0,    0,  423,
502       425,  425,    0,  434,  436,  436,    0,  447,  449,  449,
503       449,    0,    0,    0,    0,    0,    3,    0,    0,    0,
504
505         0,    0,    0,    0,  471,    0,   23,    0,    0,  107,
506         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
508         0,    0,    0,    0,   34,    0,    0,   49,    0,    0,
509        49,    0,    0,    0,  466,   79,    0,    0,   79,   79,
510        79,   79,   79,   79,    0,    0,    0,  102,  102,  102,
511         0,    0,    0,    0,  115,    0,    0,  107,    0,    0,
512         0,    0,    0,  106,    0,    0,    0,    0,  132,    0,
513         0,  132,  132,    0,    0,    0,    0,  145,    0,    0,
514         0,    0,  158,    0,    0,  171,  171,    0,    0,  198,
515
516       198,  198,    0,    0,  198,  198,    0,    0,    0,    0,
517       243,  243,    0,    0,  243,    0,    0,  243,  243,  243,
518       243,  243,  243,  243,  243,    0,    0,  268,  268,  268,
519         0,    0,  268,  268,  268,    0,    0,  281,    0,    0,
520         0,    0,  312,    0,    0,  312,  312,  312,    0,    0,
521       329,  329,  329,    0,    0,    0,  350,  350,  350,  350,
522         0,    0,  367,    0,    0,    0,    0,  380,  380,    0,
523         0,  397,  397,  397,    0,    0,  414,  414,  414,  414,
524         0,    0,    0,  425,    0,    0,    0,    0,    0,    0,
525         0,    0,  449,    0,    0,    0,   14,    1,    0,    0,
526
527       459,    0,    0,    0,  456,  455,    0,    0,   23,    0,
528         0,   25,    0,  107,    0,    0,    0,    0,    0,    0,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
530         0,    0,    0,  106,    0,    0,    0,    0,    0,   34,
531         0,    0,   36,    0,   49,    0,   41,   40,   49,    0,
532         0,    0,   51,    0,   79,    0,   55,   54,    0,    0,
533        79,    0,    0,   79,   79,   79,    0,    0,   81,    0,
534         0,  102,  102,  102,    0,    0,  104,    0,    0,  109,
535       108,  115,    0,    0,  117,    0,    0,    0,    0,    0,
536         0,    0,    0,    0,    0,    0,  132,    0,  122,  121,
537
538       132,  132,    0,    0,  134,    0,    0,  139,  138,  145,
539         0,    0,  147,    0,    0,  152,  151,  158,    0,    0,
540       160,    0,  171,  171,    0,    0,  173,    0,  198,  198,
541       198,    0,  178,  177,  198,  198,    0,    0,  200,    0,
542         0,    0,  243,  243,  243,  243,    0,  217,  216,  243,
543         0,  205,  204,    0,    0,  243,  243,  243,  243,  243,
544       243,  243,    0,    0,  245,    0,  268,  268,  268,  268,
545         0,  250,  249,    0,    0,  268,  268,    0,    0,  270,
546         0,  281,    0,  275,  274,    0,    0,  283,    0,  312,
547         0,  288,  287,  312,  312,  312,    0,    0,  314,    0,
548
549         0,    0,    0,    0,  329,    0,    0,  331,    0,    0,
550         0,    0,  350,  350,    0,    0,  350,    0,    0,  352,
551         0,  367,    0,  357,  356,    0,    0,  369,    0,    0,
552         0,    0,    0,    0,    0,  382,    0,    0,    0,  397,
553       397,    0,    0,    0,    0,  399,    0,  414,  414,  414,
554       414,    0,    0,  416,    0,    0,  425,    0,    0,  427,
555         0,    0,  432,  431,    0,    0,  438,    0,    0,  443,
556       442,  449,    0,    0,  451,    0,    0,    0,  460,  454,
557         0,    0,    0,   23,    0,    0,    0,    0,    0,    0,
558       175,    0,  285,    0,    0,  248,    0,    0,  440,    0,
559
560         0,    0,    0,    0,    0,    0,    0,  247,    0,    0,
561         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
562        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
563        79,    0,  441,  102,    0,    0,  102,    0,  115,    0,
564       116,    0,    0,  176,  286,    0,    0,    0,    0,    0,
565         0,  132,  132,    0,    0,    0,  145,    0,    0,    0,
566         0,    0,    0,  171,    0,  198,  198,    0,    0,  198,
567       198,    0,    0,    0,  243,  243,  243,  243,    0,    0,
568         0,  219,  218,  243,  243,  243,  243,  243,  243,  243,
569         0,  268,  268,  268,  268,    0,  258,  257,  268,  268,
570
571         0,  281,    0,  312,  312,  312,  312,    0,    0,  321,
572       320,    0,  319,  318,  329,    0,  285,    0,  338,  337,
573       350,  350,    0,  336,  335,  350,    0,  367,    0,    0,
574       376,  375,    0,  374,  373,    0,    0,  389,  388,  397,
575       397,    0,  387,  386,    0,  414,    0,    0,  414,  414,
576         0,    0,  425,    0,    0,  449,    0,    0,    0,    0,
577        12,    0,  457,  458,    0,   23,    0,    0,    0,    0,
578         0,    0,  175,    0,  285,    0,  149,    0,  248,    0,
579         0,  440,    0,  316,    0,   39,    0,    0,    0,    0,
580       247,    0,   38,    0,   30,   29,    0,    0,   43,   42,
581
582        49,    0,    0,   79,    0,   61,   60,   79,    0,   65,
583        64,   79,    0,  441,  102,    0,    0,    0,    0,    0,
584         0,  115,    0,    0,  176,  286,  317,    0,    0,    0,
585       317,  316,  132,    0,    0,    0,  126,  125,    0,  145,
586         0,    0,  154,  153,    0,    0,  167,  166,  171,    0,
587       198,  198,    0,  182,  181,    0,    0,    0,    0,  198,
588         0,  150,    0,  243,    0,    0,  243,  243,    0,  215,
589       214,    0,    0,  243,  243,  243,  243,  243,  243,    0,
590       268,    0,    0,  268,  268,    0,    0,  268,    0,  281,
591         0,  312,  312,  312,    0,    0,  312,    0,  329,    0,
592
593         0,  350,  350,  350,    0,  367,    0,    0,  397,  397,
594         0,  414,    0,  404,  403,  414,  414,    0,    0,    0,
595         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
596         0,   23,    0,    0,    0,    0,    0,  430,    0,    0,
597       149,    0,    0,    0,   53,  316,  272,    0,   39,    0,
598       429,   52,    0,    0,    0,   38,    0,    0,   49,    0,
599         0,   79,   79,   79,    0,  102,    0,    0,    0,    0,
600         0,    0,    0,    0,    0,   96,   95,    0,  115,    0,
601         0,  317,  273,    0,    0,    0,  132,    0,  124,  123,
602         0,    0,    0,    0,    0,    0,    0,    0,  198,  198,
603
604         0,  180,  179,    0,    0,    0,  198,    0,  199,  150,
605         0,  243,    0,  227,  226,    0,    0,  243,    0,  213,
606       212,    0,    0,  243,  243,  243,  243,    0,    0,    0,
607       268,    0,  254,  253,    0,    0,  268,    0,  252,  251,
608       268,    0,  269,  281,    0,  312,  312,  312,    0,    0,
609         0,  312,    0,  313,  329,    0,    0,    0,    0,    0,
610         0,  350,    0,  367,    0,    0,    0,    0,    0,    0,
611         0,  414,  414,  414,    0,    0,    0,  421,  420,    0,
612         0,    0,  445,  444,    0,  450,    0,    0,    0,    0,
613         0,    0,    0,  333,    0,    0,    0,  203,  430,   28,
614
615         0,    0,    0,  402,   53,  272,  136,    0,  429,   52,
616       202,   27,  401,    0,    0,   49,    0,    0,   50,   79,
617         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
618         0,    0,    0,    0,    0,    0,    0,    0,    0,  334,
619         0,    0,  273,  137,    0,    0,    0,    0,  141,  140,
620         0,    0,  159,    0,  165,  164,    0,  198,  198,    0,
621         0,  198,    0,  243,    0,  229,  228,  243,    0,  207,
622       206,    0,    0,  243,  243,  243,    0,  209,  208,    0,
623       268,    0,  256,  255,  268,  268,  281,    0,  312,    0,
624         0,  312,  312,    0,    0,  312,  329,    0,  330,    0,
625
626         0,  342,  341,    0,  340,  339,  350,    0,  367,    0,
627         0,    0,  393,  392,    0,  391,  390,    0,  414,  414,
628       414,    0,    0,    0,    0,    0,    0,    0,   17,    0,
629        19,   18,    0,  333,  418,    0,    0,  203,   28,  354,
630       162,   16,  402,  136,    0,    0,  202,   27,  401,    0,
631         0,   49,  465,   79,    0,   67,   66,   79,    0,   80,
632         0,   98,   97,    0,    0,    0,    0,    0,    0,    0,
633         0,    0,    0,    0,    0,  111,  110,  334,    0,    0,
634       137,    0,    0,  128,  127,    0,    0,    0,  198,  198,
635         0,    0,    0,    0,  198,  163,  243,  243,    0,  211,
636
637       210,  243,  243,  243,    0,  268,  268,  268,  281,    0,
638       282,  312,    0,  294,  293,  312,  312,    0,    0,    0,
639         0,  312,  329,  355,  350,    0,  367,    0,    0,    0,
640         0,    0,  414,  414,    0,  419,    0,    0,  437,    0,
641         0,    0,   17,    0,  418,    0,    0,  354,  162,   16,
642         0,    0,    0,    0,   35,   49,    0,    0,   79,    0,
643         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
644         0,    0,    0,    0,    0,  146,    0,  198,  198,    0,
645       188,    0,  187,  198,  163,  243,  243,    0,    0,  243,
646       243,    0,  244,  268,  268,  268,  281,    0,    0,  312,
647
648       312,  312,    0,  298,    0,  297,  312,  329,  355,  350,
649         0,  351,    0,    0,    0,    0,    0,    0,  406,  405,
650         0,    0,  414,    0,  415,  419,    0,    0,    0,    0,
651         0,   24,    0,    0,    0,    0,    0,   49,    0,    0,
652         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
653         0,    0,    0,    0,    0,    0,    0,    0,  172,  198,
654       198,  190,  189,    0,    0,  243,  243,    0,  239,  238,
655       243,    0,    0,  268,  268,    0,    0,  281,    0,  290,
656       289,  312,  312,  312,  300,  299,    0,    0,  329,  350,
657         0,    0,    0,    0,  368,    0,    0,    0,  410,  409,
658
659         0,    0,    0,  426,    0,    0,    0,    0,  371,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661        79,    0,    0,    0,    0,   88,    0,    0,    0,    0,
662        87,    0,    0,  372,    0,    0,  198,    0,    0,    0,
663       192,  191,  243,  243,  243,    0,  237,  236,  268,    0,
664         0,    0,  264,  263,    0,    0,  312,  312,  312,    0,
665       302,  301,    0,    0,    0,    0,    0,    0,    0,    0,
666         0,    0,    0,    0,    0,  408,  407,    0,    0,    0,
667         0,  371,  119,    0,    0,    0,   45,   44,    0,    0,
668         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
669
670         0,    0,    0,    0,    0,    0,    0,  372,  120,    0,
671         0,    0,  198,    0,  194,  193,  243,  243,  243,  268,
672         0,  260,  259,    0,  277,  276,  312,    0,    0,  312,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,  384,  119,
675        84,   83,    0,    0,    0,    0,    0,    0,    0,    0,
676         0,    0,    0,    0,   94,    0,    0,    0,   93,    0,
677         0,  385,  120,    0,    0,  184,  183,  198,  243,  243,
678       243,  268,  312,    0,  296,  295,  312,    0,    0,    0,
679         0,    0,    0,    0,    0,    0,    0,  359,    0,    0,
680
681       358,    0,  381,    0,    0,    0,    0,    0,    0,    0,
682       384,   84,   83,    0,    0,    0,    0,    0,    0,    0,
683         0,    0,   63,   62,    0,    0,    0,    0,    0,    0,
684         0,  385,    0,  133,  198,  243,  243,    0,    0,  268,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
687         0,    0,    0,    0,   75,   71,    0,    0,   74,   70,
688         0,   92,    0,    0,   91,    0,    0,    0,  103,  198,
689       243,  243,    0,    0,    0,  268,    0,  292,  291,    0,
690         0,    0,  325,    0,  324,    0,  346,    0,  345,    0,
691
692       361,  363,  360,  362,    0,  398,    0,    0,    0,   12,
693         0,   12,    0,    0,    0,    0,    0,   86,   90,   85,
694        89,  198,  243,  243,    0,    0,    0,    0,  268,    0,
695         0,    0,    0,  323,  322,  344,  343,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,   69,    0,
699        68,    0,    0,  186,  185,    0,  235,  234,    0,    0,
700         0,    0,    0,    0,    0,    0,    0,    0,  262,  261,
701         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
702
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,   73,   72,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,  221,
709         0,    0,  220,    0,    0,  304,    0,    0,  303,    0,
710         0,    0,    0,    0,  225,    0,  224,    0,  306,    0,
711       305,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,  231,    0,  230,    0,    0,    0,    0,
713
714         0,    0,  233,  232,  223,  222,  308,  307,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,   13,    0
724
725     } ;
726
727 static yyconst flex_int32_t yy_ec[256] =
728     {   0,
729         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
730         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
731         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
732         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
733         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
734        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
735        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
736        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
737        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
738        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
739
740        53,   54,   55,   56,   57,   31,   58,   59,   60,   61,
741        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
742        72,   73,    1,    1,    1,    1,    1,    1,    1,    1,
743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
745         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
746         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
747         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
748         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
749         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
750
751         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
752         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
753         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
754         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
755         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
756         1,    1,    1,    1,    1
757     } ;
758
759 static yyconst flex_int32_t yy_meta[74] =
760     {   0,
761         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
762         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
763         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
764         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
765         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
766         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
767         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
768         5,    5,    5
769     } ;
770
771 static yyconst flex_int16_t yy_base[3194] =
772     {   0,
773         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
774        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
775       108,  177,   75,   78,   83,  128,  131,  134,  138,  141,
776       158,  197,  200,  203,  207,  210,  227,  230,  233,  236,
777       239,  256,  274,  328,  294,  297,  300,  304,  307,  348,
778       351,  354,  382,  445,  359,  414,  508,  574,  405,  408,
779       412,  417,  465,  468,  471,  475,  640,  707,  478,  528,
780       774,  839,  531,  534,  538,  541,  594,  597,  600,  604,
781       607,  660,  663,  666,  670,  673,  727,  730,  733,  737,
782       740,  794,  797,  800,  804,  807,  859,  862,  865,  869,
783
784       872,  889,  907,  973,  927,  930,  933,  937,  993,  996,
785       999, 1003, 1039, 1106, 1059, 1062, 1065, 1069, 1072, 1126,
786      1129, 1132, 1173, 1234, 1136, 1139, 1295, 1362, 1193, 1196,
787      1429, 1495, 1199, 1203, 1206, 1254, 1257, 1260, 1264, 1267,
788      1561,    0, 1315, 1318, 1634, 1700, 1321, 1325, 1766, 1823,
789      1328, 1382, 1880, 1946, 1385, 1388, 1392, 1395, 1449, 1452,
790      1455, 1459, 2012, 2078, 1515, 1518, 1521, 1525, 1654, 1657,
791      1660, 1664, 2144, 2210, 1720, 1723, 1726, 1730, 1786, 1789,
792      1792, 1796, 2276, 2333, 1843, 1846, 2390, 2456, 1849, 1853,
793      1900, 1903, 1906, 1910, 1913, 1966, 2522, 2588, 1969, 1972,
794
795      1976, 1979, 2032, 2035, 2038, 2042, 2654, 2720, 2045, 2098,
796      2101, 2104, 2108, 2111, 2164, 2167, 2786, 2855, 2170, 2174,
797      2924, 2981, 2177, 2230, 2233, 2236, 2240, 2243, 2296, 2299,
798      3038, 3107, 2302, 2306,    0,    0, 7647,10173,10173,   95,
799       100,   29,   41,10173,  103,   51,10173,10173, 7636,10173,
800     10173, 7625,10173, 7636, 7636,  498,10173,10173,10173,10173,
801      7634, 7630, 7585,  145,10173,  161, 7611,    0,  146,10173,
802      7573,10173,  166, 3172,   88,  204,  205,  254, 7613, 7561,
803     10173,  169, 7122,    0,  153,10173, 7084,10173,  260, 7127,
804        31,10173,  357, 7118,    0,  244,10173, 7080, 7084, 7082,
805
806       359, 7087,10173,  438, 7113,    0,  248,10173, 7078, 7078,
807       441, 7079,  260,10173,  567,  112,  181,  210,10173,  624,
808      7100,    0,  360,10173, 7060, 7060, 7044,10173,  633,  422,
809     10173,  692, 7088,    0,  479,10173, 7054, 7038,10173,  697,
810      2299, 2307,   29,  348,  197, 7086,  740,  805,  707,  673,
811      7081,   16,10173,  700, 7072,    0,  480,10173, 7028, 7033,
812      7022, 7020,10173,  765,  260,  361,10173,  826, 7055,    0,
813       482,10173, 7022, 7000,10173,  830,  413,  425,10173,  833,
814      7039,    0,  543,10173, 7006, 7007,10173,  895,  546,10173,
815       898, 7028,    0,  545,10173, 6998, 6973,10173,  940,  611,
816
817     10173,  957, 7024,    0,  609,10173, 6973, 6975, 6984, 6968,
818      6962,10173,  966,  950, 7015,  316,10173, 1023, 6995,    0,
819       612,10173, 6945,   21, 6948, 6957, 6958,  442,  382,  615,
820     10173, 1032,  685,10173, 1089, 6986,    0,  684,10173, 6913,
821      6907, 6914, 6911, 6913, 6898, 6888,10173, 1095,  944,10173,
822      1098, 6934,    0,  873,10173, 6890, 6895,10173, 1101,  945,
823     10173, 1156, 6926,    0,  874,10173, 6895, 6883, 6885,   33,
824     10173, 1162,  512,  527,10173, 1165, 6913,    0,  884,10173,
825      6864,  155,10173, 1168,  959, 6917, 6859,10173, 1223, 6897,
826         0,  942,10173, 6846, 6841,  684,10173, 1229, 6897,  758,
827
828     10173, 1284, 6887,    0, 1007,10173, 6849, 6852,10173, 1290,
829      1011,10173, 1345, 6878,    0, 1010,10173, 6824, 6824,10173,
830      1348, 6875,  996,10173, 1351, 6861,    0, 1073,10173, 6814,
831      6808, 6804,10173, 1355, 6852, 1025,10173, 1412, 6830,    0,
832      1074,10173, 6776, 6781, 6784, 6755,10173, 1415, 1216, 6805,
833       556,10173, 1418, 6796,    0, 1140,10173, 6756,10173, 1422,
834      1460,10173, 1480, 6784,    0, 1141,10173, 6750,10173, 1485,
835        11,  926,10173, 1528, 6781,    0, 1208,10173, 6747, 6745,
836     10173, 1545, 1533, 1553,  736, 6712,10173, 6770, 6754,10173,
837     10173,10173, 1674,  687, 6705, 6700, 6695, 6741, 6692,10173,
838
839         0, 6684, 6685, 6703, 6676, 6667,  754, 6669, 6669, 6668,
840       757, 1224,  630, 6657, 6652,  822, 1417, 6663,  844, 6640,
841      1612, 6634, 1089, 1633, 1678,10173,    0, 6620, 6621,10173,
842         0, 6616, 1799, 6607,  280, 6603, 6647,10173,    0, 6604,
843      1856, 6577, 6598, 6584, 6587, 6584, 6580, 6566, 1699,10173,
844         0, 6568, 6559, 6569, 6545,10173,    0, 2357, 6543, 6587,
845      6565, 6531, 6535, 6538, 1488, 6526, 6551, 6510, 6509, 1491,
846      1691,10173,    0, 6512, 2364, 6520, 6490, 6496,10173,    0,
847      2369, 6497, 6488,10173,    0, 2410, 6483, 6482,10173,    0,
848      6476, 6472, 6473,10173,    0, 6472, 1150, 2413, 6450, 6461,
849
850      6453, 1156,10173,    0, 6450, 6450, 2416, 6423, 2419, 6420,
851      6415, 6424, 6424, 6406, 6420, 6419, 6411, 6413,10173,    0,
852      6413, 6409, 6394, 2422, 6383, 6379, 6398, 6383,10173,    0,
853      6382, 2476, 6374,10173,    0, 6377, 2479, 6369, 6382, 6381,
854      6369,10173,    0, 6360, 6374, 6362, 6333, 6339,10173,    0,
855      6324, 6342, 6337, 6317, 6354,10173,    0, 6309, 2482, 6314,
856     10173,    0, 6304, 6315, 6315,10173,    0, 6291, 6309, 6304,
857      6290,10173,    0, 6278, 6271, 6277, 6285, 6259, 6256,10173,
858         0, 6260, 6265,10173,    0, 2485, 6262,10173,    0, 2488,
859      6249, 6244, 6285, 6286, 1254, 6235,10173, 1919,    0, 6230,
860
861      6228, 6261, 6256, 6210,10173, 6221, 6199, 2542, 2545, 1875,
862      6205, 6196, 6189, 6191, 6185, 6198, 6186, 6176, 6155, 6167,
863      6170, 6151, 6148, 6136, 6141, 6149, 6136, 6132, 1939, 6123,
864      6139, 6126, 6116, 6124, 6119, 2550, 2553, 6117, 2556, 2063,
865      6104, 6136, 2608, 2613,10173, 6105, 2617, 2129, 2620, 6096,
866      2623, 6094, 6095, 6094, 2627, 2687, 6078, 6075, 6082, 6081,
867      2677, 2682, 2690, 2198, 6051, 2740, 2806, 1996, 6052, 6047,
868      6048, 6039, 6035, 2005, 6032, 6031, 6019, 6017, 6012, 2746,
869      2264, 6025, 6019, 2749, 2752, 2760, 2441, 6014, 2755, 2810,
870      2818, 2507, 6013, 2814, 2821, 6004, 6003, 2876, 2883, 5997,
871
872      5988, 5991, 2825, 2576, 5990, 5967, 2886, 2889, 5964, 5960,
873      5969, 1756, 2895, 2642, 5971, 2944, 2844, 2950, 5956, 5940,
874      5936, 5921, 5917, 5914, 5921, 2953, 2956, 5917,  376, 5901,
875      3001, 2909, 3004, 5912, 5890, 3009, 3014, 5889, 3058, 3062,
876      3070, 3076, 5897, 3079, 3085, 5894, 5881, 5877, 3127, 3130,
877      3133, 3137, 3140, 3158, 3163, 5876, 3166, 3178, 3169, 3187,
878      3199, 3206, 5862, 3214, 3097, 3238, 3246, 3249, 3252, 3257,
879      3260, 3270, 3279, 3282, 3288, 3291, 5857, 5834, 5841, 5827,
880      3302, 3310, 5833, 5815, 3313, 3316, 3321, 3335, 3344, 3347,
881      3324, 3350, 5814, 3358, 3366, 5856,10173,10173, 1314, 5813,
882
883     10173, 5841, 5840, 5789,10173,10173, 5783, 5775, 5784, 3369,
884      3380,10173, 3388, 1692, 5768, 5760, 5775, 5753, 5763, 5745,
885      5750, 5722, 5718, 5708, 5704, 5683,  708, 5696, 5680, 5676,
886      5688, 5677, 5678, 1752, 5659, 5661, 5654,  763, 5666, 3391,
887      3394, 3399,10173, 3402, 3409, 3414,10173,10173, 3422, 5686,
888      3430, 3436,10173, 3440, 5643, 3443,10173,10173, 3455, 3459,
889      3467, 3473, 3476, 5656, 3491, 5647, 3494, 3497,10173, 3500,
890      1019, 5642, 3503, 5638, 3509, 3521,10173, 3524, 3528,10173,
891     10173, 5632, 3536, 3543,10173, 3546, 5626, 5637, 5614, 5622,
892      5611, 5610, 5624, 5620, 5600, 5588, 5600, 3549,10173,10173,
893
894      5589, 3565, 3568, 3572,10173, 3575, 3587,10173,10173, 5617,
895      3578, 3583,10173, 3597, 3602,10173,10173, 3610, 3616, 3619,
896     10173, 3622, 3628, 3631, 3642, 3649,10173, 3652, 5586, 5584,
897      3661, 3664,10173,10173, 5570, 5580, 3672, 3675,10173, 3679,
898      5571, 5568, 5563, 5547, 5567, 5558, 3682,10173,10173, 3694,
899      3698,10173,10173, 3706, 3712, 5548, 5554, 5551, 5547, 5538,
900      5541, 5535, 3720, 3724,10173, 3727, 5521, 5515, 5506, 5521,
901      3730,10173,10173, 3739, 3746, 5497, 5507, 3757, 3760,10173,
902      3763, 5504, 3766,10173,10173, 3782, 3785,10173, 3788, 5481,
903      3794,10173,10173, 5489, 5491, 5494, 3807, 3810,10173, 3815,
904
905      3818, 3822, 3830, 3836, 5492, 3844, 3848,10173, 3851, 5486,
906      3855, 3863, 5476, 5464, 3858, 3876, 5475, 3884, 3887,10173,
907      3890, 5475, 3893,10173,10173, 3909, 3912,10173, 3918, 3921,
908      3924, 3932, 3939, 3950, 3954,10173, 3957, 3961, 3969, 5443,
909      5443, 3964, 3982, 3990, 3993,10173, 3996, 5439, 3999, 5456,
910      5436, 4002, 4005,10173, 4024, 5433, 5443, 4027, 4030,10173,
911      4033, 4036,10173,10173, 4052, 4058,10173, 4061, 4064,10173,
912     10173, 5434, 4072, 4080,10173, 4087,  304, 4091,10173,10173,
913      5469, 5467, 5429, 5419, 4094, 5405, 5408, 5400, 5398, 5406,
914      1758, 5393, 1817, 5391, 5349, 2071, 5359, 5355, 2137, 5341,
915
916      5341, 5342, 5337, 5331, 5325, 5318, 5310, 2323, 5320, 5319,
917      4099, 4117, 4113, 4106, 4125, 5318, 5347, 4133, 5318, 4136,
918     10173,10173, 4144, 4148, 4156,10173,10173, 5317, 4164, 4167,
919      5311, 4175, 2328, 5298, 4178, 4183, 4196, 4199, 5290, 4202,
920     10173, 5282, 5282, 2449, 2515, 5294, 5296, 5278, 5275, 5286,
921      5282, 5265, 4205, 4209, 4214, 4227, 5273, 4231, 4234, 4237,
922      4252, 4255, 4258, 5263, 4266, 5264, 5253, 4274, 4278, 4286,
923      4295, 4298, 5241, 5242, 5241, 4304, 5218, 5235, 4307, 4313,
924      4327,10173,10173, 4335, 5211, 5228, 5207, 5209, 5221, 5196,
925      4338, 5216, 4342, 5197, 5191, 4346,10173,10173, 4360, 5197,
926
927      4364, 5186, 4367, 5183, 5187, 5155, 4370, 4373, 4379,10173,
928     10173, 4388,10173,10173, 5137, 4396, 2713, 4399,10173,10173,
929      5123, 5136, 4408,10173,10173, 5086, 4417, 5083, 4420, 4424,
930     10173,10173, 4439,10173,10173, 4447, 4450,10173,10173, 5050,
931      5063, 4462,10173,10173, 4470, 5018, 4458, 4478, 4888, 4877,
932      4489, 4853, 4495, 4498, 4501, 4504, 4508,  593, 4891, 4522,
933     10173, 4877,10173,10173, 4780, 4689, 4513, 4680, 4607, 4530,
934      4416, 4402, 2701,   14, 2778,   96, 2781,   99, 2836,   95,
935       184, 2917,  192, 3028,  259, 2962,  261,  308,  317,  326,
936      2975,  339, 3022, 4528,10173,10173, 4541, 4544,10173,10173,
937
938       438,  457, 4554,  439, 4574,10173,10173,  501, 4583,10173,
939     10173,  492, 4561, 3033,  557, 4591, 1839, 2160, 4599, 4602,
940      4610,  601,  613,  691, 3209, 4102, 4566,  750,  758,  772,
941      4613, 4617,  815, 4622, 4630, 4640,10173,10173, 4625, 4648,
942      4651, 4655,10173,10173, 4666, 4681,10173,10173, 4673, 4677,
943       838,  862, 4692,10173,10173, 4700, 4703, 4711, 4714,  892,
944      4723, 4732,  903,  922, 4735, 4742, 4753,  939, 4756,10173,
945     10173, 4764, 4767, 4775,  950,  981,  983, 1027, 4778, 4782,
946      1038, 4785, 4789, 4797, 1028, 4803, 4806, 1068, 4815, 1076,
947      4821, 1097, 1083, 1101, 4824, 4827, 1135, 4835, 1139, 4842,
948
949      1165, 4848, 4854, 4857, 4861, 1166, 4866, 4876, 4880, 4885,
950      4888, 1188, 4903,10173,10173, 1216, 1209, 4898, 1231, 4913,
951      4917, 4932, 4936, 4941, 4944, 4955, 1324, 1317, 1340,10173,
952      1246, 4959, 4962, 1273, 1274, 1389, 1275, 4965, 1292, 1334,
953      4968, 1347, 1339, 1339, 4977, 4981, 4984, 1354, 4987, 1361,
954      4992, 4995, 1363, 1392, 1394, 4998, 1413, 5001, 1417, 1447,
955      5005, 1409, 5008, 1417, 5011, 5014, 1463, 1454, 1504, 1455,
956      1471, 1458, 1529, 1475, 5026,10173,10173, 5034, 5037, 1482,
957      1652, 5040, 5043, 1507, 1897, 1900, 5046, 5055,10173,10173,
958      5064, 5070, 5074, 5083, 5088, 5091, 5095, 5103, 1593, 1620,
959
960      5109,10173,10173, 5118, 1634, 1637, 1619, 5126,10173, 5129,
961      1624, 1642, 5133,10173,10173, 5141, 5145, 1659, 5153,10173,
962     10173, 5161, 5164, 5172, 1678, 1688, 1682, 5175, 5179, 5193,
963      1685, 5196,10173,10173, 5204, 5208, 1716, 5216,10173,10173,
964      1725, 5224,10173, 1748, 5227, 1738, 5230, 1760, 5233, 1773,
965      1775, 1759, 5248,10173, 1782, 5251, 1787, 5254, 5257, 5272,
966      5277, 1806, 5285, 1804, 5291, 5294, 5297, 5300, 5315, 5318,
967      5326, 1812, 1836, 1854, 5329, 1859, 5334,10173,10173, 5351,
968      5354, 5359,10173,10173, 5373,10173, 1903, 2155, 1924, 1865,
969      5377, 5380, 5395, 5398, 1878, 1923, 1915, 5403, 5408, 5414,
970
971      1924, 1933, 1928, 5417, 5420, 5423, 5426, 1929, 5429, 5432,
972      5435, 5438, 5441, 1933, 5444, 1944, 1956, 5447,10173, 1941,
973      5450, 5453, 1961, 5468, 5473, 5476, 1976, 1989, 2003, 2016,
974      2009, 2019, 2016, 2017, 2027, 2025, 5487, 5491, 5496, 5509,
975      2032, 2014, 5512, 5515, 5518, 5521, 5529, 5537,10173,10173,
976      5532, 5551,10173, 5555,10173,10173, 5563, 2018, 2027, 2082,
977      2093, 2059, 2068, 2064, 5566,10173,10173, 2066, 5575,10173,
978     10173, 5584, 5587, 2082, 2073, 2078, 5595,10173,10173, 5603,
979      2083, 5606,10173,10173, 2076, 2101, 2117, 5617, 2130, 5622,
980      5625, 2133, 2131, 2214, 2225, 2139, 2152, 5636,10173, 2144,
981
982      5640,10173,10173, 5648,10173,10173, 2157, 5656, 2148, 5659,
983      5662, 5668,10173,10173, 5681,10173,10173, 5690, 5694, 5699,
984      5702, 5712, 2159, 5720, 5725, 5731, 2230, 2249, 5734, 5740,
985     10173,10173, 5751, 5754, 5757, 2188, 2187, 5761, 5764, 5770,
986      5773, 5780, 5783, 5786, 2192, 2202, 5789, 5792, 5795, 2203,
987      5798, 2204,10173, 5801, 5804,10173,10173, 5812, 5819,10173,
988      5823,10173,10173, 2247, 2234, 2249, 2275, 2286, 2288, 2276,
989      2292, 2324, 2336, 5831, 5834,10173,10173, 5842, 2298, 2301,
990      5845, 2308, 5850,10173,10173, 5858, 5861, 5864, 2320, 2325,
991      2354, 2376, 2357, 2377, 2334, 5867, 2332, 2351, 5871,10173,
992
993     10173, 5883, 2365, 2375, 5887, 2373, 2378, 2380, 2381, 5892,
994     10173, 5895, 5907,10173,10173, 2382, 2378, 2419, 2442, 2422,
995      2445, 2402, 2423, 5901, 2444, 5916, 5919, 5922, 5925, 5928,
996      5931, 5949, 5937, 5957, 5960, 5966, 5969, 5975,10173, 5982,
997      2486, 2494, 5988, 5994, 5997, 2432, 2429, 6001, 6004, 6009,
998      2425, 2438, 2439, 6013,10173, 2433, 6016, 6019, 6027, 2469,
999      2467, 2485, 2473, 2512, 2518, 2516, 2531, 2519, 2533, 6035,
1000      2510, 2509, 2509, 6038, 6045,10173, 6048, 2516, 2518, 2580,
1001     10173, 2578,10173, 6057, 6060, 2546, 2570, 6067, 6071, 2573,
1002      6079, 6086,10173, 2570, 2572, 6089, 2575, 6097, 6108, 2595,
1003
1004      2591, 2593, 2647,10173, 2661,10173, 6100, 2617, 6118, 2618,
1005      6121,10173, 6124, 6127, 6135, 6142, 6146, 6150,10173,10173,
1006      6161, 6165, 6173, 6179,10173, 6182, 6185, 2686, 2662, 2753,
1007      6192,10173, 2615, 2634, 2625, 2642, 2643, 6198, 6212, 2846,
1008      2869, 6204, 2668, 2677, 2687, 2691, 2708, 2688, 2724, 2744,
1009      2748, 2762, 6222, 2709, 2749, 2748, 6225, 6228,10173, 2759,
1010      6231,10173,10173, 6234, 6237, 2763, 2773, 6252,10173,10173,
1011      2785, 6260, 6265, 2771, 6273, 6282, 6285, 6296, 6300,10173,
1012     10173, 2792, 2798, 2795,10173,10173, 6308, 6314, 6322, 6326,
1013      6329, 2875, 3051, 6340,10173, 6344, 6347, 6350,10173,10173,
1014
1015      6359, 6366, 6377,10173, 2948, 2834, 2862, 2838, 6278, 2855,
1016      2866, 2871, 6380, 6383, 2902, 2914, 2939, 2924, 2931, 2987,
1017      6391, 2947, 2933, 2935, 2972,10173, 2994, 2979, 2988, 3012,
1018     10173, 6398, 2996, 6401, 3016, 6404, 6410, 6413, 6417, 6431,
1019     10173,10173, 3027, 3035, 3051, 6439,10173,10173, 3056, 6451,
1020      6457, 6469,10173,10173, 6477, 6480, 3046, 6488, 3072, 6491,
1021     10173,10173, 6499, 6502, 6510, 6513, 3109, 3110, 3111, 3113,
1022      3115, 3118, 6521, 6524, 6528,10173,10173, 3137, 3143, 6536,
1023      3105, 6543, 6546, 3107, 3108, 6555,10173,10173, 3157, 3151,
1024      3157, 3167, 3174, 3164, 3170, 3179, 6549, 3174, 3193, 3214,
1025
1026      3202, 3187, 3212, 3227, 3221, 6563, 3193, 6567, 6573, 6576,
1027      6582, 6585, 3203, 6596,10173,10173, 3211, 3208, 3197, 3216,
1028      6604,10173,10173, 6613,10173,10173, 3222, 6621, 6624, 3204,
1029      6632, 3243, 3252, 6640, 3264, 3265, 3236, 3261, 3296, 3264,
1030      3286, 3320, 6648, 6651, 3322, 6654, 6657, 6660, 6679, 6682,
1031      6685, 6688, 3299, 3309, 3330, 3318, 3323, 3339, 3341, 3335,
1032      6691, 6694, 3348, 3349,10173, 3350, 3356, 3357,10173, 3358,
1033      6702, 6705, 6709, 6712, 6717,10173,10173, 3342, 3350, 3358,
1034      6725, 3364, 6731, 6734,10173,10173, 6743, 3391, 3403, 3394,
1035      3409, 3400, 3422, 3415, 3428, 3420, 3438,10173, 3431, 3441,
1036
1037     10173, 6750,10173, 6753, 3453, 6756, 6762, 6775, 6806, 6853,
1038      6783, 6786, 6789, 3447, 3475, 3477, 3447, 3463, 3481, 3482,
1039      3468, 6794,10173,10173, 3503, 3483, 3485, 3510, 3488, 3500,
1040      6817, 6826, 6829,10173, 3476, 3477, 3491, 6832, 6836, 3484,
1041      6844, 6873, 6864, 6882, 3548, 3518, 3550, 3521, 3556, 3525,
1042      3556, 3544, 3588, 3591, 3593, 3598, 6890, 3595, 6899, 3621,
1043      3629, 6919, 6966, 3595,10173,10173, 3572, 3602,10173,10173,
1044      3590,10173, 3634, 3637,10173, 3639, 3648, 6893,10173, 3605,
1045      3618, 3615, 6939, 3666, 3667, 3636, 6947,10173,10173, 6955,
1046      3754, 3755,10173, 3697,10173, 3702,10173, 3706,10173, 3708,
1047
1048     10173,10173,10173,10173, 6912,10173, 3718, 3731, 3733, 3714,
1049      3726, 3747, 6977, 3742, 3745, 3758, 3748,10173,10173,10173,
1050     10173, 6986, 6989, 6992, 3782, 3747, 3822, 3750, 6997, 3859,
1051      3770, 3862, 3772,10173,10173,10173,10173, 7000, 3800, 3786,
1052      3806, 7015, 3823, 3814, 3832, 3821, 7019, 7022, 7030, 7037,
1053      7048, 7051, 3830, 3840, 3853, 3843, 3865, 3879, 7059, 7067,
1054      3865, 3873, 3886, 3869, 3884, 3896, 7062, 3911,10173, 3903,
1055     10173, 3905, 7077,10173,10173, 7085,10173,10173, 7093, 3923,
1056      3942, 3907, 3913, 3909, 3912, 3943, 3944, 7101,10173,10173,
1057      3950, 3956, 3952, 3974, 3979, 3976, 4001,10173, 4009, 4008,
1058
1059      3997, 3994, 4002, 4012, 4013, 4023, 4023, 4021, 4027, 4031,
1060      4028, 4044, 4045, 4047, 4054, 4054, 4093,10173,10173, 4045,
1061      4065, 4059, 4102, 4093, 4100, 4118, 4107, 4114, 4131, 4127,
1062      4133, 4150, 4151, 4149, 4166, 4174, 4156, 4158, 4173, 4183,
1063      4199, 4189, 4226, 4216, 4207, 4236, 4222, 4212, 4246, 4237,
1064      4228, 4257, 4253, 4241, 4249, 4253, 4259, 4285, 4261,10173,
1065      4286, 4270,10173, 4298, 4279,10173, 4311, 4288,10173, 4375,
1066      4287, 4300, 4290, 4307,10173, 4308,10173, 4309,10173, 4321,
1067     10173, 4325, 7109, 4327, 4350, 4331, 4350, 4316, 4334, 4336,
1068      4342, 7112, 4390,10173, 4397,10173, 4401, 4404, 4409, 4416,
1069
1070      4419, 4427,10173,10173,10173,10173,10173,10173, 4418, 4468,
1071      4469, 4474, 4450, 4466, 4416, 4568, 4539, 4540, 4542, 4570,
1072      4456, 4507, 4438, 4578, 4519, 4602, 4617, 4618, 4628, 4645,
1073      4590, 4671, 4636, 4669, 4424, 4435, 4709, 4720, 4518, 4793,
1074      4646, 4679, 4783, 4801, 4741, 4820, 4800, 4857, 4711, 4874,
1075      4733, 4754, 4579, 4691, 4908, 4911, 4814, 4873, 4500, 4878,
1076      4913, 5040, 4883, 5042, 4954, 4957, 4712, 4929, 4986, 5003,
1077      5006, 5059, 4794, 4812, 5000, 5106, 5121, 5138, 5068, 5114,
1078      5050, 5120, 5089, 5173, 5149, 5169, 5014, 5195, 5172, 5189,
1079      4743, 5303, 7120, 7123,10173,10173, 7143, 7152, 7161, 7170,
1080
1081      7179, 7188, 7197, 7206, 7215, 7224, 7233, 7242, 7251, 7260,
1082      7269, 7278, 7287, 7296, 7305, 7314, 7323, 7332, 7341, 7350,
1083      7359, 7368, 7377, 7386, 7395, 7404, 7413, 7422, 7431, 7440,
1084      7449, 7458, 7467, 7476, 7485, 7494, 7503, 7512, 7521, 7530,
1085      7539, 7548, 7557, 7566, 7575, 7584, 7593, 7602, 7611, 7618,
1086      7625, 7632, 7639, 7646, 7653, 7660, 7667, 7674, 7681, 7688,
1087      7695, 7702, 7709, 7716, 7723, 7730, 7737, 7744, 7751, 7758,
1088      7765, 7772, 7779, 7788, 7795, 7800, 7807, 7812, 7819, 7824,
1089      7831, 7836, 7843, 7848, 7855, 7860, 7867, 7872, 7879, 7884,
1090      7891, 7896, 7903, 7908, 7915, 7920, 7927, 7932, 7939, 7944,
1091
1092      7951, 7956, 7963, 7968, 7975, 7980, 7987, 7992, 7999, 8004,
1093      8011, 8016, 8023, 8028, 8035, 8040, 8047, 8052, 8059, 8064,
1094      8071, 8076, 8085, 8091, 8098, 8106, 8113, 8121, 8128, 8136,
1095      8143, 8151, 8158, 8166, 8173, 8181, 8188, 8196, 8203, 8211,
1096      8218, 8226, 8233, 8241, 8248, 8256, 8263, 8271, 8278, 8286,
1097      8293, 8301, 8308, 8316, 8324, 8332, 8340, 8348, 8355, 8363,
1098      8371, 8379, 8387, 8395, 8402, 8410, 8417, 8425, 8433, 8440,
1099      8448, 8457, 8463, 8470, 8478, 8486, 8494, 8502, 8510, 8517,
1100      8525, 8532, 8540, 8547, 8555, 8562, 8570, 8577, 8585, 8593,
1101      8601, 8609, 8617, 8624, 8632, 8639, 8647, 8654, 8662, 8669,
1102
1103      8677, 8684, 8692, 8699, 8707, 8714, 8722, 8729, 8737, 8745,
1104      8752, 8760, 8767, 8775, 8782, 8790, 8798, 8805, 8813, 8822,
1105      8831, 8838, 8846, 8854, 8861, 8869, 8876, 8884, 8891, 8899,
1106      8906, 8913, 8921, 8928, 8936, 8944, 8951, 8959, 8966, 8974,
1107      8981, 8989, 8996, 9004, 9011, 9019, 9026, 9034, 9041, 9049,
1108      9056, 9064, 9071, 9079, 9087, 9094, 9102, 9109, 9117, 9125,
1109      9133, 9141, 9149, 9157, 9166, 9175, 9182, 9190, 9198, 9205,
1110      9213, 9220, 9228, 9235, 9243, 9250, 9257, 9265, 9273, 9281,
1111      9289, 9297, 9305, 9312, 9320, 9327, 9335, 9342, 9350, 9357,
1112      9365, 9372, 9380, 9387, 9395, 9403, 9411, 9418, 9426, 9434,
1113
1114      9442, 9450, 9457, 9465, 9473, 9481, 9489, 9498, 9507, 9515,
1115      9523, 9531, 9538, 9546, 9553, 9561, 9569, 9577, 9585, 9593,
1116      9601, 9609, 9617, 9625, 9632, 9639, 9647, 9654, 9661, 9669,
1117      9676, 9683, 9691, 9698, 9706, 9713, 9721, 9729, 9737, 9744,
1118      9752, 9760, 9768, 9777, 9786, 9794, 9802, 9809, 9816, 9824,
1119      9832, 9840, 9848, 9856, 9863, 9870, 9878, 9885, 9892, 9900,
1120      9907, 9914, 9921, 9929, 9936, 9944, 9952, 9960, 9968, 9976,
1121      9984, 9992,10001,10010,10018,10026,10033,10041,10049,10057,
1122     10065,10073,10080,10087,10095,10102,10109,10118,10127,10136,
1123     10145,10154,10163
1124
1125     } ;
1126
1127 static yyconst flex_int16_t yy_def[3194] =
1128     {   0,
1129      2797, 2797, 2798, 2798, 2798, 2798, 2799, 2799, 2800, 2800,
1130      2801, 2801, 2802, 2802, 2802, 2802, 2803, 2803, 2797, 2797,
1131      2804, 2804, 2805, 2805, 2805, 2805, 2797, 2797, 2805, 2805,
1132      2805, 2805, 2797, 2797, 2805, 2805, 2797, 2797, 2805, 2805,
1133      2805, 2805, 2806, 2806, 2807, 2807, 2797, 2797, 2807, 2807,
1134      2807, 2807, 2808, 2808, 2802, 2802, 2809, 2809, 2810, 2810,
1135      2797, 2797, 2810, 2810, 2810, 2810, 2811, 2811, 2812, 2812,
1136      2813, 2813, 2814, 2814, 2814, 2814, 2797, 2797, 2814, 2814,
1137      2814, 2814, 2797, 2797, 2814, 2814, 2797, 2797, 2814, 2814,
1138      2814, 2814, 2797, 2797, 2814, 2814, 2797, 2797, 2814, 2814,
1139
1140      2814, 2814, 2815, 2815, 2816, 2816, 2797, 2797, 2816, 2816,
1141      2816, 2816, 2817, 2817, 2818, 2818, 2797, 2797, 2818, 2818,
1142      2818, 2818, 2819, 2819, 2820, 2820, 2821, 2821, 2822, 2822,
1143      2823, 2823, 2824, 2824, 2797, 2797, 2824, 2824, 2824, 2824,
1144      2796,  141, 2825, 2825, 2826, 2826, 2827, 2827, 2828, 2828,
1145      2829, 2829, 2830, 2830, 2831, 2831, 2797, 2797, 2831, 2831,
1146      2831, 2831, 2832, 2832, 2833, 2833, 2797, 2797, 2833, 2833,
1147      2833, 2833, 2834, 2834, 2835, 2835, 2797, 2797, 2835, 2835,
1148      2835, 2835, 2836, 2836, 2837, 2837, 2838, 2838, 2839, 2839,
1149      2797, 2797, 2839, 2839, 2839, 2839, 2840, 2840, 2841, 2841,
1150
1151      2797, 2797, 2841, 2841, 2841, 2841, 2842, 2842, 2843, 2843,
1152      2797, 2797, 2843, 2843, 2843, 2843, 2844, 2844, 2845, 2845,
1153      2846, 2846, 2847, 2847, 2797, 2797, 2847, 2847, 2847, 2847,
1154      2848, 2848, 2849, 2849, 2797, 2797, 2796, 2796, 2796, 2796,
1155      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1156      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1157      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2850, 2796, 2796,
1158      2850, 2796, 2796, 2796,  274,  274,  276,  274,  277,  277,
1159      2796, 2796, 2796, 2851, 2796, 2796, 2851, 2796, 2796,  278,
1160       277, 2796, 2796, 2796, 2852, 2796, 2796, 2852, 2852, 2852,
1161
1162      2796, 2796, 2796, 2796, 2796, 2853, 2796, 2796, 2853, 2853,
1163      2853, 2853, 2853, 2796, 2796,  277,  277,  277, 2796, 2796,
1164      2796, 2854, 2796, 2796, 2854, 2854, 2854, 2796, 2796, 2796,
1165      2796, 2796, 2796, 2855, 2796, 2796, 2855, 2855, 2796, 2796,
1166       278,  277,  278,  341,  342,  342,  342,  342,  347,  349,
1167       348,  347, 2796, 2796, 2796, 2856, 2796, 2796, 2856, 2856,
1168      2856, 2856, 2796, 2796,  277,  277, 2796, 2796, 2796, 2857,
1169      2796, 2796, 2857, 2857, 2796, 2796,  277,  277, 2796, 2796,
1170      2796, 2858, 2796, 2796, 2858, 2858, 2796, 2796, 2796, 2796,
1171      2796, 2796, 2859, 2796, 2796, 2859, 2859, 2796, 2796, 2796,
1172
1173      2796, 2796, 2796, 2860, 2796, 2796, 2860, 2860, 2860, 2860,
1174      2860, 2796, 2796,  277,  414,  414, 2796, 2796, 2796, 2861,
1175      2796, 2796, 2861, 2861, 2861, 2861, 2861, 2861, 2861, 2861,
1176      2796, 2796, 2796, 2796, 2796, 2796, 2862, 2796, 2796, 2862,
1177      2862, 2862, 2862, 2862, 2862, 2862, 2796, 2796, 2796, 2796,
1178      2796, 2796, 2863, 2796, 2796, 2863, 2863, 2796, 2796, 2796,
1179      2796, 2796, 2796, 2864, 2796, 2796, 2864, 2864, 2864, 2864,
1180      2796, 2796,  414,  277, 2796, 2796, 2796, 2865, 2796, 2796,
1181      2865, 2865, 2796, 2796,  277,  485,  485, 2796, 2796, 2796,
1182      2866, 2796, 2796, 2866, 2866, 2866, 2796, 2796,  485,  485,
1183
1184      2796, 2796, 2796, 2867, 2796, 2796, 2867, 2867, 2796, 2796,
1185      2796, 2796, 2796, 2796, 2868, 2796, 2796, 2868, 2868, 2796,
1186      2796,  485,  485, 2796, 2796, 2796, 2869, 2796, 2796, 2869,
1187      2869, 2869, 2796, 2796,  485,  485, 2796, 2796, 2796, 2870,
1188      2796, 2796, 2870, 2870, 2870, 2870, 2796, 2796,  277,  549,
1189       549, 2796, 2796, 2796, 2871, 2796, 2796, 2871, 2796, 2796,
1190      2796, 2796, 2796, 2796, 2872, 2796, 2796, 2872, 2796, 2796,
1191       549,  277, 2796, 2796, 2796, 2873, 2796, 2796, 2873, 2873,
1192      2796, 2796, 2796, 2796, 2874, 2796, 2796, 2796, 2796, 2796,
1193      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1194
1195      2875, 2875, 2876, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1196      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1197      2796, 2796, 2796, 2796, 2796, 2796, 2877, 2877, 2878, 2796,
1198      2879, 2879, 2879, 2879, 2796, 2880, 2796, 2796, 2881, 2881,
1199      2881, 2881, 2881, 2881, 2881, 2881, 2881, 2882, 2796, 2796,
1200      2883, 2883, 2883, 2883, 2884, 2796, 2885, 2885, 2885, 2886,
1201      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1202      2796, 2796, 2887, 2887, 2887, 2887, 2887, 2888, 2796, 2889,
1203      2889, 2889, 2890, 2796, 2891, 2891, 2891, 2892, 2796, 2893,
1204      2893, 2893, 2894, 2796, 2895, 2895, 2895, 2895, 2895, 2895,
1205
1206      2896, 2796, 2796, 2897, 2897, 2897, 2897, 2897, 2897, 2897,
1207      2897, 2897, 2897, 2897, 2897, 2897, 2897, 2898, 2796, 2899,
1208      2899, 2899, 2899, 2899, 2899, 2899, 2899, 2900, 2796, 2901,
1209      2901, 2901, 2902, 2796, 2903, 2903, 2903, 2903, 2903, 2903,
1210      2904, 2796, 2905, 2905, 2905, 2905, 2906, 2796, 2796, 2907,
1211      2907, 2907, 2907, 2907, 2908, 2796, 2909, 2909, 2909, 2910,
1212      2796, 2911, 2911, 2911, 2912, 2796, 2913, 2913, 2913, 2913,
1213      2914, 2796, 2915, 2915, 2915, 2915, 2915, 2916, 2796, 2796,
1214      2917, 2917, 2918, 2796, 2919, 2919, 2920, 2796, 2921, 2921,
1215      2921, 2922, 2923, 2796, 2923, 2796, 2796, 2796, 2924, 2796,
1216
1217      2796, 2796, 2796, 2796, 2796, 2796, 2925, 2926, 2926, 2796,
1218      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1219      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1220      2796, 2796, 2796, 2796, 2927, 2928, 2928, 2929, 2796, 2796,
1221      2929, 2796, 2930, 2930, 2796, 2931, 2796, 2796, 2931, 2931,
1222      2931, 2931, 2931, 2931, 2932, 2932, 2796, 2933, 2933, 2933,
1223      2934, 2934, 2796, 2796, 2935, 2936, 2936, 2796, 2796, 2796,
1224      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2937, 2796,
1225      2796, 2937, 2937, 2938, 2938, 2796, 2796, 2939, 2940, 2940,
1226      2796, 2796, 2941, 2942, 2942, 2943, 2943, 2944, 2944, 2945,
1227
1228      2945, 2945, 2796, 2796, 2945, 2945, 2946, 2946, 2796, 2796,
1229      2947, 2947, 2796, 2796, 2947, 2796, 2796, 2947, 2947, 2947,
1230      2947, 2947, 2947, 2947, 2947, 2948, 2948, 2949, 2949, 2949,
1231      2796, 2796, 2949, 2949, 2949, 2950, 2950, 2951, 2796, 2796,
1232      2952, 2952, 2953, 2796, 2796, 2953, 2953, 2953, 2954, 2954,
1233      2955, 2955, 2955, 2956, 2956, 2796, 2957, 2957, 2957, 2957,
1234      2958, 2958, 2959, 2796, 2796, 2960, 2960, 2961, 2961, 2962,
1235      2962, 2963, 2963, 2963, 2964, 2964, 2965, 2965, 2965, 2965,
1236      2966, 2966, 2796, 2967, 2968, 2968, 2796, 2796, 2969, 2969,
1237      2796, 2796, 2970, 2971, 2971, 2972, 2796, 2796, 2972, 2796,
1238
1239      2796, 2973, 2796, 2796, 2796, 2796, 2796, 2796, 2974, 2796,
1240      2975, 2796, 2975, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1241      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1242      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2976,
1243      2796, 2977, 2796, 2977, 2978, 2796, 2796, 2796, 2978, 2796,
1244      2796, 2979, 2796, 2979, 2980, 2796, 2796, 2796, 2796, 2796,
1245      2980, 2796, 2796, 2980, 2980, 2980, 2796, 2981, 2796, 2981,
1246      2796, 2982, 2982, 2982, 2796, 2983, 2796, 2983, 2796, 2796,
1247      2796, 2984, 2796, 2985, 2796, 2985, 2796, 2796, 2796, 2796,
1248      2796, 2796, 2796, 2796, 2796, 2796, 2986, 2796, 2796, 2796,
1249
1250      2986, 2986, 2796, 2987, 2796, 2987, 2796, 2796, 2796, 2988,
1251      2796, 2989, 2796, 2989, 2796, 2796, 2796, 2990, 2796, 2991,
1252      2796, 2991, 2992, 2992, 2796, 2993, 2796, 2993, 2994, 2994,
1253      2994, 2796, 2796, 2796, 2994, 2994, 2796, 2995, 2796, 2995,
1254      2796, 2796, 2996, 2996, 2996, 2996, 2796, 2796, 2796, 2996,
1255      2796, 2796, 2796, 2796, 2796, 2996, 2996, 2996, 2996, 2996,
1256      2996, 2996, 2796, 2997, 2796, 2997, 2998, 2998, 2998, 2998,
1257      2796, 2796, 2796, 2796, 2796, 2998, 2998, 2796, 2999, 2796,
1258      2999, 3000, 2796, 2796, 2796, 2796, 3001, 2796, 3001, 3002,
1259      2796, 2796, 2796, 3002, 3002, 3002, 2796, 3003, 2796, 3003,
1260
1261      2796, 2796, 2796, 2796, 3004, 2796, 3005, 2796, 3005, 2796,
1262      2796, 2796, 3006, 3006, 2796, 2796, 3006, 2796, 3007, 2796,
1263      3007, 3008, 2796, 2796, 2796, 2796, 3009, 2796, 3009, 2796,
1264      2796, 2796, 2796, 2796, 3010, 2796, 3010, 2796, 2796, 3011,
1265      3011, 2796, 2796, 2796, 3012, 2796, 3012, 3013, 3013, 3013,
1266      3013, 2796, 3014, 2796, 3014, 2796, 3015, 2796, 3016, 2796,
1267      3016, 2796, 2796, 2796, 2796, 3017, 2796, 3017, 2796, 2796,
1268      2796, 3018, 2796, 3019, 2796, 3019, 3020, 3021, 2796, 2796,
1269      2796, 2796, 2796, 3022, 3023, 2796, 2796, 2796, 2796, 2796,
1270      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1271
1272      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1273      2796, 2796, 3024, 2796, 2796, 3025, 2796, 3026, 3027, 2796,
1274      2796, 2796, 2796, 2796, 2796, 2796, 2796, 3027, 2796, 2796,
1275      3027, 3028, 2796, 3029, 2796, 2796, 3029, 3030, 3031, 2796,
1276      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1277      2796, 3032, 3032, 2796, 2796, 3033, 3034, 3035, 2796, 2796,
1278      3036, 2796, 2796, 3037, 3038, 3039, 3039, 2796, 2796, 3039,
1279      3039, 3040, 2796, 2796, 3041, 3041, 3041, 3041, 2796, 2796,
1280      2796, 2796, 2796, 3041, 3041, 3041, 3041, 3041, 3041, 3041,
1281      3042, 3043, 3043, 3043, 3043, 2796, 2796, 2796, 3043, 3043,
1282
1283      3044, 3045, 3046, 3047, 3047, 3047, 3047, 3048, 2796, 2796,
1284      2796, 2796, 2796, 2796, 3049, 3050, 2796, 2796, 2796, 2796,
1285      3051, 3051, 2796, 2796, 2796, 3051, 3052, 3053, 3054, 2796,
1286      2796, 2796, 2796, 2796, 2796, 3055, 2796, 2796, 2796, 3056,
1287      3056, 2796, 2796, 2796, 3057, 3058, 2796, 2796, 3058, 3058,
1288      3059, 2796, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3066,
1289      2796, 3066, 2796, 2796, 2796, 3067, 3068, 2796, 2796, 2796,
1290      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1291      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1292      2796, 2796, 2796, 2796, 2796, 2796, 3069, 2796, 2796, 2796,
1293
1294      3070, 2796, 3071, 3072, 2796, 2796, 2796, 3072, 2796, 2796,
1295      2796, 3072, 3073, 2796, 3074, 2796, 2796, 2796, 2796, 2796,
1296      3075, 3076, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1297      2796, 2796, 3077, 2796, 2796, 2796, 2796, 2796, 3078, 3079,
1298      3080, 2796, 2796, 2796, 3081, 2796, 2796, 2796, 3082, 3083,
1299      3084, 3084, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 3084,
1300      3085, 2796, 2796, 3086, 2796, 2796, 3086, 3086, 2796, 2796,
1301      2796, 2796, 2796, 3086, 3086, 3086, 3086, 3086, 3086, 3087,
1302      3088, 2796, 2796, 3088, 3088, 2796, 2796, 3088, 3089, 3090,
1303      3091, 3092, 3092, 3092, 2796, 2796, 3092, 3093, 3094, 3095,
1304
1305      2796, 3096, 3096, 3096, 3097, 3098, 3099, 3100, 3101, 3101,
1306      3102, 3103, 2796, 2796, 2796, 3103, 3103, 3104, 2796, 2796,
1307      2796, 3105, 3106, 2796, 2796, 3107, 3108, 3109, 3109, 2796,
1308      2796, 3110, 3111, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1309      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1310      2796, 2796, 2796, 2796, 2796, 2796, 2796, 3112, 3113, 2796,
1311      3114, 3115, 3115, 3115, 3116, 3117, 2796, 2796, 2796, 2796,
1312      2796, 2796, 2796, 2796, 2796, 2796, 2796, 3118, 3119, 2796,
1313      2796, 2796, 2796, 2796, 2796, 2796, 3120, 2796, 2796, 2796,
1314      3121, 2796, 2796, 3122, 3123, 2796, 2796, 3124, 3125, 3125,
1315
1316      2796, 2796, 2796, 2796, 2796, 2796, 3125, 2796, 2796, 2796,
1317      2796, 3126, 2796, 2796, 2796, 2796, 2796, 3126, 2796, 2796,
1318      2796, 2796, 2796, 3126, 3126, 3126, 3126, 2796, 2796, 3127,
1319      3128, 2796, 2796, 2796, 2796, 2796, 3128, 2796, 2796, 2796,
1320      3128, 2796, 2796, 3129, 3130, 3131, 3131, 3131, 2796, 2796,
1321      2796, 3131, 2796, 2796, 3132, 3133, 2796, 2796, 2796, 2796,
1322      2796, 3134, 3135, 3136, 3137, 3138, 2796, 2796, 2796, 2796,
1323      3139, 3140, 3140, 3140, 3141, 2796, 2796, 2796, 2796, 3142,
1324      3143, 2796, 2796, 2796, 2796, 2796, 3144, 3145, 3145, 2796,
1325      2796, 2796, 3146, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1326
1327      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1328      2796, 2796, 2796, 2796, 3147, 3148, 2796, 2796, 2796, 3149,
1329      2796, 2796, 3149, 3150, 2796, 2796, 2796, 2796, 2796, 2796,
1330      2796, 2796, 2796, 2796, 2796, 2796, 3151, 2796, 2796, 2796,
1331      2796, 2796, 2796, 2796, 2796, 2796, 3152, 2796, 2796, 2796,
1332      3153, 2796, 2796, 2796, 2796, 2796, 3154, 3155, 3155, 2796,
1333      2796, 3155, 2796, 3156, 2796, 2796, 2796, 3156, 2796, 2796,
1334      2796, 2796, 2796, 3156, 3156, 3156, 2796, 2796, 2796, 3157,
1335      3158, 2796, 2796, 2796, 3158, 3158, 3159, 3160, 3161, 2796,
1336      2796, 3161, 3161, 2796, 2796, 3161, 3162, 2796, 2796, 2796,
1337
1338      2796, 2796, 2796, 2796, 2796, 2796, 3163, 3164, 3165, 3166,
1339      3167, 2796, 2796, 2796, 2796, 2796, 2796, 3168, 3169, 3169,
1340      3169, 3170, 2796, 3171, 3172, 3173, 3174, 3174, 2796, 2796,
1341      2796, 2796, 3175, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1342      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1343      3176, 3177, 2796, 3178, 2796, 2796, 2796, 3178, 2796, 2796,
1344      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1345      2796, 2796, 2796, 3179, 2796, 2796, 2796, 2796, 2796, 2796,
1346      2796, 2796, 2796, 2796, 2796, 3180, 3181, 3182, 3183, 3183,
1347      2796, 2796, 2796, 2796, 3183, 2796, 3184, 3184, 2796, 2796,
1348
1349      2796, 3184, 3184, 3184, 3185, 3186, 3186, 3186, 3187, 2796,
1350      2796, 3161, 2796, 2796, 2796, 3161, 3161, 2796, 2796, 2796,
1351      2796, 3161, 3162, 2796, 3163, 3164, 3165, 3166, 3167, 3168,
1352      2796, 2796, 3169, 3169, 3170, 2796, 3171, 2796, 2796, 3173,
1353      3174, 3174, 2796, 3175, 2796, 2796, 2796, 2796, 2796, 2796,
1354      2796, 2796, 2796, 2796, 2796, 3177, 2796, 2796, 3178, 2796,
1355      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 3179,
1356      2796, 2796, 2796, 3180, 2796, 2796, 3182, 3183, 3183, 2796,
1357      2796, 2796, 2796, 3183, 2796, 3184, 3184, 2796, 2796, 3184,
1358      3184, 2796, 2796, 3186, 3186, 3186, 3187, 2796, 2796, 3161,
1359
1360      3161, 3161, 2796, 2796, 2796, 2796, 3161, 3162, 2796, 3163,
1361      2796, 2796, 2796, 2796, 3166, 3167, 3168, 2796, 2796, 2796,
1362      2796, 2796, 3169, 2796, 2796, 2796, 3171, 3173, 3174, 3174,
1363      2796, 2796, 2796, 2796, 2796, 2796, 2796, 3177, 2796, 2796,
1364      2796, 3178, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1365      2796, 2796, 3179, 2796, 2796, 2796, 3180, 2796, 2796, 3183,
1366      3183, 2796, 2796, 2796, 2796, 3184, 3184, 2796, 2796, 2796,
1367      3184, 2796, 2796, 3186, 3186, 2796, 2796, 3187, 2796, 2796,
1368      2796, 3161, 3161, 3161, 2796, 2796, 2796, 2796, 3162, 3163,
1369      2796, 2796, 2796, 2796, 2796, 3167, 3168, 2796, 2796, 2796,
1370
1371      2796, 2796, 2796, 2796, 3173, 3174, 3174, 2796, 2796, 2796,
1372      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1373      3178, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1374      2796, 3179, 2796, 2796, 2796, 3180, 3183, 2796, 2796, 2796,
1375      2796, 2796, 3184, 3184, 3184, 2796, 2796, 2796, 3186, 2796,
1376      2796, 2796, 2796, 2796, 2796, 2796, 3161, 3161, 3161, 2796,
1377      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1378      2796, 2796, 3167, 3168, 2796, 2796, 2796, 3173, 3174, 3174,
1379      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1380      2796, 2796, 2796, 2796, 2796, 2796, 3178, 2796, 2796, 2796,
1381
1382      2796, 2796, 2796, 2796, 2796, 3179, 2796, 2796, 2796, 3180,
1383      2796, 2796, 3183, 2796, 2796, 2796, 3184, 3184, 3184, 3186,
1384      2796, 2796, 2796, 2796, 2796, 2796, 3161, 2796, 2796, 3161,
1385      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1386      2796, 2796, 3167, 3168, 3173, 3174, 3174, 3174, 2796, 2796,
1387      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1388      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1389      3179, 2796, 2796, 3180, 2796, 2796, 2796, 3183, 3184, 3184,
1390      3184, 3186, 3161, 2796, 2796, 2796, 3161, 2796, 2796, 2796,
1391      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1392
1393      2796, 2796, 2796, 3168, 3173, 3174, 3174, 3174, 3188, 3189,
1394      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1395      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1396      3179, 2796, 2796, 2796, 3183, 3184, 3184, 2796, 2796, 3186,
1397      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1398      2796, 2796, 2796, 2796, 2796, 2796, 3168, 3173, 3174, 3190,
1399      3191, 3188, 3189, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1400      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 3183,
1401      3184, 3184, 2796, 2796, 2796, 3186, 2796, 2796, 2796, 2796,
1402      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1403
1404      2796, 2796, 2796, 2796, 2796, 2796, 3173, 3190, 3174, 3192,
1405      3191, 3193, 3174, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1406      2796, 3183, 3184, 3184, 2796, 2796, 2796, 2796, 3186, 2796,
1407      2796, 2796, 2796, 2796, 2796, 2796, 2796, 3173, 3192, 2796,
1408      3193, 3174, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1409      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1410      2796, 2796, 2796, 2796, 2796, 2796, 3173, 2796, 2796, 2796,
1411      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1412      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1413      2796, 2796, 2796, 2796, 2796, 2796, 3173, 2796, 2796, 2796,
1414
1415      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1416      2796, 2796, 2796, 2796, 2796, 2796, 3173, 2796, 2796, 2796,
1417      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1418      2796, 2796, 2796, 2796, 2796, 3173, 2796, 2796, 2796, 2796,
1419      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1420      2796, 2796, 3173, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1421      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 3173,
1422      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1423      2796, 2796, 3173, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1424      2796, 3173, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1425
1426      3173, 3173, 2796, 2796, 2796, 2796, 2796, 2796, 3173, 3173,
1427      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1428      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1429      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1430      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1431      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1432      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1433      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1434      3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
1435      3173, 3173, 3173, 3173, 2796,    0, 2796, 2796, 2796, 2796,
1436
1437      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1438      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1439      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1440      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1441      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1442      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1443      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1444      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1445      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1446      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1447
1448      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1449      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1450      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1451      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1452      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1453      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1454      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1455      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1456      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1457      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1458
1459      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1460      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1461      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1462      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1463      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1464      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1465      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1466      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1467      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1468      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1469
1470      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1471      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1472      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1473      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1474      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1475      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1476      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1477      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1478      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
1479      2796, 2796, 2796
1480
1481     } ;
1482
1483 static yyconst flex_int16_t yy_nxt[10247] =
1484     {   0,
1485      2796,  240,  241,  240,  240,  241,  240,  240,  241,  240,
1486       240,  241,  240,  245,  241,  245,  251,  242,  248,  251,
1487       242,  248,  787,  243, 2796,  249,  243,  660,  249,  246,
1488       245,  241,  245,  585,  252,  254,  255,  252,  254,  255,
1489       256,  257,  629,  256,  257,  585,  246,  261,  262,  586,
1490       258,  254,  255,  258,  259,  588,  256,  254,  255,  605,
1491       259,  587,  256,  261,  262, 1639,  258,  241,  241,  241,
1492       706,  587,  258,  241,  241,  241,  273,  241,  273,  273,
1493       241,  273,  622,  264,  273,  241,  273,  664,  739,  264,
1494       707,  263,  274,  621,  666,  274,  584,  584,  584,  740,
1495
1496       275,  584,  584,  584,  584,  584,  584,  263,  265,  266,
1497       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1498       265,  265,  265,  648,  265,  269,  265,  270,  265,  273,
1499       241,  273,  241,  241,  241,  241,  241,  241,  616,  273,
1500       241,  273,  273,  241,  273,  275, 1640, 1642,  276,  588,
1501       588,  276,  617,  265,  265,  274, 1643,  588,  274,  273,
1502       241,  273,  584,  584,  584,  587,  587,  584,  584,  584,
1503       584,  584,  584,  587,  649,  277,  271,  265,  266,  241,
1504       266,  265,  265,  265,  265,  265,  265,  265,  267,  265,
1505       265,  265, 2796,  265,  269,  265,  270,  265,  273,  241,
1506
1507       273,  241,  241,  241,  241,  241,  241,  599,  273,  241,
1508       273,  273,  241,  273,  277, 2796,  603,  278,  618,  745,
1509       278,  648,  265,  265,  275,  618,  746,  275,  241,  241,
1510       241,  241,  241,  241,  273,  241,  273,  273,  241,  273,
1511       273,  241,  273,  649,  279,  271,  606,  279,  588, 1644,
1512       277, 1645,  588,  277,  619,  623,  280,  273,  241,  273,
1513       620,  584,  584,  584,  587, 2796,  621,  624,  587,  617,
1514       622,  678,  621,  280,  281,  282,  241,  282,  281,  281,
1515       281,  281,  281,  281,  281,  283,  281,  281,  281,  794,
1516       281,  285,  281,  286,  281,  289,  241,  289,  289,  241,
1517
1518       289,  241,  241,  241,  616,  241,  241,  241,  289,  241,
1519       289,  290,  646, 1648,  290, 1651,  625,  278,  617,  281,
1520       281,  278,  649,  997,  290,  842,  647,  287,  281,  282,
1521       241,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1522       281,  281,  281, 1458,  281,  285,  281,  286,  281,  289,
1523       241,  289,  289,  241,  289,  289,  241,  289,  584,  584,
1524       584,  254,  255,  635,  588,  290,  256, 1652,  291, 1653,
1525       636,  291,  678,  281,  281,  611,  301, 1654,  621,  587,
1526       587,  287,  292,  293,  241,  293,  292,  292,  292,  292,
1527       292,  292,  292,  294,  292,  292,  292,  668,  292,  296,
1528
1529       292,  297,  292,  608, 1655,  302,  315,  241,  315,  315,
1530       241,  315,  617,  241,  241,  241,  254,  255,  241,  241,
1531       241,  256,  316,  621,  683,  316,  588,  292,  292,  317,
1532       713,  301, 1168,  655,  317,  298,  683, 1169,  299,  584,
1533       584,  584,  587,  714,  300,  292,  293,  241,  293,  292,
1534       292,  292,  292,  292,  292,  292,  294,  292,  292,  292,
1535       302,  292,  296,  292,  297,  292,  315,  241,  315,  315,
1536       241,  315,  315,  241,  315,  649,  315,  241,  315,  329,
1537       241,  329,  316,  588,  588,  316,  588,  621,  318,  642,
1538       292,  292,  318,  643, 1659,  330, 1660,  644,  298,  587,
1539
1540       587,  299,  587,  711,  593, 1662,  712,  300,  303,  304,
1541       241,  304,  303,  303,  303,  303,  303,  303,  303,  305,
1542       303,  303,  303,  741,  303,  307,  303,  308,  303,  329,
1543       241,  329,  340,  241,  340,  340,  241,  340,  741,  340,
1544       241,  340,  340,  241,  340,  330,  594,  588,  341,  588,
1545       588,  341,  595,  303,  303,  342,  596,  688,  342, 1663,
1546      1664,  597,  309,  587,  310,  587,  587,  311,  584,  584,
1547       584,  611,  312,  313,  303,  304,  241,  304,  303,  303,
1548       303,  303,  303,  303,  303,  305,  303,  303,  303,  621,
1549       303,  307,  303,  308,  303,  241,  241,  241,  241,  241,
1550
1551       241,  340,  241,  340,  605,  340,  241,  340,  340,  241,
1552       340,  343,  997,  588,  343,  588,  588,  344,  621,  303,
1553       303,  344,  693, 1666,  345,  584,  584,  584,  309,  587,
1554       310,  587,  587,  311,  584,  584,  584, 1627,  312,  313,
1555       319,  320,  241,  320,  319,  319,  319,  319,  319,  319,
1556       319,  321,  319,  319,  319, 1679,  319,  323,  319,  324,
1557       319,  340,  241,  340,  241,  241,  241,  241,  241,  241,
1558       715,  340,  241,  340,  340,  241,  340,  345,  823, 1680,
1559       346,  716,  717,  346,  660,  319,  319,  342,  588,  588,
1560       342,  824,  325,  584,  584,  584,  718,  326,  584,  584,
1561
1562       584,  584,  584,  584,  587,  587,  327,  319,  320,  241,
1563       320,  319,  319,  319,  319,  319,  319,  319,  321,  319,
1564       319,  319,  669,  319,  323,  319,  324,  319,  241,  241,
1565       241,  241,  241,  241,  340,  241,  340,  665,  340,  241,
1566       340,  340,  241,  340,  347,  794,  800,  347,  753,  801,
1567       345, 2796,  319,  319,  345,  754, 1681,  348, 1298,  325,
1568       795,  618,  663,  609,  326,  664,  584,  584,  584,  755,
1569      1299,  671,  666,  327,  331,  332,  241,  332,  331,  331,
1570       331,  331,  331,  331,  331,  333,  331,  331,  331,  606,
1571       331,  335,  331,  336,  331,  340,  241,  340,  241,  241,
1572
1573       241,  241,  241,  241, 1684,  340,  241,  340,  340,  241,
1574       340,  348,  813, 1309,  349,  814,  610,  349,  818,  331,
1575       331,  350,  819, 1685,  350, 1299,  618,  584,  584,  584,
1576       337,  584,  584,  584,  584,  584,  584, 1686,  338,  331,
1577       332,  241,  332,  331,  331,  331,  331,  331,  331,  331,
1578       333,  331,  331,  331,  669,  331,  335,  331,  336,  331,
1579       241,  241,  241,  241,  241,  241,  340,  241,  340,  670,
1580       340,  241,  340,  340,  241,  340,  351,  588,  588,  351,
1581       813, 1687,  348,  827,  331,  331,  348, 1699,  588,  352,
1582       340,  241,  340,  587,  587,  337,  584,  584,  584,  584,
1583
1584       584,  584,  830,  338,  587,  814,  352,  353,  354,  241,
1585       354,  353,  353,  353,  353,  353,  353,  353,  355,  353,
1586       353,  353, 1700,  353,  357,  353,  358,  353,  364,  241,
1587       364,  364,  241,  364,  241,  241,  241,  787,  241,  241,
1588       241,  584,  584,  584,  365, 1707,  588,  365,  588,  588,
1589       317, 1711,  353,  353,  317,  728,  733,  359,  584,  584,
1590       584,  701,  587,  360,  587,  587,  361,  584,  584,  584,
1591       747, 1712,  362,  353,  354,  241,  354,  353,  353,  353,
1592       353,  353,  353,  353,  355,  353,  353,  353,  621,  353,
1593       357,  353,  358,  353,  364,  241,  364,  364,  241,  364,
1594
1595       364,  241,  364, 1718,  364,  241,  364,  765, 1724,  702,
1596       365,  588,  649,  365,  588,  588,  366,  748,  353,  353,
1597       366,  621,  760,  359,  584,  584,  584,  587, 1725,  360,
1598       587,  587,  361,  584,  584,  584,  771, 1726,  362,  367,
1599       368,  241,  368,  367,  367,  367,  367,  367,  367,  367,
1600       369,  367,  367,  367,  610,  367,  371,  367,  372,  367,
1601       376,  241,  376,  376,  241,  376,  241,  241,  241, 1309,
1602       241,  241,  241,  376,  241,  376,  377,  588,  588,  377,
1603      1727, 1333,  317,  610,  367,  367,  317, 1731, 1737,  377,
1604       584,  584,  584,  587,  587,  373,  584,  584,  584,  584,
1605
1606       584,  584,  584,  584,  584,  374,  367,  368,  241,  368,
1607       367,  367,  367,  367,  367,  367,  367,  369,  367,  367,
1608       367, 1741,  367,  371,  367,  372,  367,  376,  241,  376,
1609       376,  241,  376,  376,  241,  376, 1744,  388,  241,  388,
1610       388,  241,  388,  377,  588,  588,  378,  830, 1746,  378,
1611       827,  367,  367,  389, 1747, 1748,  389,  584,  584,  584,
1612       587,  587,  373,  584,  584,  584,  584,  584,  584,  584,
1613       584,  584,  374,  379,  380,  241,  380,  379,  379,  379,
1614       379,  379,  379,  379,  381,  379,  379,  379, 1752,  379,
1615       383,  379,  384,  379,  399,  241,  399,  399,  241,  399,
1616
1617       413,  241,  413, 1755,  413,  241,  413,  241,  241,  241,
1618       400,  901,  588,  400,  902, 1757,  414,  909,  379,  379,
1619       414,  910, 1764,  415,  584,  584,  584,  778,  587,  385,
1620       584,  584,  584,  386,  379,  380,  241,  380,  379,  379,
1621       379,  379,  379,  379,  379,  381,  379,  379,  379, 1772,
1622       379,  383,  379,  384,  379,  241,  241,  241,  413,  241,
1623       413,  413,  241,  413,  779,  413,  241,  413,  413,  241,
1624       413,  415, 1773,  997,  414, 1774,  820,  414,  649,  379,
1625       379,  416,  821, 1776,  416,  584,  584,  584,  822,  999,
1626       385,  584,  584,  584,  386,  390,  391,  241,  391,  390,
1627
1628       390,  390,  390,  390,  390,  390,  392,  390,  390,  390,
1629      1790,  390,  394,  390,  395,  390,  432,  241,  432,  432,
1630       241,  432,  448,  241,  448, 1794,  448,  241,  448,  459,
1631       241,  459,  433,  997, 1795,  433, 1461, 1277,  449, 1798,
1632       390,  390,  449,  997, 1800,  460,  584,  584,  584,  584,
1633       584,  584,  584,  584,  584,  396,  584,  584,  584, 1461,
1634      1787,  397,  390,  391,  241,  391,  390,  390,  390,  390,
1635       390,  390,  390,  392,  390,  390,  390, 1788,  390,  394,
1636       390,  395,  390,  459,  241,  459,  472,  241,  472,  472,
1637       241,  472, 1789,  241,  241,  241,  241,  241,  241,  460,
1638
1639      1801, 1802,  473, 1803, 1804,  473, 1807,  390,  390,  317,
1640      1796, 1808,  317,  584,  584,  584,  584,  584,  584,  584,
1641       584,  584,  396,  584,  584,  584, 1797, 1811,  397,  401,
1642       402,  241,  402,  401,  401,  401,  401,  401,  401,  401,
1643       403,  401,  401,  401, 1812,  401,  405,  401,  406,  401,
1644       472,  241,  472,  472,  241,  472,  472,  241,  472, 1813,
1645       472,  241,  472, 1814,  588,  828,  473, 1816, 1817,  473,
1646      1820,  783,  474, 1823,  401,  401,  474,  407,  824,  408,
1647       587,  584,  584,  584, 1827,  409,  584,  584,  584, 1828,
1648      1831,  410, 1832, 1833,  411,  401,  402,  241,  402,  401,
1649
1650       401,  401,  401,  401,  401,  401,  403,  401,  401,  401,
1651      1836,  401,  405,  401,  406,  401,  484,  241,  484,  484,
1652       241,  484,  241,  241,  241, 1829,  241,  241,  241,  584,
1653       584,  584,  485, 1830, 1840,  485,  828,  588,  486,  828,
1654       401,  401,  486,  407,  792,  408,  584,  584,  584,  872,
1655      1834,  409,  877,  587,  584,  584,  584,  410, 1835, 1844,
1656       411,  417,  418,  241,  418,  417,  417,  417,  417,  417,
1657       417,  417,  419,  417,  417,  417,  420,  417,  421,  417,
1658       422,  417,  420,  420,  420,  420,  420,  420,  420,  420,
1659       420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
1660
1661       420,  420,  420,  420,  420,  420,  417,  417,  420,  423,
1662       424,  425,  420,  420,  420,  420,  420,  426,  420,  427,
1663       420,  420,  420,  428,  420,  429,  430,  420,  420,  420,
1664       420,  420,  420,  420,  434,  435,  241,  435,  434,  434,
1665       434,  434,  434,  434,  434,  436,  434,  434,  434, 1858,
1666       434,  438,  434,  439,  434,  484,  241,  484,  484,  241,
1667       484,  484,  241,  484,  832,  484,  241,  484, 1859, 1860,
1668       821,  485, 1861, 1841,  485, 1862,  833,  487, 1863,  434,
1669       434,  487,  440,  441,  442,  832,  798,  798,  798, 1842,
1670       443,  821,  444, 1014, 1014, 1014,  445,  822, 1864,  446,
1671
1672       434,  435,  241,  435,  434,  434,  434,  434,  434,  434,
1673       434,  436,  434,  434,  434, 1868,  434,  438,  434,  439,
1674       434,  498,  241,  498,  498,  241,  498,  241,  241,  241,
1675       820,  241,  241,  241, 1874, 1875,  821,  499, 1876,  828,
1676       499, 1881,  833,  486,  799,  434,  434,  486,  440,  441,
1677       442,  832,  878, 1034, 1034, 1034,  443,  821,  444, 1473,
1678      1473, 1473,  445,  857, 1885,  446,  450,  451,  241,  451,
1679       450,  450,  450,  450,  450,  450,  450,  452,  450,  450,
1680       450, 1886,  450,  454,  450,  455,  450,  498,  241,  498,
1681       498,  241,  498,  498,  241,  498, 1887,  498,  241,  498,
1682
1683       839,  839,  839,  499, 1889, 1144,  499, 1893, 1894,  500,
1684      1895,  450,  450,  500, 1145, 1896,  456,  840, 1475, 1475,
1685      1475, 1146,  457,  450,  451,  241,  451,  450,  450,  450,
1686       450,  450,  450,  450,  452,  450,  450,  450, 1897,  450,
1687       454,  450,  455,  450,  510,  241,  510,  510,  241,  510,
1688       521,  241,  521, 1900,  521,  241,  521,  847,  847,  847,
1689       511, 1667, 1907,  511, 1476, 1909,  522, 1668,  450,  450,
1690       522, 1669, 1919,  456,  848, 1670, 1014, 1014, 1014,  457,
1691       461,  462,  241,  462,  461,  461,  461,  461,  461,  461,
1692       461,  463,  461,  461,  461, 1920,  461,  465,  461,  466,
1693
1694       461,  241,  241,  241,  241,  241,  241,  521,  241,  521,
1695      1921,  521,  241,  521,  521,  241,  521,  486, 1841, 1923,
1696       486, 1796,  997,  522, 1929,  461,  461,  522, 1926,  467,
1697       523,  798,  798,  798, 1797, 1001,  468, 1842,  469, 1015,
1698      1034, 1034, 1034, 1461, 1935,  470,  461,  462,  241,  462,
1699       461,  461,  461,  461,  461,  461,  461,  463,  461,  461,
1700       461, 1936,  461,  465,  461,  466,  461,  521,  241,  521,
1701       534,  241,  534,  534,  241,  534, 1937,  241,  241,  241,
1702       241,  241,  241,  523, 1940, 1941,  535, 1942, 1928,  535,
1703      1946,  461,  461,  486, 1950,  467,  486, 1014, 1014, 1014,
1704
1705      1952, 1953,  468, 1015,  469, 1954, 1034, 1034, 1034, 1958,
1706      1964,  470,  475,  476,  241,  476,  475,  475,  475,  475,
1707       475,  475,  475,  477,  475,  475,  475, 1965,  475,  479,
1708       475,  480,  475,  534,  241,  534,  534,  241,  534,  534,
1709       241,  534, 1966,  534,  241,  534,  548,  241,  548,  535,
1710      1967, 1968,  535, 1969, 1970,  536, 1971,  475,  475,  536,
1711      1087, 1972,  549,  481, 1046, 1046, 1046, 1973, 1047, 1087,
1712      1979, 1048, 1479, 1479, 1479, 1980, 1989,  482,  475,  476,
1713       241,  476,  475,  475,  475,  475,  475,  475,  475,  477,
1714       475,  475,  475, 1990,  475,  479,  475,  480,  475,  548,
1715
1716       241,  548,  241,  241,  241,  241,  241,  241, 1991,  548,
1717       241,  548,  548,  241,  548,  549, 1992, 1995,  550, 1993,
1718      1996,  550, 1997,  475,  475,  549, 1998, 1994,  549,  481,
1719      1056, 1056, 1056, 2002, 1057, 2003, 2004, 1058, 1482, 1482,
1720      1482, 2006, 2007,  482,  488,  489,  241,  489,  488,  488,
1721       488,  488,  488,  488,  488,  490,  488,  488,  488, 2008,
1722       488,  492,  488,  493,  488,  548,  241,  548,  548,  241,
1723       548,  560,  241,  560, 1461,  560,  241,  560,  570,  241,
1724       570,  551, 1671, 2009,  551, 2012, 2016,  561, 1672,  488,
1725       488,  561, 1673, 2017,  571,  494, 1674, 2022,  495, 1079,
1726
1727      1079, 1079, 2023, 1080, 2024, 1927, 1081, 2025, 2027,  496,
1728       488,  489,  241,  489,  488,  488,  488,  488,  488,  488,
1729       488,  490,  488,  488,  488, 2036,  488,  492,  488,  493,
1730       488,  570,  241,  570,  241,  241,  241,  241,  241,  241,
1731      2018,  570,  241,  570,  570,  241,  570,  571, 2019, 1461,
1732       317, 2020, 2046,  317, 2047,  488,  488,  571, 2051, 2021,
1733       571,  494, 2052, 2053,  495, 1098, 1098, 1098, 1461, 1099,
1734      2056, 2060, 1100, 2061, 2062,  496,  501,  502,  241,  502,
1735       501,  501,  501,  501,  501,  501,  501,  503,  501,  501,
1736       501, 2041,  501,  505,  501,  506,  501,  570,  241,  570,
1737
1738       570,  241,  570,  582,  241,  582, 2063,  582,  241,  582,
1739       660, 2064, 2065,  572, 2042, 2066,  572, 2067,  660,  583,
1740       661,  501,  501,  583, 1491, 1491, 1491,  507,  667, 1514,
1741      1514, 1514,  508,  501,  502,  241,  502,  501,  501,  501,
1742       501,  501,  501,  501,  503,  501,  501,  501,  662,  501,
1743       505,  501,  506,  501,  663, 2068,  668,  664,  863,  863,
1744       863, 2069, 2071,  665,  666,  880,  880,  880, 2072,  621,
1745       886,  886,  886,  615, 2073,  864, 2078, 2079,  501,  501,
1746      2080, 2081,  881, 2082,  507, 2083, 2084,  887, 2086,  508,
1747       512,  513,  241,  513,  512,  512,  512,  512,  512,  512,
1748
1749       512,  514,  512,  512,  512, 2087,  512,  516,  512,  517,
1750       512,  891,  891,  891,  903,  903,  903,  913,  913,  913,
1751       916,  916,  916,  931,  931,  931, 2090, 2091,  892, 2094,
1752      2095,  904, 2096, 2097,  914,  512,  512,  917, 2101, 2102,
1753       932,  518, 1107, 1107, 1107, 2103, 1108, 2104, 2105, 1109,
1754      1525, 1525, 1525, 2106, 2107,  519,  512,  513,  241,  513,
1755       512,  512,  512,  512,  512,  512,  512,  514,  512,  512,
1756       512, 2108,  512,  516,  512,  517,  512,  939,  939,  939,
1757       944,  944,  944,  964,  964,  964,  987,  987,  987,  991,
1758       991,  991, 2110, 2133,  940, 2134, 2135,  945, 2136, 2137,
1759
1760       965,  512,  512,  988, 2138, 1461,  992,  518, 1115, 1115,
1761      1115, 2143, 1116, 1461, 2144, 1117, 1526, 1526, 1526, 2145,
1762      2146,  519,  524,  525,  241,  525,  524,  524,  524,  524,
1763       524,  524,  524,  526,  524,  524,  524, 2129,  524,  528,
1764       524,  529,  524, 1010, 1010, 1010, 1010, 1010, 1010, 2147,
1765      2130, 1041, 1041, 1041, 1041, 1041, 1041,  839,  839,  839,
1766      2148, 1012, 1476, 2149, 1012, 2150, 2151,  524,  524, 1043,
1767      2152, 2154, 1043,  530,  840, 2155,  531, 1132, 1132, 1132,
1768      2156, 1133, 2160, 2161, 1134, 2162, 2163,  532,  524,  525,
1769       241,  525,  524,  524,  524,  524,  524,  524,  524,  526,
1770
1771       524,  524,  524, 1013,  524,  528,  524,  529,  524, 1051,
1772      1051, 1051, 2166, 1044, 1051, 1051, 1051, 2167,  847,  847,
1773       847, 1059, 1059, 1059, 1062, 1062, 1062, 1053, 1067, 1067,
1774      1067, 2171, 1053,  524,  524,  848, 2174, 2175, 1060,  530,
1775      2178, 1063,  531, 1147, 1147, 1147, 1069, 1148, 2182, 2183,
1776      1149, 2184, 2185,  532,  537,  538,  241,  538,  537,  537,
1777       537,  537,  537,  537,  537,  539,  537,  537,  537, 2186,
1778       537,  541,  537,  542,  537, 2189, 2190, 1054, 1075, 1075,
1779      1075, 1461, 2208, 1075, 1075, 1075, 2209, 2210, 1067, 1067,
1780      1067,  863,  863,  863, 2211, 2212, 1077, 2222, 2223,  537,
1781
1782       537, 1077, 1473, 1473, 1473,  997, 1069,  543,  864,  544,
1783      2224,  545, 2225, 2226, 1475, 1475, 1475, 2227, 2206,  546,
1784       537,  538,  241,  538,  537,  537,  537,  537,  537,  537,
1785       537,  539,  537,  537,  537, 1070,  537,  541,  537,  542,
1786       537, 1083, 1083, 1083, 2205, 2228, 1078,  880,  880,  880,
1787      1103, 1103, 1103, 1103, 1103, 1103, 1111, 1111, 1111, 1085,
1788      1601,  886,  886,  886,  881,  537,  537, 2229, 1105, 2230,
1789      2231, 1105, 1461,  543, 1113,  544, 2233,  545,  887, 1475,
1790      1475, 1475, 1641, 1641, 1641,  546,  552,  553,  241,  553,
1791       552,  552,  552,  552,  552,  552,  552,  554,  552,  552,
1792
1793       552, 2234,  552,  556,  552,  557,  552, 1083, 1083, 1083,
1794      2235, 1111, 1111, 1111, 2207, 1119, 1119, 1119, 1106,  891,
1795       891,  891, 1119, 1119, 1119, 1085,  903,  903,  903, 1113,
1796      2237,  552,  552, 1121, 2243, 2244,  892, 1479, 1479, 1479,
1797      1121, 2245, 2249,  904, 1086, 1151, 1151, 1151, 2257, 1152,
1798      2258, 2259, 1153, 1461,  558,  552,  553,  241,  553,  552,
1799       552,  552,  552,  552,  552,  552,  554,  552,  552,  552,
1800      2215,  552,  556,  552,  557,  552, 1114, 1125, 1125, 1125,
1801      2216, 1461, 1122, 2217, 1125, 1125, 1125, 1137, 1137, 1137,
1802      1137, 1137, 1137, 2218, 2279, 1127,  913,  913,  913, 2267,
1803
1804       552,  552, 1127, 2219, 2281, 1139, 2220, 2283, 1139, 2268,
1805      1171, 1171, 1171,  914, 1172, 2269, 2284, 1173, 1482, 1482,
1806      1482, 2285, 2280,  558,  562,  563,  241,  563,  562,  562,
1807       562,  562,  562,  562,  562,  564,  562,  562,  562, 2289,
1808       562,  566,  562,  567,  562,  916,  916,  916, 1128, 2290,
1809      1140, 1154, 1154, 1154, 1163, 1163, 1163, 1163, 1163, 1163,
1810      2291, 2293,  917, 1649, 1649, 1649, 2294,  997, 1155,  562,
1811       562, 2298, 1165, 2292, 2299, 1165, 1491, 1491, 1491, 2300,
1812       568,  562,  563,  241,  563,  562,  562,  562,  562,  562,
1813       562,  562,  564,  562,  562,  562, 2278,  562,  566,  562,
1814
1815       567,  562,  931,  931,  931, 1174, 1174, 1174, 2295, 1650,
1816      1178, 1178, 1178, 2301, 1166, 1178, 1178, 1178, 2302,  932,
1817      2303, 2296, 1175, 1656, 1656, 1656,  562,  562, 1180, 1646,
1818      1646, 1646, 2304, 1180, 1514, 1514, 1514,  568,  573,  574,
1819       241,  574,  573,  573,  573,  573,  573,  573,  573,  575,
1820       573,  573,  573, 2305,  573,  577,  573,  578,  573,  939,
1821       939,  939, 2307, 1183, 1183, 1183, 1181, 1184, 2309, 1657,
1822      1185, 1186, 1186, 1186, 2317, 2270,  940, 1186, 1186, 1186,
1823       944,  944,  944,  573,  573, 2271, 1191, 1191, 1191, 1188,
1824      1192, 2272, 1647, 1193,  579, 1188, 2318,  945, 1223, 1223,
1825
1826      1223, 2319, 1224, 2320, 2327, 1225,  580,  573,  574,  241,
1827       574,  573,  573,  573,  573,  573,  573,  573,  575,  573,
1828       573,  573, 2330,  573,  577,  573,  578,  573, 1197, 1197,
1829      1197, 1197, 1197, 1197, 1201, 1201, 1201, 1189, 1203, 1203,
1830      1203, 2796, 2796, 2796, 2337, 2338, 1199, 2339, 2340, 1199,
1831      2341, 1202,  573,  573, 2342, 1204,  997, 2349, 2796, 1206,
1832      1206, 1206, 1461,  579, 1206, 1206, 1206, 1211, 1211, 1211,
1833      1215, 1215, 1215, 2351, 2352,  580,  588, 1208, 2353, 2796,
1834      2796, 2796, 1208,  603, 1212, 2354, 1200, 1216, 2796, 2796,
1835      2796, 2355,  587,  604, 2356, 2357, 2796, 2346, 2358, 1205,
1836
1837      1218, 1218, 1218, 2345, 2359, 2796, 2360, 1218, 1218, 1218,
1838      1525, 1525, 1525, 2363, 2364,  964,  964,  964, 1220, 2365,
1839       605,  606,  607, 2366, 1209, 1220, 2367,  608,  609, 1213,
1840       610,  611,  965, 2368,  612, 2369,  613,  614,  615, 1226,
1841      1226, 1226, 2370, 1214, 1221, 2372, 1217, 1226, 1226, 1226,
1842      1230, 1230, 1230, 1232, 1232, 1232, 2378, 1228, 1234, 1234,
1843      1234, 1234, 1234, 1234, 2379, 1228, 2380, 1231, 2381, 2382,
1844      1233, 1238, 1238, 1238, 2383, 2387, 1236, 2388, 2396, 1236,
1845      2796, 2796, 2796, 1242, 1242, 1242, 2390, 2389, 1239, 1244,
1846      1244, 1244, 1244, 1244, 1244, 2397, 2391, 2796, 2392, 2394,
1847
1848      1243, 2398, 1229, 1252, 1252, 1252, 2399, 1246, 2393, 2395,
1849      1246, 1252, 1252, 1252, 1258, 1258, 1258, 1258, 1258, 1258,
1850      2400, 1254,  987,  987,  987,  991,  991,  991, 2401, 1254,
1851      1240, 1237, 1260, 2414, 2415, 1260, 1262, 1262, 1262,  988,
1852      1263,  997,  992, 1264, 1241, 1265, 1265, 1265, 1265, 1265,
1853      1265, 1269, 1269, 1269, 2416, 1270, 2417, 2418, 1271, 1273,
1854      1273, 1273, 1247, 1267, 2419, 2420, 1267, 1273, 1273, 1273,
1855      1010, 1010, 1010, 2421, 1255, 2405, 2425, 1275, 2426, 2427,
1856      1261, 1010, 1010, 1010, 2428, 1275, 2429, 2430, 1012, 1010,
1857      1010, 1010, 1311, 1311, 1311, 1041, 1041, 1041, 2435, 1012,
1858
1859      1041, 1041, 1041, 1041, 1041, 1041, 2436, 1012, 1268, 1312,
1860      1314, 1314, 1314, 1043, 2437, 1046, 1046, 1046, 1043, 1047,
1861      2440, 1043, 1048, 2796, 2796, 2796, 2445, 1315, 2446, 2447,
1862      1276, 1051, 1051, 1051, 2448, 2449, 1285, 1051, 1051, 1051,
1863      2796, 1051, 1051, 1051, 1056, 1056, 1056, 2450, 1057, 1053,
1864      2451, 1058, 1313, 2452, 2453, 1053, 1059, 1059, 1059, 1053,
1865      1320, 1320, 1320, 2454, 1321, 2455, 2456, 1322, 1323, 1323,
1866      1323, 2464,  997, 1060, 1062, 1062, 1062, 1325, 1325, 1325,
1867      2465, 1326, 2466, 1316, 1327, 1324, 2467, 2468, 1318, 2469,
1868      2470, 1063, 1329, 1329, 1329, 1067, 1067, 1067, 1067, 1067,
1869
1870      1067, 1067, 1067, 1067, 1335, 1335, 1335, 2471, 2472, 1330,
1871      1075, 1075, 1075, 1069, 2458, 2473, 1069, 2474, 2475, 1069,
1872      2476, 1336, 1075, 1075, 1075, 1075, 1075, 1075, 1077, 1079,
1873      1079, 1079, 2477, 1080, 2480, 2481, 1081, 1083, 1083, 1083,
1874      1077, 2482, 2486, 1077, 1083, 1083, 1083, 1340, 1340, 1340,
1875      1098, 1098, 1098, 2493, 1099, 1085, 2494, 1100, 2495, 2496,
1876      1332, 2497, 1085, 2498, 2499, 1341, 1354, 1354, 1354, 1103,
1877      1103, 1103, 1338, 1103, 1103, 1103, 1103, 1103, 1103, 1111,
1878      1111, 1111, 2500, 1355, 1111, 1111, 1111, 1105, 1107, 1107,
1879      1107, 1105, 1108, 2501, 1105, 1109, 2502, 1113, 1111, 1111,
1880
1881      1111, 2503, 1113, 1115, 1115, 1115, 2504, 1116, 2514, 2515,
1882      1117, 1359, 1359, 1359,  997, 2516, 1113, 1119, 1119, 1119,
1883      1119, 1119, 1119, 1119, 1119, 1119, 2509, 2517, 1360, 1362,
1884      1362, 1362, 2796, 2796, 2796, 1121, 1356, 2509, 1121, 2518,
1885      2510, 1121, 2519, 1125, 1125, 1125, 1363, 2520, 2512, 2796,
1886      1125, 1125, 1125, 1125, 1125, 1125, 2521, 2522, 1358, 2507,
1887      1364, 1127, 1368, 1368, 1368, 1132, 1132, 1132, 1127, 1133,
1888      2523, 1127, 1134, 1137, 1137, 1137, 1137, 1137, 1137, 1369,
1889      1137, 1137, 1137, 1147, 1147, 1147, 2524, 1148, 2529, 1361,
1890      1149, 1139, 2525, 2527, 1139, 1379, 1379, 1379, 1139, 1151,
1891
1892      1151, 1151, 2534, 1152, 2526, 2528, 1153, 1154, 1154, 1154,
1893      2535, 2536, 1380, 1381, 1381, 1381, 2537, 1382, 1365, 2540,
1894      1383, 1163, 1163, 1163, 1155, 1163, 1163, 1163, 1163, 1163,
1895      1163, 1171, 1171, 1171, 2509, 1172, 2509,  997, 1173, 1165,
1896      1174, 1174, 1174, 1165, 1372, 2512, 1165, 1396, 1396, 1396,
1897      2510, 1397, 1461, 1462, 1398, 2540, 2543, 1175, 1178, 1178,
1898      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1183, 1183, 1183,
1899      2544, 1184, 2545, 2546, 1185, 2555, 1180, 2538, 2558, 1180,
1900      2530, 2532, 1180, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
1901      1186, 1186, 2531, 2533, 1391, 1191, 1191, 1191, 2563, 1192,
1902
1903      2566, 1188, 1193, 2553, 1188, 2540, 2568, 1188, 1197, 1197,
1904      1197, 1197, 1197, 1197, 2540, 1401, 1197, 1197, 1197, 1201,
1905      1201, 1201, 2554, 1409, 1409, 1409, 1199, 1410, 2569, 1199,
1906      1411, 1203, 1203, 1203, 1199, 2570, 1202, 1412, 1412, 1412,
1907      2571, 1413, 2572, 2556, 1414, 1206, 1206, 1206, 1204, 1206,
1908      1206, 1206, 1206, 1206, 1206, 1403, 1211, 1211, 1211, 1215,
1909      1215, 1215, 2557, 1208, 1418, 1418, 1418, 1208, 1419, 2582,
1910      1208, 1420, 2583, 1212, 2584, 1408, 1216, 1423, 1423, 1423,
1911      2561, 1424, 2585, 2564, 1425, 1218, 1218, 1218, 1218, 1218,
1912      1218, 1218, 1218, 1218, 1223, 1223, 1223, 2586, 1224, 2562,
1913
1914      2587, 1225, 2565, 1220, 2591, 2592, 1220, 2593, 2594, 1220,
1915      1226, 1226, 1226, 1226, 1226, 1226, 2595, 2596, 1416, 1226,
1916      1226, 1226, 1230, 1230, 1230, 1430, 1430, 1430, 1228, 1431,
1917      2598, 1228, 1432, 1232, 1232, 1232, 2599, 1228, 2600, 1231,
1918      1433, 1433, 1433, 2605, 1434, 2606, 2607, 1435, 2608, 2601,
1919      1233, 1234, 1234, 1234, 1427, 1234, 1234, 1234, 1234, 1234,
1920      1234, 2602, 1238, 1238, 1238, 1242, 1242, 1242, 2603, 1236,
1921      1437, 1437, 1437, 1236, 1438, 2609, 1236, 1439, 1429, 1239,
1922      2604, 2610, 1243, 1442, 1442, 1442, 2611, 1443, 2612, 2613,
1923      1444, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244,
1924
1925      1447, 1447, 1447, 1252, 1252, 1252, 1252, 1252, 1252, 1246,
1926      2614, 2615, 1246, 2616, 2618, 1246, 2619, 1448, 2620, 1436,
1927       997, 1254, 2621, 2622, 1254, 1252, 1252, 1252, 1258, 1258,
1928      1258, 1258, 1258, 1258, 1258, 1258, 1258, 1262, 1262, 1262,
1929      2623, 1263, 2624, 1254, 1264, 2617, 1260, 2625, 2626, 1260,
1930      2627, 2628, 1260, 1265, 1265, 1265, 2629, 2630, 1445, 1265,
1931      1265, 1265, 1265, 1265, 1265, 1269, 1269, 1269, 2631, 1270,
1932      2632, 1267, 1271, 1273, 1273, 1273, 2633, 1267, 2634, 2635,
1933      1267, 1273, 1273, 1273, 2637, 1451, 2638, 1454, 1273, 1273,
1934      1273, 1275, 1460, 1460, 1460, 1010, 1010, 1010, 2639, 1275,
1935
1936      1311, 1311, 1311, 1526, 1526, 1526, 1275, 1314, 1314, 1314,
1937      1461, 1462,  997, 1012, 1041, 1041, 1041, 1312, 1494, 1494,
1938      1494, 1455, 1495, 2640, 1315, 1496, 1498, 1498, 1498, 2641,
1939      1499, 2636, 1043, 1500, 1051, 1051, 1051, 1320, 1320, 1320,
1940      2642, 1321, 2643, 2644, 1322, 1323, 1323, 1323, 1457, 1505,
1941      1505, 1505, 1053, 1506, 2645, 2646, 1507, 1325, 1325, 1325,
1942      1467, 1326, 1324, 2647, 1327, 1329, 1329, 1329, 1509, 1509,
1943      1509, 1497, 1510, 2648, 2649, 1511, 1067, 1067, 1067, 1335,
1944      1335, 1335, 1330, 1503, 1516, 1516, 1516, 2650, 1517, 2651,
1945      2652, 1518, 2654,  997, 1069, 2655, 1336, 1519, 1519, 1519,
1946
1947      1075, 1075, 1075, 1340, 1340, 1340, 1534, 1534, 1534, 2656,
1948      1354, 1354, 1354, 2653, 1520, 1536, 1536, 1536, 1077, 1537,
1949      2657, 1341, 1538, 1535, 2658, 2659, 1513, 1355, 1103, 1103,
1950      1103, 2660, 1111, 1111, 1111, 1359, 1359, 1359, 1542, 1542,
1951      1542, 2661, 1543, 2662, 2663, 1544, 1105, 2664, 2665, 1521,
1952      1113, 2666, 1360, 1119, 1119, 1119, 1362, 1362, 1362, 1546,
1953      1546, 1546, 2667, 1547, 2668, 2669, 1548, 1125, 1125, 1125,
1954      2671, 1121,  997, 1363, 2672, 1368, 1368, 1368, 2670, 1553,
1955      1553, 1553, 2673, 1554, 2674, 1127, 1555, 1556, 1556, 1556,
1956      2675, 1539, 1369, 2676, 2677, 1541, 1558, 1558, 1558, 1137,
1957
1958      1137, 1137, 2678, 2679, 1557, 1565, 1565, 1565, 1379, 1379,
1959      1379, 2680, 1545, 1559, 1569, 1569, 1569, 1139, 1570, 2681,
1960      2682, 1571, 1566, 2684, 2685, 1380, 2686, 1550, 1381, 1381,
1961      1381, 2687, 1382, 2688, 2689, 1383, 1572, 1572, 1572, 1163,
1962      1163, 1163, 1560, 1582, 1582, 1582, 2690, 1396, 1396, 1396,
1963      2691, 1397, 2693, 1573, 1398, 2694, 2695, 1165, 2696, 2697,
1964      1583, 1586, 1586, 1586, 1561, 1178, 1178, 1178, 1186, 1186,
1965      1186, 1595, 1595, 1595, 1197, 1197, 1197, 2698, 1587, 2699,
1966      1409, 1409, 1409, 1180, 1410, 2700, 1188, 1411, 1596, 1412,
1967      1412, 1412, 1199, 1413,  997, 2703, 1414, 1206, 1206, 1206,
1968
1969      1418, 1418, 1418, 1580, 1419, 2704, 2705, 1420, 2683, 1423,
1970      1423, 1423, 2706, 1424, 2707, 1208, 1425, 1597, 1218, 1218,
1971      1218, 1226, 1226, 1226, 2708, 1430, 1430, 1430, 1589, 1431,
1972      1598, 2717, 1432, 1591, 2737,  997, 1220,  997,  997, 1228,
1973      1433, 1433, 1433,  997, 1434, 2738,  997, 1435, 1234, 1234,
1974      1234, 1437, 1437, 1437,  997, 1438, 1638,  997, 1439, 1447,
1975      1447, 1447, 1600, 1442, 1442, 1442, 1236, 1443, 1637,  997,
1976      1444, 1244, 1244, 1244, 2709,  997, 1448, 1607, 1605, 1613,
1977      1613, 1613, 2710, 1614, 2711,  997, 1615,  997,  997, 1246,
1978      1252, 1252, 1252,  997, 2725, 1608, 1620, 1620, 1620, 1258,
1979
1980      1258, 1258, 1265, 1265, 1265, 1624, 1624, 1624, 1254, 1273,
1981      1273, 1273, 2715, 1621, 1010, 1010, 1010, 1260, 1611,  997,
1982      1267, 2723, 1625, 1460, 1460, 1460,  997, 1275, 2716, 1494,
1983      1494, 1494, 1012, 1495, 2712, 2713, 1496,  997,  997, 1618,
1984      2714, 1461, 1041, 1041, 1041, 1498, 1498, 1498, 2761, 1499,
1985      2719, 2720, 1500, 2721, 1623, 1051, 1051, 1051,  997,  997,
1986      1043,  997, 1067, 1067, 1067, 1622, 1633, 1682, 1682, 1682,
1987      1626, 2741, 2724, 1053, 1628, 1505, 1505, 1505, 2727, 1506,
1988      1069, 2722, 1507, 2718, 1509, 1509, 1509,  997, 1510,  997,
1989      1629, 1511, 1516, 1516, 1516, 1636, 1517,  997,  997, 1518,
1990
1991      1519, 1519, 1519, 1675, 1675, 1675, 1661, 1676, 1658,  997,
1992      1677, 1075, 1075, 1075, 1682, 1682, 1682, 1520, 1646, 1646,
1993      1646,  997, 1665, 1534, 1534, 1534, 1103, 1103, 1103, 1077,
1994      1683, 1688, 1688, 1688, 2726, 1689,  997,  997, 1690, 2755,
1995      1535, 1536, 1536, 1536, 1105, 1537, 2733,  997, 1538, 1692,
1996      1692, 1692, 1111, 1111, 1111,  997, 1542, 1542, 1542, 1635,
1997      1543, 2728, 1678, 1544,  997,  997, 1693, 1119, 1119, 1119,
1998      1113, 2729, 2730, 1691, 1696, 1696, 1696, 1647, 1125, 1125,
1999      1125, 1683, 1546, 1546, 1546, 1121, 1547, 2735,  997, 1548,
2000       997, 1697, 2731, 1553, 1553, 1553, 1127, 1554,  997, 1694,
2001
2002      1555, 1556, 1556, 1556, 1701, 1701, 1701, 2743, 1702, 2732,
2003       997, 1703, 1558, 1558, 1558, 1704, 1704, 1704, 1557, 1705,
2004      2736, 2751, 1706, 2769, 1708, 1708, 1708, 2734,  997, 1559,
2005       997,  997, 1695, 1710, 1710, 1710, 1565, 1565, 1565,  997,
2006      2744, 1698, 1709, 1713, 1713, 1713, 1634, 1714, 2793, 1632,
2007      1715, 2756,  997, 1566, 1716, 1716, 1716, 1569, 1569, 1569,
2008       997, 1570,  997, 2739, 1571, 1572, 1572, 1572, 1719, 1719,
2009      1719, 1717, 1720,  997, 2740, 1721, 1722, 1722, 1722, 1728,
2010      1728, 1728, 1573, 1163, 1163, 1163, 1582, 1582, 1582, 2753,
2011      1732, 1732, 1732, 1723, 1733, 2747, 1729, 1734, 1735, 1735,
2012
2013      1735, 1165,  997, 1583, 1586, 1586, 1586, 1738, 1738, 1738,
2014      2754, 1739,  997,  997, 1740, 1736, 1742, 1742, 1742,  997,
2015       997, 1587, 1186, 1186, 1186, 1595, 1595, 1595, 1749, 1749,
2016      1749,  997, 1750,  997, 1743, 1751, 1753, 1753, 1753,  997,
2017      1188, 1631, 1596, 1206, 1206, 1206, 2742, 2745, 1730, 1758,
2018      1758, 1758, 2749, 2775, 1754, 1760, 1760, 1760, 2796, 2796,
2019      2796, 1208, 1218, 1218, 1218, 2746, 1759, 1226, 1226, 1226,
2020      2759, 2776, 1761, 1745, 2748, 2796,  997, 1234, 1234, 1234,
2021      1220, 1767, 1767, 1767, 2752, 1228, 1769, 1769, 1769, 1244,
2022      1244, 1244,  997,  997, 1756, 1236, 1630,  997, 1768, 1252,
2023
2024      1252, 1252,  997, 1770, 1613, 1613, 1613, 1246, 1614, 2750,
2025      1461, 1615, 1619, 1765, 1620, 1620, 1620, 1254, 1777, 1777,
2026      1777, 1762, 1778, 2763, 1617, 1779, 2762,  997, 1763, 2760,
2027       997, 1621,  997, 1258, 1258, 1258, 2765, 1265, 1265, 1265,
2028      2770, 1766, 1624, 1624, 1624, 1782, 1782, 1782,  997, 1783,
2029      1775, 1260, 1784, 1771, 1616, 1267, 1785, 1785, 1785, 1625,
2030      1791, 1791, 1791, 1010, 1010, 1010, 1799, 1799, 1799, 1641,
2031      1641, 1641, 2757,  997, 1786, 2758,  997, 1792, 1805, 1805,
2032      1805, 1012, 1646, 1646, 1646, 1806, 1806, 1806, 1649, 1649,
2033      1649, 1780, 1781, 1809, 1809, 1809, 1810, 1810, 1810, 1656,
2034
2035      1656, 1656, 1041, 1041, 1041,  997, 1818, 1818, 1818, 1821,
2036      1821, 1821, 1067, 1067, 1067, 1825, 1825, 1825, 2767,  997,
2037      1043, 2768,  997, 1793, 1819,  997, 1822, 1675, 1675, 1675,
2038      1069, 1676, 1826,  997, 1677, 1075, 1075, 1075, 1838, 1838,
2039      1838, 1682, 1682, 1682, 1843, 1843, 1843, 1845, 1845, 1845,
2040      2764, 2771, 1815, 1077, 2777, 1839, 1688, 1688, 1688,  997,
2041      1689,  997, 2773, 1690, 1846, 1103, 1103, 1103, 2772,  997,
2042      1824, 1692, 1692, 1692, 1612, 1848, 1848, 1848,  997, 1849,
2043      2789, 1837, 1850, 1105, 1111, 1111, 1111,  997, 1693, 1852,
2044      1852, 1852, 1696, 1696, 1696, 2766, 1854, 1854, 1854, 2785,
2045
2046      1855, 2783, 1113, 1856, 1125, 1125, 1125, 1853,  997, 1697,
2047      1701, 1701, 1701, 1610, 1702, 2774, 1609, 1703, 1847, 1704,
2048      1704, 1704, 1127, 1705, 2781,  997, 1706, 1708, 1708, 1708,
2049      1710, 1710, 1710,  997, 1713, 1713, 1713, 1851, 1714,  997,
2050       997, 1715, 1716, 1716, 1716, 1709, 1865, 1865, 1865, 1606,
2051      1866, 1857, 1604, 1867, 1719, 1719, 1719,  997, 1720, 1717,
2052      2778, 1721, 1722, 1722, 1722, 1869, 1869, 1869,  997, 1870,
2053      2782, 2784, 1871, 1872, 1872, 1872, 1728, 1728, 1728, 1723,
2054      1877, 1877, 1877, 2786, 1878, 2779, 1603, 1879,  997, 1602,
2055      1873,  997,  997, 1729, 1163, 1163, 1163, 1732, 1732, 1732,
2056
2057      2787, 1733, 2780, 1599, 1734, 1735, 1735, 1735,  997, 1882,
2058      1882, 1882, 1165, 1883,  997, 1594, 1884, 1738, 1738, 1738,
2059      2788, 1739, 1736, 2791, 1740, 1742, 1742, 1742, 1186, 1186,
2060      1186, 1890, 1890, 1890, 1749, 1749, 1749, 1593, 1750, 1592,
2061      2792, 1751, 1590, 1743, 1588, 1880, 1188, 1585, 1891, 1753,
2062      1753, 1753, 1898, 1898, 1898, 1758, 1758, 1758, 1901, 1901,
2063      1901, 2790, 1902, 1584, 1581, 1903, 1579, 1754, 1578, 1577,
2064      1899, 1576, 1759, 1760, 1760, 1760, 1575, 1892, 1904, 1904,
2065      1904, 1574, 1905, 1568, 1567, 1906, 1218, 1218, 1218, 1564,
2066      1761, 1888, 1226, 1226, 1226, 1234, 1234, 1234, 1767, 1767,
2067
2068      1767, 1912, 1912, 1912, 1220, 1913, 1563, 1562, 1914, 1552,
2069      1228, 2793, 1551, 1236, 1549, 1768, 1769, 1769, 1769, 1915,
2070      1915, 1915,  997, 1916, 1540, 1533, 1917, 1244, 1244, 1244,
2071      1252, 1252, 1252, 1770, 1532, 1777, 1777, 1777, 1531, 1778,
2072      1530, 1910, 1779, 1529, 1528, 1246, 1527, 1524, 1254, 1523,
2073      1522, 1908, 1258, 1258, 1258, 1265, 1265, 1265, 1515, 1911,
2074      1782, 1782, 1782, 1512, 1783, 1508, 1504, 1784, 1502, 1501,
2075      1260, 1493, 1492, 1267, 1785, 1785, 1785, 1490, 1791, 1791,
2076      1791, 1930, 1930, 1930, 1489, 1931, 1488, 1487, 1932, 1486,
2077      1485, 1918, 1786, 1484, 1922, 1792, 1010, 1010, 1010, 1934,
2078
2079      1934, 1934, 1483, 1924, 1938, 1938, 1938, 1481, 1925, 1799,
2080      1799, 1799, 1480, 1478, 1012, 1939, 1939, 1939, 1943, 1943,
2081      1943, 1805, 1805, 1805, 1806, 1806, 1806, 1944, 1944, 1944,
2082      1809, 1809, 1809, 1810, 1810, 1810, 1947, 1947, 1947, 1948,
2083      1948, 1948, 1949, 1949, 1949, 1041, 1041, 1041, 1818, 1818,
2084      1818, 1821, 1821, 1821, 1955, 1955, 1955, 1477, 1956, 1933,
2085      1474, 1957, 1472, 1043, 1471, 1470, 1819, 1469, 1822, 1959,
2086      1959, 1959, 1468, 1945, 1825, 1825, 1825, 1961, 1961, 1961,
2087      1466, 1962, 1465, 1464, 1963, 1463, 1456, 1960, 1075, 1075,
2088      1075, 1826, 1838, 1838, 1838, 1453, 1951, 1975, 1975, 1975,
2089
2090      1452, 1976, 1450, 1449, 1977, 1446, 1077, 1441, 1440, 1839,
2091      1978, 1978, 1978, 1843, 1843, 1843, 1981, 1981, 1981, 1845,
2092      1845, 1845, 1983, 1983, 1983, 1428, 1984, 1426, 1422, 1985,
2093      1103, 1103, 1103, 1111, 1111, 1111, 1846, 1974, 1848, 1848,
2094      1848, 1421, 1849, 1417, 1415, 1850, 1407, 1406, 1105, 1405,
2095      1404, 1113, 1852, 1852, 1852, 1402, 1854, 1854, 1854, 1400,
2096      1855, 1399, 1982, 1856, 1125, 1125, 1125, 1865, 1865, 1865,
2097      1853, 1866, 1395, 1394, 1867, 1393, 1869, 1869, 1869, 1392,
2098      1870, 1986, 1127, 1871, 1987, 1872, 1872, 1872, 1999, 1999,
2099      1999, 1390, 2000, 1389, 1388, 2001, 1877, 1877, 1877, 1387,
2100
2101      1878, 1386, 1873, 1879, 1163, 1163, 1163, 1882, 1882, 1882,
2102      1385, 1883, 1384, 1378, 1884, 1377, 1376, 1988, 2010, 2010,
2103      2010, 1375, 1165, 1890, 1890, 1890, 2013, 2013, 2013, 1374,
2104      2014, 1373, 1371, 2015, 1370, 1367, 2011, 1898, 1898, 1898,
2105      1891, 1901, 1901, 1901, 1366, 1902, 1357, 1353, 1903, 1904,
2106      1904, 1904, 1352, 1905, 1351, 1899, 1906, 1218, 1218, 1218,
2107      1226, 1226, 1226, 1234, 1234, 1234, 1350, 2005, 1349, 1912,
2108      1912, 1912, 1348, 1913, 1347, 1220, 1914, 1346, 1228, 1345,
2109      1344, 1236, 1915, 1915, 1915, 1343, 1916, 1342, 1339, 1917,
2110      1337, 1244, 1244, 1244, 1334, 2031, 2031, 2031, 1331, 2029,
2111
2112      2796, 2796, 2796, 2796, 2796, 2796, 1328, 1319, 2026, 1246,
2113      1317, 2030, 2032, 1252, 1252, 1252, 1310, 2796, 1308, 1307,
2114      2796, 1258, 1258, 1258, 1306, 2028, 2038, 2038, 2038, 1305,
2115      1304, 1254, 2040, 2040, 2040, 2043, 2043, 2043, 1303, 1260,
2116      1302, 1930, 1930, 1930, 2039, 1931, 1301, 1300, 1932, 1297,
2117       997, 2033, 1010, 1010, 1010, 1934, 1934, 1934, 2045, 2045,
2118      2045, 2034, 1938, 1938, 1938, 1939, 1939, 1939, 1296, 1295,
2119      1012, 2048, 2048, 2048, 2049, 2049, 2049, 2035, 1294, 1293,
2120      2037, 2050, 2050, 2050, 1943, 1943, 1943, 1944, 1944, 1944,
2121      1947, 1947, 1947, 1948, 1948, 1948, 1949, 1949, 1949, 2054,
2122
2123      2054, 2054, 2057, 2057, 2057, 1955, 1955, 1955, 1292, 1956,
2124      2044, 1291, 1957, 2796, 2796, 2796, 1290, 2055, 1289, 2058,
2125      1959, 1959, 1959, 1288, 1961, 1961, 1961, 1287, 1962, 1286,
2126      2796, 1963, 1075, 1075, 1075, 1975, 1975, 1975, 1960, 1976,
2127      1284, 1283, 1977, 1978, 1978, 1978, 1981, 1981, 1981, 1282,
2128      1077, 1983, 1983, 1983, 1281, 1984, 1280, 1279, 1985, 1103,
2129      1103, 1103, 2075, 2075, 2075, 1125, 1125, 1125, 2085, 2085,
2130      2085, 1278, 1999, 1999, 1999,  997, 2000, 1105, 2059, 2001,
2131      2076, 1272, 1257, 1127, 2088, 2088, 2088, 1256, 2092, 2092,
2132      2092, 1251, 2070, 2010, 2010, 2010, 2098, 2098, 2098, 1250,
2133
2134      1249, 2089, 2109, 2109, 2109, 2074, 2093, 1248, 2013, 2013,
2135      2013, 2011, 2014, 2099, 1222, 2015, 2077, 2111, 2111, 2111,
2136      2113, 2113, 2113, 1226, 1226, 1226, 1234, 1234, 1234, 1244,
2137      1244, 1244, 2031, 2031, 2031, 2112, 1210, 2114, 2121, 2121,
2138      2121, 1228, 2100, 1196, 1236, 1195, 1194, 1246, 1190, 2032,
2139      2118, 2118, 2118, 1182, 2119, 2122, 1177, 2120, 2796, 2796,
2140      2796, 2124, 2124, 2124, 1176, 1170, 2117, 2126, 2126, 2126,
2141      1258, 1258, 1258, 1167, 1162, 2796, 2038, 2038, 2038, 2125,
2142      1161, 1160, 2115, 2040, 2040, 2040, 2116, 1159, 1260, 2043,
2143      2043, 2043, 1158, 1157, 2039, 2131, 2131, 2131, 2045, 2045,
2144
2145      2045,  997, 2048, 2048, 2048, 2049, 2049, 2049, 1156, 2123,
2146      2050, 2050, 2050, 2132, 2054, 2054, 2054, 2057, 2057, 2057,
2147      2139, 2139, 2139, 1150, 2140, 1143, 1142, 2141, 2796, 2796,
2148      2796, 1141, 2055, 1136, 2058, 2127, 1075, 1075, 1075, 1103,
2149      1103, 1103, 1135, 1131, 2128, 2796, 2075, 2075, 2075, 2158,
2150      2158, 2158, 1130, 1129, 1077, 1124, 1123, 1105, 2164, 2164,
2151      2164, 2085, 2085, 2085, 2076, 1118, 1110, 2159, 2088, 2088,
2152      2088, 1102, 2168, 2168, 2168, 2165, 2169, 1101, 1097, 2170,
2153      2172, 2172, 2172, 2142, 1096, 2089, 1095, 2092, 2092, 2092,
2154      2176, 2176, 2176, 1094, 1093, 2153, 1092, 2173, 2098, 2098,
2155
2156      2098, 2187, 2187, 2187, 2157, 2093, 1091, 2177, 1090, 2179,
2157      2179, 2179, 1089, 2180, 1088, 2099, 2181, 1082, 2188, 2109,
2158      2109, 2109, 2111, 2111, 2111, 2113, 2113, 2113, 2191, 2191,
2159      2191, 1074, 2192, 1073, 1072, 2193, 2194, 2194, 2194, 1071,
2160      2112, 1066, 2114, 1234, 1234, 1234, 1065, 1244, 1244, 1244,
2161      1064, 2118, 2118, 2118, 2195, 2119, 1061, 1055, 2120, 1050,
2162      1049, 1236, 2121, 2121, 2121, 1246, 2198, 2198, 2198, 1045,
2163      2199, 1040, 1039, 2200, 2201, 2201, 2201, 1038, 1037, 2122,
2164      2124, 2124, 2124, 2126, 2126, 2126, 2203, 2203, 2203, 1036,
2165      1035, 2202, 1033, 2131, 2131, 2131, 1032, 1031, 2125, 2213,
2166
2167      2213, 2213, 1030, 1029, 2204, 2796, 2796, 2796, 1028, 2196,
2168      2197, 2132, 1027, 2139, 2139, 2139, 2214, 2140, 1026, 1025,
2169      2141, 1024, 2796, 1075, 1075, 1075, 1103, 1103, 1103, 2158,
2170      2158, 2158, 2238, 2238, 2238, 2164, 2164, 2164, 2240, 2240,
2171      2240, 1077, 2241, 1023, 1105, 2242, 1022, 2159, 1021, 2239,
2172      1020, 1019, 2165, 2168, 2168, 2168, 1018, 2169, 1017, 1016,
2173      2170, 2172, 2172, 2172, 1009, 2221, 2246, 2246, 2246, 1008,
2174      2247, 1007, 1006, 2248, 2250, 2250, 2250, 1005, 2173, 2282,
2175      2282, 2282, 2232, 2176, 2176, 2176, 2252, 2252, 2252, 1004,
2176      2253, 2251, 1003, 2254, 1000,  998, 2236, 2255, 2255, 2255,
2177
2178      2177, 2179, 2179, 2179,  997, 2180,  995,  993, 2181, 2187,
2179      2187, 2187,  990,  986, 2256, 2260, 2260, 2260,  984, 2261,
2180       983,  982, 2262, 2263, 2263, 2263, 2188, 2265, 2265, 2265,
2181      2191, 2191, 2191,  980, 2192,  979,  978, 2193,  977,  976,
2182      2264, 2194, 2194, 2194, 2266, 1234, 1234, 1234, 1244, 1244,
2183      1244, 2198, 2198, 2198,  974, 2199,  973,  972, 2200, 2195,
2184      2201, 2201, 2201, 1236,  971,  969, 1246, 2275, 2275, 2275,
2185       968, 2276,  967,  963, 2277,  962,  960, 2202, 2203, 2203,
2186      2203, 2213, 2213, 2213, 2286, 2286, 2286,  959, 2287,  958,
2187       957, 2288, 2796, 2796, 2796,  956, 2204,  955, 2214, 1075,
2188
2189      1075, 1075, 2308, 2308, 2308, 1103, 1103, 1103, 2274, 2796,
2190      2273, 2311, 2311, 2311, 2238, 2238, 2238, 1077, 2314, 2314,
2191      2314,  953, 2315, 1105,  952, 2316,  951,  950, 2312,  948,
2192       947, 2239, 2240, 2240, 2240,  946, 2241,  943,  942, 2242,
2193      2246, 2246, 2246,  938, 2247,  937,  935, 2248,  934,  933,
2194      2306, 2297, 2250, 2250, 2250,  930,  929, 2313, 2321, 2321,
2195      2321,  928, 2322,  927,  925, 2323, 2310,  924,  923, 2251,
2196      2252, 2252, 2252,  922, 2253,  921,  920, 2254, 2255, 2255,
2197      2255, 2324, 2324, 2324,  919, 2325,  918,  915, 2326, 2328,
2198      2328, 2328, 2260, 2260, 2260, 2256, 2261,  912,  911, 2262,
2199
2200      2263, 2263, 2263, 2331, 2331, 2331, 2329, 2332,  908,  906,
2201      2333, 2265, 2265, 2265, 2334, 2334, 2334, 2264, 2335,  905,
2202       900, 2336, 1234, 1234, 1234, 1244, 1244, 1244, 2266, 2275,
2203      2275, 2275,  899, 2276,  897,  896, 2277, 2347, 2347, 2347,
2204      1236,  895,  893, 1246, 2282, 2282, 2282, 2350, 2350, 2350,
2205      2361, 2361, 2361,  890, 2348, 1461, 2286, 2286, 2286,  888,
2206      2287,  885,  883, 2288, 1075, 1075, 1075, 2362, 2308, 2308,
2207      2308,  882,  879, 2343, 2373, 2373, 2373, 1103, 1103, 1103,
2208       876,  875, 1077, 2311, 2311, 2311, 2375, 2375, 2375,  874,
2209      2376, 2344,  873, 2377,  871, 1105,  870, 2314, 2314, 2314,
2210
2211      2312, 2315,  869,  868, 2316, 2321, 2321, 2321,  867, 2322,
2212       865,  862, 2323, 2371, 2324, 2324, 2324,  860, 2325,  859,
2213       858, 2326, 2328, 2328, 2328, 2384, 2384, 2384, 2374, 2385,
2214       856,  854, 2386, 2331, 2331, 2331,  853, 2332,  852, 2329,
2215      2333, 2334, 2334, 2334,  851, 2335,  850,  849, 2336, 2402,
2216      2402, 2402, 1244, 1244, 1244, 2406, 2406, 2406, 2347, 2347,
2217      2347, 2408, 2408, 2408,  846, 2409,  845, 2403, 2410,  844,
2218      1246,  841, 2407, 1461,  838, 2348, 1461,  837,  835, 1461,
2219      2411, 2411, 2411, 2350, 2350, 2350, 2412, 2412, 2412, 2413,
2220      2413, 2413, 2361, 2361, 2361, 2422, 2422, 2422,  834, 2423,
2221
2222       831,  829, 2424, 1075, 1075, 1075, 2432, 2432, 2432, 2362,
2223      2373, 2373, 2373, 2433, 2433, 2433,  826, 2404, 2375, 2375,
2224      2375, 1077, 2376,  825,  817, 2377, 2438, 2438, 2438,  816,
2225       815, 2434, 2441, 2441, 2441, 2384, 2384, 2384,  812, 2385,
2226       811,  810, 2386, 2439, 2443, 2443, 2443,  809,  807, 2442,
2227       806, 2402, 2402, 2402, 1244, 1244, 1244, 2406, 2406, 2406,
2228       805, 2444,  804, 2459, 2459, 2459,  803, 2460, 2431, 2403,
2229      2461,  802, 1246,  797, 2407, 1461, 2408, 2408, 2408,  794,
2230      2409, 1461,  796, 2410, 2411, 2411, 2411, 2412, 2412, 2412,
2231      2413, 2413, 2413,  791, 1461, 2422, 2422, 2422,  790, 2423,
2232
2233       788,  786, 2424,  784,  782, 2457, 1459, 1459, 1459, 1459,
2234      1459, 1459, 1459, 1459, 1459,  780, 2796, 1459, 2478, 2478,
2235      2478,  777, 1459, 1459, 1459, 1461, 1459, 2432, 2432, 2432,
2236      2433, 2433, 2433, 2438, 2438, 2438, 2479, 2483, 2483, 2483,
2237       776, 2484,  775,  774, 2485, 2441, 2441, 2441, 2434,  772,
2238      2439, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
2239      1459, 1459, 2442,  771, 1459, 2443, 2443, 2443,  770, 1459,
2240      1459, 1459, 1461, 1459, 2487, 2487, 2487,  769, 2488,  768,
2241       766, 2489, 2444, 2490, 2490, 2490,  765, 2491,  764,  763,
2242      2492, 2505, 2505, 2505, 2478, 2478, 2478,  761, 1459, 1459,
2243
2244      2459, 2459, 2459,  759, 2460,  758,  756, 2461,  755, 2506,
2245       752,  751, 2479, 2505, 2505, 2505,  749,  610, 1461, 1459,
2246      1459, 1459, 1459, 1459, 2513, 1459, 1459, 1459, 2796,  744,
2247      1459, 2506,  742,  738,  737, 1459, 1459, 1459, 1461, 1459,
2248      2483, 2483, 2483,  736, 2484,  734,  732, 2485, 2487, 2487,
2249      2487,  731, 2488,  729,  727, 2489, 2490, 2490, 2490,  726,
2250      2491,  725,  724, 2492, 1459, 1459, 1459, 1459, 1459, 1459,
2251      1459, 1459, 1459, 1459, 2513,  723,  722, 1459, 2542, 2542,
2252      2542,  721, 1459, 1459, 1459, 1461, 1459, 2547, 2547, 2547,
2253      2549, 2549, 2549, 2551, 2551, 2551, 1461, 1462, 2559, 2559,
2254
2255      2559, 2567, 2567, 2567, 2548,  719,  710, 2550,  709,  708,
2256      2552, 1459, 1459,  705,  703, 2560, 2542, 2542, 2542,  997,
2257      2547, 2547, 2547, 2573, 2573, 2573, 2796, 2574,  700,  699,
2258      2575, 2549, 2549, 2549, 1461,  698,  697, 2548, 2576, 2576,
2259      2576,  696, 2577,  694,  692, 2578,  691,  689, 2550, 2551,
2260      2551, 2551, 2579, 2579, 2579,  687, 2580,  686,  684, 2581,
2261      2559, 2559, 2559, 2567, 2567, 2567, 2552, 1628, 2588, 2588,
2262      2588,  682, 2589,  681,  679, 2590,  677, 2560, 2573, 2573,
2263      2573,  997, 2574,  676,  675, 2575, 2576, 2576, 2576,  674,
2264      2577,  672, 2796, 2578, 2579, 2579, 2579, 2796, 2580,  659,
2265
2266      2597, 2581, 2588, 2588, 2588,  658, 2589,  656,  654, 2590,
2267      2692, 2692, 2692, 2692, 2692, 2692,  653, 2701,  652,  650,
2268      2702, 2794, 2794, 2794, 2794, 2794, 2794,  645,  997,  641,
2269       640,  997,  638,  637,  634,  633,  632,  630,  629, 2795,
2270       628,  626, 2795,  238,  238,  238,  238,  238,  238,  238,
2271       238,  238,  239,  239,  239,  239,  239,  239,  239,  239,
2272       239,  244,  244,  244,  244,  244,  244,  244,  244,  244,
2273       247,  247,  247,  247,  247,  247,  247,  247,  247,  250,
2274       250,  250,  250,  250,  250,  250,  250,  250,  253,  253,
2275       253,  253,  253,  253,  253,  253,  253,  260,  260,  260,
2276
2277       260,  260,  260,  260,  260,  260,  268,  268,  268,  268,
2278       268,  268,  268,  268,  268,  272,  272,  272,  272,  272,
2279       272,  272,  272,  272,  284,  284,  284,  284,  284,  284,
2280       284,  284,  284,  288,  288,  288,  288,  288,  288,  288,
2281       288,  288,  295,  295,  295,  295,  295,  295,  295,  295,
2282       295,  306,  306,  306,  306,  306,  306,  306,  306,  306,
2283       314,  314,  314,  314,  314,  314,  314,  314,  314,  322,
2284       322,  322,  322,  322,  322,  322,  322,  322,  328,  328,
2285       328,  328,  328,  328,  328,  328,  328,  334,  334,  334,
2286       334,  334,  334,  334,  334,  334,  339,  339,  339,  339,
2287
2288       339,  339,  339,  339,  339,  356,  356,  356,  356,  356,
2289       356,  356,  356,  356,  363,  363,  363,  363,  363,  363,
2290       363,  363,  363,  370,  370,  370,  370,  370,  370,  370,
2291       370,  370,  375,  375,  375,  375,  375,  375,  375,  375,
2292       375,  382,  382,  382,  382,  382,  382,  382,  382,  382,
2293       387,  387,  387,  387,  387,  387,  387,  387,  387,  393,
2294       393,  393,  393,  393,  393,  393,  393,  393,  398,  398,
2295       398,  398,  398,  398,  398,  398,  398,  404,  404,  404,
2296       404,  404,  404,  404,  404,  404,  412,  412,  412,  412,
2297       412,  412,  412,  412,  412,  431,  431,  431,  431,  431,
2298
2299       431,  431,  431,  431,  437,  437,  437,  437,  437,  437,
2300       437,  437,  437,  447,  447,  447,  447,  447,  447,  447,
2301       447,  447,  453,  453,  453,  453,  453,  453,  453,  453,
2302       453,  458,  458,  458,  458,  458,  458,  458,  458,  458,
2303       464,  464,  464,  464,  464,  464,  464,  464,  464,  471,
2304       471,  471,  471,  471,  471,  471,  471,  471,  478,  478,
2305       478,  478,  478,  478,  478,  478,  478,  483,  483,  483,
2306       483,  483,  483,  483,  483,  483,  491,  491,  491,  491,
2307       491,  491,  491,  491,  491,  497,  497,  497,  497,  497,
2308       497,  497,  497,  497,  504,  504,  504,  504,  504,  504,
2309
2310       504,  504,  504,  509,  509,  509,  509,  509,  509,  509,
2311       509,  509,  515,  515,  515,  515,  515,  515,  515,  515,
2312       515,  520,  520,  520,  520,  520,  520,  520,  520,  520,
2313       527,  527,  527,  527,  527,  527,  527,  527,  527,  533,
2314       533,  533,  533,  533,  533,  533,  533,  533,  540,  540,
2315       540,  540,  540,  540,  540,  540,  540,  547,  547,  547,
2316       547,  547,  547,  547,  547,  547,  555,  555,  555,  555,
2317       555,  555,  555,  555,  555,  559,  559,  559,  559,  559,
2318       559,  559,  559,  559,  565,  565,  565,  565,  565,  565,
2319       565,  565,  565,  569,  569,  569,  569,  569,  569,  569,
2320
2321       569,  569,  576,  576,  576,  576,  576,  576,  576,  576,
2322       576,  581,  581,  581,  581,  581,  581,  581,  581,  581,
2323       601,  601,  601,  621, 2796,  602,  601,  627,  627,  627,
2324       600,  598,  592,  627,  631,  631,  631,  591,  592,  591,
2325       631,  639,  639,  639,  590,  589, 2796,  639,  651,  651,
2326       651, 2796, 2796, 2796,  651,  657,  657,  657, 2796, 2796,
2327      2796,  657,  673,  673,  673, 2796, 2796, 2796,  673,  680,
2328       680,  680, 2796, 2796, 2796,  680,  685,  685,  685, 2796,
2329      2796, 2796,  685,  690,  690,  690, 2796, 2796, 2796,  690,
2330       695,  695,  695, 2796, 2796, 2796,  695,  704,  704,  704,
2331
2332      2796, 2796, 2796,  704,  720,  720,  720, 2796, 2796, 2796,
2333       720,  730,  730,  730, 2796, 2796, 2796,  730,  735,  735,
2334       735, 2796, 2796, 2796,  735,  743,  743,  743, 2796, 2796,
2335      2796,  743,  750,  750,  750, 2796, 2796, 2796,  750,  757,
2336       757,  757, 2796, 2796, 2796,  757,  762,  762,  762, 2796,
2337      2796, 2796,  762,  767,  767,  767, 2796, 2796, 2796,  767,
2338       773,  773,  773, 2796, 2796, 2796,  773,  781,  781,  781,
2339      2796, 2796, 2796,  781,  785,  785,  785, 2796, 2796, 2796,
2340       785,  789,  789,  789, 2796, 2796, 2796,  789,  793,  793,
2341       793,  793,  793,  793,  793, 2796,  793,  601,  601,  601,
2342
2343      2796, 2796, 2796,  601,  808, 2796, 2796, 2796,  808,  627,
2344       627,  627, 2796, 2796, 2796,  627,  836, 2796, 2796, 2796,
2345       836,  631,  631,  631, 2796, 2796, 2796,  631,  843, 2796,
2346      2796, 2796,  843,  639,  639,  639, 2796, 2796, 2796,  639,
2347       855, 2796, 2796, 2796,  855,  651,  651,  651, 2796, 2796,
2348      2796,  651,  861, 2796, 2796, 2796,  861,  657,  657,  657,
2349      2796, 2796, 2796,  657,  866, 2796, 2796, 2796,  866,  673,
2350       673,  673, 2796, 2796, 2796,  673,  884, 2796, 2796, 2796,
2351       884,  680,  680,  680, 2796, 2796, 2796,  680,  889, 2796,
2352      2796, 2796,  889,  685,  685,  685, 2796, 2796, 2796,  685,
2353
2354       894, 2796, 2796, 2796,  894,  690,  690,  690, 2796, 2796,
2355      2796,  690,  898, 2796, 2796, 2796,  898,  695,  695,  695,
2356      2796, 2796, 2796,  695,  907, 2796, 2796, 2796,  907,  704,
2357       704,  704, 2796, 2796, 2796,  704,  926, 2796, 2796, 2796,
2358       926,  720,  720,  720, 2796, 2796, 2796,  720,  936, 2796,
2359      2796, 2796,  936,  730,  730,  730, 2796, 2796, 2796,  730,
2360       941, 2796, 2796, 2796,  941,  735,  735,  735, 2796, 2796,
2361      2796,  735,  949, 2796, 2796, 2796,  949,  743,  743,  743,
2362      2796, 2796, 2796,  743,  954, 2796, 2796, 2796,  954,  750,
2363       750,  750, 2796, 2796, 2796,  750,  961, 2796, 2796, 2796,
2364
2365       961,  757,  757,  757, 2796, 2796, 2796,  757,  966, 2796,
2366      2796, 2796,  966,  762,  762,  762, 2796, 2796, 2796,  762,
2367       970, 2796, 2796, 2796,  970,  767,  767,  767, 2796, 2796,
2368      2796,  767,  975, 2796, 2796, 2796,  975,  773,  773,  773,
2369      2796, 2796, 2796,  773,  981, 2796, 2796, 2796,  981,  781,
2370       781,  781, 2796, 2796, 2796,  781,  985, 2796, 2796, 2796,
2371       985,  785,  785,  785, 2796, 2796, 2796,  785,  989, 2796,
2372      2796, 2796,  989,  789,  789,  789, 2796, 2796, 2796,  789,
2373       994, 2796, 2796, 2796,  994,  996,  996,  996,  996,  996,
2374       996,  996,  996,  996, 1002, 2796, 2796, 2796, 2796, 1002,
2375
2376       601,  601,  601, 2796, 2796, 2796,  601, 1011, 1011, 1011,
2377      1011, 2796, 2796, 1011, 1011,  627,  627,  627, 2796, 2796,
2378      2796,  627, 1042, 1042, 1042, 1042, 2796, 2796, 1042, 1042,
2379       631,  631,  631, 2796, 2796, 2796,  631, 1052, 1052, 1052,
2380      1052, 2796, 2796, 1052, 1052,  639,  639,  639, 2796, 2796,
2381      2796,  639, 1068, 1068, 1068, 1068, 2796, 2796, 1068, 1068,
2382       651,  651,  651, 2796, 2796, 2796,  651, 1076, 1076, 1076,
2383      1076, 2796, 2796, 1076, 1076,  657,  657,  657, 2796, 2796,
2384      2796,  657, 1084, 1084, 1084, 1084, 2796, 2796, 1084, 1084,
2385       673,  673,  673, 2796, 2796, 2796,  673, 1104, 1104, 1104,
2386
2387      1104, 2796, 2796, 1104, 1104,  680,  680,  680, 2796, 2796,
2388      2796,  680, 1112, 1112, 1112, 1112, 2796, 2796, 1112, 1112,
2389       685,  685,  685, 2796, 2796, 2796,  685, 1120, 1120, 1120,
2390      1120, 2796, 2796, 1120, 1120,  690,  690,  690, 2796, 2796,
2391      2796,  690, 1126, 1126, 1126, 1126, 2796, 2796, 1126, 1126,
2392       695,  695,  695, 2796, 2796, 2796,  695, 1138, 1138, 1138,
2393      1138, 2796, 2796, 1138, 1138,  704,  704,  704, 2796, 2796,
2394      2796,  704, 1164, 1164, 1164, 1164, 2796, 2796, 1164, 1164,
2395       720,  720,  720, 2796, 2796, 2796,  720, 1179, 1179, 1179,
2396      1179, 2796, 2796, 1179, 1179,  730,  730,  730, 2796, 2796,
2397
2398      2796,  730, 1187, 1187, 1187, 1187, 2796, 2796, 1187, 1187,
2399       735,  735,  735, 2796, 2796, 2796,  735, 1198, 1198, 1198,
2400      1198, 2796, 2796, 1198, 1198,  743,  743,  743,  743, 2796,
2401       743, 2796,  743, 1207, 1207, 1207, 1207, 2796, 2796, 1207,
2402      1207,  750,  750,  750,  750, 2796,  750, 2796,  750, 1219,
2403      1219, 1219, 1219, 2796, 2796, 1219, 1219,  757,  757,  757,
2404      2796, 2796, 2796,  757, 1227, 1227, 1227, 1227, 2796, 2796,
2405      1227, 1227,  762,  762,  762,  762, 2796,  762, 2796,  762,
2406      1235, 1235, 1235, 1235, 2796, 2796, 1235, 1235,  767,  767,
2407       767,  767, 2796,  767, 2796,  767, 1245, 1245, 1245, 1245,
2408
2409      2796, 2796, 1245, 1245,  773,  773,  773, 2796, 2796, 2796,
2410       773, 1253, 1253, 1253, 1253, 2796, 2796, 1253, 1253,  781,
2411       781,  781, 2796, 2796, 2796,  781, 1259, 1259, 1259, 1259,
2412      2796, 2796, 1259, 1259, 1266, 1266, 1266, 1266, 2796, 2796,
2413      1266, 1266,  789,  789,  789, 2796, 2796, 2796,  789, 1274,
2414      1274, 1274, 1274, 2796, 2796, 1274, 1274,  996,  996,  996,
2415       996,  996,  996,  996,  996,  996, 1002, 2796, 1002, 2796,
2416      2796, 1002,  601,  601,  601, 2796, 2796, 2796,  601, 1011,
2417      1011, 1011, 1011, 2796, 2796, 1011, 1011,  627,  627,  627,
2418       627, 2796,  627, 2796,  627, 1042, 1042, 1042, 1042, 2796,
2419
2420      2796, 1042, 1042,  631,  631,  631,  631, 2796,  631, 2796,
2421       631, 1052, 1052, 1052, 1052, 2796, 2796, 1052, 1052,  639,
2422       639,  639, 2796, 2796, 2796,  639, 1068, 1068, 1068, 1068,
2423      2796, 2796, 1068, 1068,  651,  651,  651, 2796, 2796, 2796,
2424       651, 1076, 1076, 1076, 1076, 2796, 2796, 1076, 1076,  657,
2425       657,  657, 2796, 2796, 2796,  657, 1084, 1084, 1084, 1084,
2426      2796, 2796, 1084, 1084,  673,  673,  673, 2796, 2796, 2796,
2427       673, 1104, 1104, 1104, 1104, 2796, 2796, 1104, 1104,  680,
2428       680,  680, 2796, 2796, 2796,  680, 1112, 1112, 1112, 1112,
2429      2796, 2796, 1112, 1112,  685,  685,  685,  685, 2796,  685,
2430
2431      2796,  685, 1120, 1120, 1120, 1120, 2796, 2796, 1120, 1120,
2432       690,  690,  690,  690, 2796,  690, 2796,  690, 1126, 1126,
2433      1126, 1126, 2796, 2796, 1126, 1126,  695,  695,  695, 2796,
2434      2796, 2796,  695, 1138, 1138, 1138, 1138, 2796, 2796, 1138,
2435      1138,  704,  704,  704, 2796, 2796, 2796,  704, 1164, 1164,
2436      1164, 1164, 2796, 2796, 1164, 1164,  720,  720,  720, 2796,
2437      2796, 2796,  720, 1179, 1179, 1179, 1179, 2796, 2796, 1179,
2438      1179,  730,  730,  730, 2796, 2796, 2796,  730, 1187, 1187,
2439      1187, 1187, 2796, 2796, 1187, 1187,  735,  735,  735, 2796,
2440      2796, 2796,  735, 1198, 1198, 1198, 1198, 2796, 2796, 1198,
2441
2442      1198,  743,  743,  743, 2796, 2796, 2796,  743, 1207, 1207,
2443      1207, 1207, 2796, 2796, 1207, 1207,  750,  750,  750, 2796,
2444      2796, 2796,  750, 1219, 1219, 1219, 1219, 2796, 2796, 1219,
2445      1219,  757,  757,  757, 2796, 2796, 2796,  757, 1227, 1227,
2446      1227, 1227, 2796, 2796, 1227, 1227, 1235, 1235, 1235, 1235,
2447      2796, 2796, 1235, 1235,  767,  767,  767, 2796, 2796, 2796,
2448       767, 1245, 1245, 1245, 1245, 2796, 2796, 1245, 1245,  773,
2449       773,  773, 2796, 2796, 2796,  773, 1253, 1253, 1253, 1253,
2450      2796, 2796, 1253, 1253,  781,  781,  781, 2796, 2796, 2796,
2451       781, 1259, 1259, 1259, 1259, 2796, 2796, 1259, 1259, 1266,
2452
2453      1266, 1266, 1266, 2796, 2796, 1266, 1266,  789,  789,  789,
2454      2796, 2796, 2796,  789, 1274, 1274, 1274, 1274, 2796, 2796,
2455      1274, 1274,  996,  996,  996,  996,  996,  996,  996,  996,
2456       996, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459,
2457       601,  601,  601, 2796, 2796, 2796,  601, 1011, 1011, 1011,
2458      1011, 2796, 2796, 1011, 1011, 1042, 1042, 1042, 1042, 2796,
2459      2796, 1042, 1042,  631,  631,  631, 2796, 2796, 2796,  631,
2460      1052, 1052, 1052, 1052, 2796, 2796, 1052, 1052,  639,  639,
2461       639, 2796, 2796, 2796,  639, 1068, 1068, 1068, 1068, 2796,
2462      2796, 1068, 1068,  651,  651,  651, 2796, 2796, 2796,  651,
2463
2464      1076, 1076, 1076, 1076, 2796, 2796, 1076, 1076,  657,  657,
2465       657, 2796, 2796, 2796,  657,  673,  673,  673, 2796, 2796,
2466      2796,  673, 1104, 1104, 1104, 1104, 2796, 2796, 1104, 1104,
2467       680,  680,  680, 2796, 2796, 2796,  680, 1112, 1112, 1112,
2468      1112, 2796, 2796, 1112, 1112, 1120, 1120, 1120, 1120, 2796,
2469      2796, 1120, 1120,  690,  690,  690, 2796, 2796, 2796,  690,
2470      1126, 1126, 1126, 1126, 2796, 2796, 1126, 1126,  695,  695,
2471       695, 2796, 2796, 2796,  695, 1138, 1138, 1138, 1138, 2796,
2472      2796, 1138, 1138,  704,  704,  704, 2796, 2796, 2796,  704,
2473      1164, 1164, 1164, 1164, 2796, 2796, 1164, 1164,  720,  720,
2474
2475       720, 2796, 2796, 2796,  720, 1179, 1179, 1179, 1179, 2796,
2476      2796, 1179, 1179,  730,  730,  730, 2796, 2796, 2796,  730,
2477      1187, 1187, 1187, 1187, 2796, 2796, 1187, 1187,  735,  735,
2478       735, 2796, 2796, 2796,  735, 1198, 1198, 1198, 1198, 2796,
2479      2796, 1198, 1198,  743,  743,  743, 2796, 2796, 2796,  743,
2480      1207, 1207, 1207, 1207, 2796, 2796, 1207, 1207,  750,  750,
2481       750, 2796, 2796, 2796,  750, 1219, 1219, 1219, 1219, 2796,
2482      2796, 1219, 1219,  757,  757,  757, 2796, 2796, 2796,  757,
2483      1227, 1227, 1227, 1227, 2796, 2796, 1227, 1227, 1235, 1235,
2484      1235, 1235, 2796, 2796, 1235, 1235,  767,  767,  767, 2796,
2485
2486      2796, 2796,  767, 1245, 1245, 1245, 1245, 2796, 2796, 1245,
2487      1245,  773,  773,  773, 2796, 2796, 2796,  773, 1253, 1253,
2488      1253, 1253, 2796, 2796, 1253, 1253,  781,  781,  781,  781,
2489      2796,  781, 2796,  781, 1259, 1259, 1259, 1259, 2796, 2796,
2490      1259, 1259, 1266, 1266, 1266, 1266, 2796, 2796, 1266, 1266,
2491       789,  789,  789,  789, 2796,  789, 2796,  789, 1274, 1274,
2492      1274, 1274, 2796, 2796, 1274, 1274,  996,  996,  996,  996,
2493       996,  996,  996,  996,  996, 1459, 1459, 1459, 1459, 1459,
2494      1459, 1459, 1459, 1459,  601,  601,  601, 2796, 2796, 2796,
2495       601, 1011, 1011, 1011, 1011, 2796, 2796, 1011, 1011, 1042,
2496
2497      1042, 1042, 1042, 2796, 2796, 1042, 1042,  631,  631,  631,
2498      2796, 2796, 2796,  631, 1052, 1052, 1052, 1052, 2796, 2796,
2499      1052, 1052,  639,  639,  639, 2796, 2796, 2796,  639, 1068,
2500      1068, 1068, 1068, 2796, 2796, 1068, 1068,  651,  651,  651,
2501      2796, 2796, 2796,  651, 1076, 1076, 1076, 1076, 2796, 2796,
2502      1076, 1076,  657,  657,  657, 2796, 2796, 2796,  657,  673,
2503       673,  673, 2796, 2796, 2796,  673, 1104, 1104, 1104, 1104,
2504      2796, 2796, 1104, 1104,  680,  680,  680,  680, 2796,  680,
2505      2796,  680, 1112, 1112, 1112, 1112, 2796, 2796, 1112, 1112,
2506      1120, 1120, 1120, 1120, 2796, 2796, 1120, 1120,  690,  690,
2507
2508       690,  690, 2796,  690, 2796,  690, 1126, 1126, 1126, 1126,
2509      2796, 2796, 1126, 1126,  695,  695,  695, 2796, 2796, 2796,
2510       695, 1138, 1138, 1138, 1138, 2796, 2796, 1138, 1138,  704,
2511       704,  704, 2796, 2796, 2796,  704, 1164, 1164, 1164, 1164,
2512      2796, 2796, 1164, 1164,  720,  720,  720, 2796, 2796, 2796,
2513       720, 1179, 1179, 1179, 1179, 2796, 2796, 1179, 1179,  730,
2514       730,  730, 2796, 2796, 2796,  730, 1187, 1187, 1187, 1187,
2515      2796, 2796, 1187, 1187,  735,  735,  735, 2796, 2796, 2796,
2516       735, 1198, 1198, 1198, 1198, 2796, 2796, 1198, 1198,  743,
2517       743,  743, 2796, 2796, 2796,  743, 1207, 1207, 1207, 1207,
2518
2519      2796, 2796, 1207, 1207,  750,  750,  750,  750, 2796,  750,
2520      2796,  750, 1219, 1219, 1219, 1219, 2796, 2796, 1219, 1219,
2521       757,  757,  757, 2796, 2796, 2796,  757, 1227, 1227, 1227,
2522      1227, 2796, 2796, 1227, 1227, 1235, 1235, 1235, 1235, 2796,
2523      2796, 1235, 1235,  767,  767,  767,  767, 2796,  767, 2796,
2524       767, 1245, 1245, 1245, 1245, 2796, 2796, 1245, 1245,  773,
2525       773,  773, 2796, 2796, 2796,  773, 1253, 1253, 1253, 1253,
2526      2796, 2796, 1253, 1253, 1259, 1259, 1259, 1259, 2796, 2796,
2527      1259, 1259, 1266, 1266, 1266, 1266, 2796, 2796, 1266, 1266,
2528      1274, 1274, 1274, 1274, 2796, 2796, 1274, 1274,  996,  996,
2529
2530       996,  996,  996,  996,  996,  996,  996, 1459, 1459, 1459,
2531      1459, 1459, 1459, 1459, 1459, 1459,  601,  601,  601,  601,
2532      2796,  601, 2796,  601, 1011, 1011, 1011, 1011, 2796, 2796,
2533      1011, 1011, 1042, 1042, 1042, 1042, 2796, 2796, 1042, 1042,
2534       631,  631,  631, 2796, 2796, 2796,  631, 1052, 1052, 1052,
2535      1052, 2796, 2796, 1052, 1052,  639,  639,  639, 2796, 2796,
2536      2796,  639, 1068, 1068, 1068, 1068, 2796, 2796, 1068, 1068,
2537       651,  651,  651,  651, 2796,  651, 2796,  651, 1076, 1076,
2538      1076, 1076, 2796, 2796, 1076, 1076,  657,  657,  657,  657,
2539      2796,  657, 2796,  657,  673,  673,  673,  673, 2796,  673,
2540
2541      2796,  673, 1104, 1104, 1104, 1104, 2796, 2796, 1104, 1104,
2542      1112, 1112, 1112, 1112, 2796, 2796, 1112, 1112, 1120, 1120,
2543      1120, 1120, 2796, 2796, 1120, 1120, 1126, 1126, 1126, 1126,
2544      2796, 2796, 1126, 1126,  695,  695,  695, 2796, 2796, 2796,
2545       695,  704,  704,  704, 2796, 2796, 2796,  704, 1164, 1164,
2546      1164, 1164, 2796, 2796, 1164, 1164,  720,  720,  720, 2796,
2547      2796, 2796,  720,  730,  730,  730, 2796, 2796, 2796,  730,
2548      1187, 1187, 1187, 1187, 2796, 2796, 1187, 1187,  735,  735,
2549       735, 2796, 2796, 2796,  735,  743,  743,  743, 2796, 2796,
2550      2796,  743, 1207, 1207, 1207, 1207, 2796, 2796, 1207, 1207,
2551
2552       750,  750,  750, 2796, 2796, 2796,  750, 1219, 1219, 1219,
2553      1219, 2796, 2796, 1219, 1219,  757,  757,  757, 2796, 2796,
2554      2796,  757, 1227, 1227, 1227, 1227, 2796, 2796, 1227, 1227,
2555      1235, 1235, 1235, 1235, 2796, 2796, 1235, 1235, 1245, 1245,
2556      1245, 1245, 2796, 2796, 1245, 1245,  773,  773,  773, 2796,
2557      2796, 2796,  773, 1253, 1253, 1253, 1253, 2796, 2796, 1253,
2558      1253, 1259, 1259, 1259, 1259, 2796, 2796, 1259, 1259, 1266,
2559      1266, 1266, 1266, 2796, 2796, 1266, 1266,  996,  996,  996,
2560       996,  996,  996,  996,  996,  996, 1459, 1459, 1459, 1459,
2561      1459, 1459, 1459, 1459, 1459, 1011, 1011, 1011, 1011, 2796,
2562
2563      2796, 1011, 1011, 1042, 1042, 1042, 1042, 2796, 2796, 1042,
2564      1042,  631,  631,  631, 2796, 2796, 2796,  631,  639,  639,
2565       639, 2796, 2796, 2796,  639, 1068, 1068, 1068, 1068, 2796,
2566      2796, 1068, 1068, 1076, 1076, 1076, 1076, 2796, 2796, 1076,
2567      1076, 1104, 1104, 1104, 1104, 2796, 2796, 1104, 1104, 1112,
2568      1112, 1112, 1112, 2796, 2796, 1112, 1112, 1126, 1126, 1126,
2569      1126, 2796, 2796, 1126, 1126,  695,  695,  695, 2796, 2796,
2570      2796,  695,  704,  704,  704, 2796, 2796, 2796,  704, 1164,
2571      1164, 1164, 1164, 2796, 2796, 1164, 1164,  720,  720,  720,
2572      2796, 2796, 2796,  720,  730,  730,  730, 2796, 2796, 2796,
2573
2574       730, 1187, 1187, 1187, 1187, 2796, 2796, 1187, 1187,  735,
2575       735,  735, 2796, 2796, 2796,  735,  743,  743,  743, 2796,
2576      2796, 2796,  743,  750,  750,  750, 2796, 2796, 2796,  750,
2577      1219, 1219, 1219, 1219, 2796, 2796, 1219, 1219,  757,  757,
2578       757, 2796, 2796, 2796,  757, 1227, 1227, 1227, 1227, 2796,
2579      2796, 1227, 1227, 1235, 1235, 1235, 1235, 2796, 2796, 1235,
2580      1235, 1245, 1245, 1245, 1245, 2796, 2796, 1245, 1245,  773,
2581       773,  773,  773, 2796,  773, 2796,  773, 1253, 1253, 1253,
2582      1253, 2796, 2796, 1253, 1253, 1259, 1259, 1259, 1259, 2796,
2583      2796, 1259, 1259, 1266, 1266, 1266, 1266, 2796, 2796, 1266,
2584
2585      1266,  996,  996,  996,  996,  996,  996,  996,  996,  996,
2586      1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1459, 1011,
2587      1011, 1011, 1011, 2796, 2796, 1011, 1011, 1042, 1042, 1042,
2588      1042, 2796, 2796, 1042, 1042,  631,  631,  631, 2796, 2796,
2589      2796,  631,  639,  639,  639,  639, 2796,  639, 2796,  639,
2590      1076, 1076, 1076, 1076, 2796, 2796, 1076, 1076, 1104, 1104,
2591      1104, 1104, 2796, 2796, 1104, 1104, 1112, 1112, 1112, 1112,
2592      2796, 2796, 1112, 1112, 1126, 1126, 1126, 1126, 2796, 2796,
2593      1126, 1126,  695,  695,  695, 2796, 2796, 2796,  695,  704,
2594       704,  704, 2796, 2796, 2796,  704, 1164, 1164, 1164, 1164,
2595
2596      2796, 2796, 1164, 1164,  720,  720,  720, 2796, 2796, 2796,
2597       720,  730,  730,  730, 2796, 2796, 2796,  730, 2462, 2462,
2598      2462, 2462, 2462, 2462, 2462, 2462, 2462, 2463, 2463, 2463,
2599      2463, 2463, 2463, 2463, 2463, 2463, 2508, 2508, 2508, 2508,
2600      2508, 2508, 2508, 2508, 2508, 2511, 2511, 2511, 2511, 2511,
2601      2511, 2511, 2511, 2511, 2539, 2539, 2539, 2539, 2539, 2539,
2602      2539, 2539, 2539, 2541, 2541, 2541, 2541, 2541, 2541, 2541,
2603      2541, 2541,  237, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2604      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2605      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2606
2607      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2608      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2609      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2610      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
2611      2796, 2796, 2796, 2796, 2796, 2796
2612     } ;
2613
2614 static yyconst flex_int16_t yy_chk[10247] =
2615     {   0,
2616         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2617         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2618         4,   10,  571,    5,    0,    9,    6,  352,   10,    7,
2619         8,    8,    8,  242,   11,   13,   13,   12,   14,   14,
2620        13,   13,  291,   14,   14,  243,    8,   17,   17,  242,
2621        13,   15,   15,   14,   15,  246,   15,   16,   16,  571,
2622        16,  243,   16,   18,   18, 1474,   15,   19,   19,   19,
2623       424,  246,   16,   20,   20,   20,   23,   23,   23,   24,
2624        24,   24,  352,   19,   25,   25,   25,  343,  470,   20,
2625       424,   17,   23,  291,  343,   24,  240,  240,  240,  470,
2626
2627        25,  241,  241,  241,  245,  245,  245,   18,   21,   21,
2628        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2629        21,   21,   21,  316,   21,   21,   21,   21,   21,   26,
2630        26,   26,   27,   27,   27,   28,   28,   28,  275,   29,
2631        29,   29,   30,   30,   30,   26, 1476, 1478,   27,  264,
2632       269,   28,  275,   21,   21,   29, 1480,  285,   30,   31,
2633        31,   31,  266,  266,  266,  264,  269,  273,  273,  273,
2634       282,  282,  282,  285,  316,   31,   21,   22,   22,   22,
2635        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2636        22,   22,  317,   22,   22,   22,   22,   22,   32,   32,
2637
2638        32,   33,   33,   33,   34,   34,   34,  264,   35,   35,
2639        35,   36,   36,   36,   32,  276,  277,   33,  345,  482,
2640        34,  318,   22,   22,   35,  276,  482,   36,   37,   37,
2641        37,   38,   38,   38,   39,   39,   39,   40,   40,   40,
2642        41,   41,   41,  317,   37,   22,  345,   38,  296, 1481,
2643        39, 1483,  307,   40,  276,  277,   41,   42,   42,   42,
2644       276,  289,  289,  289,  296,  278,  276,  277,  307,  277,
2645       276,  365,  318,   42,   43,   43,   43,   43,   43,   43,
2646        43,   43,   43,   43,   43,   43,   43,   43,   43,  635,
2647        43,   43,   43,   43,   43,   45,   45,   45,   46,   46,
2648
2649        46,   47,   47,   47,  278,   48,   48,   48,   49,   49,
2650        49,   45,  313, 1485,   46, 1487,  278,   47,  278,   43,
2651        43,   48,  365, 1277,   49,  635,  313,   43,   44,   44,
2652        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2653        44,   44,   44, 1277,   44,   44,   44,   44,   44,   50,
2654        50,   50,   51,   51,   51,   52,   52,   52,  293,  293,
2655       293,   55,   55,  301,  323,   50,   55, 1488,   51, 1489,
2656       301,   52,  366,   44,   44,  416,   55, 1490,  416,  301,
2657       323,   44,   53,   53,   53,   53,   53,   53,   53,   53,
2658        53,   53,   53,   53,   53,   53,   53,  344,   53,   53,
2659
2660        53,   53,   53,  344, 1492,   55,   59,   59,   59,   60,
2661        60,   60,  344,   61,   61,   61,   56,   56,   62,   62,
2662        62,   56,   59,  366,  377,   60,  330,   53,   53,   61,
2663       429,   56,  929,  330,   62,   53,  378,  929,   53,  304,
2664       304,  304,  330,  429,   53,   54,   54,   54,   54,   54,
2665        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2666        56,   54,   54,   54,   54,   54,   63,   63,   63,   64,
2667        64,   64,   65,   65,   65,  377,   66,   66,   66,   69,
2668        69,   69,   63,  335,  357,   64,  371,  378,   65,  311,
2669        54,   54,   66,  311, 1501,   69, 1502,  311,   54,  335,
2670
2671       357,   54,  371,  428,  256, 1504,  428,   54,   57,   57,
2672        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2673        57,   57,   57,  473,   57,   57,   57,   57,   57,   70,
2674        70,   70,   73,   73,   73,   74,   74,   74,  474,   75,
2675        75,   75,   76,   76,   76,   70,  256,  383,   73,  394,
2676       389,   74,  256,   57,   57,   75,  256,  389,   76, 1508,
2677      1512,  256,   57,  383,   57,  394,  389,   57,  315,  315,
2678       315,  473,   57,   57,   58,   58,   58,   58,   58,   58,
2679        58,   58,   58,   58,   58,   58,   58,   58,   58,  474,
2680        58,   58,   58,   58,   58,   77,   77,   77,   78,   78,
2681
2682        78,   79,   79,   79,  551,   80,   80,   80,   81,   81,
2683        81,   77, 1458,  405,   78,  400,  421,   79,  551,   58,
2684        58,   80,  400, 1515,   81,  320,  320,  320,   58,  405,
2685        58,  400,  421,   58,  329,  329,  329, 1458,   58,   58,
2686        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2687        67,   67,   67,   67,   67, 1522,   67,   67,   67,   67,
2688        67,   82,   82,   82,   83,   83,   83,   84,   84,   84,
2689       430,   85,   85,   85,   86,   86,   86,   82,  613, 1523,
2690        83,  430,  430,   84,  350,   67,   67,   85,  438,  433,
2691        86,  613,   67,  332,  332,  332,  433,   67,  340,  340,
2692
2693       340,  354,  354,  354,  438,  433,   67,   68,   68,   68,
2694        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
2695        68,   68,  350,   68,   68,   68,   68,   68,   87,   87,
2696        87,   88,   88,   88,   89,   89,   89,  350,   90,   90,
2697        90,   91,   91,   91,   87,  585,  594,   88,  496,  594,
2698        89,  347,   68,   68,   90,  496, 1524,   91, 1027,   68,
2699       585,  347,  349,  349,   68,  349,  364,  364,  364,  500,
2700      1027,  349,  349,   68,   71,   71,   71,   71,   71,   71,
2701        71,   71,   71,   71,   71,   71,   71,   71,   71,  347,
2702        71,   71,   71,   71,   71,   92,   92,   92,   93,   93,
2703
2704        93,   94,   94,   94, 1528,   95,   95,   95,   96,   96,
2705        96,   92,  607, 1038,   93,  607,  500,   94,  611,   71,
2706        71,   95,  611, 1529,   96, 1038,  348,  368,  368,  368,
2707        71,  376,  376,  376,  380,  380,  380, 1530,   71,   72,
2708        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2709        72,   72,   72,   72,  348,   72,   72,   72,   72,   72,
2710        97,   97,   97,   98,   98,   98,   99,   99,   99,  348,
2711       100,  100,  100,  101,  101,  101,   97,  454,  465,   98,
2712       616, 1533,   99,  616,   72,   72,  100, 1551,  479,  101,
2713       102,  102,  102,  454,  465,   72,  388,  388,  388,  391,
2714
2715       391,  391,  619,   72,  479,  619,  102,  103,  103,  103,
2716       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2717       103,  103, 1552,  103,  103,  103,  103,  103,  105,  105,
2718       105,  106,  106,  106,  107,  107,  107,  572,  108,  108,
2719       108,  399,  399,  399,  105, 1560,  492,  106,  449,  460,
2720       107, 1563,  103,  103,  108,  449,  460,  103,  402,  402,
2721       402,  414,  492,  103,  449,  460,  103,  413,  413,  413,
2722       485, 1564,  103,  104,  104,  104,  104,  104,  104,  104,
2723       104,  104,  104,  104,  104,  104,  104,  104,  572,  104,
2724       104,  104,  104,  104,  109,  109,  109,  110,  110,  110,
2725
2726       111,  111,  111, 1568,  112,  112,  112,  523, 1575,  414,
2727       109,  505,  414,  110,  516,  511,  111,  485,  104,  104,
2728       112,  485,  511,  104,  418,  418,  418,  505, 1576,  104,
2729       516,  511,  104,  432,  432,  432,  536, 1577,  104,  113,
2730       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2731       113,  113,  113,  113,  523,  113,  113,  113,  113,  113,
2732       115,  115,  115,  116,  116,  116,  117,  117,  117, 1071,
2733       118,  118,  118,  119,  119,  119,  115,  528,  541,  116,
2734      1578, 1071,  117,  536,  113,  113,  118, 1581, 1585,  119,
2735       435,  435,  435,  528,  541,  113,  448,  448,  448,  451,
2736
2737       451,  451,  459,  459,  459,  113,  114,  114,  114,  114,
2738       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2739       114, 1588,  114,  114,  114,  114,  114,  120,  120,  120,
2740       121,  121,  121,  122,  122,  122, 1590,  125,  125,  125,
2741       126,  126,  126,  120,  556,  566,  121,  623, 1592,  122,
2742       623,  114,  114,  125, 1593, 1594,  126,  462,  462,  462,
2743       556,  566,  114,  472,  472,  472,  476,  476,  476,  484,
2744       484,  484,  114,  123,  123,  123,  123,  123,  123,  123,
2745       123,  123,  123,  123,  123,  123,  123,  123, 1597,  123,
2746       123,  123,  123,  123,  129,  129,  129,  130,  130,  130,
2747
2748       133,  133,  133, 1599,  134,  134,  134,  135,  135,  135,
2749       129,  697,  577,  130,  697, 1601,  133,  702,  123,  123,
2750       134,  702, 1606,  135,  489,  489,  489,  549,  577,  123,
2751       498,  498,  498,  123,  124,  124,  124,  124,  124,  124,
2752       124,  124,  124,  124,  124,  124,  124,  124,  124, 1612,
2753       124,  124,  124,  124,  124,  136,  136,  136,  137,  137,
2754       137,  138,  138,  138,  549,  139,  139,  139,  140,  140,
2755       140,  136, 1616,  795,  137, 1617,  612,  138,  549,  124,
2756       124,  139,  612, 1619,  140,  502,  502,  502,  612,  795,
2757       124,  510,  510,  510,  124,  127,  127,  127,  127,  127,
2758
2759       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2760      1631,  127,  127,  127,  127,  127,  143,  143,  143,  144,
2761       144,  144,  147,  147,  147, 1634,  148,  148,  148,  151,
2762       151,  151,  143,  999, 1635,  144, 1628,  999,  147, 1637,
2763       127,  127,  148, 1627, 1639,  151,  513,  513,  513,  521,
2764       521,  521,  525,  525,  525,  127,  534,  534,  534, 1629,
2765      1627,  127,  128,  128,  128,  128,  128,  128,  128,  128,
2766       128,  128,  128,  128,  128,  128,  128, 1628,  128,  128,
2767       128,  128,  128,  152,  152,  152,  155,  155,  155,  156,
2768       156,  156, 1629,  157,  157,  157,  158,  158,  158,  152,
2769
2770      1640, 1642,  155, 1643, 1644,  156, 1648,  128,  128,  157,
2771      1636, 1650,  158,  538,  538,  538,  548,  548,  548,  553,
2772       553,  553,  128,  560,  560,  560, 1636, 1653,  128,  131,
2773       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2774       131,  131,  131,  131, 1654,  131,  131,  131,  131,  131,
2775       159,  159,  159,  160,  160,  160,  161,  161,  161, 1655,
2776       162,  162,  162, 1657,  561,  617,  159, 1659, 1660,  160,
2777      1662,  561,  161, 1664,  131,  131,  162,  131,  617,  131,
2778       561,  563,  563,  563, 1667,  131,  570,  570,  570, 1668,
2779      1670,  131, 1671, 1672,  131,  132,  132,  132,  132,  132,
2780
2781       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2782      1674,  132,  132,  132,  132,  132,  165,  165,  165,  166,
2783       166,  166,  167,  167,  167, 1669,  168,  168,  168,  574,
2784       574,  574,  165, 1669, 1680,  166,  665,  583,  167,  670,
2785       132,  132,  168,  132,  583,  132,  582,  582,  582,  665,
2786      1673,  132,  670,  583,  584,  584,  584,  132, 1673, 1684,
2787       132,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2788       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2789       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2790       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2791
2792       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2793       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2794       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2795       141,  141,  141,  141,  145,  145,  145,  145,  145,  145,
2796       145,  145,  145,  145,  145,  145,  145,  145,  145, 1699,
2797       145,  145,  145,  145,  145,  169,  169,  169,  170,  170,
2798       170,  171,  171,  171,  621,  172,  172,  172, 1700, 1705,
2799       621,  169, 1706, 1681,  170, 1707,  621,  171, 1711,  145,
2800       145,  172,  145,  145,  145,  624,  593,  593,  593, 1681,
2801       145,  624,  145, 1014, 1014, 1014,  145,  624, 1712,  145,
2802
2803       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2804       146,  146,  146,  146,  146, 1718,  146,  146,  146,  146,
2805       146,  175,  175,  175,  176,  176,  176,  177,  177,  177,
2806       625,  178,  178,  178, 1725, 1726,  625,  175, 1727,  671,
2807       176, 1731,  625,  177,  593,  146,  146,  178,  146,  146,
2808       146,  649,  671, 1034, 1034, 1034,  146,  649,  146, 1291,
2809      1291, 1291,  146,  649, 1737,  146,  149,  149,  149,  149,
2810       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
2811       149, 1741,  149,  149,  149,  149,  149,  179,  179,  179,
2812       180,  180,  180,  181,  181,  181, 1744,  182,  182,  182,
2813
2814       633,  633,  633,  179, 1746,  912,  180, 1748, 1750,  181,
2815      1751,  149,  149,  182,  912, 1752,  149,  633, 1293, 1293,
2816      1293,  912,  149,  150,  150,  150,  150,  150,  150,  150,
2817       150,  150,  150,  150,  150,  150,  150,  150, 1755,  150,
2818       150,  150,  150,  150,  185,  185,  185,  186,  186,  186,
2819       189,  189,  189, 1757,  190,  190,  190,  641,  641,  641,
2820       185, 1517, 1762,  186, 1293, 1764,  189, 1517,  150,  150,
2821       190, 1517, 1772,  150,  641, 1517,  810,  810,  810,  150,
2822       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2823       153,  153,  153,  153,  153, 1773,  153,  153,  153,  153,
2824
2825       153,  191,  191,  191,  192,  192,  192,  193,  193,  193,
2826      1774,  194,  194,  194,  195,  195,  195,  191, 1685, 1776,
2827       192, 1686, 1787,  193, 1790,  153,  153,  194, 1787,  153,
2828       195,  798,  798,  798, 1685,  798,  153, 1686,  153,  810,
2829       829,  829,  829, 1789, 1795,  153,  154,  154,  154,  154,
2830       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
2831       154, 1796,  154,  154,  154,  154,  154,  196,  196,  196,
2832       199,  199,  199,  200,  200,  200, 1797,  201,  201,  201,
2833       202,  202,  202,  196, 1801, 1802,  199, 1803, 1789,  200,
2834      1808,  154,  154,  201, 1814,  154,  202,  868,  868,  868,
2835
2836      1816, 1817,  154,  829,  154, 1820,  874,  874,  874, 1823,
2837      1827,  154,  163,  163,  163,  163,  163,  163,  163,  163,
2838       163,  163,  163,  163,  163,  163,  163, 1828,  163,  163,
2839       163,  163,  163,  203,  203,  203,  204,  204,  204,  205,
2840       205,  205, 1829,  206,  206,  206,  209,  209,  209,  203,
2841      1830, 1831,  204, 1832, 1833,  205, 1834,  163,  163,  206,
2842       868, 1835,  209,  163,  840,  840,  840, 1836,  840,  874,
2843      1841,  840, 1296, 1296, 1296, 1842, 1858,  163,  164,  164,
2844       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2845       164,  164,  164, 1859,  164,  164,  164,  164,  164,  210,
2846
2847       210,  210,  211,  211,  211,  212,  212,  212, 1860,  213,
2848       213,  213,  214,  214,  214,  210, 1860, 1862,  211, 1861,
2849      1863,  212, 1864,  164,  164,  213, 1868, 1861,  214,  164,
2850       848,  848,  848, 1874,  848, 1875, 1876,  848, 1299, 1299,
2851      1299, 1881, 1885,  164,  173,  173,  173,  173,  173,  173,
2852       173,  173,  173,  173,  173,  173,  173,  173,  173, 1886,
2853       173,  173,  173,  173,  173,  215,  215,  215,  216,  216,
2854       216,  219,  219,  219, 1788,  220,  220,  220,  223,  223,
2855       223,  215, 1518, 1887,  216, 1889, 1892,  219, 1518,  173,
2856       173,  220, 1518, 1893,  223,  173, 1518, 1896,  173,  864,
2857
2858       864,  864, 1897,  864, 1900, 1788,  864, 1907, 1909,  173,
2859       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
2860       174,  174,  174,  174,  174, 1923,  174,  174,  174,  174,
2861       174,  224,  224,  224,  225,  225,  225,  226,  226,  226,
2862      1894,  227,  227,  227,  228,  228,  228,  224, 1894, 1927,
2863       225, 1895, 1936,  226, 1937,  174,  174,  227, 1945, 1895,
2864       228,  174, 1946, 1950,  174,  881,  881,  881, 1928,  881,
2865      1952, 1964,  881, 1965, 1966,  174,  183,  183,  183,  183,
2866       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
2867       183, 1927,  183,  183,  183,  183,  183,  229,  229,  229,
2868
2869       230,  230,  230,  233,  233,  233, 1967,  234,  234,  234,
2870       341, 1968, 1969,  229, 1928, 1970,  230, 1971,  342,  233,
2871       341,  183,  183,  234, 1308, 1308, 1308,  183,  342, 1333,
2872      1333, 1333,  183,  184,  184,  184,  184,  184,  184,  184,
2873       184,  184,  184,  184,  184,  184,  184,  184,  341,  184,
2874       184,  184,  184,  184,  341, 1972,  342,  341,  658,  658,
2875       658, 1973, 1979,  341,  341,  675,  675,  675, 1980,  342,
2876       681,  681,  681,  342, 1982,  658, 1989, 1990,  184,  184,
2877      1991, 1992,  675, 1993,  184, 1994, 1995,  681, 1997,  184,
2878       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
2879
2880       187,  187,  187,  187,  187, 1998,  187,  187,  187,  187,
2881       187,  686,  686,  686,  698,  698,  698,  707,  707,  707,
2882       709,  709,  709,  724,  724,  724, 2003, 2004,  686, 2006,
2883      2007,  698, 2008, 2009,  707,  187,  187,  709, 2016, 2017,
2884       724,  187,  887,  887,  887, 2018,  887, 2019, 2020,  887,
2885      1344, 1344, 1344, 2021, 2022,  187,  188,  188,  188,  188,
2886       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
2887       188, 2023,  188,  188,  188,  188,  188,  732,  732,  732,
2888       737,  737,  737,  759,  759,  759,  786,  786,  786,  790,
2889       790,  790, 2025, 2046,  732, 2047, 2051,  737, 2052, 2053,
2890
2891       759,  188,  188,  786, 2056, 2041,  790,  188,  892,  892,
2892       892, 2060,  892, 2042, 2061,  892, 1345, 1345, 1345, 2062,
2893      2063,  188,  197,  197,  197,  197,  197,  197,  197,  197,
2894       197,  197,  197,  197,  197,  197,  197, 2041,  197,  197,
2895       197,  197,  197,  808,  808,  808,  809,  809,  809, 2064,
2896      2042,  836,  836,  836,  837,  837,  837,  839,  839,  839,
2897      2065,  808, 1345, 2066,  809, 2067, 2068,  197,  197,  836,
2898      2069, 2071,  837,  197,  839, 2072,  197,  904,  904,  904,
2899      2073,  904, 2078, 2079,  904, 2080, 2082,  197,  198,  198,
2900       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
2901
2902       198,  198,  198,  809,  198,  198,  198,  198,  198,  843,
2903       843,  843, 2086,  837,  844,  844,  844, 2087,  847,  847,
2904       847,  849,  849,  849,  851,  851,  851,  843,  855,  855,
2905       855, 2090,  844,  198,  198,  847, 2094, 2095,  849,  198,
2906      2097,  851,  198,  914,  914,  914,  855,  914, 2100, 2101,
2907       914, 2102, 2103,  198,  207,  207,  207,  207,  207,  207,
2908       207,  207,  207,  207,  207,  207,  207,  207,  207, 2105,
2909       207,  207,  207,  207,  207, 2108, 2110,  844,  861,  861,
2910       861, 2129, 2133,  862,  862,  862, 2134, 2135,  856,  856,
2911       856,  863,  863,  863, 2136, 2137,  861, 2143, 2144,  207,
2912
2913       207,  862, 1473, 1473, 1473, 2128,  856,  207,  863,  207,
2914      2145,  207, 2146, 2147, 1417, 1417, 1417, 2148, 2129,  207,
2915       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2916       208,  208,  208,  208,  208,  856,  208,  208,  208,  208,
2917       208,  866,  866,  866, 2128, 2149,  862,  880,  880,  880,
2918       884,  884,  884,  885,  885,  885,  889,  889,  889,  866,
2919      1417,  886,  886,  886,  880,  208,  208, 2150,  884, 2151,
2920      2152,  885, 2130,  208,  889,  208, 2154,  208,  886, 1475,
2921      1475, 1475, 1477, 1477, 1477,  208,  217,  217,  217,  217,
2922       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2923
2924       217, 2155,  217,  217,  217,  217,  217,  867,  867,  867,
2925      2156,  890,  890,  890, 2130,  894,  894,  894,  885,  891,
2926       891,  891,  895,  895,  895,  867,  903,  903,  903,  890,
2927      2160,  217,  217,  894, 2166, 2167,  891, 1479, 1479, 1479,
2928       895, 2171, 2174,  903,  867,  917,  917,  917, 2182,  917,
2929      2183, 2184,  917, 2206,  217,  218,  218,  218,  218,  218,
2930       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
2931      2140,  218,  218,  218,  218,  218,  890,  898,  898,  898,
2932      2140, 2207,  895, 2140,  899,  899,  899,  907,  907,  907,
2933       908,  908,  908, 2141, 2206,  898,  913,  913,  913, 2192,
2934
2935       218,  218,  899, 2141, 2208,  907, 2141, 2210,  908, 2192,
2936       932,  932,  932,  913,  932, 2192, 2211,  932, 1482, 1482,
2937      1482, 2212, 2207,  218,  221,  221,  221,  221,  221,  221,
2938       221,  221,  221,  221,  221,  221,  221,  221,  221, 2215,
2939       221,  221,  221,  221,  221,  916,  916,  916,  899, 2216,
2940       908,  918,  918,  918,  926,  926,  926,  927,  927,  927,
2941      2217, 2218,  916, 1486, 1486, 1486, 2219, 2205,  918,  221,
2942       221, 2222,  926, 2217, 2223,  927, 1491, 1491, 1491, 2224,
2943       221,  222,  222,  222,  222,  222,  222,  222,  222,  222,
2944       222,  222,  222,  222,  222,  222, 2205,  222,  222,  222,
2945
2946       222,  222,  931,  931,  931,  933,  933,  933, 2220, 1486,
2947       936,  936,  936, 2225,  927,  937,  937,  937, 2227,  931,
2948      2228, 2220,  933, 1493, 1493, 1493,  222,  222,  936, 1484,
2949      1484, 1484, 2229,  937, 1514, 1514, 1514,  222,  231,  231,
2950       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
2951       231,  231,  231, 2230,  231,  231,  231,  231,  231,  939,
2952       939,  939, 2233,  940,  940,  940,  937,  940, 2235, 1493,
2953       940,  941,  941,  941, 2243, 2193,  939,  942,  942,  942,
2954       944,  944,  944,  231,  231, 2193,  945,  945,  945,  941,
2955       945, 2193, 1484,  945,  231,  942, 2244,  944,  965,  965,
2956
2957       965, 2245,  965, 2249, 2257,  965,  231,  232,  232,  232,
2958       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
2959       232,  232, 2259,  232,  232,  232,  232,  232,  949,  949,
2960       949,  950,  950,  950,  951,  951,  951,  942,  952,  952,
2961       952,  953,  953,  953, 2267, 2268,  949, 2269, 2270,  950,
2962      2271,  951,  232,  232, 2272,  952, 2278, 2281,  953,  954,
2963       954,  954, 2279,  232,  955,  955,  955,  957,  957,  957,
2964       959,  959,  959, 2284, 2285,  232,  274,  954, 2289,  958,
2965       958,  958,  955,  274,  957, 2290,  950,  959,  960,  960,
2966       960, 2291,  274,  274, 2292, 2293,  958, 2279, 2294,  953,
2967
2968       961,  961,  961, 2278, 2295,  960, 2296,  962,  962,  962,
2969      1525, 1525, 1525, 2298, 2299,  964,  964,  964,  961, 2300,
2970       274,  274,  274, 2301,  955,  962, 2302,  274,  274,  958,
2971       274,  274,  964, 2303,  274, 2304,  274,  274,  274,  966,
2972       966,  966, 2305,  958,  962, 2307,  960,  967,  967,  967,
2973       968,  968,  968,  969,  969,  969, 2313,  966,  970,  970,
2974       970,  971,  971,  971, 2317,  967, 2318,  968, 2319, 2320,
2975       969,  972,  972,  972, 2327, 2330,  970, 2332, 2337,  971,
2976       973,  973,  973,  974,  974,  974, 2333, 2332,  972,  975,
2977       975,  975,  976,  976,  976, 2338, 2333,  973, 2335, 2336,
2978
2979       974, 2339,  967,  981,  981,  981, 2340,  975, 2335, 2336,
2980       976,  982,  982,  982,  985,  985,  985,  986,  986,  986,
2981      2341,  981,  987,  987,  987,  991,  991,  991, 2342,  982,
2982       973,  971,  985, 2353, 2354,  986,  988,  988,  988,  987,
2983       988, 2345,  991,  988,  973,  989,  989,  989,  990,  990,
2984       990,  992,  992,  992, 2355,  992, 2356, 2357,  992,  994,
2985       994,  994,  976,  989, 2358, 2359,  990,  995,  995,  995,
2986      1010, 1010, 1010, 2360,  982, 2345, 2363,  994, 2364, 2366,
2987       986, 1011, 1011, 1011, 2367,  995, 2368, 2370, 1010, 1013,
2988      1013, 1013, 1040, 1040, 1040, 1041, 1041, 1041, 2378, 1011,
2989
2990      1042, 1042, 1042, 1044, 1044, 1044, 2379, 1013,  990, 1040,
2991      1045, 1045, 1045, 1041, 2380, 1046, 1046, 1046, 1042, 1046,
2992      2382, 1044, 1046, 1049, 1049, 1049, 2388, 1045, 2389, 2390,
2993       995, 1051, 1051, 1051, 2391, 2392, 1013, 1052, 1052, 1052,
2994      1049, 1054, 1054, 1054, 1056, 1056, 1056, 2393, 1056, 1051,
2995      2394, 1056, 1044, 2395, 2396, 1052, 1059, 1059, 1059, 1054,
2996      1060, 1060, 1060, 2397, 1060, 2399, 2400, 1060, 1061, 1061,
2997      1061, 2414, 2405, 1059, 1062, 1062, 1062, 1063, 1063, 1063,
2998      2415, 1063, 2416, 1049, 1063, 1061, 2417, 2418, 1054, 2419,
2999      2420, 1062, 1065, 1065, 1065, 1067, 1067, 1067, 1068, 1068,
3000
3001      1068, 1070, 1070, 1070, 1073, 1073, 1073, 2421, 2425, 1065,
3002      1075, 1075, 1075, 1067, 2405, 2426, 1068, 2427, 2428, 1070,
3003      2429, 1073, 1076, 1076, 1076, 1078, 1078, 1078, 1075, 1079,
3004      1079, 1079, 2430, 1079, 2435, 2436, 1079, 1083, 1083, 1083,
3005      1076, 2437, 2440, 1078, 1084, 1084, 1084, 1086, 1086, 1086,
3006      1098, 1098, 1098, 2445, 1098, 1083, 2446, 1098, 2447, 2448,
3007      1070, 2449, 1084, 2450, 2451, 1086, 1102, 1102, 1102, 1103,
3008      1103, 1103, 1078, 1104, 1104, 1104, 1106, 1106, 1106, 1111,
3009      1111, 1111, 2452, 1102, 1112, 1112, 1112, 1103, 1107, 1107,
3010      1107, 1104, 1107, 2453, 1106, 1107, 2454, 1111, 1114, 1114,
3011
3012      1114, 2455, 1112, 1115, 1115, 1115, 2456, 1115, 2464, 2467,
3013      1115, 1118, 1118, 1118, 2458, 2468, 1114, 1119, 1119, 1119,
3014      1120, 1120, 1120, 1122, 1122, 1122, 2460, 2471, 1118, 1123,
3015      1123, 1123, 1124, 1124, 1124, 1119, 1106, 2461, 1120, 2473,
3016      2460, 1122, 2474, 1125, 1125, 1125, 1123, 2476, 2461, 1124,
3017      1126, 1126, 1126, 1128, 1128, 1128, 2477, 2480, 1114, 2458,
3018      1124, 1125, 1131, 1131, 1131, 1132, 1132, 1132, 1126, 1132,
3019      2481, 1128, 1132, 1137, 1137, 1137, 1138, 1138, 1138, 1131,
3020      1140, 1140, 1140, 1147, 1147, 1147, 2482, 1147, 2486, 1122,
3021      1147, 1137, 2484, 2485, 1138, 1150, 1150, 1150, 1140, 1151,
3022
3023      1151, 1151, 2494, 1151, 2484, 2485, 1151, 1154, 1154, 1154,
3024      2496, 2498, 1150, 1155, 1155, 1155, 2500, 1155, 1128, 2510,
3025      1155, 1163, 1163, 1163, 1154, 1164, 1164, 1164, 1166, 1166,
3026      1166, 1171, 1171, 1171, 2511, 1171, 2508, 2507, 1171, 1163,
3027      1174, 1174, 1174, 1164, 1140, 2511, 1166, 1175, 1175, 1175,
3028      2508, 1175, 2509, 2509, 1175, 2512, 2514, 1174, 1178, 1178,
3029      1178, 1179, 1179, 1179, 1181, 1181, 1181, 1183, 1183, 1183,
3030      2515, 1183, 2516, 2517, 1183, 2526, 1178, 2507, 2528, 1179,
3031      2491, 2492, 1181, 1186, 1186, 1186, 1187, 1187, 1187, 1189,
3032      1189, 1189, 2491, 2492, 1166, 1191, 1191, 1191, 2531, 1191,
3033
3034      2533, 1186, 1191, 2525, 1187, 2539, 2540, 1189, 1197, 1197,
3035      1197, 1198, 1198, 1198, 2541, 1181, 1200, 1200, 1200, 1201,
3036      1201, 1201, 2525, 1202, 1202, 1202, 1197, 1202, 2543, 1198,
3037      1202, 1203, 1203, 1203, 1200, 2544, 1201, 1204, 1204, 1204,
3038      2545, 1204, 2546, 2527, 1204, 1206, 1206, 1206, 1203, 1207,
3039      1207, 1207, 1209, 1209, 1209, 1189, 1211, 1211, 1211, 1215,
3040      1215, 1215, 2527, 1206, 1212, 1212, 1212, 1207, 1212, 2553,
3041      1209, 1212, 2554, 1211, 2555, 1200, 1215, 1216, 1216, 1216,
3042      2530, 1216, 2556, 2532, 1216, 1218, 1218, 1218, 1219, 1219,
3043      1219, 1221, 1221, 1221, 1223, 1223, 1223, 2557, 1223, 2530,
3044
3045      2558, 1223, 2532, 1218, 2561, 2562, 1219, 2563, 2564, 1221,
3046      1226, 1226, 1226, 1227, 1227, 1227, 2565, 2566, 1209, 1229,
3047      1229, 1229, 1230, 1230, 1230, 1231, 1231, 1231, 1226, 1231,
3048      2568, 1227, 1231, 1232, 1232, 1232, 2570, 1229, 2572, 1230,
3049      1233, 1233, 1233, 2582, 1233, 2583, 2584, 1233, 2585, 2580,
3050      1232, 1234, 1234, 1234, 1221, 1235, 1235, 1235, 1237, 1237,
3051      1237, 2580, 1238, 1238, 1238, 1242, 1242, 1242, 2581, 1234,
3052      1239, 1239, 1239, 1235, 1239, 2586, 1237, 1239, 1229, 1238,
3053      2581, 2587, 1242, 1243, 1243, 1243, 2591, 1243, 2592, 2593,
3054      1243, 1244, 1244, 1244, 1245, 1245, 1245, 1247, 1247, 1247,
3055
3056      1249, 1249, 1249, 1252, 1252, 1252, 1253, 1253, 1253, 1244,
3057      2594, 2595, 1245, 2596, 2599, 1247, 2600, 1249, 2601, 1237,
3058      2597, 1252, 2602, 2603, 1253, 1255, 1255, 1255, 1258, 1258,
3059      1258, 1259, 1259, 1259, 1261, 1261, 1261, 1262, 1262, 1262,
3060      2604, 1262, 2605, 1255, 1262, 2597, 1258, 2606, 2607, 1259,
3061      2608, 2609, 1261, 1265, 1265, 1265, 2610, 2611, 1247, 1266,
3062      1266, 1266, 1268, 1268, 1268, 1269, 1269, 1269, 2612, 1269,
3063      2613, 1265, 1269, 1273, 1273, 1273, 2614, 1266, 2615, 2616,
3064      1268, 1274, 1274, 1274, 2620, 1255, 2621, 1261, 1276, 1276,
3065      1276, 1273, 1278, 1278, 1278, 1285, 1285, 1285, 2622, 1274,
3066
3067      1311, 1311, 1311, 1526, 1526, 1526, 1276, 1314, 1314, 1314,
3068      1278, 1278, 2617, 1285, 1313, 1313, 1313, 1311, 1312, 1312,
3069      1312, 1268, 1312, 2623, 1314, 1312, 1315, 1315, 1315, 2624,
3070      1315, 2617, 1313, 1315, 1318, 1318, 1318, 1320, 1320, 1320,
3071      2625, 1320, 2626, 2627, 1320, 1323, 1323, 1323, 1276, 1324,
3072      1324, 1324, 1318, 1324, 2628, 2629, 1324, 1325, 1325, 1325,
3073      1285, 1325, 1323, 2630, 1325, 1329, 1329, 1329, 1330, 1330,
3074      1330, 1313, 1330, 2631, 2632, 1330, 1332, 1332, 1332, 1335,
3075      1335, 1335, 1329, 1318, 1336, 1336, 1336, 2633, 1336, 2634,
3076      2635, 1336, 2637, 2636, 1332, 2638, 1335, 1337, 1337, 1337,
3077
3078      1338, 1338, 1338, 1340, 1340, 1340, 1353, 1353, 1353, 2639,
3079      1354, 1354, 1354, 2636, 1337, 1355, 1355, 1355, 1338, 1355,
3080      2640, 1340, 1355, 1353, 2641, 2642, 1332, 1354, 1356, 1356,
3081      1356, 2643, 1358, 1358, 1358, 1359, 1359, 1359, 1360, 1360,
3082      1360, 2644, 1360, 2645, 2646, 1360, 1356, 2647, 2648, 1338,
3083      1358, 2649, 1359, 1361, 1361, 1361, 1362, 1362, 1362, 1363,
3084      1363, 1363, 2650, 1363, 2651, 2652, 1363, 1365, 1365, 1365,
3085      2654, 1361, 2653, 1362, 2655, 1368, 1368, 1368, 2653, 1369,
3086      1369, 1369, 2656, 1369, 2657, 1365, 1369, 1370, 1370, 1370,
3087      2658, 1356, 1368, 2659, 2661, 1358, 1371, 1371, 1371, 1372,
3088
3089      1372, 1372, 2662, 2664, 1370, 1376, 1376, 1376, 1379, 1379,
3090      1379, 2665, 1361, 1371, 1380, 1380, 1380, 1372, 1380, 2667,
3091      2668, 1380, 1376, 2671, 2672, 1379, 2673, 1365, 1381, 1381,
3092      1381, 2674, 1381, 2676, 2678, 1381, 1384, 1384, 1384, 1391,
3093      1391, 1391, 1371, 1393, 1393, 1393, 2680, 1396, 1396, 1396,
3094      2682, 1396, 2684, 1384, 1396, 2685, 2686, 1391, 2687, 2688,
3095      1393, 1399, 1399, 1399, 1372, 1401, 1401, 1401, 1403, 1403,
3096      1403, 1407, 1407, 1407, 1408, 1408, 1408, 2689, 1399, 2690,
3097      1409, 1409, 1409, 1401, 1409, 2691, 1403, 1409, 1407, 1412,
3098      1412, 1412, 1408, 1412, 2670, 2693, 1412, 1416, 1416, 1416,
3099
3100      1418, 1418, 1418, 1391, 1418, 2695, 2697, 1418, 2670, 1423,
3101      1423, 1423, 2698, 1423, 2699, 1416, 1423, 1407, 1427, 1427,
3102      1427, 1429, 1429, 1429, 2700, 1430, 1430, 1430, 1401, 1430,
3103      1408, 2715, 1430, 1403, 2735, 2715, 1427, 2709, 2701, 1429,
3104      1433, 1433, 1433, 2735, 1433, 2736, 2702, 1433, 1436, 1436,
3105      1436, 1437, 1437, 1437, 2736, 1437, 1472, 2723, 1437, 1447,
3106      1447, 1447, 1416, 1442, 1442, 1442, 1436, 1442, 1471, 2713,
3107      1442, 1445, 1445, 1445, 2701, 2721, 1447, 1429, 1427, 1448,
3108      1448, 1448, 2702, 1448, 2709, 2714, 1448, 2710, 2711, 1445,
3109      1451, 1451, 1451, 2712, 2723, 1436, 1453, 1453, 1453, 1454,
3110
3111      1454, 1454, 1455, 1455, 1455, 1456, 1456, 1456, 1451, 1457,
3112      1457, 1457, 2713, 1453, 1467, 1467, 1467, 1454, 1445, 2759,
3113      1455, 2721, 1456, 1460, 1460, 1460, 2722, 1457, 2714, 1494,
3114      1494, 1494, 1467, 1494, 2710, 2711, 1494, 2739, 2725, 1451,
3115      2712, 1460, 1497, 1497, 1497, 1498, 1498, 1498, 2759, 1498,
3116      2717, 2718, 1498, 2719, 1455, 1503, 1503, 1503, 2717, 2718,
3117      1497, 2719, 1513, 1513, 1513, 1454, 1467, 1527, 1527, 1527,
3118      1457, 2739, 2722, 1503, 1460, 1505, 1505, 1505, 2725, 1505,
3119      1513, 2720, 1505, 2716, 1509, 1509, 1509, 2716, 1509, 2720,
3120      1460, 1509, 1516, 1516, 1516, 1470, 1516, 2724, 2753, 1516,
3121
3122      1519, 1519, 1519, 1520, 1520, 1520, 1503, 1520, 1497, 2731,
3123      1520, 1521, 1521, 1521, 1531, 1531, 1531, 1519, 1532, 1532,
3124      1532, 2726, 1513, 1534, 1534, 1534, 1539, 1539, 1539, 1521,
3125      1527, 1535, 1535, 1535, 2724, 1535, 2727, 2728, 1535, 2753,
3126      1534, 1536, 1536, 1536, 1539, 1536, 2731, 2729, 1536, 1540,
3127      1540, 1540, 1541, 1541, 1541, 2733, 1542, 1542, 1542, 1469,
3128      1542, 2726, 1521, 1542, 2730, 2741, 1540, 1545, 1545, 1545,
3129      1541, 2727, 2728, 1539, 1549, 1549, 1549, 1531, 1550, 1550,
3130      1550, 1532, 1546, 1546, 1546, 1545, 1546, 2733, 2734, 1546,
3131      2732, 1549, 2729, 1553, 1553, 1553, 1550, 1553, 2742, 1541,
3132
3133      1553, 1556, 1556, 1556, 1557, 1557, 1557, 2741, 1557, 2730,
3134      2754, 1557, 1558, 1558, 1558, 1559, 1559, 1559, 1556, 1559,
3135      2734, 2749, 1559, 2767, 1561, 1561, 1561, 2732, 2737, 1558,
3136      2749, 2767, 1545, 1562, 1562, 1562, 1565, 1565, 1565, 2738,
3137      2742, 1550, 1561, 1566, 1566, 1566, 1468, 1566, 2791, 1466,
3138      1566, 2754, 2751, 1565, 1567, 1567, 1567, 1569, 1569, 1569,
3139      2745, 1569, 2791, 2737, 1569, 1572, 1572, 1572, 1573, 1573,
3140      1573, 1567, 1573, 2752, 2738, 1573, 1574, 1574, 1574, 1579,
3141      1579, 1579, 1572, 1580, 1580, 1580, 1582, 1582, 1582, 2751,
3142      1583, 1583, 1583, 1574, 1583, 2745, 1579, 1583, 1584, 1584,
3143
3144      1584, 1580, 2743, 1582, 1586, 1586, 1586, 1587, 1587, 1587,
3145      2752, 1587, 2740, 2773, 1587, 1584, 1589, 1589, 1589, 2747,
3146      2744, 1586, 1591, 1591, 1591, 1595, 1595, 1595, 1596, 1596,
3147      1596, 2774, 1596, 2757, 1589, 1596, 1598, 1598, 1598, 2746,
3148      1591, 1465, 1595, 1600, 1600, 1600, 2740, 2743, 1580, 1602,
3149      1602, 1602, 2747, 2773, 1598, 1603, 1603, 1603, 1604, 1604,
3150      1604, 1600, 1605, 1605, 1605, 2744, 1602, 1607, 1607, 1607,
3151      2757, 2774, 1603, 1591, 2746, 1604, 2748, 1608, 1608, 1608,
3152      1605, 1609, 1609, 1609, 2750, 1607, 1610, 1610, 1610, 1611,
3153      1611, 1611, 2758, 2750, 1600, 1608, 1462, 2760, 1609, 1618,
3154
3155      1618, 1618, 2763, 1610, 1613, 1613, 1613, 1611, 1613, 2748,
3156      1459, 1613, 1452, 1607, 1620, 1620, 1620, 1618, 1621, 1621,
3157      1621, 1604, 1621, 2761, 1450, 1621, 2760, 2755, 1605, 2758,
3158      2756, 1620, 2761, 1622, 1622, 1622, 2763, 1623, 1623, 1623,
3159      2768, 1608, 1624, 1624, 1624, 1625, 1625, 1625, 2768, 1625,
3160      1618, 1622, 1625, 1611, 1449, 1623, 1626, 1626, 1626, 1624,
3161      1632, 1632, 1632, 1633, 1633, 1633, 1638, 1638, 1638, 1641,
3162      1641, 1641, 2755, 2765, 1626, 2756, 2766, 1632, 1645, 1645,
3163      1645, 1633, 1646, 1646, 1646, 1647, 1647, 1647, 1649, 1649,
3164      1649, 1622, 1623, 1651, 1651, 1651, 1652, 1652, 1652, 1656,
3165
3166      1656, 1656, 1658, 1658, 1658, 2769, 1661, 1661, 1661, 1663,
3167      1663, 1663, 1665, 1665, 1665, 1666, 1666, 1666, 2765, 2775,
3168      1658, 2766, 2770, 1633, 1661, 2771, 1663, 1675, 1675, 1675,
3169      1665, 1675, 1666, 2787, 1675, 1678, 1678, 1678, 1679, 1679,
3170      1679, 1682, 1682, 1682, 1683, 1683, 1683, 1687, 1687, 1687,
3171      2762, 2769, 1658, 1678, 2775, 1679, 1688, 1688, 1688, 2762,
3172      1688, 2764, 2771, 1688, 1687, 1691, 1691, 1691, 2770, 2781,
3173      1665, 1692, 1692, 1692, 1446, 1693, 1693, 1693, 2772, 1693,
3174      2787, 1678, 1693, 1691, 1694, 1694, 1694, 2779, 1692, 1695,
3175      1695, 1695, 1696, 1696, 1696, 2764, 1697, 1697, 1697, 2783,
3176
3177      1697, 2781, 1694, 1697, 1698, 1698, 1698, 1695, 2783, 1696,
3178      1701, 1701, 1701, 1441, 1701, 2772, 1440, 1701, 1691, 1704,
3179      1704, 1704, 1698, 1704, 2779, 2776, 1704, 1708, 1708, 1708,
3180      1710, 1710, 1710, 2780, 1713, 1713, 1713, 1694, 1713, 2782,
3181      2777, 1713, 1716, 1716, 1716, 1708, 1717, 1717, 1717, 1428,
3182      1717, 1698, 1426, 1717, 1719, 1719, 1719, 2778, 1719, 1716,
3183      2776, 1719, 1722, 1722, 1722, 1723, 1723, 1723, 2785, 1723,
3184      2780, 2782, 1723, 1724, 1724, 1724, 1728, 1728, 1728, 1722,
3185      1729, 1729, 1729, 2784, 1729, 2777, 1422, 1729, 2786, 1421,
3186      1724, 2789, 2784, 1728, 1730, 1730, 1730, 1732, 1732, 1732,
3187
3188      2785, 1732, 2778, 1415, 1732, 1735, 1735, 1735, 2790, 1736,
3189      1736, 1736, 1730, 1736, 2788, 1406, 1736, 1738, 1738, 1738,
3190      2786, 1738, 1735, 2789, 1738, 1742, 1742, 1742, 1745, 1745,
3191      1745, 1747, 1747, 1747, 1749, 1749, 1749, 1405, 1749, 1404,
3192      2790, 1749, 1402, 1742, 1400, 1730, 1745, 1395, 1747, 1753,
3193      1753, 1753, 1756, 1756, 1756, 1758, 1758, 1758, 1759, 1759,
3194      1759, 2788, 1759, 1394, 1392, 1759, 1390, 1753, 1389, 1388,
3195      1756, 1387, 1758, 1760, 1760, 1760, 1386, 1747, 1761, 1761,
3196      1761, 1385, 1761, 1378, 1377, 1761, 1763, 1763, 1763, 1375,
3197      1760, 1745, 1765, 1765, 1765, 1766, 1766, 1766, 1767, 1767,
3198
3199      1767, 1768, 1768, 1768, 1763, 1768, 1374, 1373, 1768, 1367,
3200      1765, 2792, 1366, 1766, 1364, 1767, 1769, 1769, 1769, 1770,
3201      1770, 1770, 2792, 1770, 1357, 1352, 1770, 1771, 1771, 1771,
3202      1775, 1775, 1775, 1769, 1351, 1777, 1777, 1777, 1350, 1777,
3203      1349, 1765, 1777, 1348, 1347, 1771, 1346, 1343, 1775, 1342,
3204      1339, 1763, 1780, 1780, 1780, 1781, 1781, 1781, 1334, 1766,
3205      1782, 1782, 1782, 1331, 1782, 1328, 1319, 1782, 1317, 1316,
3206      1780, 1310, 1309, 1781, 1785, 1785, 1785, 1307, 1791, 1791,
3207      1791, 1792, 1792, 1792, 1306, 1792, 1305, 1304, 1792, 1303,
3208      1302, 1771, 1785, 1301, 1775, 1791, 1793, 1793, 1793, 1794,
3209
3210      1794, 1794, 1300, 1780, 1798, 1798, 1798, 1298, 1781, 1799,
3211      1799, 1799, 1297, 1295, 1793, 1800, 1800, 1800, 1804, 1804,
3212      1804, 1805, 1805, 1805, 1806, 1806, 1806, 1807, 1807, 1807,
3213      1809, 1809, 1809, 1810, 1810, 1810, 1811, 1811, 1811, 1812,
3214      1812, 1812, 1813, 1813, 1813, 1815, 1815, 1815, 1818, 1818,
3215      1818, 1821, 1821, 1821, 1822, 1822, 1822, 1294, 1822, 1793,
3216      1292, 1822, 1290, 1815, 1289, 1288, 1818, 1287, 1821, 1824,
3217      1824, 1824, 1286, 1807, 1825, 1825, 1825, 1826, 1826, 1826,
3218      1284, 1826, 1283, 1282, 1826, 1281, 1272, 1824, 1837, 1837,
3219      1837, 1825, 1838, 1838, 1838, 1257, 1815, 1839, 1839, 1839,
3220
3221      1256, 1839, 1251, 1250, 1839, 1248, 1837, 1241, 1240, 1838,
3222      1840, 1840, 1840, 1843, 1843, 1843, 1844, 1844, 1844, 1845,
3223      1845, 1845, 1846, 1846, 1846, 1222, 1846, 1217, 1214, 1846,
3224      1847, 1847, 1847, 1851, 1851, 1851, 1845, 1837, 1848, 1848,
3225      1848, 1213, 1848, 1210, 1205, 1848, 1196, 1195, 1847, 1194,
3226      1190, 1851, 1852, 1852, 1852, 1182, 1854, 1854, 1854, 1177,
3227      1854, 1176, 1844, 1854, 1857, 1857, 1857, 1865, 1865, 1865,
3228      1852, 1865, 1170, 1169, 1865, 1168, 1869, 1869, 1869, 1167,
3229      1869, 1847, 1857, 1869, 1851, 1872, 1872, 1872, 1873, 1873,
3230      1873, 1162, 1873, 1161, 1160, 1873, 1877, 1877, 1877, 1159,
3231
3232      1877, 1158, 1872, 1877, 1880, 1880, 1880, 1882, 1882, 1882,
3233      1157, 1882, 1156, 1146, 1882, 1145, 1144, 1857, 1888, 1888,
3234      1888, 1143, 1880, 1890, 1890, 1890, 1891, 1891, 1891, 1142,
3235      1891, 1141, 1136, 1891, 1135, 1130, 1888, 1898, 1898, 1898,
3236      1890, 1901, 1901, 1901, 1129, 1901, 1110, 1101, 1901, 1904,
3237      1904, 1904, 1097, 1904, 1096, 1898, 1904, 1908, 1908, 1908,
3238      1910, 1910, 1910, 1911, 1911, 1911, 1095, 1880, 1094, 1912,
3239      1912, 1912, 1093, 1912, 1092, 1908, 1912, 1091, 1910, 1090,
3240      1089, 1911, 1915, 1915, 1915, 1088, 1915, 1087, 1082, 1915,
3241      1074, 1918, 1918, 1918, 1072, 1919, 1919, 1919, 1066, 1911,
3242
3243      1920, 1920, 1920, 1921, 1921, 1921, 1064, 1055, 1908, 1918,
3244      1050, 1918, 1919, 1922, 1922, 1922, 1039, 1920, 1037, 1036,
3245      1921, 1924, 1924, 1924, 1035, 1910, 1925, 1925, 1925, 1033,
3246      1032, 1922, 1926, 1926, 1926, 1929, 1929, 1929, 1031, 1924,
3247      1030, 1930, 1930, 1930, 1925, 1930, 1029, 1028, 1930, 1026,
3248      1926, 1920, 1933, 1933, 1933, 1934, 1934, 1934, 1935, 1935,
3249      1935, 1921, 1938, 1938, 1938, 1939, 1939, 1939, 1025, 1024,
3250      1933, 1940, 1940, 1940, 1941, 1941, 1941, 1922, 1023, 1022,
3251      1924, 1942, 1942, 1942, 1943, 1943, 1943, 1944, 1944, 1944,
3252      1947, 1947, 1947, 1948, 1948, 1948, 1949, 1949, 1949, 1951,
3253
3254      1951, 1951, 1954, 1954, 1954, 1955, 1955, 1955, 1021, 1955,
3255      1933, 1020, 1955, 1958, 1958, 1958, 1019, 1951, 1018, 1954,
3256      1959, 1959, 1959, 1017, 1961, 1961, 1961, 1016, 1961, 1015,
3257      1958, 1961, 1974, 1974, 1974, 1975, 1975, 1975, 1959, 1975,
3258      1009, 1008, 1975, 1978, 1978, 1978, 1981, 1981, 1981, 1007,
3259      1974, 1983, 1983, 1983, 1004, 1983, 1003, 1002, 1983, 1986,
3260      1986, 1986, 1987, 1987, 1987, 1988, 1988, 1988, 1996, 1996,
3261      1996, 1000, 1999, 1999, 1999,  996, 1999, 1986, 1958, 1999,
3262      1987,  993,  984, 1988, 2002, 2002, 2002,  983, 2005, 2005,
3263      2005,  980, 1974, 2010, 2010, 2010, 2012, 2012, 2012,  979,
3264
3265       978, 2002, 2024, 2024, 2024, 1986, 2005,  977, 2013, 2013,
3266      2013, 2010, 2013, 2012,  963, 2013, 1988, 2026, 2026, 2026,
3267      2027, 2027, 2027, 2028, 2028, 2028, 2029, 2029, 2029, 2030,
3268      2030, 2030, 2031, 2031, 2031, 2026,  956, 2027, 2033, 2033,
3269      2033, 2028, 2012,  948, 2029,  947,  946, 2030,  943, 2031,
3270      2032, 2032, 2032,  938, 2032, 2033,  935, 2032, 2034, 2034,
3271      2034, 2035, 2035, 2035,  934,  930, 2030, 2036, 2036, 2036,
3272      2037, 2037, 2037,  928,  925, 2034, 2038, 2038, 2038, 2035,
3273       924,  923, 2028, 2040, 2040, 2040, 2029,  922, 2037, 2043,
3274      2043, 2043,  921,  920, 2038, 2044, 2044, 2044, 2045, 2045,
3275
3276      2045, 2040, 2048, 2048, 2048, 2049, 2049, 2049,  919, 2034,
3277      2050, 2050, 2050, 2044, 2054, 2054, 2054, 2057, 2057, 2057,
3278      2058, 2058, 2058,  915, 2058,  911,  910, 2058, 2059, 2059,
3279      2059,  909, 2054,  906, 2057, 2037, 2070, 2070, 2070, 2074,
3280      2074, 2074,  905,  902, 2040, 2059, 2075, 2075, 2075, 2077,
3281      2077, 2077,  901,  900, 2070,  897,  896, 2074, 2084, 2084,
3282      2084, 2085, 2085, 2085, 2075,  893,  888, 2077, 2088, 2088,
3283      2088,  883, 2089, 2089, 2089, 2084, 2089,  882,  879, 2089,
3284      2091, 2091, 2091, 2059,  878, 2088,  877, 2092, 2092, 2092,
3285      2096, 2096, 2096,  876,  875, 2070,  873, 2091, 2098, 2098,
3286
3287      2098, 2107, 2107, 2107, 2074, 2092,  872, 2096,  871, 2099,
3288      2099, 2099,  870, 2099,  869, 2098, 2099,  865, 2107, 2109,
3289      2109, 2109, 2111, 2111, 2111, 2113, 2113, 2113, 2114, 2114,
3290      2114,  860, 2114,  859,  858, 2114, 2115, 2115, 2115,  857,
3291      2111,  854, 2113, 2116, 2116, 2116,  853, 2117, 2117, 2117,
3292       852, 2118, 2118, 2118, 2115, 2118,  850,  846, 2118,  842,
3293       841, 2116, 2121, 2121, 2121, 2117, 2122, 2122, 2122,  838,
3294      2122,  835,  834, 2122, 2123, 2123, 2123,  833,  832, 2121,
3295      2124, 2124, 2124, 2126, 2126, 2126, 2127, 2127, 2127,  831,
3296       830, 2123,  828, 2131, 2131, 2131,  827,  826, 2124, 2138,
3297
3298      2138, 2138,  825,  824, 2127, 2142, 2142, 2142,  823, 2116,
3299      2117, 2131,  822, 2139, 2139, 2139, 2138, 2139,  821,  820,
3300      2139,  819, 2142, 2153, 2153, 2153, 2157, 2157, 2157, 2158,
3301      2158, 2158, 2161, 2161, 2161, 2164, 2164, 2164, 2165, 2165,
3302      2165, 2153, 2165,  818, 2157, 2165,  817, 2158,  816, 2161,
3303       815,  814, 2164, 2168, 2168, 2168,  813, 2168,  812,  811,
3304      2168, 2172, 2172, 2172,  807, 2142, 2173, 2173, 2173,  806,
3305      2173,  804,  803, 2173, 2175, 2175, 2175,  802, 2172, 2209,
3306      2209, 2209, 2153, 2176, 2176, 2176, 2177, 2177, 2177,  801,
3307      2177, 2175,  800, 2177,  796,  794, 2157, 2178, 2178, 2178,
3308
3309      2176, 2179, 2179, 2179,  793, 2179,  792,  791, 2179, 2187,
3310      2187, 2187,  787,  783, 2178, 2188, 2188, 2188,  782, 2188,
3311       779,  778, 2188, 2189, 2189, 2189, 2187, 2190, 2190, 2190,
3312      2191, 2191, 2191,  777, 2191,  776,  775, 2191,  774,  771,
3313      2189, 2194, 2194, 2194, 2190, 2196, 2196, 2196, 2197, 2197,
3314      2197, 2198, 2198, 2198,  770, 2198,  769,  768, 2198, 2194,
3315      2201, 2201, 2201, 2196,  765,  764, 2197, 2202, 2202, 2202,
3316       763, 2202,  760,  758, 2202,  755,  754, 2201, 2203, 2203,
3317      2203, 2213, 2213, 2213, 2214, 2214, 2214,  753, 2214,  752,
3318       751, 2214, 2221, 2221, 2221,  748, 2203,  747, 2213, 2232,
3319
3320      2232, 2232, 2234, 2234, 2234, 2236, 2236, 2236, 2197, 2221,
3321      2196, 2237, 2237, 2237, 2238, 2238, 2238, 2232, 2239, 2239,
3322      2239,  746, 2239, 2236,  745, 2239,  744,  741, 2237,  740,
3323       739, 2238, 2240, 2240, 2240,  738, 2240,  736,  733, 2240,
3324      2246, 2246, 2246,  731, 2246,  728,  727, 2246,  726,  725,
3325      2232, 2221, 2250, 2250, 2250,  723,  722, 2237, 2251, 2251,
3326      2251,  721, 2251,  718,  717, 2251, 2236,  716,  715, 2250,
3327      2252, 2252, 2252,  714, 2252,  713,  712, 2252, 2255, 2255,
3328      2255, 2256, 2256, 2256,  711, 2256,  710,  708, 2256, 2258,
3329      2258, 2258, 2260, 2260, 2260, 2255, 2260,  706,  705, 2260,
3330
3331      2263, 2263, 2263, 2264, 2264, 2264, 2258, 2264,  701,  700,
3332      2264, 2265, 2265, 2265, 2266, 2266, 2266, 2263, 2266,  699,
3333       696, 2266, 2273, 2273, 2273, 2274, 2274, 2274, 2265, 2275,
3334      2275, 2275,  693, 2275,  692,  691, 2275, 2280, 2280, 2280,
3335      2273,  688,  687, 2274, 2282, 2282, 2282, 2283, 2283, 2283,
3336      2297, 2297, 2297,  683, 2280, 2280, 2286, 2286, 2286,  682,
3337      2286,  678,  677, 2286, 2306, 2306, 2306, 2297, 2308, 2308,
3338      2308,  676,  674, 2273, 2309, 2309, 2309, 2310, 2310, 2310,
3339       669,  668, 2306, 2311, 2311, 2311, 2312, 2312, 2312,  667,
3340      2312, 2274,  666, 2312,  664, 2310,  663, 2314, 2314, 2314,
3341
3342      2311, 2314,  662,  661, 2314, 2321, 2321, 2321,  660, 2321,
3343       659,  655, 2321, 2306, 2324, 2324, 2324,  654, 2324,  653,
3344       652, 2324, 2328, 2328, 2328, 2329, 2329, 2329, 2310, 2329,
3345       648,  647, 2329, 2331, 2331, 2331,  646, 2331,  645, 2328,
3346      2331, 2334, 2334, 2334,  644, 2334,  643,  642, 2334, 2343,
3347      2343, 2343, 2344, 2344, 2344, 2346, 2346, 2346, 2347, 2347,
3348      2347, 2348, 2348, 2348,  640, 2348,  637, 2343, 2348,  636,
3349      2344,  634, 2346, 2346,  632, 2347, 2347,  629,  628, 2348,
3350      2349, 2349, 2349, 2350, 2350, 2350, 2351, 2351, 2351, 2352,
3351      2352, 2352, 2361, 2361, 2361, 2362, 2362, 2362,  622, 2362,
3352
3353       620,  618, 2362, 2371, 2371, 2371, 2372, 2372, 2372, 2361,
3354      2373, 2373, 2373, 2374, 2374, 2374,  615, 2344, 2375, 2375,
3355      2375, 2371, 2375,  614,  610, 2375, 2381, 2381, 2381,  609,
3356       608, 2374, 2383, 2383, 2383, 2384, 2384, 2384,  606, 2384,
3357       605,  604, 2384, 2381, 2387, 2387, 2387,  603,  602, 2383,
3358       599, 2402, 2402, 2402, 2404, 2404, 2404, 2406, 2406, 2406,
3359       598, 2387,  597, 2407, 2407, 2407,  596, 2407, 2371, 2402,
3360      2407,  595, 2404,  589, 2406, 2406, 2408, 2408, 2408,  588,
3361      2408, 2407,  586, 2408, 2411, 2411, 2411, 2412, 2412, 2412,
3362      2413, 2413, 2413,  580, 2408, 2422, 2422, 2422,  579, 2422,
3363
3364       575,  568, 2422,  564,  558, 2404, 2409, 2409, 2409, 2409,
3365      2409, 2409, 2409, 2409, 2409,  554,  550, 2409, 2431, 2431,
3366      2431,  546, 2409, 2409, 2409, 2409, 2409, 2432, 2432, 2432,
3367      2433, 2433, 2433, 2438, 2438, 2438, 2431, 2439, 2439, 2439,
3368       545, 2439,  544,  543, 2439, 2441, 2441, 2441, 2433,  539,
3369      2438, 2409, 2409, 2410, 2410, 2410, 2410, 2410, 2410, 2410,
3370      2410, 2410, 2441,  535, 2410, 2443, 2443, 2443,  532, 2410,
3371      2410, 2410, 2410, 2410, 2442, 2442, 2442,  531, 2442,  530,
3372       526, 2442, 2443, 2444, 2444, 2444,  522, 2444,  519,  518,
3373      2444, 2457, 2457, 2457, 2478, 2478, 2478,  514, 2410, 2410,
3374
3375      2459, 2459, 2459,  508, 2459,  507,  503, 2459,  499, 2457,
3376       495,  494, 2478, 2505, 2505, 2505,  490,  487, 2459, 2462,
3377      2462, 2462, 2462, 2462, 2462, 2462, 2462, 2462,  486,  481,
3378      2462, 2505,  477,  469,  468, 2462, 2462, 2462, 2462, 2462,
3379      2483, 2483, 2483,  467, 2483,  463,  457, 2483, 2487, 2487,
3380      2487,  456, 2487,  452,  446, 2487, 2490, 2490, 2490,  445,
3381      2490,  444,  443, 2490, 2462, 2462, 2463, 2463, 2463, 2463,
3382      2463, 2463, 2463, 2463, 2463,  442,  441, 2463, 2513, 2513,
3383      2513,  440, 2463, 2463, 2463, 2463, 2463, 2522, 2522, 2522,
3384      2523, 2523, 2523, 2524, 2524, 2524, 2513, 2513, 2529, 2529,
3385
3386      2529, 2538, 2538, 2538, 2522,  436,  427, 2523,  426,  425,
3387      2524, 2463, 2463,  423,  419, 2529, 2542, 2542, 2542, 2538,
3388      2547, 2547, 2547, 2548, 2548, 2548,  415, 2548,  411,  410,
3389      2548, 2549, 2549, 2549, 2542,  409,  408, 2547, 2550, 2550,
3390      2550,  407, 2550,  403,  397, 2550,  396,  392, 2549, 2551,
3391      2551, 2551, 2552, 2552, 2552,  386, 2552,  385,  381, 2552,
3392      2559, 2559, 2559, 2567, 2567, 2567, 2551, 2542, 2560, 2560,
3393      2560,  374, 2560,  373,  369, 2560,  362, 2559, 2573, 2573,
3394      2573, 2567, 2573,  361,  360, 2573, 2576, 2576, 2576,  359,
3395      2576,  355,  351, 2576, 2579, 2579, 2579,  346, 2579,  338,
3396
3397      2567, 2579, 2588, 2588, 2588,  337, 2588,  333,  327, 2588,
3398      2683, 2683, 2683, 2692, 2692, 2692,  326, 2692,  325,  321,
3399      2692, 2793, 2793, 2793, 2794, 2794, 2794,  312, 2683,  310,
3400       309, 2692,  305,  302,  300,  299,  298,  294,  290, 2793,
3401       287,  283, 2794, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
3402      2797, 2797, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
3403      2798, 2799, 2799, 2799, 2799, 2799, 2799, 2799, 2799, 2799,
3404      2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2800, 2801,
3405      2801, 2801, 2801, 2801, 2801, 2801, 2801, 2801, 2802, 2802,
3406      2802, 2802, 2802, 2802, 2802, 2802, 2802, 2803, 2803, 2803,
3407
3408      2803, 2803, 2803, 2803, 2803, 2803, 2804, 2804, 2804, 2804,
3409      2804, 2804, 2804, 2804, 2804, 2805, 2805, 2805, 2805, 2805,
3410      2805, 2805, 2805, 2805, 2806, 2806, 2806, 2806, 2806, 2806,
3411      2806, 2806, 2806, 2807, 2807, 2807, 2807, 2807, 2807, 2807,
3412      2807, 2807, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3413      2808, 2809, 2809, 2809, 2809, 2809, 2809, 2809, 2809, 2809,
3414      2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2811,
3415      2811, 2811, 2811, 2811, 2811, 2811, 2811, 2811, 2812, 2812,
3416      2812, 2812, 2812, 2812, 2812, 2812, 2812, 2813, 2813, 2813,
3417      2813, 2813, 2813, 2813, 2813, 2813, 2814, 2814, 2814, 2814,
3418
3419      2814, 2814, 2814, 2814, 2814, 2815, 2815, 2815, 2815, 2815,
3420      2815, 2815, 2815, 2815, 2816, 2816, 2816, 2816, 2816, 2816,
3421      2816, 2816, 2816, 2817, 2817, 2817, 2817, 2817, 2817, 2817,
3422      2817, 2817, 2818, 2818, 2818, 2818, 2818, 2818, 2818, 2818,
3423      2818, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819,
3424      2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2820, 2821,
3425      2821, 2821, 2821, 2821, 2821, 2821, 2821, 2821, 2822, 2822,
3426      2822, 2822, 2822, 2822, 2822, 2822, 2822, 2823, 2823, 2823,
3427      2823, 2823, 2823, 2823, 2823, 2823, 2824, 2824, 2824, 2824,
3428      2824, 2824, 2824, 2824, 2824, 2825, 2825, 2825, 2825, 2825,
3429
3430      2825, 2825, 2825, 2825, 2826, 2826, 2826, 2826, 2826, 2826,
3431      2826, 2826, 2826, 2827, 2827, 2827, 2827, 2827, 2827, 2827,
3432      2827, 2827, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828,
3433      2828, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829,
3434      2830, 2830, 2830, 2830, 2830, 2830, 2830, 2830, 2830, 2831,
3435      2831, 2831, 2831, 2831, 2831, 2831, 2831, 2831, 2832, 2832,
3436      2832, 2832, 2832, 2832, 2832, 2832, 2832, 2833, 2833, 2833,
3437      2833, 2833, 2833, 2833, 2833, 2833, 2834, 2834, 2834, 2834,
3438      2834, 2834, 2834, 2834, 2834, 2835, 2835, 2835, 2835, 2835,
3439      2835, 2835, 2835, 2835, 2836, 2836, 2836, 2836, 2836, 2836,
3440
3441      2836, 2836, 2836, 2837, 2837, 2837, 2837, 2837, 2837, 2837,
3442      2837, 2837, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
3443      2838, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839,
3444      2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2841,
3445      2841, 2841, 2841, 2841, 2841, 2841, 2841, 2841, 2842, 2842,
3446      2842, 2842, 2842, 2842, 2842, 2842, 2842, 2843, 2843, 2843,
3447      2843, 2843, 2843, 2843, 2843, 2843, 2844, 2844, 2844, 2844,
3448      2844, 2844, 2844, 2844, 2844, 2845, 2845, 2845, 2845, 2845,
3449      2845, 2845, 2845, 2845, 2846, 2846, 2846, 2846, 2846, 2846,
3450      2846, 2846, 2846, 2847, 2847, 2847, 2847, 2847, 2847, 2847,
3451
3452      2847, 2847, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848,
3453      2848, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849, 2849,
3454      2850, 2850, 2850,  280,  279,  271, 2850, 2851, 2851, 2851,
3455       267,  263,  262, 2851, 2852, 2852, 2852,  261,  255,  254,
3456      2852, 2853, 2853, 2853,  252,  249,  237, 2853, 2854, 2854,
3457      2854,    0,    0,    0, 2854, 2855, 2855, 2855,    0,    0,
3458         0, 2855, 2856, 2856, 2856,    0,    0,    0, 2856, 2857,
3459      2857, 2857,    0,    0,    0, 2857, 2858, 2858, 2858,    0,
3460         0,    0, 2858, 2859, 2859, 2859,    0,    0,    0, 2859,
3461      2860, 2860, 2860,    0,    0,    0, 2860, 2861, 2861, 2861,
3462
3463         0,    0,    0, 2861, 2862, 2862, 2862,    0,    0,    0,
3464      2862, 2863, 2863, 2863,    0,    0,    0, 2863, 2864, 2864,
3465      2864,    0,    0,    0, 2864, 2865, 2865, 2865,    0,    0,
3466         0, 2865, 2866, 2866, 2866,    0,    0,    0, 2866, 2867,
3467      2867, 2867,    0,    0,    0, 2867, 2868, 2868, 2868,    0,
3468         0,    0, 2868, 2869, 2869, 2869,    0,    0,    0, 2869,
3469      2870, 2870, 2870,    0,    0,    0, 2870, 2871, 2871, 2871,
3470         0,    0,    0, 2871, 2872, 2872, 2872,    0,    0,    0,
3471      2872, 2873, 2873, 2873,    0,    0,    0, 2873, 2874, 2874,
3472      2874, 2874, 2874, 2874, 2874,    0, 2874, 2875, 2875, 2875,
3473
3474         0,    0,    0, 2875, 2876,    0,    0,    0, 2876, 2877,
3475      2877, 2877,    0,    0,    0, 2877, 2878,    0,    0,    0,
3476      2878, 2879, 2879, 2879,    0,    0,    0, 2879, 2880,    0,
3477         0,    0, 2880, 2881, 2881, 2881,    0,    0,    0, 2881,
3478      2882,    0,    0,    0, 2882, 2883, 2883, 2883,    0,    0,
3479         0, 2883, 2884,    0,    0,    0, 2884, 2885, 2885, 2885,
3480         0,    0,    0, 2885, 2886,    0,    0,    0, 2886, 2887,
3481      2887, 2887,    0,    0,    0, 2887, 2888,    0,    0,    0,
3482      2888, 2889, 2889, 2889,    0,    0,    0, 2889, 2890,    0,
3483         0,    0, 2890, 2891, 2891, 2891,    0,    0,    0, 2891,
3484
3485      2892,    0,    0,    0, 2892, 2893, 2893, 2893,    0,    0,
3486         0, 2893, 2894,    0,    0,    0, 2894, 2895, 2895, 2895,
3487         0,    0,    0, 2895, 2896,    0,    0,    0, 2896, 2897,
3488      2897, 2897,    0,    0,    0, 2897, 2898,    0,    0,    0,
3489      2898, 2899, 2899, 2899,    0,    0,    0, 2899, 2900,    0,
3490         0,    0, 2900, 2901, 2901, 2901,    0,    0,    0, 2901,
3491      2902,    0,    0,    0, 2902, 2903, 2903, 2903,    0,    0,
3492         0, 2903, 2904,    0,    0,    0, 2904, 2905, 2905, 2905,
3493         0,    0,    0, 2905, 2906,    0,    0,    0, 2906, 2907,
3494      2907, 2907,    0,    0,    0, 2907, 2908,    0,    0,    0,
3495
3496      2908, 2909, 2909, 2909,    0,    0,    0, 2909, 2910,    0,
3497         0,    0, 2910, 2911, 2911, 2911,    0,    0,    0, 2911,
3498      2912,    0,    0,    0, 2912, 2913, 2913, 2913,    0,    0,
3499         0, 2913, 2914,    0,    0,    0, 2914, 2915, 2915, 2915,
3500         0,    0,    0, 2915, 2916,    0,    0,    0, 2916, 2917,
3501      2917, 2917,    0,    0,    0, 2917, 2918,    0,    0,    0,
3502      2918, 2919, 2919, 2919,    0,    0,    0, 2919, 2920,    0,
3503         0,    0, 2920, 2921, 2921, 2921,    0,    0,    0, 2921,
3504      2922,    0,    0,    0, 2922, 2923, 2923, 2923, 2923, 2923,
3505      2923, 2923, 2923, 2923, 2924,    0,    0,    0,    0, 2924,
3506
3507      2925, 2925, 2925,    0,    0,    0, 2925, 2926, 2926, 2926,
3508      2926,    0,    0, 2926, 2926, 2927, 2927, 2927,    0,    0,
3509         0, 2927, 2928, 2928, 2928, 2928,    0,    0, 2928, 2928,
3510      2929, 2929, 2929,    0,    0,    0, 2929, 2930, 2930, 2930,
3511      2930,    0,    0, 2930, 2930, 2931, 2931, 2931,    0,    0,
3512         0, 2931, 2932, 2932, 2932, 2932,    0,    0, 2932, 2932,
3513      2933, 2933, 2933,    0,    0,    0, 2933, 2934, 2934, 2934,
3514      2934,    0,    0, 2934, 2934, 2935, 2935, 2935,    0,    0,
3515         0, 2935, 2936, 2936, 2936, 2936,    0,    0, 2936, 2936,
3516      2937, 2937, 2937,    0,    0,    0, 2937, 2938, 2938, 2938,
3517
3518      2938,    0,    0, 2938, 2938, 2939, 2939, 2939,    0,    0,
3519         0, 2939, 2940, 2940, 2940, 2940,    0,    0, 2940, 2940,
3520      2941, 2941, 2941,    0,    0,    0, 2941, 2942, 2942, 2942,
3521      2942,    0,    0, 2942, 2942, 2943, 2943, 2943,    0,    0,
3522         0, 2943, 2944, 2944, 2944, 2944,    0,    0, 2944, 2944,
3523      2945, 2945, 2945,    0,    0,    0, 2945, 2946, 2946, 2946,
3524      2946,    0,    0, 2946, 2946, 2947, 2947, 2947,    0,    0,
3525         0, 2947, 2948, 2948, 2948, 2948,    0,    0, 2948, 2948,
3526      2949, 2949, 2949,    0,    0,    0, 2949, 2950, 2950, 2950,
3527      2950,    0,    0, 2950, 2950, 2951, 2951, 2951,    0,    0,
3528
3529         0, 2951, 2952, 2952, 2952, 2952,    0,    0, 2952, 2952,
3530      2953, 2953, 2953,    0,    0,    0, 2953, 2954, 2954, 2954,
3531      2954,    0,    0, 2954, 2954, 2955, 2955, 2955, 2955,    0,
3532      2955,    0, 2955, 2956, 2956, 2956, 2956,    0,    0, 2956,
3533      2956, 2957, 2957, 2957, 2957,    0, 2957,    0, 2957, 2958,
3534      2958, 2958, 2958,    0,    0, 2958, 2958, 2959, 2959, 2959,
3535         0,    0,    0, 2959, 2960, 2960, 2960, 2960,    0,    0,
3536      2960, 2960, 2961, 2961, 2961, 2961,    0, 2961,    0, 2961,
3537      2962, 2962, 2962, 2962,    0,    0, 2962, 2962, 2963, 2963,
3538      2963, 2963,    0, 2963,    0, 2963, 2964, 2964, 2964, 2964,
3539
3540         0,    0, 2964, 2964, 2965, 2965, 2965,    0,    0,    0,
3541      2965, 2966, 2966, 2966, 2966,    0,    0, 2966, 2966, 2967,
3542      2967, 2967,    0,    0,    0, 2967, 2968, 2968, 2968, 2968,
3543         0,    0, 2968, 2968, 2969, 2969, 2969, 2969,    0,    0,
3544      2969, 2969, 2970, 2970, 2970,    0,    0,    0, 2970, 2971,
3545      2971, 2971, 2971,    0,    0, 2971, 2971, 2972, 2972, 2972,
3546      2972, 2972, 2972, 2972, 2972, 2972, 2973,    0, 2973,    0,
3547         0, 2973, 2974, 2974, 2974,    0,    0,    0, 2974, 2975,
3548      2975, 2975, 2975,    0,    0, 2975, 2975, 2976, 2976, 2976,
3549      2976,    0, 2976,    0, 2976, 2977, 2977, 2977, 2977,    0,
3550
3551         0, 2977, 2977, 2978, 2978, 2978, 2978,    0, 2978,    0,
3552      2978, 2979, 2979, 2979, 2979,    0,    0, 2979, 2979, 2980,
3553      2980, 2980,    0,    0,    0, 2980, 2981, 2981, 2981, 2981,
3554         0,    0, 2981, 2981, 2982, 2982, 2982,    0,    0,    0,
3555      2982, 2983, 2983, 2983, 2983,    0,    0, 2983, 2983, 2984,
3556      2984, 2984,    0,    0,    0, 2984, 2985, 2985, 2985, 2985,
3557         0,    0, 2985, 2985, 2986, 2986, 2986,    0,    0,    0,
3558      2986, 2987, 2987, 2987, 2987,    0,    0, 2987, 2987, 2988,
3559      2988, 2988,    0,    0,    0, 2988, 2989, 2989, 2989, 2989,
3560         0,    0, 2989, 2989, 2990, 2990, 2990, 2990,    0, 2990,
3561
3562         0, 2990, 2991, 2991, 2991, 2991,    0,    0, 2991, 2991,
3563      2992, 2992, 2992, 2992,    0, 2992,    0, 2992, 2993, 2993,
3564      2993, 2993,    0,    0, 2993, 2993, 2994, 2994, 2994,    0,
3565         0,    0, 2994, 2995, 2995, 2995, 2995,    0,    0, 2995,
3566      2995, 2996, 2996, 2996,    0,    0,    0, 2996, 2997, 2997,
3567      2997, 2997,    0,    0, 2997, 2997, 2998, 2998, 2998,    0,
3568         0,    0, 2998, 2999, 2999, 2999, 2999,    0,    0, 2999,
3569      2999, 3000, 3000, 3000,    0,    0,    0, 3000, 3001, 3001,
3570      3001, 3001,    0,    0, 3001, 3001, 3002, 3002, 3002,    0,
3571         0,    0, 3002, 3003, 3003, 3003, 3003,    0,    0, 3003,
3572
3573      3003, 3004, 3004, 3004,    0,    0,    0, 3004, 3005, 3005,
3574      3005, 3005,    0,    0, 3005, 3005, 3006, 3006, 3006,    0,
3575         0,    0, 3006, 3007, 3007, 3007, 3007,    0,    0, 3007,
3576      3007, 3008, 3008, 3008,    0,    0,    0, 3008, 3009, 3009,
3577      3009, 3009,    0,    0, 3009, 3009, 3010, 3010, 3010, 3010,
3578         0,    0, 3010, 3010, 3011, 3011, 3011,    0,    0,    0,
3579      3011, 3012, 3012, 3012, 3012,    0,    0, 3012, 3012, 3013,
3580      3013, 3013,    0,    0,    0, 3013, 3014, 3014, 3014, 3014,
3581         0,    0, 3014, 3014, 3015, 3015, 3015,    0,    0,    0,
3582      3015, 3016, 3016, 3016, 3016,    0,    0, 3016, 3016, 3017,
3583
3584      3017, 3017, 3017,    0,    0, 3017, 3017, 3018, 3018, 3018,
3585         0,    0,    0, 3018, 3019, 3019, 3019, 3019,    0,    0,
3586      3019, 3019, 3020, 3020, 3020, 3020, 3020, 3020, 3020, 3020,
3587      3020, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021,
3588      3022, 3022, 3022,    0,    0,    0, 3022, 3023, 3023, 3023,
3589      3023,    0,    0, 3023, 3023, 3024, 3024, 3024, 3024,    0,
3590         0, 3024, 3024, 3025, 3025, 3025,    0,    0,    0, 3025,
3591      3026, 3026, 3026, 3026,    0,    0, 3026, 3026, 3027, 3027,
3592      3027,    0,    0,    0, 3027, 3028, 3028, 3028, 3028,    0,
3593         0, 3028, 3028, 3029, 3029, 3029,    0,    0,    0, 3029,
3594
3595      3030, 3030, 3030, 3030,    0,    0, 3030, 3030, 3031, 3031,
3596      3031,    0,    0,    0, 3031, 3032, 3032, 3032,    0,    0,
3597         0, 3032, 3033, 3033, 3033, 3033,    0,    0, 3033, 3033,
3598      3034, 3034, 3034,    0,    0,    0, 3034, 3035, 3035, 3035,
3599      3035,    0,    0, 3035, 3035, 3036, 3036, 3036, 3036,    0,
3600         0, 3036, 3036, 3037, 3037, 3037,    0,    0,    0, 3037,
3601      3038, 3038, 3038, 3038,    0,    0, 3038, 3038, 3039, 3039,
3602      3039,    0,    0,    0, 3039, 3040, 3040, 3040, 3040,    0,
3603         0, 3040, 3040, 3041, 3041, 3041,    0,    0,    0, 3041,
3604      3042, 3042, 3042, 3042,    0,    0, 3042, 3042, 3043, 3043,
3605
3606      3043,    0,    0,    0, 3043, 3044, 3044, 3044, 3044,    0,
3607         0, 3044, 3044, 3045, 3045, 3045,    0,    0,    0, 3045,
3608      3046, 3046, 3046, 3046,    0,    0, 3046, 3046, 3047, 3047,
3609      3047,    0,    0,    0, 3047, 3048, 3048, 3048, 3048,    0,
3610         0, 3048, 3048, 3049, 3049, 3049,    0,    0,    0, 3049,
3611      3050, 3050, 3050, 3050,    0,    0, 3050, 3050, 3051, 3051,
3612      3051,    0,    0,    0, 3051, 3052, 3052, 3052, 3052,    0,
3613         0, 3052, 3052, 3053, 3053, 3053,    0,    0,    0, 3053,
3614      3054, 3054, 3054, 3054,    0,    0, 3054, 3054, 3055, 3055,
3615      3055, 3055,    0,    0, 3055, 3055, 3056, 3056, 3056,    0,
3616
3617         0,    0, 3056, 3057, 3057, 3057, 3057,    0,    0, 3057,
3618      3057, 3058, 3058, 3058,    0,    0,    0, 3058, 3059, 3059,
3619      3059, 3059,    0,    0, 3059, 3059, 3060, 3060, 3060, 3060,
3620         0, 3060,    0, 3060, 3061, 3061, 3061, 3061,    0,    0,
3621      3061, 3061, 3062, 3062, 3062, 3062,    0,    0, 3062, 3062,
3622      3063, 3063, 3063, 3063,    0, 3063,    0, 3063, 3064, 3064,
3623      3064, 3064,    0,    0, 3064, 3064, 3065, 3065, 3065, 3065,
3624      3065, 3065, 3065, 3065, 3065, 3066, 3066, 3066, 3066, 3066,
3625      3066, 3066, 3066, 3066, 3067, 3067, 3067,    0,    0,    0,
3626      3067, 3068, 3068, 3068, 3068,    0,    0, 3068, 3068, 3069,
3627
3628      3069, 3069, 3069,    0,    0, 3069, 3069, 3070, 3070, 3070,
3629         0,    0,    0, 3070, 3071, 3071, 3071, 3071,    0,    0,
3630      3071, 3071, 3072, 3072, 3072,    0,    0,    0, 3072, 3073,
3631      3073, 3073, 3073,    0,    0, 3073, 3073, 3074, 3074, 3074,
3632         0,    0,    0, 3074, 3075, 3075, 3075, 3075,    0,    0,
3633      3075, 3075, 3076, 3076, 3076,    0,    0,    0, 3076, 3077,
3634      3077, 3077,    0,    0,    0, 3077, 3078, 3078, 3078, 3078,
3635         0,    0, 3078, 3078, 3079, 3079, 3079, 3079,    0, 3079,
3636         0, 3079, 3080, 3080, 3080, 3080,    0,    0, 3080, 3080,
3637      3081, 3081, 3081, 3081,    0,    0, 3081, 3081, 3082, 3082,
3638
3639      3082, 3082,    0, 3082,    0, 3082, 3083, 3083, 3083, 3083,
3640         0,    0, 3083, 3083, 3084, 3084, 3084,    0,    0,    0,
3641      3084, 3085, 3085, 3085, 3085,    0,    0, 3085, 3085, 3086,
3642      3086, 3086,    0,    0,    0, 3086, 3087, 3087, 3087, 3087,
3643         0,    0, 3087, 3087, 3088, 3088, 3088,    0,    0,    0,
3644      3088, 3089, 3089, 3089, 3089,    0,    0, 3089, 3089, 3090,
3645      3090, 3090,    0,    0,    0, 3090, 3091, 3091, 3091, 3091,
3646         0,    0, 3091, 3091, 3092, 3092, 3092,    0,    0,    0,
3647      3092, 3093, 3093, 3093, 3093,    0,    0, 3093, 3093, 3094,
3648      3094, 3094,    0,    0,    0, 3094, 3095, 3095, 3095, 3095,
3649
3650         0,    0, 3095, 3095, 3096, 3096, 3096, 3096,    0, 3096,
3651         0, 3096, 3097, 3097, 3097, 3097,    0,    0, 3097, 3097,
3652      3098, 3098, 3098,    0,    0,    0, 3098, 3099, 3099, 3099,
3653      3099,    0,    0, 3099, 3099, 3100, 3100, 3100, 3100,    0,
3654         0, 3100, 3100, 3101, 3101, 3101, 3101,    0, 3101,    0,
3655      3101, 3102, 3102, 3102, 3102,    0,    0, 3102, 3102, 3103,
3656      3103, 3103,    0,    0,    0, 3103, 3104, 3104, 3104, 3104,
3657         0,    0, 3104, 3104, 3105, 3105, 3105, 3105,    0,    0,
3658      3105, 3105, 3106, 3106, 3106, 3106,    0,    0, 3106, 3106,
3659      3107, 3107, 3107, 3107,    0,    0, 3107, 3107, 3108, 3108,
3660
3661      3108, 3108, 3108, 3108, 3108, 3108, 3108, 3109, 3109, 3109,
3662      3109, 3109, 3109, 3109, 3109, 3109, 3110, 3110, 3110, 3110,
3663         0, 3110,    0, 3110, 3111, 3111, 3111, 3111,    0,    0,
3664      3111, 3111, 3112, 3112, 3112, 3112,    0,    0, 3112, 3112,
3665      3113, 3113, 3113,    0,    0,    0, 3113, 3114, 3114, 3114,
3666      3114,    0,    0, 3114, 3114, 3115, 3115, 3115,    0,    0,
3667         0, 3115, 3116, 3116, 3116, 3116,    0,    0, 3116, 3116,
3668      3117, 3117, 3117, 3117,    0, 3117,    0, 3117, 3118, 3118,
3669      3118, 3118,    0,    0, 3118, 3118, 3119, 3119, 3119, 3119,
3670         0, 3119,    0, 3119, 3120, 3120, 3120, 3120,    0, 3120,
3671
3672         0, 3120, 3121, 3121, 3121, 3121,    0,    0, 3121, 3121,
3673      3122, 3122, 3122, 3122,    0,    0, 3122, 3122, 3123, 3123,
3674      3123, 3123,    0,    0, 3123, 3123, 3124, 3124, 3124, 3124,
3675         0,    0, 3124, 3124, 3125, 3125, 3125,    0,    0,    0,
3676      3125, 3126, 3126, 3126,    0,    0,    0, 3126, 3127, 3127,
3677      3127, 3127,    0,    0, 3127, 3127, 3128, 3128, 3128,    0,
3678         0,    0, 3128, 3129, 3129, 3129,    0,    0,    0, 3129,
3679      3130, 3130, 3130, 3130,    0,    0, 3130, 3130, 3131, 3131,
3680      3131,    0,    0,    0, 3131, 3132, 3132, 3132,    0,    0,
3681         0, 3132, 3133, 3133, 3133, 3133,    0,    0, 3133, 3133,
3682
3683      3134, 3134, 3134,    0,    0,    0, 3134, 3135, 3135, 3135,
3684      3135,    0,    0, 3135, 3135, 3136, 3136, 3136,    0,    0,
3685         0, 3136, 3137, 3137, 3137, 3137,    0,    0, 3137, 3137,
3686      3138, 3138, 3138, 3138,    0,    0, 3138, 3138, 3139, 3139,
3687      3139, 3139,    0,    0, 3139, 3139, 3140, 3140, 3140,    0,
3688         0,    0, 3140, 3141, 3141, 3141, 3141,    0,    0, 3141,
3689      3141, 3142, 3142, 3142, 3142,    0,    0, 3142, 3142, 3143,
3690      3143, 3143, 3143,    0,    0, 3143, 3143, 3144, 3144, 3144,
3691      3144, 3144, 3144, 3144, 3144, 3144, 3145, 3145, 3145, 3145,
3692      3145, 3145, 3145, 3145, 3145, 3146, 3146, 3146, 3146,    0,
3693
3694         0, 3146, 3146, 3147, 3147, 3147, 3147,    0,    0, 3147,
3695      3147, 3148, 3148, 3148,    0,    0,    0, 3148, 3149, 3149,
3696      3149,    0,    0,    0, 3149, 3150, 3150, 3150, 3150,    0,
3697         0, 3150, 3150, 3151, 3151, 3151, 3151,    0,    0, 3151,
3698      3151, 3152, 3152, 3152, 3152,    0,    0, 3152, 3152, 3153,
3699      3153, 3153, 3153,    0,    0, 3153, 3153, 3154, 3154, 3154,
3700      3154,    0,    0, 3154, 3154, 3155, 3155, 3155,    0,    0,
3701         0, 3155, 3156, 3156, 3156,    0,    0,    0, 3156, 3157,
3702      3157, 3157, 3157,    0,    0, 3157, 3157, 3158, 3158, 3158,
3703         0,    0,    0, 3158, 3159, 3159, 3159,    0,    0,    0,
3704
3705      3159, 3160, 3160, 3160, 3160,    0,    0, 3160, 3160, 3161,
3706      3161, 3161,    0,    0,    0, 3161, 3162, 3162, 3162,    0,
3707         0,    0, 3162, 3163, 3163, 3163,    0,    0,    0, 3163,
3708      3164, 3164, 3164, 3164,    0,    0, 3164, 3164, 3165, 3165,
3709      3165,    0,    0,    0, 3165, 3166, 3166, 3166, 3166,    0,
3710         0, 3166, 3166, 3167, 3167, 3167, 3167,    0,    0, 3167,
3711      3167, 3168, 3168, 3168, 3168,    0,    0, 3168, 3168, 3169,
3712      3169, 3169, 3169,    0, 3169,    0, 3169, 3170, 3170, 3170,
3713      3170,    0,    0, 3170, 3170, 3171, 3171, 3171, 3171,    0,
3714         0, 3171, 3171, 3172, 3172, 3172, 3172,    0,    0, 3172,
3715
3716      3172, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173, 3173,
3717      3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3174, 3175,
3718      3175, 3175, 3175,    0,    0, 3175, 3175, 3176, 3176, 3176,
3719      3176,    0,    0, 3176, 3176, 3177, 3177, 3177,    0,    0,
3720         0, 3177, 3178, 3178, 3178, 3178,    0, 3178,    0, 3178,
3721      3179, 3179, 3179, 3179,    0,    0, 3179, 3179, 3180, 3180,
3722      3180, 3180,    0,    0, 3180, 3180, 3181, 3181, 3181, 3181,
3723         0,    0, 3181, 3181, 3182, 3182, 3182, 3182,    0,    0,
3724      3182, 3182, 3183, 3183, 3183,    0,    0,    0, 3183, 3184,
3725      3184, 3184,    0,    0,    0, 3184, 3185, 3185, 3185, 3185,
3726
3727         0,    0, 3185, 3185, 3186, 3186, 3186,    0,    0,    0,
3728      3186, 3187, 3187, 3187,    0,    0,    0, 3187, 3188, 3188,
3729      3188, 3188, 3188, 3188, 3188, 3188, 3188, 3189, 3189, 3189,
3730      3189, 3189, 3189, 3189, 3189, 3189, 3190, 3190, 3190, 3190,
3731      3190, 3190, 3190, 3190, 3190, 3191, 3191, 3191, 3191, 3191,
3732      3191, 3191, 3191, 3191, 3192, 3192, 3192, 3192, 3192, 3192,
3733      3192, 3192, 3192, 3193, 3193, 3193, 3193, 3193, 3193, 3193,
3734      3193, 3193, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3735      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3736      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3737
3738      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3739      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3740      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3741      2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796, 2796,
3742      2796, 2796, 2796, 2796, 2796, 2796
3743     } ;
3744
3745 /* Table of booleans, true if rule could match eol. */
3746 static yyconst flex_int32_t yy_rule_can_match_eol[475] =
3747     {   0,
3748 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3749     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3750     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3751     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3752     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3753     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3754     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3755     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
3756     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
3757     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
3758     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3759     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3760     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3761     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
3762     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3763     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3764     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3765     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3766     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3767     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
3768     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3769     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3770     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 
3771     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3772
3773 static yy_state_type yy_last_accepting_state;
3774 static char *yy_last_accepting_cpos;
3775
3776 extern int surf_parse__flex_debug;
3777 int surf_parse__flex_debug = 0;
3778
3779 /* The intent behind this definition is that it'll catch
3780  * any uses of REJECT which flex missed.
3781  */
3782 #define REJECT reject_used_but_not_detected
3783 #define yymore() yymore_used_but_not_detected
3784 #define YY_MORE_ADJ 0
3785 #define YY_RESTORE_YY_MORE_OFFSET
3786 char *surf_parse_text;
3787 /* Validating XML processor for src/surf/simgrid.dtd.
3788  *
3789  * This program was generated with the FleXML XML processor generator.
3790  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3791  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3792  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3793  * 
3794  * There are two, intertwined parts to this program, part A and part B.
3795  *
3796  * Part A
3797  * ------
3798  * 
3799  * Some parts, here collectively called "Part A", are found in the 
3800  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3801  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3802  *
3803  * You can redistribute, use, perform, display and/or modify "Part A"
3804  * provided the following two conditions hold:
3805  *
3806  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3807  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3808  *    FITNESS FOR A PARTICULAR PURPOSE.
3809  *
3810  * 2. The program distribution conditions do not in any way affect the
3811  *    distribution conditions of the FleXML system used to generate this
3812  *    file or any version of FleXML derived from that system.
3813  *
3814  * Notice that these are explicit rights granted to you for files
3815  * generated by the FleXML system.  For your rights in connection with
3816  * the FleXML system itself please consult the GNU General Public License.
3817  * 
3818  * Part B
3819  * ------
3820  * 
3821  * The other parts, here collectively called "Part B", and which came 
3822  * from the DTD used by FleXML to generate this program, can be 
3823  * distributed (or not, as the case may be) under the terms of whoever
3824  * wrote them, provided these terms respect and obey the two conditions 
3825  * above under the heading "Part A".
3826  *
3827  * The author of and contributors to FleXML specifically disclaim
3828  * any copyright interest in "Part B", unless "Part B" was written 
3829  * by the author of or contributors to FleXML.
3830  * 
3831  */
3832
3833 /* Version strings. */
3834 const char rcs_surfxml_flexml_skeleton[] =
3835  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3836 const char rcs_surfxml_flexml[] =
3837  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3838
3839 /* ANSI headers. */
3840 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3841 #include <stdio.h>
3842 #include <string.h>
3843 #include <assert.h>
3844 #include <stdarg.h>
3845 #include <ctype.h>
3846      
3847 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3848 # ifndef __STRICT_ANSI__
3849 #  include <io.h>
3850 #  include <process.h>
3851 # endif
3852 #else
3853 # include <unistd.h>
3854 #endif
3855      
3856 #ifndef FLEXML_INDEXSTACKSIZE
3857 #define FLEXML_INDEXSTACKSIZE 1000
3858 #endif
3859
3860 /* Generated definitions. */
3861 #define FLEXML_yylineno
3862 #ifndef FLEXML_BUFFERSTACKSIZE
3863 #define FLEXML_BUFFERSTACKSIZE 1000000
3864 #endif
3865 #define FLEXML_NEED_BUFFERLIT
3866
3867 /* XML processor api. */
3868 /* FleXML-provided data. */
3869 int surfxml_pcdata_ix;
3870 extern char *surfxml_bufferstack;
3871 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3872 AT_surfxml_mount_name AX_surfxml_mount_name;
3873 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3874 short int surfxml_mount_name_isset;
3875 AT_surfxml_random_generator AX_surfxml_random_generator;
3876 #define A_surfxml_random_generator AX_surfxml_random_generator
3877 short int surfxml_random_generator_isset;
3878 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3879 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3880 short int surfxml_ASroute_gw_dst_isset;
3881 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3882 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3883 short int surfxml_trace_connect_element_isset;
3884 AT_surfxml_prop_id AX_surfxml_prop_id;
3885 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3886 short int surfxml_prop_id_isset;
3887 AT_surfxml_host_id AX_surfxml_host_id;
3888 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3889 short int surfxml_host_id_isset;
3890 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3891 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3892 short int surfxml_ASroute_symmetrical_isset;
3893 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3894 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3895 short int surfxml_peer_lat_isset;
3896 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3897 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3898 short int surfxml_link_latency_file_isset;
3899 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3900 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3901 short int surfxml_peer_availability_file_isset;
3902 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3903 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3904 short int surfxml_link_ctn_direction_isset;
3905 AT_surfxml_host_state AX_surfxml_host_state;
3906 #define A_surfxml_host_state AX_surfxml_host_state
3907 short int surfxml_host_state_isset;
3908 AT_surfxml_AS_id AX_surfxml_AS_id;
3909 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3910 short int surfxml_AS_id_isset;
3911 AT_surfxml_host_power AX_surfxml_host_power;
3912 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3913 short int surfxml_host_power_isset;
3914 AT_surfxml_router_id AX_surfxml_router_id;
3915 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3916 short int surfxml_router_id_isset;
3917 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3918 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3919 short int surfxml_storage_type_id_isset;
3920 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3921 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3922 short int surfxml_process_start_time_isset;
3923 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3924 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3925 short int surfxml_cluster_suffix_isset;
3926 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
3927 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
3928 short int surfxml_bypassASroute_dst_isset;
3929 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3930 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3931 short int surfxml_ASroute_src_isset;
3932 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3933 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3934 short int surfxml_cluster_prefix_isset;
3935 AT_surfxml_trace_file AX_surfxml_trace_file;
3936 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3937 short int surfxml_trace_file_isset;
3938 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3939 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3940 short int surfxml_link_sharing_policy_isset;
3941 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3942 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3943 short int surfxml_storage_typeId_isset;
3944 AT_surfxml_random_min AX_surfxml_random_min;
3945 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3946 short int surfxml_random_min_isset;
3947 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3948 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3949 short int surfxml_link_ctn_id_isset;
3950 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3951 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3952 short int surfxml_peer_bw_out_isset;
3953 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3954 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3955 short int surfxml_cluster_availability_file_isset;
3956 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3957 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3958 short int surfxml_process_kill_time_isset;
3959 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3960 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3961 short int surfxml_cluster_bb_bw_isset;
3962 AT_surfxml_argument_value AX_surfxml_argument_value;
3963 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3964 short int surfxml_argument_value_isset;
3965 AT_surfxml_link_state AX_surfxml_link_state;
3966 #define A_surfxml_link_state AX_surfxml_link_state
3967 short int surfxml_link_state_isset;
3968 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3969 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3970 short int surfxml_ASroute_gw_src_isset;
3971 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3972 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3973 short int surfxml_AS_routing_isset;
3974 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3975 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3976 short int surfxml_link_bandwidth_isset;
3977 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3978 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3979 short int surfxml_cluster_id_isset;
3980 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3981 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3982 short int surfxml_peer_bw_in_isset;
3983 AT_surfxml_random_mean AX_surfxml_random_mean;
3984 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3985 short int surfxml_random_mean_isset;
3986 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
3987 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
3988 short int surfxml_storage_type_size_isset;
3989 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3990 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3991 short int surfxml_cluster_bb_lat_isset;
3992 AT_surfxml_link_latency AX_surfxml_link_latency;
3993 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3994 short int surfxml_link_latency_isset;
3995 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3996 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3997 short int surfxml_trace_connect_kind_isset;
3998 AT_surfxml_random_seed AX_surfxml_random_seed;
3999 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4000 short int surfxml_random_seed_isset;
4001 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4002 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4003 short int surfxml_cluster_state_file_isset;
4004 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4005 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4006 short int surfxml_link_bandwidth_file_isset;
4007 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4008 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4009 short int surfxml_storage_type_content_isset;
4010 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4011 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4012 short int surfxml_route_symmetrical_isset;
4013 AT_surfxml_random_id AX_surfxml_random_id;
4014 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4015 short int surfxml_random_id_isset;
4016 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4017 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4018 short int surfxml_mstorage_name_isset;
4019 AT_surfxml_random_max AX_surfxml_random_max;
4020 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4021 short int surfxml_random_max_isset;
4022 AT_surfxml_link_id AX_surfxml_link_id;
4023 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4024 short int surfxml_link_id_isset;
4025 AT_surfxml_process_host AX_surfxml_process_host;
4026 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4027 short int surfxml_process_host_isset;
4028 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4029 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4030 short int surfxml_host_availability_file_isset;
4031 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4032 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4033 short int surfxml_cluster_lat_isset;
4034 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4035 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4036 short int surfxml_trace_periodicity_isset;
4037 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4038 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4039 short int surfxml_cluster_bb_sharing_policy_isset;
4040 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4041 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4042 short int surfxml_router_coordinates_isset;
4043 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4044 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4045 short int surfxml_peer_coordinates_isset;
4046 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4047 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4048 short int surfxml_peer_state_file_isset;
4049 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4050 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4051 short int surfxml_bypassASroute_src_isset;
4052 AT_surfxml_prop_value AX_surfxml_prop_value;
4053 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4054 short int surfxml_prop_value_isset;
4055 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4056 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4057 short int surfxml_mstorage_typeId_isset;
4058 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4059 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4060 short int surfxml_ASroute_dst_isset;
4061 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4062 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4063 short int surfxml_link_state_file_isset;
4064 AT_surfxml_random_radical AX_surfxml_random_radical;
4065 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4066 short int surfxml_random_radical_isset;
4067 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4068 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4069 short int surfxml_bypassASroute_gw_src_isset;
4070 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4071 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4072 short int surfxml_trace_connect_trace_isset;
4073 AT_surfxml_mount_id AX_surfxml_mount_id;
4074 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4075 short int surfxml_mount_id_isset;
4076 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4077 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4078 short int surfxml_cluster_power_isset;
4079 AT_surfxml_process_function AX_surfxml_process_function;
4080 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4081 short int surfxml_process_function_isset;
4082 AT_surfxml_peer_id AX_surfxml_peer_id;
4083 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4084 short int surfxml_peer_id_isset;
4085 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4086 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4087 short int surfxml_cluster_router_id_isset;
4088 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4089 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4090 short int surfxml_cluster_sharing_policy_isset;
4091 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4092 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4093 short int surfxml_bypassRoute_dst_isset;
4094 AT_surfxml_host_core AX_surfxml_host_core;
4095 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4096 short int surfxml_host_core_isset;
4097 AT_surfxml_host_availability AX_surfxml_host_availability;
4098 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4099 short int surfxml_host_availability_isset;
4100 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4101 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4102 short int surfxml_storage_type_model_isset;
4103 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4104 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4105 short int surfxml_bypassRoute_src_isset;
4106 AT_surfxml_route_src AX_surfxml_route_src;
4107 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4108 short int surfxml_route_src_isset;
4109 AT_surfxml_storage_id AX_surfxml_storage_id;
4110 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4111 short int surfxml_storage_id_isset;
4112 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4113 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4114 short int surfxml_host_coordinates_isset;
4115 AT_surfxml_trace_id AX_surfxml_trace_id;
4116 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4117 short int surfxml_trace_id_isset;
4118 AT_surfxml_peer_power AX_surfxml_peer_power;
4119 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4120 short int surfxml_peer_power_isset;
4121 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4122 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4123 short int surfxml_cluster_radical_isset;
4124 AT_surfxml_config_id AX_surfxml_config_id;
4125 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4126 short int surfxml_config_id_isset;
4127 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4128 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4129 short int surfxml_bypassASroute_gw_dst_isset;
4130 AT_surfxml_include_file AX_surfxml_include_file;
4131 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4132 short int surfxml_include_file_isset;
4133 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4134 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4135 short int surfxml_random_std_deviation_isset;
4136 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4137 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4138 short int surfxml_cluster_core_isset;
4139 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4140 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4141 short int surfxml_host_state_file_isset;
4142 AT_surfxml_route_dst AX_surfxml_route_dst;
4143 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4144 short int surfxml_route_dst_isset;
4145 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4146 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4147 short int surfxml_cluster_bw_isset;
4148 AT_surfxml_platform_version AX_surfxml_platform_version;
4149 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4150 short int surfxml_platform_version_isset;
4151
4152 /* XML state. */
4153 #ifdef FLEX_DEBUG
4154 # define ENTER(state)   debug_enter(state,#state)
4155 # define LEAVE          debug_leave()
4156 # define SET(state)     debug_set(state,#state)
4157   static void debug_enter(int, const char*);
4158   static void debug_leave(void);
4159   static void debug_set(int, const char*);
4160 #else
4161 # define ENTER(state)   (yy_push_state(state))
4162 # define LEAVE          (yy_pop_state())
4163 # define SET(state)     BEGIN(state)
4164 #endif
4165
4166 /* Generic actions. */
4167 #define SKIP    /*skip*/
4168 #define SUCCEED        CLEANUP; return 0
4169
4170 #define FAIL    return fail
4171 static int fail(const char*, ...);
4172
4173 enum {flexml_max_err_msg_size = 512};
4174 static char flexml_err_msg[flexml_max_err_msg_size];
4175 const char * surfxml_parse_err_msg()
4176 {
4177     return flexml_err_msg;
4178 }
4179 static void reset_surfxml_parse_err_msg()
4180 {
4181     flexml_err_msg[0] = '\0';
4182 }
4183
4184 /* Cleanup */
4185 static void cleanup(void);
4186 #define CLEANUP  cleanup()
4187
4188 /* Text buffer stack handling. */
4189 char *surfxml_bufferstack = NULL;
4190 static int blimit = FLEXML_BUFFERSTACKSIZE;
4191 static int bnext = 1;
4192
4193 static int *indexstack = NULL;
4194 static int ilimit = FLEXML_INDEXSTACKSIZE;
4195 static int inext = 1;
4196
4197 #define BUFFERSET(P)  (P = bnext)
4198 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4199 #define BUFFERDONE    (BUFFERPUTC('\0'))
4200
4201 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4202
4203 /* after this is called, there are at least 2 slots left in the stack */
4204 static int ck_blimit()
4205 {
4206      if (bnext >= blimit) {
4207          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4208          {
4209              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4210              assert(temp);
4211              surfxml_bufferstack = temp;
4212          }
4213      }
4214      return 0;
4215 }
4216
4217 /* after this is called, there are at least 2 slots left in the stack */
4218 static int ck_ilimit()
4219 {
4220      if (inext >= ilimit) {
4221          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4222          {
4223              int *temp = (int *) realloc(indexstack, ilimit);
4224              assert(temp);
4225              indexstack = temp;
4226          }
4227      }
4228      return 0;
4229 }
4230
4231 #ifdef FLEXML_NEED_BUFFERLIT
4232 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4233 {
4234   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4235   assert(s <= e); BUFFERSET(*pp);
4236   while (++s<e) {
4237     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4238     else BUFFERPUTC(*s);
4239   }
4240   BUFFERDONE;
4241 }
4242 #endif
4243
4244 static void pushbuffer(int p)
4245 {
4246     ck_ilimit();
4247     indexstack[inext++] = p;
4248     indexstack[inext++] = bnext;    
4249 }
4250
4251 static int popbuffer(void)
4252 {
4253     assert(inext >= 2);
4254     bnext = indexstack[--inext];
4255     return indexstack[--inext];
4256 }
4257
4258 /* General internal entities are `unput' back onto the input stream... */
4259 #define ENTITYTEXT(T) \
4260   { char *s = (T), *e = s+strlen(s);\
4261     while (--e >= s) { unput(*e); }}
4262
4263 /* Flex standard options. */
4264 #define YY_NO_INPUT 1
4265 /* Flex user-requested options. */
4266 /* XML character classes (currently restricted to ASCII). */
4267 /* "Common syntactic structures." */
4268 /* "Names and Tokens." */
4269 /* Miscellaneous. */
4270 /* Parser states (flex `exclusive start conditions'):
4271  *
4272  * PROLOG       the XML prolog of the document before <?xml...>
4273  * DOCTYPE      the XML prolog of the document after <?xml...>
4274  * EPILOG       after the root element
4275  * INCOMMENT    inside an XML comment <!--....-->
4276  * INPI         inside an XML PI <?...?>
4277  * VALUE1       inside a '...'-delimited literal
4278  * VALUE2       inside a "..."-delimited literal
4279  * CDATA        inside a <![CDATA[...] ]> section.
4280  * ROOT_<tag>   expect root element <tag>
4281  * AL_<tag>     inside the attribute list for <tag>
4282  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4283  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4284  */
4285
4286 /* State names. */
4287 const char* *surfxml_statenames=NULL;
4288
4289 #define INITIAL 0
4290 #define PROLOG 1
4291 #define DOCTYPE 2
4292 #define EPILOG 3
4293 #define INCOMMENT 4
4294 #define INPI 5
4295 #define VALUE1 6
4296 #define VALUE2 7
4297 #define CDATA 8
4298 #define ROOT_surfxml_platform 9
4299 #define AL_surfxml_platform 10
4300 #define S_surfxml_platform 11
4301 #define S_surfxml_platform_1 12
4302 #define S_surfxml_platform_2 13
4303 #define S_surfxml_platform_3 14
4304 #define S_surfxml_platform_4 15
4305 #define S_surfxml_platform_5 16
4306 #define S_surfxml_platform_6 17
4307 #define S_surfxml_platform_7 18
4308 #define S_surfxml_platform_8 19
4309 #define E_surfxml_platform 20
4310 #define AL_surfxml_include 21
4311 #define S_surfxml_include 22
4312 #define S_surfxml_include_1 23
4313 #define S_surfxml_include_2 24
4314 #define E_surfxml_include 25
4315 #define AL_surfxml_trace 26
4316 #define IN_trace 27
4317 #define AL_surfxml_random 28
4318 #define S_surfxml_random 29
4319 #define S_surfxml_random_1 30
4320 #define S_surfxml_random_2 31
4321 #define E_surfxml_random 32
4322 #define AL_surfxml_trace_connect 33
4323 #define E_surfxml_trace_connect 34
4324 #define AL_surfxml_AS 35
4325 #define S_surfxml_AS 36
4326 #define S_surfxml_AS_1 37
4327 #define S_surfxml_AS_2 38
4328 #define S_surfxml_AS_3 39
4329 #define S_surfxml_AS_4 40
4330 #define S_surfxml_AS_5 41
4331 #define S_surfxml_AS_6 42
4332 #define S_surfxml_AS_7 43
4333 #define S_surfxml_AS_8 44
4334 #define S_surfxml_AS_9 45
4335 #define S_surfxml_AS_10 46
4336 #define S_surfxml_AS_11 47
4337 #define S_surfxml_AS_12 48
4338 #define S_surfxml_AS_13 49
4339 #define E_surfxml_AS 50
4340 #define AL_surfxml_storage_type 51
4341 #define S_surfxml_storage_type 52
4342 #define S_surfxml_storage_type_1 53
4343 #define S_surfxml_storage_type_2 54
4344 #define E_surfxml_storage_type 55
4345 #define AL_surfxml_storage 56
4346 #define S_surfxml_storage 57
4347 #define S_surfxml_storage_1 58
4348 #define S_surfxml_storage_2 59
4349 #define E_surfxml_storage 60
4350 #define AL_surfxml_mount 61
4351 #define E_surfxml_mount 62
4352 #define AL_surfxml_mstorage 63
4353 #define E_surfxml_mstorage 64
4354 #define AL_surfxml_host 65
4355 #define S_surfxml_host 66
4356 #define S_surfxml_host_1 67
4357 #define S_surfxml_host_2 68
4358 #define E_surfxml_host 69
4359 #define AL_surfxml_cluster 70
4360 #define E_surfxml_cluster 71
4361 #define AL_surfxml_peer 72
4362 #define E_surfxml_peer 73
4363 #define AL_surfxml_router 74
4364 #define E_surfxml_router 75
4365 #define AL_surfxml_link 76
4366 #define S_surfxml_link 77
4367 #define S_surfxml_link_1 78
4368 #define S_surfxml_link_2 79
4369 #define E_surfxml_link 80
4370 #define AL_surfxml_route 81
4371 #define S_surfxml_route 82
4372 #define S_surfxml_route_1 83
4373 #define S_surfxml_route_2 84
4374 #define E_surfxml_route 85
4375 #define AL_surfxml_ASroute 86
4376 #define S_surfxml_ASroute 87
4377 #define S_surfxml_ASroute_1 88
4378 #define S_surfxml_ASroute_2 89
4379 #define E_surfxml_ASroute 90
4380 #define AL_surfxml_link_ctn 91
4381 #define E_surfxml_link_ctn 92
4382 #define AL_surfxml_bypassRoute 93
4383 #define S_surfxml_bypassRoute 94
4384 #define S_surfxml_bypassRoute_1 95
4385 #define S_surfxml_bypassRoute_2 96
4386 #define E_surfxml_bypassRoute 97
4387 #define AL_surfxml_bypassASroute 98
4388 #define S_surfxml_bypassASroute 99
4389 #define S_surfxml_bypassASroute_1 100
4390 #define S_surfxml_bypassASroute_2 101
4391 #define E_surfxml_bypassASroute 102
4392 #define AL_surfxml_process 103
4393 #define S_surfxml_process 104
4394 #define S_surfxml_process_1 105
4395 #define S_surfxml_process_2 106
4396 #define E_surfxml_process 107
4397 #define AL_surfxml_argument 108
4398 #define E_surfxml_argument 109
4399 #define AL_surfxml_config 110
4400 #define S_surfxml_config 111
4401 #define S_surfxml_config_1 112
4402 #define S_surfxml_config_2 113
4403 #define E_surfxml_config 114
4404 #define AL_surfxml_prop 115
4405 #define E_surfxml_prop 116
4406 #define IMPOSSIBLE 117
4407
4408 #ifndef YY_NO_UNISTD_H
4409 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4410  * down here because we want the user's section 1 to have been scanned first.
4411  * The user has a chance to override it with an option.
4412  */
4413 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4414 #  ifndef __STRICT_ANSI__
4415 #    include <io.h>
4416 #    include <process.h>
4417 #  endif
4418 #else
4419 #  include <unistd.h>
4420 #endif
4421 #endif
4422
4423 #ifndef YY_EXTRA_TYPE
4424 #define YY_EXTRA_TYPE void *
4425 #endif
4426
4427 static int yy_init_globals (void );
4428
4429 /* Accessor methods to globals.
4430    These are made visible to non-reentrant scanners for convenience. */
4431
4432 int surf_parse_lex_destroy (void );
4433
4434 int surf_parse_get_debug (void );
4435
4436 void surf_parse_set_debug (int debug_flag  );
4437
4438 YY_EXTRA_TYPE surf_parse_get_extra (void );
4439
4440 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4441
4442 FILE *surf_parse_get_in (void );
4443
4444 void surf_parse_set_in  (FILE * in_str  );
4445
4446 FILE *surf_parse_get_out (void );
4447
4448 void surf_parse_set_out  (FILE * out_str  );
4449
4450 int surf_parse_get_leng (void );
4451
4452 char *surf_parse_get_text (void );
4453
4454 int surf_parse_get_lineno (void );
4455
4456 void surf_parse_set_lineno (int line_number  );
4457
4458 /* Macros after this point can all be overridden by user definitions in
4459  * section 1.
4460  */
4461
4462 #ifndef YY_SKIP_YYWRAP
4463 #ifdef __cplusplus
4464 extern "C" int surf_parse_wrap (void );
4465 #else
4466 extern int surf_parse_wrap (void );
4467 #endif
4468 #endif
4469
4470 #ifndef yytext_ptr
4471 static void yy_flex_strncpy (char *,yyconst char *,int );
4472 #endif
4473
4474 #ifdef YY_NEED_STRLEN
4475 static int yy_flex_strlen (yyconst char * );
4476 #endif
4477
4478 #ifndef YY_NO_INPUT
4479
4480 #ifdef __cplusplus
4481 static int yyinput (void );
4482 #else
4483 static int input (void );
4484 #endif
4485
4486 #endif
4487
4488         static int yy_start_stack_ptr = 0;
4489         static int yy_start_stack_depth = 0;
4490         static int *yy_start_stack = NULL;
4491     
4492     static void yy_push_state (int new_state );
4493     
4494     static void yy_pop_state (void );
4495     
4496 /* Amount of stuff to slurp up with each read. */
4497 #ifndef YY_READ_BUF_SIZE
4498 #ifdef __ia64__
4499 /* On IA-64, the buffer size is 16k, not 8k */
4500 #define YY_READ_BUF_SIZE 16384
4501 #else
4502 #define YY_READ_BUF_SIZE 8192
4503 #endif /* __ia64__ */
4504 #endif
4505
4506 /* Copy whatever the last rule matched to the standard output. */
4507 #ifndef ECHO
4508 /* This used to be an fputs(), but since the string might contain NUL's,
4509  * we now use fwrite().
4510  */
4511 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4512 #endif
4513
4514 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4515  * is returned in "result".
4516  */
4517 #ifndef YY_INPUT
4518 #define YY_INPUT(buf,result,max_size) \
4519         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4520                 { \
4521                 int c = '*'; \
4522                 size_t n; \
4523                 for ( n = 0; n < max_size && \
4524                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4525                         buf[n] = (char) c; \
4526                 if ( c == '\n' ) \
4527                         buf[n++] = (char) c; \
4528                 if ( c == EOF && ferror( surf_parse_in ) ) \
4529                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4530                 result = n; \
4531                 } \
4532         else \
4533                 { \
4534                 errno=0; \
4535                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4536                         { \
4537                         if( errno != EINTR) \
4538                                 { \
4539                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4540                                 break; \
4541                                 } \
4542                         errno=0; \
4543                         clearerr(surf_parse_in); \
4544                         } \
4545                 }\
4546 \
4547
4548 #endif
4549
4550 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4551  * we don't want an extra ';' after the "return" because that will cause
4552  * some compilers to complain about unreachable statements.
4553  */
4554 #ifndef yyterminate
4555 #define yyterminate() return YY_NULL
4556 #endif
4557
4558 /* Number of entries by which start-condition stack grows. */
4559 #ifndef YY_START_STACK_INCR
4560 #define YY_START_STACK_INCR 25
4561 #endif
4562
4563 /* Report a fatal error. */
4564 #ifndef YY_FATAL_ERROR
4565 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4566 #endif
4567
4568 /* end tables serialization structures and prototypes */
4569
4570 /* Default declaration of generated scanner - a define so the user can
4571  * easily add parameters.
4572  */
4573 #ifndef YY_DECL
4574 #define YY_DECL_IS_OURS 1
4575
4576 extern int surf_parse_lex (void);
4577
4578 #define YY_DECL int surf_parse_lex (void)
4579 #endif /* !YY_DECL */
4580
4581 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4582  * have been set up.
4583  */
4584 #ifndef YY_USER_ACTION
4585 #define YY_USER_ACTION
4586 #endif
4587
4588 /* Code executed at the end of each rule. */
4589 #ifndef YY_BREAK
4590 #define YY_BREAK break;
4591 #endif
4592
4593 #define YY_RULE_SETUP \
4594         YY_USER_ACTION
4595
4596 /** The main scanner function which does all the work.
4597  */
4598 YY_DECL
4599 {
4600         register yy_state_type yy_current_state;
4601         register char *yy_cp, *yy_bp;
4602         register int yy_act;
4603     
4604  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4605  SET(PROLOG);
4606  reset_surfxml_parse_err_msg();
4607  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4608  assert(surfxml_bufferstack);
4609  #ifdef FLEX_DEBUG
4610  {
4611      int i;
4612      for (i = 0; i < blimit; i++) {
4613          surfxml_bufferstack[i] = '\377';
4614      }
4615  }
4616  #endif
4617  surfxml_bufferstack[0] = '\0';
4618  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4619  assert(indexstack);
4620  indexstack[0] = 0;
4621
4622   /* FleXML_init */
4623   bnext = inext = 1;
4624   surfxml_bufferliteral('\0', &bnext, "0.0");
4625   surfxml_bufferliteral('\0', &bnext, "2147483647");
4626   surfxml_bufferliteral('\0', &bnext, "1");
4627   surfxml_bufferliteral('\0', &bnext, "1.0");
4628   surfxml_bufferliteral('\0', &bnext, "1");
4629   surfxml_bufferliteral('\0', &bnext, "0.0");
4630   surfxml_bufferliteral('\0', &bnext, "-1.0");
4631   surfxml_bufferliteral('\0', &bnext, "-1.0");
4632   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4633   surfxml_statenames[PROLOG] = NULL;
4634   surfxml_statenames[DOCTYPE] = NULL;
4635   surfxml_statenames[EPILOG] = NULL;
4636   surfxml_statenames[INCOMMENT] = NULL;
4637   surfxml_statenames[INPI] = NULL;
4638   surfxml_statenames[VALUE1] = NULL;
4639   surfxml_statenames[VALUE2] = NULL;
4640   surfxml_statenames[CDATA] = NULL;
4641   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4642   surfxml_statenames[AL_surfxml_platform] = NULL;
4643   surfxml_statenames[S_surfxml_platform] = "platform";
4644   surfxml_statenames[S_surfxml_platform_1] = "platform";
4645   surfxml_statenames[S_surfxml_platform_2] = "platform";
4646   surfxml_statenames[S_surfxml_platform_3] = "platform";
4647   surfxml_statenames[S_surfxml_platform_4] = "platform";
4648   surfxml_statenames[S_surfxml_platform_5] = "platform";
4649   surfxml_statenames[S_surfxml_platform_6] = "platform";
4650   surfxml_statenames[S_surfxml_platform_7] = "platform";
4651   surfxml_statenames[S_surfxml_platform_8] = "platform";
4652   surfxml_statenames[E_surfxml_platform] = "platform";
4653   surfxml_statenames[AL_surfxml_include] = NULL;
4654   surfxml_statenames[S_surfxml_include] = "include";
4655   surfxml_statenames[S_surfxml_include_1] = "include";
4656   surfxml_statenames[S_surfxml_include_2] = "include";
4657   surfxml_statenames[E_surfxml_include] = "include";
4658   surfxml_statenames[AL_surfxml_trace] = NULL;
4659   surfxml_statenames[IN_trace] = "trace";
4660   surfxml_statenames[AL_surfxml_random] = NULL;
4661   surfxml_statenames[S_surfxml_random] = "random";
4662   surfxml_statenames[S_surfxml_random_1] = "random";
4663   surfxml_statenames[S_surfxml_random_2] = "random";
4664   surfxml_statenames[E_surfxml_random] = "random";
4665   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4666   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4667   surfxml_statenames[AL_surfxml_AS] = NULL;
4668   surfxml_statenames[S_surfxml_AS] = "AS";
4669   surfxml_statenames[S_surfxml_AS_1] = "AS";
4670   surfxml_statenames[S_surfxml_AS_2] = "AS";
4671   surfxml_statenames[S_surfxml_AS_3] = "AS";
4672   surfxml_statenames[S_surfxml_AS_4] = "AS";
4673   surfxml_statenames[S_surfxml_AS_5] = "AS";
4674   surfxml_statenames[S_surfxml_AS_6] = "AS";
4675   surfxml_statenames[S_surfxml_AS_7] = "AS";
4676   surfxml_statenames[S_surfxml_AS_8] = "AS";
4677   surfxml_statenames[S_surfxml_AS_9] = "AS";
4678   surfxml_statenames[S_surfxml_AS_10] = "AS";
4679   surfxml_statenames[S_surfxml_AS_11] = "AS";
4680   surfxml_statenames[S_surfxml_AS_12] = "AS";
4681   surfxml_statenames[S_surfxml_AS_13] = "AS";
4682   surfxml_statenames[E_surfxml_AS] = "AS";
4683   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4684   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4685   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4686   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4687   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4688   surfxml_statenames[AL_surfxml_storage] = NULL;
4689   surfxml_statenames[S_surfxml_storage] = "storage";
4690   surfxml_statenames[S_surfxml_storage_1] = "storage";
4691   surfxml_statenames[S_surfxml_storage_2] = "storage";
4692   surfxml_statenames[E_surfxml_storage] = "storage";
4693   surfxml_statenames[AL_surfxml_mount] = NULL;
4694   surfxml_statenames[E_surfxml_mount] = "mount";
4695   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4696   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4697   surfxml_statenames[AL_surfxml_host] = NULL;
4698   surfxml_statenames[S_surfxml_host] = "host";
4699   surfxml_statenames[S_surfxml_host_1] = "host";
4700   surfxml_statenames[S_surfxml_host_2] = "host";
4701   surfxml_statenames[E_surfxml_host] = "host";
4702   surfxml_statenames[AL_surfxml_cluster] = NULL;
4703   surfxml_statenames[E_surfxml_cluster] = "cluster";
4704   surfxml_statenames[AL_surfxml_peer] = NULL;
4705   surfxml_statenames[E_surfxml_peer] = "peer";
4706   surfxml_statenames[AL_surfxml_router] = NULL;
4707   surfxml_statenames[E_surfxml_router] = "router";
4708   surfxml_statenames[AL_surfxml_link] = NULL;
4709   surfxml_statenames[S_surfxml_link] = "link";
4710   surfxml_statenames[S_surfxml_link_1] = "link";
4711   surfxml_statenames[S_surfxml_link_2] = "link";
4712   surfxml_statenames[E_surfxml_link] = "link";
4713   surfxml_statenames[AL_surfxml_route] = NULL;
4714   surfxml_statenames[S_surfxml_route] = "route";
4715   surfxml_statenames[S_surfxml_route_1] = "route";
4716   surfxml_statenames[S_surfxml_route_2] = "route";
4717   surfxml_statenames[E_surfxml_route] = "route";
4718   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4719   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4720   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4721   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4722   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4723   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4724   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4725   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4726   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4727   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4728   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4729   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4730   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
4731   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
4732   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
4733   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
4734   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
4735   surfxml_statenames[AL_surfxml_process] = NULL;
4736   surfxml_statenames[S_surfxml_process] = "process";
4737   surfxml_statenames[S_surfxml_process_1] = "process";
4738   surfxml_statenames[S_surfxml_process_2] = "process";
4739   surfxml_statenames[E_surfxml_process] = "process";
4740   surfxml_statenames[AL_surfxml_argument] = NULL;
4741   surfxml_statenames[E_surfxml_argument] = "argument";
4742   surfxml_statenames[AL_surfxml_config] = NULL;
4743   surfxml_statenames[S_surfxml_config] = "config";
4744   surfxml_statenames[S_surfxml_config_1] = "config";
4745   surfxml_statenames[S_surfxml_config_2] = "config";
4746   surfxml_statenames[E_surfxml_config] = "config";
4747   surfxml_statenames[AL_surfxml_prop] = NULL;
4748   surfxml_statenames[E_surfxml_prop] = "prop";
4749   }
4750
4751  /* COMMENTS and PIs: handled uniformly for efficiency. */
4752
4753         if ( !(yy_init) )
4754                 {
4755                 (yy_init) = 1;
4756
4757 #ifdef YY_USER_INIT
4758                 YY_USER_INIT;
4759 #endif
4760
4761                 if ( ! (yy_start) )
4762                         (yy_start) = 1; /* first start state */
4763
4764                 if ( ! surf_parse_in )
4765                         surf_parse_in = stdin;
4766
4767                 if ( ! surf_parse_out )
4768                         surf_parse_out = stdout;
4769
4770                 if ( ! YY_CURRENT_BUFFER ) {
4771                         surf_parse_ensure_buffer_stack ();
4772                         YY_CURRENT_BUFFER_LVALUE =
4773                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4774                 }
4775
4776                 surf_parse__load_buffer_state( );
4777                 }
4778
4779         while ( 1 )             /* loops until end-of-file is reached */
4780                 {
4781                 yy_cp = (yy_c_buf_p);
4782
4783                 /* Support of surf_parse_text. */
4784                 *yy_cp = (yy_hold_char);
4785
4786                 /* yy_bp points to the position in yy_ch_buf of the start of
4787                  * the current run.
4788                  */
4789                 yy_bp = yy_cp;
4790
4791                 yy_current_state = (yy_start);
4792 yy_match:
4793                 do
4794                         {
4795                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4796                         if ( yy_accept[yy_current_state] )
4797                                 {
4798                                 (yy_last_accepting_state) = yy_current_state;
4799                                 (yy_last_accepting_cpos) = yy_cp;
4800                                 }
4801                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4802                                 {
4803                                 yy_current_state = (int) yy_def[yy_current_state];
4804                                 if ( yy_current_state >= 2797 )
4805                                         yy_c = yy_meta[(unsigned int) yy_c];
4806                                 }
4807                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4808                         ++yy_cp;
4809                         }
4810                 while ( yy_base[yy_current_state] != 10173 );
4811
4812 yy_find_action:
4813                 yy_act = yy_accept[yy_current_state];
4814                 if ( yy_act == 0 )
4815                         { /* have to back up */
4816                         yy_cp = (yy_last_accepting_cpos);
4817                         yy_current_state = (yy_last_accepting_state);
4818                         yy_act = yy_accept[yy_current_state];
4819                         }
4820
4821                 YY_DO_BEFORE_ACTION;
4822
4823                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4824                         {
4825                         int yyl;
4826                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4827                                 if ( surf_parse_text[yyl] == '\n' )
4828                                            
4829     surf_parse_lineno++;
4830 ;
4831                         }
4832
4833 do_action:      /* This label is used only to access EOF actions. */
4834
4835                 switch ( yy_act )
4836         { /* beginning of action switch */
4837                         case 0: /* must back up */
4838                         /* undo the effects of YY_DO_BEFORE_ACTION */
4839                         *yy_cp = (yy_hold_char);
4840                         yy_cp = (yy_last_accepting_cpos);
4841                         yy_current_state = (yy_last_accepting_state);
4842                         goto yy_find_action;
4843
4844 case 1:
4845 YY_RULE_SETUP
4846 ENTER(INCOMMENT);
4847         YY_BREAK
4848 case 2:
4849 YY_RULE_SETUP
4850 ENTER(INPI);
4851         YY_BREAK
4852
4853 case 3:
4854 YY_RULE_SETUP
4855 LEAVE;
4856         YY_BREAK
4857 case 4:
4858 case 5:
4859 case 6:
4860 /* rule 6 can match eol */
4861 YY_RULE_SETUP
4862 SKIP;
4863         YY_BREAK
4864 case YY_STATE_EOF(INCOMMENT):
4865 FAIL("EOF in comment.");
4866         YY_BREAK
4867
4868 case 7:
4869 YY_RULE_SETUP
4870 LEAVE;
4871         YY_BREAK
4872 case 8:
4873 case 9:
4874 /* rule 9 can match eol */
4875 YY_RULE_SETUP
4876 SKIP;
4877         YY_BREAK
4878 case YY_STATE_EOF(INPI):
4879 FAIL("EOF in PI (processing instruction).");
4880         YY_BREAK
4881
4882 /* SPACES: skipped uniformly */
4883 case 10:
4884 /* rule 10 can match eol */
4885 YY_RULE_SETUP
4886 SKIP;
4887         YY_BREAK
4888 /* PROLOG: determine root element and process it. */
4889
4890 case 11:
4891 /* rule 11 can match eol */
4892 YY_RULE_SETUP
4893 SET(DOCTYPE); 
4894         YY_BREAK
4895 case 12:
4896 /* rule 12 can match eol */
4897 YY_RULE_SETUP
4898 FAIL("Bad declaration %s.",surf_parse_text);
4899         YY_BREAK
4900
4901 case 13:
4902 /* rule 13 can match eol */
4903 YY_RULE_SETUP
4904 SET(ROOT_surfxml_platform);
4905         YY_BREAK
4906 case 14:
4907 /* rule 14 can match eol */
4908 YY_RULE_SETUP
4909 FAIL("Bad declaration %s.",surf_parse_text);
4910         YY_BREAK
4911 case 15:
4912 YY_RULE_SETUP
4913 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4914         YY_BREAK
4915 case YY_STATE_EOF(PROLOG):
4916 case YY_STATE_EOF(DOCTYPE):
4917 FAIL("EOF in prolog.");
4918         YY_BREAK
4919
4920 /* RULES DERIVED FROM DTD. */
4921 /* <!-- Small DTD for SURF based tools. -->  */
4922 case 16:
4923 /* rule 16 can match eol */
4924 YY_RULE_SETUP
4925 FAIL("Starting tag <platform> is not allowed here.");
4926         YY_BREAK
4927 case 17:
4928 /* rule 17 can match eol */
4929 YY_RULE_SETUP
4930 {
4931   AX_surfxml_platform_version = 1;
4932   surfxml_platform_version_isset = 0;
4933   ENTER(AL_surfxml_platform); pushbuffer(0);
4934   }
4935         YY_BREAK
4936
4937 case 18:
4938 /* rule 18 can match eol */
4939 YY_RULE_SETUP
4940 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);
4941         YY_BREAK
4942 case 19:
4943 /* rule 19 can match eol */
4944 YY_RULE_SETUP
4945 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);
4946         YY_BREAK
4947 case 20:
4948 YY_RULE_SETUP
4949 {
4950   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4951  }
4952         YY_BREAK
4953 case 21:
4954 YY_RULE_SETUP
4955 {
4956   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4957   switch (YY_START) {
4958    case ROOT_surfxml_platform: SET(EPILOG); break;
4959   }
4960  }
4961         YY_BREAK
4962 case 22:
4963 YY_RULE_SETUP
4964 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4965         YY_BREAK
4966 case 23:
4967 YY_RULE_SETUP
4968 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4969         YY_BREAK
4970 case YY_STATE_EOF(AL_surfxml_platform):
4971 FAIL("EOF in attribute list of `platform' element.");
4972         YY_BREAK
4973
4974 case 24:
4975 /* rule 24 can match eol */
4976 YY_RULE_SETUP
4977 {
4978   LEAVE;
4979   ETag_surfxml_platform();
4980   popbuffer(); /* attribute */
4981   switch (YY_START) {
4982    case ROOT_surfxml_platform: SET(EPILOG); break;
4983   }
4984  }
4985         YY_BREAK
4986 case 25:
4987 /* rule 25 can match eol */
4988 YY_RULE_SETUP
4989 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4990         YY_BREAK
4991 case 26:
4992 YY_RULE_SETUP
4993 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4994         YY_BREAK
4995 case YY_STATE_EOF(S_surfxml_platform_8):
4996 case YY_STATE_EOF(S_surfxml_platform_1):
4997 case YY_STATE_EOF(S_surfxml_platform_3):
4998 case YY_STATE_EOF(S_surfxml_platform):
4999 case YY_STATE_EOF(S_surfxml_platform_4):
5000 case YY_STATE_EOF(S_surfxml_platform_6):
5001 case YY_STATE_EOF(E_surfxml_platform):
5002 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5003         YY_BREAK
5004
5005 case 27:
5006 /* rule 27 can match eol */
5007 YY_RULE_SETUP
5008 FAIL("Starting tag <include> is not allowed here.");
5009         YY_BREAK
5010 case 28:
5011 /* rule 28 can match eol */
5012 YY_RULE_SETUP
5013 {
5014   AX_surfxml_include_file = 0;
5015   surfxml_include_file_isset = 0;
5016   ENTER(AL_surfxml_include); pushbuffer(0);
5017   }
5018         YY_BREAK
5019
5020 case 29:
5021 /* rule 29 can match eol */
5022 YY_RULE_SETUP
5023 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);
5024         YY_BREAK
5025 case 30:
5026 /* rule 30 can match eol */
5027 YY_RULE_SETUP
5028 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);
5029         YY_BREAK
5030 case 31:
5031 YY_RULE_SETUP
5032 {
5033   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5034   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5035  }
5036         YY_BREAK
5037 case 32:
5038 YY_RULE_SETUP
5039 {
5040   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5041   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5042   switch (YY_START) {
5043    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5044    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5045    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;
5046    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5047   }
5048  }
5049         YY_BREAK
5050 case 33:
5051 YY_RULE_SETUP
5052 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5053         YY_BREAK
5054 case 34:
5055 YY_RULE_SETUP
5056 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5057         YY_BREAK
5058 case YY_STATE_EOF(AL_surfxml_include):
5059 FAIL("EOF in attribute list of `include' element.");
5060         YY_BREAK
5061
5062 case 35:
5063 /* rule 35 can match eol */
5064 YY_RULE_SETUP
5065 {
5066   LEAVE;
5067   ETag_surfxml_include();
5068   popbuffer(); /* attribute */
5069   switch (YY_START) {
5070    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5071    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5072    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;
5073    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5074   }
5075  }
5076         YY_BREAK
5077 case 36:
5078 /* rule 36 can match eol */
5079 YY_RULE_SETUP
5080 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5081         YY_BREAK
5082 case 37:
5083 YY_RULE_SETUP
5084 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5085         YY_BREAK
5086 case YY_STATE_EOF(E_surfxml_include):
5087 case YY_STATE_EOF(S_surfxml_include):
5088 case YY_STATE_EOF(S_surfxml_include_2):
5089 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5090         YY_BREAK
5091
5092 case 38:
5093 /* rule 38 can match eol */
5094 YY_RULE_SETUP
5095 FAIL("Starting tag <trace> is not allowed here.");
5096         YY_BREAK
5097 case 39:
5098 /* rule 39 can match eol */
5099 YY_RULE_SETUP
5100 {
5101   AX_surfxml_trace_id = 0;
5102   surfxml_trace_id_isset = 0;
5103   AX_surfxml_trace_file = 0;
5104   surfxml_trace_file_isset = 0;
5105   AX_surfxml_trace_periodicity = 0;
5106   surfxml_trace_periodicity_isset = 0;
5107   ENTER(AL_surfxml_trace); pushbuffer(0);
5108   }
5109         YY_BREAK
5110
5111 case 40:
5112 /* rule 40 can match eol */
5113 YY_RULE_SETUP
5114 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);
5115         YY_BREAK
5116 case 41:
5117 /* rule 41 can match eol */
5118 YY_RULE_SETUP
5119 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);
5120         YY_BREAK
5121 case 42:
5122 /* rule 42 can match eol */
5123 YY_RULE_SETUP
5124 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);
5125         YY_BREAK
5126 case 43:
5127 /* rule 43 can match eol */
5128 YY_RULE_SETUP
5129 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);
5130         YY_BREAK
5131 case 44:
5132 /* rule 44 can match eol */
5133 YY_RULE_SETUP
5134 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);
5135         YY_BREAK
5136 case 45:
5137 /* rule 45 can match eol */
5138 YY_RULE_SETUP
5139 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);
5140         YY_BREAK
5141 case 46:
5142 YY_RULE_SETUP
5143 {
5144   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5145   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5146   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5147  }
5148         YY_BREAK
5149 case 47:
5150 YY_RULE_SETUP
5151 {
5152   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5153   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5154   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5155   switch (YY_START) {
5156    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;
5157    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5158    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5159    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5160    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;
5161    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5162    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5163   }
5164  }
5165         YY_BREAK
5166 case 48:
5167 YY_RULE_SETUP
5168 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5169         YY_BREAK
5170 case 49:
5171 YY_RULE_SETUP
5172 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5173         YY_BREAK
5174 case YY_STATE_EOF(AL_surfxml_trace):
5175 FAIL("EOF in attribute list of `trace' element.");
5176         YY_BREAK
5177
5178 case 50:
5179 /* rule 50 can match eol */
5180 YY_RULE_SETUP
5181 {
5182   LEAVE;
5183   BUFFERDONE;
5184   ETag_surfxml_trace();
5185   surfxml_pcdata_ix = popbuffer();
5186   popbuffer(); /* attribute */
5187   switch (YY_START) {
5188    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;
5189    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5190    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5191    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5192    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;
5193    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5194    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5195   }
5196  }
5197         YY_BREAK
5198 case 51:
5199 /* rule 51 can match eol */
5200 YY_RULE_SETUP
5201 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5202         YY_BREAK
5203 case YY_STATE_EOF(IN_trace):
5204 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5205         YY_BREAK
5206
5207 case 52:
5208 /* rule 52 can match eol */
5209 YY_RULE_SETUP
5210 FAIL("Starting tag <random> is not allowed here.");
5211         YY_BREAK
5212 case 53:
5213 /* rule 53 can match eol */
5214 YY_RULE_SETUP
5215 {
5216   AX_surfxml_random_id = 0;
5217   surfxml_random_id_isset = 0;
5218   AX_surfxml_random_min = 0;
5219   surfxml_random_min_isset = 0;
5220   AX_surfxml_random_max = 0;
5221   surfxml_random_max_isset = 0;
5222   AX_surfxml_random_mean = 0;
5223   surfxml_random_mean_isset = 0;
5224   AX_surfxml_random_std_deviation = 0;
5225   surfxml_random_std_deviation_isset = 0;
5226   AX_surfxml_random_seed = 5;
5227   surfxml_random_seed_isset = 0;
5228   AX_surfxml_random_radical = 0;
5229   surfxml_random_radical_isset = 0;
5230   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5231   surfxml_random_generator_isset = 0;
5232   ENTER(AL_surfxml_random); pushbuffer(0);
5233   }
5234         YY_BREAK
5235
5236 case 54:
5237 /* rule 54 can match eol */
5238 YY_RULE_SETUP
5239 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);
5240         YY_BREAK
5241 case 55:
5242 /* rule 55 can match eol */
5243 YY_RULE_SETUP
5244 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);
5245         YY_BREAK
5246 case 56:
5247 /* rule 56 can match eol */
5248 YY_RULE_SETUP
5249 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);
5250         YY_BREAK
5251 case 57:
5252 /* rule 57 can match eol */
5253 YY_RULE_SETUP
5254 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);
5255         YY_BREAK
5256 case 58:
5257 /* rule 58 can match eol */
5258 YY_RULE_SETUP
5259 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);
5260         YY_BREAK
5261 case 59:
5262 /* rule 59 can match eol */
5263 YY_RULE_SETUP
5264 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);
5265         YY_BREAK
5266 case 60:
5267 /* rule 60 can match eol */
5268 YY_RULE_SETUP
5269 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);
5270         YY_BREAK
5271 case 61:
5272 /* rule 61 can match eol */
5273 YY_RULE_SETUP
5274 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);
5275         YY_BREAK
5276 case 62:
5277 /* rule 62 can match eol */
5278 YY_RULE_SETUP
5279 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);
5280         YY_BREAK
5281 case 63:
5282 /* rule 63 can match eol */
5283 YY_RULE_SETUP
5284 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);
5285         YY_BREAK
5286 case 64:
5287 /* rule 64 can match eol */
5288 YY_RULE_SETUP
5289 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);
5290         YY_BREAK
5291 case 65:
5292 /* rule 65 can match eol */
5293 YY_RULE_SETUP
5294 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);
5295         YY_BREAK
5296 case 66:
5297 /* rule 66 can match eol */
5298 YY_RULE_SETUP
5299 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);
5300         YY_BREAK
5301 case 67:
5302 /* rule 67 can match eol */
5303 YY_RULE_SETUP
5304 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);
5305         YY_BREAK
5306 case 68:
5307 /* rule 68 can match eol */
5308 case 69:
5309 /* rule 69 can match eol */
5310 YY_RULE_SETUP
5311 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5312         YY_BREAK
5313 case 70:
5314 /* rule 70 can match eol */
5315 case 71:
5316 /* rule 71 can match eol */
5317 YY_RULE_SETUP
5318 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5319         YY_BREAK
5320 case 72:
5321 /* rule 72 can match eol */
5322 case 73:
5323 /* rule 73 can match eol */
5324 YY_RULE_SETUP
5325 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5326         YY_BREAK
5327 case 74:
5328 /* rule 74 can match eol */
5329 case 75:
5330 /* rule 75 can match eol */
5331 YY_RULE_SETUP
5332 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5333         YY_BREAK
5334 case 76:
5335 YY_RULE_SETUP
5336 {
5337   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5338   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5339   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5340   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5341   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5342   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5343  }
5344         YY_BREAK
5345 case 77:
5346 YY_RULE_SETUP
5347 {
5348   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5349   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5350   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5351   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5352   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5353   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5354   switch (YY_START) {
5355    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5356   }
5357  }
5358         YY_BREAK
5359 case 78:
5360 YY_RULE_SETUP
5361 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5362         YY_BREAK
5363 case 79:
5364 YY_RULE_SETUP
5365 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5366         YY_BREAK
5367 case YY_STATE_EOF(AL_surfxml_random):
5368 FAIL("EOF in attribute list of `random' element.");
5369         YY_BREAK
5370
5371 case 80:
5372 /* rule 80 can match eol */
5373 YY_RULE_SETUP
5374 {
5375   LEAVE;
5376   ETag_surfxml_random();
5377   popbuffer(); /* attribute */
5378   switch (YY_START) {
5379    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5380   }
5381  }
5382         YY_BREAK
5383 case 81:
5384 /* rule 81 can match eol */
5385 YY_RULE_SETUP
5386 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5387         YY_BREAK
5388 case 82:
5389 YY_RULE_SETUP
5390 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5391         YY_BREAK
5392 case YY_STATE_EOF(S_surfxml_random):
5393 case YY_STATE_EOF(S_surfxml_random_2):
5394 case YY_STATE_EOF(E_surfxml_random):
5395 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5396         YY_BREAK
5397
5398 case 83:
5399 /* rule 83 can match eol */
5400 YY_RULE_SETUP
5401 FAIL("Starting tag <trace_connect> is not allowed here.");
5402         YY_BREAK
5403 case 84:
5404 /* rule 84 can match eol */
5405 YY_RULE_SETUP
5406 {
5407   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5408   surfxml_trace_connect_kind_isset = 0;
5409   AX_surfxml_trace_connect_trace = 0;
5410   surfxml_trace_connect_trace_isset = 0;
5411   AX_surfxml_trace_connect_element = 0;
5412   surfxml_trace_connect_element_isset = 0;
5413   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5414   }
5415         YY_BREAK
5416
5417 case 85:
5418 /* rule 85 can match eol */
5419 case 86:
5420 /* rule 86 can match eol */
5421 YY_RULE_SETUP
5422 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5423         YY_BREAK
5424 case 87:
5425 /* rule 87 can match eol */
5426 case 88:
5427 /* rule 88 can match eol */
5428 YY_RULE_SETUP
5429 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5430         YY_BREAK
5431 case 89:
5432 /* rule 89 can match eol */
5433 case 90:
5434 /* rule 90 can match eol */
5435 YY_RULE_SETUP
5436 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5437         YY_BREAK
5438 case 91:
5439 /* rule 91 can match eol */
5440 case 92:
5441 /* rule 92 can match eol */
5442 YY_RULE_SETUP
5443 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5444         YY_BREAK
5445 case 93:
5446 /* rule 93 can match eol */
5447 case 94:
5448 /* rule 94 can match eol */
5449 YY_RULE_SETUP
5450 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5451         YY_BREAK
5452 case 95:
5453 /* rule 95 can match eol */
5454 YY_RULE_SETUP
5455 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);
5456         YY_BREAK
5457 case 96:
5458 /* rule 96 can match eol */
5459 YY_RULE_SETUP
5460 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);
5461         YY_BREAK
5462 case 97:
5463 /* rule 97 can match eol */
5464 YY_RULE_SETUP
5465 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);
5466         YY_BREAK
5467 case 98:
5468 /* rule 98 can match eol */
5469 YY_RULE_SETUP
5470 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);
5471         YY_BREAK
5472 case 99:
5473 YY_RULE_SETUP
5474 {
5475   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5476   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5477   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5478  }
5479         YY_BREAK
5480 case 100:
5481 YY_RULE_SETUP
5482 {
5483   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5484   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5485   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5486   switch (YY_START) {
5487    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;
5488    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5489    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5490    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5491    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;
5492    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5493    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5494   }
5495  }
5496         YY_BREAK
5497 case 101:
5498 YY_RULE_SETUP
5499 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5500         YY_BREAK
5501 case 102:
5502 YY_RULE_SETUP
5503 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5504         YY_BREAK
5505 case YY_STATE_EOF(AL_surfxml_trace_connect):
5506 FAIL("EOF in attribute list of `trace_connect' element.");
5507         YY_BREAK
5508
5509 case 103:
5510 /* rule 103 can match eol */
5511 YY_RULE_SETUP
5512 {
5513   LEAVE;
5514   ETag_surfxml_trace_connect();
5515   popbuffer(); /* attribute */
5516   switch (YY_START) {
5517    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;
5518    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5519    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5520    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5521    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;
5522    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5523    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5524   }
5525  }
5526         YY_BREAK
5527 case 104:
5528 /* rule 104 can match eol */
5529 YY_RULE_SETUP
5530 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5531         YY_BREAK
5532 case 105:
5533 YY_RULE_SETUP
5534 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5535         YY_BREAK
5536 case YY_STATE_EOF(E_surfxml_trace_connect):
5537 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5538         YY_BREAK
5539
5540 case 106:
5541 /* rule 106 can match eol */
5542 YY_RULE_SETUP
5543 FAIL("Starting tag <AS> is not allowed here.");
5544         YY_BREAK
5545 case 107:
5546 /* rule 107 can match eol */
5547 YY_RULE_SETUP
5548 {
5549   AX_surfxml_AS_id = 0;
5550   surfxml_AS_id_isset = 0;
5551   AX_surfxml_AS_routing = 0;
5552   surfxml_AS_routing_isset = 0;
5553   ENTER(AL_surfxml_AS); pushbuffer(0);
5554   }
5555         YY_BREAK
5556
5557 case 108:
5558 /* rule 108 can match eol */
5559 YY_RULE_SETUP
5560 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);
5561         YY_BREAK
5562 case 109:
5563 /* rule 109 can match eol */
5564 YY_RULE_SETUP
5565 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);
5566         YY_BREAK
5567 case 110:
5568 /* rule 110 can match eol */
5569 YY_RULE_SETUP
5570 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");} surfxml_AS_routing_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
5571         YY_BREAK
5572 case 111:
5573 /* rule 111 can match eol */
5574 YY_RULE_SETUP
5575 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");}  surfxml_AS_routing_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
5576         YY_BREAK
5577 case 112:
5578 YY_RULE_SETUP
5579 {
5580   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5581   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5582   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5583  }
5584         YY_BREAK
5585 case 113:
5586 YY_RULE_SETUP
5587 {
5588   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5589   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5590   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5591   switch (YY_START) {
5592    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5593    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;
5594    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5595   }
5596  }
5597         YY_BREAK
5598 case 114:
5599 YY_RULE_SETUP
5600 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5601         YY_BREAK
5602 case 115:
5603 YY_RULE_SETUP
5604 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5605         YY_BREAK
5606 case YY_STATE_EOF(AL_surfxml_AS):
5607 FAIL("EOF in attribute list of `AS' element.");
5608         YY_BREAK
5609
5610 case 116:
5611 /* rule 116 can match eol */
5612 YY_RULE_SETUP
5613 {
5614   LEAVE;
5615   ETag_surfxml_AS();
5616   popbuffer(); /* attribute */
5617   switch (YY_START) {
5618    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5619    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;
5620    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5621   }
5622  }
5623         YY_BREAK
5624 case 117:
5625 /* rule 117 can match eol */
5626 YY_RULE_SETUP
5627 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5628         YY_BREAK
5629 case 118:
5630 YY_RULE_SETUP
5631 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5632         YY_BREAK
5633 case YY_STATE_EOF(S_surfxml_AS_9):
5634 case YY_STATE_EOF(S_surfxml_AS_1):
5635 case YY_STATE_EOF(S_surfxml_AS_11):
5636 case YY_STATE_EOF(S_surfxml_AS_6):
5637 case YY_STATE_EOF(E_surfxml_AS):
5638 case YY_STATE_EOF(S_surfxml_AS_3):
5639 case YY_STATE_EOF(S_surfxml_AS_13):
5640 case YY_STATE_EOF(S_surfxml_AS_8):
5641 case YY_STATE_EOF(S_surfxml_AS):
5642 case YY_STATE_EOF(S_surfxml_AS_4):
5643 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5644         YY_BREAK
5645
5646 case 119:
5647 /* rule 119 can match eol */
5648 YY_RULE_SETUP
5649 FAIL("Starting tag <storage_type> is not allowed here.");
5650         YY_BREAK
5651 case 120:
5652 /* rule 120 can match eol */
5653 YY_RULE_SETUP
5654 {
5655   AX_surfxml_storage_type_id = 0;
5656   surfxml_storage_type_id_isset = 0;
5657   AX_surfxml_storage_type_model = 0;
5658   surfxml_storage_type_model_isset = 0;
5659   AX_surfxml_storage_type_size = 0;
5660   surfxml_storage_type_size_isset = 0;
5661   AX_surfxml_storage_type_content = 0;
5662   surfxml_storage_type_content_isset = 0;
5663   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5664   }
5665         YY_BREAK
5666
5667 case 121:
5668 /* rule 121 can match eol */
5669 YY_RULE_SETUP
5670 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);
5671         YY_BREAK
5672 case 122:
5673 /* rule 122 can match eol */
5674 YY_RULE_SETUP
5675 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);
5676         YY_BREAK
5677 case 123:
5678 /* rule 123 can match eol */
5679 YY_RULE_SETUP
5680 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);
5681         YY_BREAK
5682 case 124:
5683 /* rule 124 can match eol */
5684 YY_RULE_SETUP
5685 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);
5686         YY_BREAK
5687 case 125:
5688 /* rule 125 can match eol */
5689 YY_RULE_SETUP
5690 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);
5691         YY_BREAK
5692 case 126:
5693 /* rule 126 can match eol */
5694 YY_RULE_SETUP
5695 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);
5696         YY_BREAK
5697 case 127:
5698 /* rule 127 can match eol */
5699 YY_RULE_SETUP
5700 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);
5701         YY_BREAK
5702 case 128:
5703 /* rule 128 can match eol */
5704 YY_RULE_SETUP
5705 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);
5706         YY_BREAK
5707 case 129:
5708 YY_RULE_SETUP
5709 {
5710   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5711   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5712   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5713   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5714  }
5715         YY_BREAK
5716 case 130:
5717 YY_RULE_SETUP
5718 {
5719   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5720   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5721   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5722   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5723   switch (YY_START) {
5724    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5725    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5726   }
5727  }
5728         YY_BREAK
5729 case 131:
5730 YY_RULE_SETUP
5731 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5732         YY_BREAK
5733 case 132:
5734 YY_RULE_SETUP
5735 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5736         YY_BREAK
5737 case YY_STATE_EOF(AL_surfxml_storage_type):
5738 FAIL("EOF in attribute list of `storage_type' element.");
5739         YY_BREAK
5740
5741 case 133:
5742 /* rule 133 can match eol */
5743 YY_RULE_SETUP
5744 {
5745   LEAVE;
5746   ETag_surfxml_storage_type();
5747   popbuffer(); /* attribute */
5748   switch (YY_START) {
5749    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5750    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5751   }
5752  }
5753         YY_BREAK
5754 case 134:
5755 /* rule 134 can match eol */
5756 YY_RULE_SETUP
5757 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5758         YY_BREAK
5759 case 135:
5760 YY_RULE_SETUP
5761 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5762         YY_BREAK
5763 case YY_STATE_EOF(E_surfxml_storage_type):
5764 case YY_STATE_EOF(S_surfxml_storage_type_2):
5765 case YY_STATE_EOF(S_surfxml_storage_type):
5766 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5767         YY_BREAK
5768
5769 case 136:
5770 /* rule 136 can match eol */
5771 YY_RULE_SETUP
5772 FAIL("Starting tag <storage> is not allowed here.");
5773         YY_BREAK
5774 case 137:
5775 /* rule 137 can match eol */
5776 YY_RULE_SETUP
5777 {
5778   AX_surfxml_storage_id = 0;
5779   surfxml_storage_id_isset = 0;
5780   AX_surfxml_storage_typeId = 0;
5781   surfxml_storage_typeId_isset = 0;
5782   ENTER(AL_surfxml_storage); pushbuffer(0);
5783   }
5784         YY_BREAK
5785
5786 case 138:
5787 /* rule 138 can match eol */
5788 YY_RULE_SETUP
5789 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);
5790         YY_BREAK
5791 case 139:
5792 /* rule 139 can match eol */
5793 YY_RULE_SETUP
5794 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);
5795         YY_BREAK
5796 case 140:
5797 /* rule 140 can match eol */
5798 YY_RULE_SETUP
5799 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);
5800         YY_BREAK
5801 case 141:
5802 /* rule 141 can match eol */
5803 YY_RULE_SETUP
5804 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);
5805         YY_BREAK
5806 case 142:
5807 YY_RULE_SETUP
5808 {
5809   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5810   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5811   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5812  }
5813         YY_BREAK
5814 case 143:
5815 YY_RULE_SETUP
5816 {
5817   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5818   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5819   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5820   switch (YY_START) {
5821    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5822    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5823   }
5824  }
5825         YY_BREAK
5826 case 144:
5827 YY_RULE_SETUP
5828 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5829         YY_BREAK
5830 case 145:
5831 YY_RULE_SETUP
5832 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5833         YY_BREAK
5834 case YY_STATE_EOF(AL_surfxml_storage):
5835 FAIL("EOF in attribute list of `storage' element.");
5836         YY_BREAK
5837
5838 case 146:
5839 /* rule 146 can match eol */
5840 YY_RULE_SETUP
5841 {
5842   LEAVE;
5843   ETag_surfxml_storage();
5844   popbuffer(); /* attribute */
5845   switch (YY_START) {
5846    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5847    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5848   }
5849  }
5850         YY_BREAK
5851 case 147:
5852 /* rule 147 can match eol */
5853 YY_RULE_SETUP
5854 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5855         YY_BREAK
5856 case 148:
5857 YY_RULE_SETUP
5858 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5859         YY_BREAK
5860 case YY_STATE_EOF(E_surfxml_storage):
5861 case YY_STATE_EOF(S_surfxml_storage):
5862 case YY_STATE_EOF(S_surfxml_storage_2):
5863 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5864         YY_BREAK
5865
5866 case 149:
5867 /* rule 149 can match eol */
5868 YY_RULE_SETUP
5869 FAIL("Starting tag <mount> is not allowed here.");
5870         YY_BREAK
5871 case 150:
5872 /* rule 150 can match eol */
5873 YY_RULE_SETUP
5874 {
5875   AX_surfxml_mount_id = 0;
5876   surfxml_mount_id_isset = 0;
5877   AX_surfxml_mount_name = 0;
5878   surfxml_mount_name_isset = 0;
5879   ENTER(AL_surfxml_mount); pushbuffer(0);
5880   }
5881         YY_BREAK
5882
5883 case 151:
5884 /* rule 151 can match eol */
5885 YY_RULE_SETUP
5886 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);
5887         YY_BREAK
5888 case 152:
5889 /* rule 152 can match eol */
5890 YY_RULE_SETUP
5891 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);
5892         YY_BREAK
5893 case 153:
5894 /* rule 153 can match eol */
5895 YY_RULE_SETUP
5896 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);
5897         YY_BREAK
5898 case 154:
5899 /* rule 154 can match eol */
5900 YY_RULE_SETUP
5901 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);
5902         YY_BREAK
5903 case 155:
5904 YY_RULE_SETUP
5905 {
5906   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5907   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5908   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
5909  }
5910         YY_BREAK
5911 case 156:
5912 YY_RULE_SETUP
5913 {
5914   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5915   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5916   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
5917   switch (YY_START) {
5918    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5919   }
5920  }
5921         YY_BREAK
5922 case 157:
5923 YY_RULE_SETUP
5924 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
5925         YY_BREAK
5926 case 158:
5927 YY_RULE_SETUP
5928 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
5929         YY_BREAK
5930 case YY_STATE_EOF(AL_surfxml_mount):
5931 FAIL("EOF in attribute list of `mount' element.");
5932         YY_BREAK
5933
5934 case 159:
5935 /* rule 159 can match eol */
5936 YY_RULE_SETUP
5937 {
5938   LEAVE;
5939   ETag_surfxml_mount();
5940   popbuffer(); /* attribute */
5941   switch (YY_START) {
5942    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5943   }
5944  }
5945         YY_BREAK
5946 case 160:
5947 /* rule 160 can match eol */
5948 YY_RULE_SETUP
5949 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
5950         YY_BREAK
5951 case 161:
5952 YY_RULE_SETUP
5953 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
5954         YY_BREAK
5955 case YY_STATE_EOF(E_surfxml_mount):
5956 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
5957         YY_BREAK
5958
5959 case 162:
5960 /* rule 162 can match eol */
5961 YY_RULE_SETUP
5962 FAIL("Starting tag <mstorage> is not allowed here.");
5963         YY_BREAK
5964 case 163:
5965 /* rule 163 can match eol */
5966 YY_RULE_SETUP
5967 {
5968   AX_surfxml_mstorage_typeId = 0;
5969   surfxml_mstorage_typeId_isset = 0;
5970   AX_surfxml_mstorage_name = 0;
5971   surfxml_mstorage_name_isset = 0;
5972   ENTER(AL_surfxml_mstorage); pushbuffer(0);
5973   }
5974         YY_BREAK
5975
5976 case 164:
5977 /* rule 164 can match eol */
5978 YY_RULE_SETUP
5979 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);
5980         YY_BREAK
5981 case 165:
5982 /* rule 165 can match eol */
5983 YY_RULE_SETUP
5984 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);
5985         YY_BREAK
5986 case 166:
5987 /* rule 166 can match eol */
5988 YY_RULE_SETUP
5989 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);
5990         YY_BREAK
5991 case 167:
5992 /* rule 167 can match eol */
5993 YY_RULE_SETUP
5994 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);
5995         YY_BREAK
5996 case 168:
5997 YY_RULE_SETUP
5998 {
5999   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6000   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6001   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6002  }
6003         YY_BREAK
6004 case 169:
6005 YY_RULE_SETUP
6006 {
6007   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6008   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6009   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6010   switch (YY_START) {
6011    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6012   }
6013  }
6014         YY_BREAK
6015 case 170:
6016 YY_RULE_SETUP
6017 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6018         YY_BREAK
6019 case 171:
6020 YY_RULE_SETUP
6021 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6022         YY_BREAK
6023 case YY_STATE_EOF(AL_surfxml_mstorage):
6024 FAIL("EOF in attribute list of `mstorage' element.");
6025         YY_BREAK
6026
6027 case 172:
6028 /* rule 172 can match eol */
6029 YY_RULE_SETUP
6030 {
6031   LEAVE;
6032   ETag_surfxml_mstorage();
6033   popbuffer(); /* attribute */
6034   switch (YY_START) {
6035    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6036   }
6037  }
6038         YY_BREAK
6039 case 173:
6040 /* rule 173 can match eol */
6041 YY_RULE_SETUP
6042 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6043         YY_BREAK
6044 case 174:
6045 YY_RULE_SETUP
6046 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6047         YY_BREAK
6048 case YY_STATE_EOF(E_surfxml_mstorage):
6049 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6050         YY_BREAK
6051
6052 case 175:
6053 /* rule 175 can match eol */
6054 YY_RULE_SETUP
6055 FAIL("Starting tag <host> is not allowed here.");
6056         YY_BREAK
6057 case 176:
6058 /* rule 176 can match eol */
6059 YY_RULE_SETUP
6060 {
6061   AX_surfxml_host_id = 0;
6062   surfxml_host_id_isset = 0;
6063   AX_surfxml_host_power = 0;
6064   surfxml_host_power_isset = 0;
6065   AX_surfxml_host_core = 16;
6066   surfxml_host_core_isset = 0;
6067   AX_surfxml_host_availability = 18;
6068   surfxml_host_availability_isset = 0;
6069   AX_surfxml_host_availability_file = 0;
6070   surfxml_host_availability_file_isset = 0;
6071   AX_surfxml_host_state = A_surfxml_host_state_ON;
6072   surfxml_host_state_isset = 0;
6073   AX_surfxml_host_state_file = 0;
6074   surfxml_host_state_file_isset = 0;
6075   AX_surfxml_host_coordinates = 0;
6076   surfxml_host_coordinates_isset = 0;
6077   ENTER(AL_surfxml_host); pushbuffer(0);
6078   }
6079         YY_BREAK
6080
6081 case 177:
6082 /* rule 177 can match eol */
6083 YY_RULE_SETUP
6084 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);
6085         YY_BREAK
6086 case 178:
6087 /* rule 178 can match eol */
6088 YY_RULE_SETUP
6089 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);
6090         YY_BREAK
6091 case 179:
6092 /* rule 179 can match eol */
6093 YY_RULE_SETUP
6094 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);
6095         YY_BREAK
6096 case 180:
6097 /* rule 180 can match eol */
6098 YY_RULE_SETUP
6099 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);
6100         YY_BREAK
6101 case 181:
6102 /* rule 181 can match eol */
6103 YY_RULE_SETUP
6104 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);
6105         YY_BREAK
6106 case 182:
6107 /* rule 182 can match eol */
6108 YY_RULE_SETUP
6109 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);
6110         YY_BREAK
6111 case 183:
6112 /* rule 183 can match eol */
6113 YY_RULE_SETUP
6114 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);
6115         YY_BREAK
6116 case 184:
6117 /* rule 184 can match eol */
6118 YY_RULE_SETUP
6119 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);
6120         YY_BREAK
6121 case 185:
6122 /* rule 185 can match eol */
6123 YY_RULE_SETUP
6124 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);
6125         YY_BREAK
6126 case 186:
6127 /* rule 186 can match eol */
6128 YY_RULE_SETUP
6129 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);
6130         YY_BREAK
6131 case 187:
6132 /* rule 187 can match eol */
6133 case 188:
6134 /* rule 188 can match eol */
6135 YY_RULE_SETUP
6136 A_surfxml_host_state = A_surfxml_host_state_ON;
6137         YY_BREAK
6138 case 189:
6139 /* rule 189 can match eol */
6140 case 190:
6141 /* rule 190 can match eol */
6142 YY_RULE_SETUP
6143 A_surfxml_host_state = A_surfxml_host_state_OFF;
6144         YY_BREAK
6145 case 191:
6146 /* rule 191 can match eol */
6147 YY_RULE_SETUP
6148 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);
6149         YY_BREAK
6150 case 192:
6151 /* rule 192 can match eol */
6152 YY_RULE_SETUP
6153 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);
6154         YY_BREAK
6155 case 193:
6156 /* rule 193 can match eol */
6157 YY_RULE_SETUP
6158 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);
6159         YY_BREAK
6160 case 194:
6161 /* rule 194 can match eol */
6162 YY_RULE_SETUP
6163 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);
6164         YY_BREAK
6165 case 195:
6166 YY_RULE_SETUP
6167 {
6168   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6169   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6170   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6171  }
6172         YY_BREAK
6173 case 196:
6174 YY_RULE_SETUP
6175 {
6176   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6177   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6178   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6179   switch (YY_START) {
6180    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6181   }
6182  }
6183         YY_BREAK
6184 case 197:
6185 YY_RULE_SETUP
6186 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6187         YY_BREAK
6188 case 198:
6189 YY_RULE_SETUP
6190 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6191         YY_BREAK
6192 case YY_STATE_EOF(AL_surfxml_host):
6193 FAIL("EOF in attribute list of `host' element.");
6194         YY_BREAK
6195
6196 case 199:
6197 /* rule 199 can match eol */
6198 YY_RULE_SETUP
6199 {
6200   LEAVE;
6201   ETag_surfxml_host();
6202   popbuffer(); /* attribute */
6203   switch (YY_START) {
6204    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6205   }
6206  }
6207         YY_BREAK
6208 case 200:
6209 /* rule 200 can match eol */
6210 YY_RULE_SETUP
6211 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6212         YY_BREAK
6213 case 201:
6214 YY_RULE_SETUP
6215 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6216         YY_BREAK
6217 case YY_STATE_EOF(S_surfxml_host):
6218 case YY_STATE_EOF(E_surfxml_host):
6219 case YY_STATE_EOF(S_surfxml_host_2):
6220 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6221         YY_BREAK
6222
6223 case 202:
6224 /* rule 202 can match eol */
6225 YY_RULE_SETUP
6226 FAIL("Starting tag <cluster> is not allowed here.");
6227         YY_BREAK
6228 case 203:
6229 /* rule 203 can match eol */
6230 YY_RULE_SETUP
6231 {
6232   AX_surfxml_cluster_id = 0;
6233   surfxml_cluster_id_isset = 0;
6234   AX_surfxml_cluster_prefix = 0;
6235   surfxml_cluster_prefix_isset = 0;
6236   AX_surfxml_cluster_suffix = 0;
6237   surfxml_cluster_suffix_isset = 0;
6238   AX_surfxml_cluster_radical = 0;
6239   surfxml_cluster_radical_isset = 0;
6240   AX_surfxml_cluster_power = 0;
6241   surfxml_cluster_power_isset = 0;
6242   AX_surfxml_cluster_core = 22;
6243   surfxml_cluster_core_isset = 0;
6244   AX_surfxml_cluster_bw = 0;
6245   surfxml_cluster_bw_isset = 0;
6246   AX_surfxml_cluster_lat = 0;
6247   surfxml_cluster_lat_isset = 0;
6248   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6249   surfxml_cluster_sharing_policy_isset = 0;
6250   AX_surfxml_cluster_bb_bw = 0;
6251   surfxml_cluster_bb_bw_isset = 0;
6252   AX_surfxml_cluster_bb_lat = 0;
6253   surfxml_cluster_bb_lat_isset = 0;
6254   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6255   surfxml_cluster_bb_sharing_policy_isset = 0;
6256   AX_surfxml_cluster_availability_file = 0;
6257   surfxml_cluster_availability_file_isset = 0;
6258   AX_surfxml_cluster_state_file = 0;
6259   surfxml_cluster_state_file_isset = 0;
6260   AX_surfxml_cluster_router_id = 0;
6261   surfxml_cluster_router_id_isset = 0;
6262   ENTER(AL_surfxml_cluster); pushbuffer(0);
6263   }
6264         YY_BREAK
6265
6266 case 204:
6267 /* rule 204 can match eol */
6268 YY_RULE_SETUP
6269 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);
6270         YY_BREAK
6271 case 205:
6272 /* rule 205 can match eol */
6273 YY_RULE_SETUP
6274 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);
6275         YY_BREAK
6276 case 206:
6277 /* rule 206 can match eol */
6278 YY_RULE_SETUP
6279 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);
6280         YY_BREAK
6281 case 207:
6282 /* rule 207 can match eol */
6283 YY_RULE_SETUP
6284 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);
6285         YY_BREAK
6286 case 208:
6287 /* rule 208 can match eol */
6288 YY_RULE_SETUP
6289 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);
6290         YY_BREAK
6291 case 209:
6292 /* rule 209 can match eol */
6293 YY_RULE_SETUP
6294 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);
6295         YY_BREAK
6296 case 210:
6297 /* rule 210 can match eol */
6298 YY_RULE_SETUP
6299 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);
6300         YY_BREAK
6301 case 211:
6302 /* rule 211 can match eol */
6303 YY_RULE_SETUP
6304 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);
6305         YY_BREAK
6306 case 212:
6307 /* rule 212 can match eol */
6308 YY_RULE_SETUP
6309 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);
6310         YY_BREAK
6311 case 213:
6312 /* rule 213 can match eol */
6313 YY_RULE_SETUP
6314 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);
6315         YY_BREAK
6316 case 214:
6317 /* rule 214 can match eol */
6318 YY_RULE_SETUP
6319 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);
6320         YY_BREAK
6321 case 215:
6322 /* rule 215 can match eol */
6323 YY_RULE_SETUP
6324 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);
6325         YY_BREAK
6326 case 216:
6327 /* rule 216 can match eol */
6328 YY_RULE_SETUP
6329 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);
6330         YY_BREAK
6331 case 217:
6332 /* rule 217 can match eol */
6333 YY_RULE_SETUP
6334 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);
6335         YY_BREAK
6336 case 218:
6337 /* rule 218 can match eol */
6338 YY_RULE_SETUP
6339 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);
6340         YY_BREAK
6341 case 219:
6342 /* rule 219 can match eol */
6343 YY_RULE_SETUP
6344 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);
6345         YY_BREAK
6346 case 220:
6347 /* rule 220 can match eol */
6348 case 221:
6349 /* rule 221 can match eol */
6350 YY_RULE_SETUP
6351 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6352         YY_BREAK
6353 case 222:
6354 /* rule 222 can match eol */
6355 case 223:
6356 /* rule 223 can match eol */
6357 YY_RULE_SETUP
6358 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6359         YY_BREAK
6360 case 224:
6361 /* rule 224 can match eol */
6362 case 225:
6363 /* rule 225 can match eol */
6364 YY_RULE_SETUP
6365 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6366         YY_BREAK
6367 case 226:
6368 /* rule 226 can match eol */
6369 YY_RULE_SETUP
6370 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);
6371         YY_BREAK
6372 case 227:
6373 /* rule 227 can match eol */
6374 YY_RULE_SETUP
6375 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);
6376         YY_BREAK
6377 case 228:
6378 /* rule 228 can match eol */
6379 YY_RULE_SETUP
6380 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);
6381         YY_BREAK
6382 case 229:
6383 /* rule 229 can match eol */
6384 YY_RULE_SETUP
6385 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);
6386         YY_BREAK
6387 case 230:
6388 /* rule 230 can match eol */
6389 case 231:
6390 /* rule 231 can match eol */
6391 YY_RULE_SETUP
6392 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6393         YY_BREAK
6394 case 232:
6395 /* rule 232 can match eol */
6396 case 233:
6397 /* rule 233 can match eol */
6398 YY_RULE_SETUP
6399 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6400         YY_BREAK
6401 case 234:
6402 /* rule 234 can match eol */
6403 YY_RULE_SETUP
6404 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);
6405         YY_BREAK
6406 case 235:
6407 /* rule 235 can match eol */
6408 YY_RULE_SETUP
6409 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);
6410         YY_BREAK
6411 case 236:
6412 /* rule 236 can match eol */
6413 YY_RULE_SETUP
6414 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);
6415         YY_BREAK
6416 case 237:
6417 /* rule 237 can match eol */
6418 YY_RULE_SETUP
6419 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);
6420         YY_BREAK
6421 case 238:
6422 /* rule 238 can match eol */
6423 YY_RULE_SETUP
6424 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);
6425         YY_BREAK
6426 case 239:
6427 /* rule 239 can match eol */
6428 YY_RULE_SETUP
6429 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);
6430         YY_BREAK
6431 case 240:
6432 YY_RULE_SETUP
6433 {
6434   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6435   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6436   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6437   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6438   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6439   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6440   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6441   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6442  }
6443         YY_BREAK
6444 case 241:
6445 YY_RULE_SETUP
6446 {
6447   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6448   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6449   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6450   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6451   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6452   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6453   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6454   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6455   switch (YY_START) {
6456    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6457    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;
6458    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6459   }
6460  }
6461         YY_BREAK
6462 case 242:
6463 YY_RULE_SETUP
6464 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6465         YY_BREAK
6466 case 243:
6467 YY_RULE_SETUP
6468 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6469         YY_BREAK
6470 case YY_STATE_EOF(AL_surfxml_cluster):
6471 FAIL("EOF in attribute list of `cluster' element.");
6472         YY_BREAK
6473
6474 case 244:
6475 /* rule 244 can match eol */
6476 YY_RULE_SETUP
6477 {
6478   LEAVE;
6479   ETag_surfxml_cluster();
6480   popbuffer(); /* attribute */
6481   switch (YY_START) {
6482    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6483    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;
6484    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6485   }
6486  }
6487         YY_BREAK
6488 case 245:
6489 /* rule 245 can match eol */
6490 YY_RULE_SETUP
6491 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6492         YY_BREAK
6493 case 246:
6494 YY_RULE_SETUP
6495 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6496         YY_BREAK
6497 case YY_STATE_EOF(E_surfxml_cluster):
6498 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6499         YY_BREAK
6500
6501 case 247:
6502 /* rule 247 can match eol */
6503 YY_RULE_SETUP
6504 FAIL("Starting tag <peer> is not allowed here.");
6505         YY_BREAK
6506 case 248:
6507 /* rule 248 can match eol */
6508 YY_RULE_SETUP
6509 {
6510   AX_surfxml_peer_id = 0;
6511   surfxml_peer_id_isset = 0;
6512   AX_surfxml_peer_power = 0;
6513   surfxml_peer_power_isset = 0;
6514   AX_surfxml_peer_bw_in = 0;
6515   surfxml_peer_bw_in_isset = 0;
6516   AX_surfxml_peer_bw_out = 0;
6517   surfxml_peer_bw_out_isset = 0;
6518   AX_surfxml_peer_lat = 0;
6519   surfxml_peer_lat_isset = 0;
6520   AX_surfxml_peer_coordinates = 0;
6521   surfxml_peer_coordinates_isset = 0;
6522   AX_surfxml_peer_availability_file = 0;
6523   surfxml_peer_availability_file_isset = 0;
6524   AX_surfxml_peer_state_file = 0;
6525   surfxml_peer_state_file_isset = 0;
6526   ENTER(AL_surfxml_peer); pushbuffer(0);
6527   }
6528         YY_BREAK
6529
6530 case 249:
6531 /* rule 249 can match eol */
6532 YY_RULE_SETUP
6533 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);
6534         YY_BREAK
6535 case 250:
6536 /* rule 250 can match eol */
6537 YY_RULE_SETUP
6538 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);
6539         YY_BREAK
6540 case 251:
6541 /* rule 251 can match eol */
6542 YY_RULE_SETUP
6543 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);
6544         YY_BREAK
6545 case 252:
6546 /* rule 252 can match eol */
6547 YY_RULE_SETUP
6548 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);
6549         YY_BREAK
6550 case 253:
6551 /* rule 253 can match eol */
6552 YY_RULE_SETUP
6553 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);
6554         YY_BREAK
6555 case 254:
6556 /* rule 254 can match eol */
6557 YY_RULE_SETUP
6558 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);
6559         YY_BREAK
6560 case 255:
6561 /* rule 255 can match eol */
6562 YY_RULE_SETUP
6563 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);
6564         YY_BREAK
6565 case 256:
6566 /* rule 256 can match eol */
6567 YY_RULE_SETUP
6568 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);
6569         YY_BREAK
6570 case 257:
6571 /* rule 257 can match eol */
6572 YY_RULE_SETUP
6573 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);
6574         YY_BREAK
6575 case 258:
6576 /* rule 258 can match eol */
6577 YY_RULE_SETUP
6578 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);
6579         YY_BREAK
6580 case 259:
6581 /* rule 259 can match eol */
6582 YY_RULE_SETUP
6583 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);
6584         YY_BREAK
6585 case 260:
6586 /* rule 260 can match eol */
6587 YY_RULE_SETUP
6588 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);
6589         YY_BREAK
6590 case 261:
6591 /* rule 261 can match eol */
6592 YY_RULE_SETUP
6593 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);
6594         YY_BREAK
6595 case 262:
6596 /* rule 262 can match eol */
6597 YY_RULE_SETUP
6598 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);
6599         YY_BREAK
6600 case 263:
6601 /* rule 263 can match eol */
6602 YY_RULE_SETUP
6603 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);
6604         YY_BREAK
6605 case 264:
6606 /* rule 264 can match eol */
6607 YY_RULE_SETUP
6608 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);
6609         YY_BREAK
6610 case 265:
6611 YY_RULE_SETUP
6612 {
6613   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6614   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6615   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6616   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6617   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6618   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6619  }
6620         YY_BREAK
6621 case 266:
6622 YY_RULE_SETUP
6623 {
6624   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6625   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6626   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6627   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6628   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6629   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6630   switch (YY_START) {
6631    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6632    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;
6633    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6634   }
6635  }
6636         YY_BREAK
6637 case 267:
6638 YY_RULE_SETUP
6639 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6640         YY_BREAK
6641 case 268:
6642 YY_RULE_SETUP
6643 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6644         YY_BREAK
6645 case YY_STATE_EOF(AL_surfxml_peer):
6646 FAIL("EOF in attribute list of `peer' element.");
6647         YY_BREAK
6648
6649 case 269:
6650 /* rule 269 can match eol */
6651 YY_RULE_SETUP
6652 {
6653   LEAVE;
6654   ETag_surfxml_peer();
6655   popbuffer(); /* attribute */
6656   switch (YY_START) {
6657    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6658    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;
6659    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6660   }
6661  }
6662         YY_BREAK
6663 case 270:
6664 /* rule 270 can match eol */
6665 YY_RULE_SETUP
6666 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6667         YY_BREAK
6668 case 271:
6669 YY_RULE_SETUP
6670 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6671         YY_BREAK
6672 case YY_STATE_EOF(E_surfxml_peer):
6673 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6674         YY_BREAK
6675
6676 case 272:
6677 /* rule 272 can match eol */
6678 YY_RULE_SETUP
6679 FAIL("Starting tag <router> is not allowed here.");
6680         YY_BREAK
6681 case 273:
6682 /* rule 273 can match eol */
6683 YY_RULE_SETUP
6684 {
6685   AX_surfxml_router_id = 0;
6686   surfxml_router_id_isset = 0;
6687   AX_surfxml_router_coordinates = 0;
6688   surfxml_router_coordinates_isset = 0;
6689   ENTER(AL_surfxml_router); pushbuffer(0);
6690   }
6691         YY_BREAK
6692
6693 case 274:
6694 /* rule 274 can match eol */
6695 YY_RULE_SETUP
6696 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);
6697         YY_BREAK
6698 case 275:
6699 /* rule 275 can match eol */
6700 YY_RULE_SETUP
6701 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);
6702         YY_BREAK
6703 case 276:
6704 /* rule 276 can match eol */
6705 YY_RULE_SETUP
6706 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);
6707         YY_BREAK
6708 case 277:
6709 /* rule 277 can match eol */
6710 YY_RULE_SETUP
6711 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);
6712         YY_BREAK
6713 case 278:
6714 YY_RULE_SETUP
6715 {
6716   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6717   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6718  }
6719         YY_BREAK
6720 case 279:
6721 YY_RULE_SETUP
6722 {
6723   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6724   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6725   switch (YY_START) {
6726    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6727   }
6728  }
6729         YY_BREAK
6730 case 280:
6731 YY_RULE_SETUP
6732 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6733         YY_BREAK
6734 case 281:
6735 YY_RULE_SETUP
6736 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6737         YY_BREAK
6738 case YY_STATE_EOF(AL_surfxml_router):
6739 FAIL("EOF in attribute list of `router' element.");
6740         YY_BREAK
6741
6742 case 282:
6743 /* rule 282 can match eol */
6744 YY_RULE_SETUP
6745 {
6746   LEAVE;
6747   ETag_surfxml_router();
6748   popbuffer(); /* attribute */
6749   switch (YY_START) {
6750    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6751   }
6752  }
6753         YY_BREAK
6754 case 283:
6755 /* rule 283 can match eol */
6756 YY_RULE_SETUP
6757 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6758         YY_BREAK
6759 case 284:
6760 YY_RULE_SETUP
6761 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6762         YY_BREAK
6763 case YY_STATE_EOF(E_surfxml_router):
6764 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6765         YY_BREAK
6766
6767 case 285:
6768 /* rule 285 can match eol */
6769 YY_RULE_SETUP
6770 FAIL("Starting tag <link> is not allowed here.");
6771         YY_BREAK
6772 case 286:
6773 /* rule 286 can match eol */
6774 YY_RULE_SETUP
6775 {
6776   AX_surfxml_link_id = 0;
6777   surfxml_link_id_isset = 0;
6778   AX_surfxml_link_bandwidth = 0;
6779   surfxml_link_bandwidth_isset = 0;
6780   AX_surfxml_link_bandwidth_file = 0;
6781   surfxml_link_bandwidth_file_isset = 0;
6782   AX_surfxml_link_latency = 24;
6783   surfxml_link_latency_isset = 0;
6784   AX_surfxml_link_latency_file = 0;
6785   surfxml_link_latency_file_isset = 0;
6786   AX_surfxml_link_state = A_surfxml_link_state_ON;
6787   surfxml_link_state_isset = 0;
6788   AX_surfxml_link_state_file = 0;
6789   surfxml_link_state_file_isset = 0;
6790   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6791   surfxml_link_sharing_policy_isset = 0;
6792   ENTER(AL_surfxml_link); pushbuffer(0);
6793   }
6794         YY_BREAK
6795
6796 case 287:
6797 /* rule 287 can match eol */
6798 YY_RULE_SETUP
6799 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);
6800         YY_BREAK
6801 case 288:
6802 /* rule 288 can match eol */
6803 YY_RULE_SETUP
6804 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);
6805         YY_BREAK
6806 case 289:
6807 /* rule 289 can match eol */
6808 YY_RULE_SETUP
6809 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);
6810         YY_BREAK
6811 case 290:
6812 /* rule 290 can match eol */
6813 YY_RULE_SETUP
6814 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);
6815         YY_BREAK
6816 case 291:
6817 /* rule 291 can match eol */
6818 YY_RULE_SETUP
6819 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);
6820         YY_BREAK
6821 case 292:
6822 /* rule 292 can match eol */
6823 YY_RULE_SETUP
6824 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);
6825         YY_BREAK
6826 case 293:
6827 /* rule 293 can match eol */
6828 YY_RULE_SETUP
6829 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);
6830         YY_BREAK
6831 case 294:
6832 /* rule 294 can match eol */
6833 YY_RULE_SETUP
6834 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);
6835         YY_BREAK
6836 case 295:
6837 /* rule 295 can match eol */
6838 YY_RULE_SETUP
6839 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);
6840         YY_BREAK
6841 case 296:
6842 /* rule 296 can match eol */
6843 YY_RULE_SETUP
6844 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);
6845         YY_BREAK
6846 case 297:
6847 /* rule 297 can match eol */
6848 case 298:
6849 /* rule 298 can match eol */
6850 YY_RULE_SETUP
6851 A_surfxml_link_state = A_surfxml_link_state_ON;
6852         YY_BREAK
6853 case 299:
6854 /* rule 299 can match eol */
6855 case 300:
6856 /* rule 300 can match eol */
6857 YY_RULE_SETUP
6858 A_surfxml_link_state = A_surfxml_link_state_OFF;
6859         YY_BREAK
6860 case 301:
6861 /* rule 301 can match eol */
6862 YY_RULE_SETUP
6863 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);
6864         YY_BREAK
6865 case 302:
6866 /* rule 302 can match eol */
6867 YY_RULE_SETUP
6868 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);
6869         YY_BREAK
6870 case 303:
6871 /* rule 303 can match eol */
6872 case 304:
6873 /* rule 304 can match eol */
6874 YY_RULE_SETUP
6875 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6876         YY_BREAK
6877 case 305:
6878 /* rule 305 can match eol */
6879 case 306:
6880 /* rule 306 can match eol */
6881 YY_RULE_SETUP
6882 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6883         YY_BREAK
6884 case 307:
6885 /* rule 307 can match eol */
6886 case 308:
6887 /* rule 308 can match eol */
6888 YY_RULE_SETUP
6889 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6890         YY_BREAK
6891 case 309:
6892 YY_RULE_SETUP
6893 {
6894   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6895   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6896   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
6897  }
6898         YY_BREAK
6899 case 310:
6900 YY_RULE_SETUP
6901 {
6902   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6903   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6904   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
6905   switch (YY_START) {
6906    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6907    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6908   }
6909  }
6910         YY_BREAK
6911 case 311:
6912 YY_RULE_SETUP
6913 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
6914         YY_BREAK
6915 case 312:
6916 YY_RULE_SETUP
6917 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
6918         YY_BREAK
6919 case YY_STATE_EOF(AL_surfxml_link):
6920 FAIL("EOF in attribute list of `link' element.");
6921         YY_BREAK
6922
6923 case 313:
6924 /* rule 313 can match eol */
6925 YY_RULE_SETUP
6926 {
6927   LEAVE;
6928   ETag_surfxml_link();
6929   popbuffer(); /* attribute */
6930   switch (YY_START) {
6931    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6932    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6933   }
6934  }
6935         YY_BREAK
6936 case 314:
6937 /* rule 314 can match eol */
6938 YY_RULE_SETUP
6939 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
6940         YY_BREAK
6941 case 315:
6942 YY_RULE_SETUP
6943 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
6944         YY_BREAK
6945 case YY_STATE_EOF(E_surfxml_link):
6946 case YY_STATE_EOF(S_surfxml_link_2):
6947 case YY_STATE_EOF(S_surfxml_link):
6948 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
6949         YY_BREAK
6950
6951 case 316:
6952 /* rule 316 can match eol */
6953 YY_RULE_SETUP
6954 FAIL("Starting tag <route> is not allowed here.");
6955         YY_BREAK
6956 case 317:
6957 /* rule 317 can match eol */
6958 YY_RULE_SETUP
6959 {
6960   AX_surfxml_route_src = 0;
6961   surfxml_route_src_isset = 0;
6962   AX_surfxml_route_dst = 0;
6963   surfxml_route_dst_isset = 0;
6964   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6965   surfxml_route_symmetrical_isset = 0;
6966   ENTER(AL_surfxml_route); pushbuffer(0);
6967   }
6968         YY_BREAK
6969
6970 case 318:
6971 /* rule 318 can match eol */
6972 YY_RULE_SETUP
6973 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);
6974         YY_BREAK
6975 case 319:
6976 /* rule 319 can match eol */
6977 YY_RULE_SETUP
6978 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);
6979         YY_BREAK
6980 case 320:
6981 /* rule 320 can match eol */
6982 YY_RULE_SETUP
6983 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);
6984         YY_BREAK
6985 case 321:
6986 /* rule 321 can match eol */
6987 YY_RULE_SETUP
6988 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);
6989         YY_BREAK
6990 case 322:
6991 /* rule 322 can match eol */
6992 case 323:
6993 /* rule 323 can match eol */
6994 YY_RULE_SETUP
6995 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6996         YY_BREAK
6997 case 324:
6998 /* rule 324 can match eol */
6999 case 325:
7000 /* rule 325 can match eol */
7001 YY_RULE_SETUP
7002 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7003         YY_BREAK
7004 case 326:
7005 YY_RULE_SETUP
7006 {
7007   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7008   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7009   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7010  }
7011         YY_BREAK
7012 case 327:
7013 YY_RULE_SETUP
7014 {
7015   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7016   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7017   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7018   switch (YY_START) {
7019    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;
7020   }
7021  }
7022         YY_BREAK
7023 case 328:
7024 YY_RULE_SETUP
7025 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7026         YY_BREAK
7027 case 329:
7028 YY_RULE_SETUP
7029 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7030         YY_BREAK
7031 case YY_STATE_EOF(AL_surfxml_route):
7032 FAIL("EOF in attribute list of `route' element.");
7033         YY_BREAK
7034
7035 case 330:
7036 /* rule 330 can match eol */
7037 YY_RULE_SETUP
7038 {
7039   LEAVE;
7040   ETag_surfxml_route();
7041   popbuffer(); /* attribute */
7042   switch (YY_START) {
7043    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;
7044   }
7045  }
7046         YY_BREAK
7047 case 331:
7048 /* rule 331 can match eol */
7049 YY_RULE_SETUP
7050 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7051         YY_BREAK
7052 case 332:
7053 YY_RULE_SETUP
7054 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7055         YY_BREAK
7056 case YY_STATE_EOF(S_surfxml_route):
7057 case YY_STATE_EOF(S_surfxml_route_2):
7058 case YY_STATE_EOF(E_surfxml_route):
7059 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7060         YY_BREAK
7061
7062 case 333:
7063 /* rule 333 can match eol */
7064 YY_RULE_SETUP
7065 FAIL("Starting tag <ASroute> is not allowed here.");
7066         YY_BREAK
7067 case 334:
7068 /* rule 334 can match eol */
7069 YY_RULE_SETUP
7070 {
7071   AX_surfxml_ASroute_src = 0;
7072   surfxml_ASroute_src_isset = 0;
7073   AX_surfxml_ASroute_dst = 0;
7074   surfxml_ASroute_dst_isset = 0;
7075   AX_surfxml_ASroute_gw_src = 0;
7076   surfxml_ASroute_gw_src_isset = 0;
7077   AX_surfxml_ASroute_gw_dst = 0;
7078   surfxml_ASroute_gw_dst_isset = 0;
7079   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7080   surfxml_ASroute_symmetrical_isset = 0;
7081   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7082   }
7083         YY_BREAK
7084
7085 case 335:
7086 /* rule 335 can match eol */
7087 YY_RULE_SETUP
7088 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);
7089         YY_BREAK
7090 case 336:
7091 /* rule 336 can match eol */
7092 YY_RULE_SETUP
7093 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);
7094         YY_BREAK
7095 case 337:
7096 /* rule 337 can match eol */
7097 YY_RULE_SETUP
7098 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);
7099         YY_BREAK
7100 case 338:
7101 /* rule 338 can match eol */
7102 YY_RULE_SETUP
7103 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);
7104         YY_BREAK
7105 case 339:
7106 /* rule 339 can match eol */
7107 YY_RULE_SETUP
7108 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);
7109         YY_BREAK
7110 case 340:
7111 /* rule 340 can match eol */
7112 YY_RULE_SETUP
7113 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);
7114         YY_BREAK
7115 case 341:
7116 /* rule 341 can match eol */
7117 YY_RULE_SETUP
7118 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);
7119         YY_BREAK
7120 case 342:
7121 /* rule 342 can match eol */
7122 YY_RULE_SETUP
7123 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);
7124         YY_BREAK
7125 case 343:
7126 /* rule 343 can match eol */
7127 case 344:
7128 /* rule 344 can match eol */
7129 YY_RULE_SETUP
7130 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7131         YY_BREAK
7132 case 345:
7133 /* rule 345 can match eol */
7134 case 346:
7135 /* rule 346 can match eol */
7136 YY_RULE_SETUP
7137 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7138         YY_BREAK
7139 case 347:
7140 YY_RULE_SETUP
7141 {
7142   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7143   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7144   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7145   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7146   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7147  }
7148         YY_BREAK
7149 case 348:
7150 YY_RULE_SETUP
7151 {
7152   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7153   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7154   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7155   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7156   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7157   switch (YY_START) {
7158    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;
7159   }
7160  }
7161         YY_BREAK
7162 case 349:
7163 YY_RULE_SETUP
7164 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7165         YY_BREAK
7166 case 350:
7167 YY_RULE_SETUP
7168 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7169         YY_BREAK
7170 case YY_STATE_EOF(AL_surfxml_ASroute):
7171 FAIL("EOF in attribute list of `ASroute' element.");
7172         YY_BREAK
7173
7174 case 351:
7175 /* rule 351 can match eol */
7176 YY_RULE_SETUP
7177 {
7178   LEAVE;
7179   ETag_surfxml_ASroute();
7180   popbuffer(); /* attribute */
7181   switch (YY_START) {
7182    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;
7183   }
7184  }
7185         YY_BREAK
7186 case 352:
7187 /* rule 352 can match eol */
7188 YY_RULE_SETUP
7189 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7190         YY_BREAK
7191 case 353:
7192 YY_RULE_SETUP
7193 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7194         YY_BREAK
7195 case YY_STATE_EOF(E_surfxml_ASroute):
7196 case YY_STATE_EOF(S_surfxml_ASroute):
7197 case YY_STATE_EOF(S_surfxml_ASroute_2):
7198 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7199         YY_BREAK
7200
7201 case 354:
7202 /* rule 354 can match eol */
7203 YY_RULE_SETUP
7204 FAIL("Starting tag <link_ctn> is not allowed here.");
7205         YY_BREAK
7206 case 355:
7207 /* rule 355 can match eol */
7208 YY_RULE_SETUP
7209 {
7210   AX_surfxml_link_ctn_id = 0;
7211   surfxml_link_ctn_id_isset = 0;
7212   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7213   surfxml_link_ctn_direction_isset = 0;
7214   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7215   }
7216         YY_BREAK
7217
7218 case 356:
7219 /* rule 356 can match eol */
7220 YY_RULE_SETUP
7221 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);
7222         YY_BREAK
7223 case 357:
7224 /* rule 357 can match eol */
7225 YY_RULE_SETUP
7226 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);
7227         YY_BREAK
7228 case 358:
7229 /* rule 358 can match eol */
7230 case 359:
7231 /* rule 359 can match eol */
7232 YY_RULE_SETUP
7233 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7234         YY_BREAK
7235 case 360:
7236 /* rule 360 can match eol */
7237 case 361:
7238 /* rule 361 can match eol */
7239 YY_RULE_SETUP
7240 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7241         YY_BREAK
7242 case 362:
7243 /* rule 362 can match eol */
7244 case 363:
7245 /* rule 363 can match eol */
7246 YY_RULE_SETUP
7247 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7248         YY_BREAK
7249 case 364:
7250 YY_RULE_SETUP
7251 {
7252   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7253   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7254  }
7255         YY_BREAK
7256 case 365:
7257 YY_RULE_SETUP
7258 {
7259   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7260   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7261   switch (YY_START) {
7262    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7263    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7264    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7265    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7266   }
7267  }
7268         YY_BREAK
7269 case 366:
7270 YY_RULE_SETUP
7271 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7272         YY_BREAK
7273 case 367:
7274 YY_RULE_SETUP
7275 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7276         YY_BREAK
7277 case YY_STATE_EOF(AL_surfxml_link_ctn):
7278 FAIL("EOF in attribute list of `link_ctn' element.");
7279         YY_BREAK
7280
7281 case 368:
7282 /* rule 368 can match eol */
7283 YY_RULE_SETUP
7284 {
7285   LEAVE;
7286   ETag_surfxml_link_ctn();
7287   popbuffer(); /* attribute */
7288   switch (YY_START) {
7289    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7290    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7291    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7292    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7293   }
7294  }
7295         YY_BREAK
7296 case 369:
7297 /* rule 369 can match eol */
7298 YY_RULE_SETUP
7299 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7300         YY_BREAK
7301 case 370:
7302 YY_RULE_SETUP
7303 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7304         YY_BREAK
7305 case YY_STATE_EOF(E_surfxml_link_ctn):
7306 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7307         YY_BREAK
7308
7309 case 371:
7310 /* rule 371 can match eol */
7311 YY_RULE_SETUP
7312 FAIL("Starting tag <bypassRoute> is not allowed here.");
7313         YY_BREAK
7314 case 372:
7315 /* rule 372 can match eol */
7316 YY_RULE_SETUP
7317 {
7318   AX_surfxml_bypassRoute_src = 0;
7319   surfxml_bypassRoute_src_isset = 0;
7320   AX_surfxml_bypassRoute_dst = 0;
7321   surfxml_bypassRoute_dst_isset = 0;
7322   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7323   }
7324         YY_BREAK
7325
7326 case 373:
7327 /* rule 373 can match eol */
7328 YY_RULE_SETUP
7329 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);
7330         YY_BREAK
7331 case 374:
7332 /* rule 374 can match eol */
7333 YY_RULE_SETUP
7334 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);
7335         YY_BREAK
7336 case 375:
7337 /* rule 375 can match eol */
7338 YY_RULE_SETUP
7339 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);
7340         YY_BREAK
7341 case 376:
7342 /* rule 376 can match eol */
7343 YY_RULE_SETUP
7344 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);
7345         YY_BREAK
7346 case 377:
7347 YY_RULE_SETUP
7348 {
7349   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7350   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7351   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7352  }
7353         YY_BREAK
7354 case 378:
7355 YY_RULE_SETUP
7356 {
7357   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7358   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7359   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7360   switch (YY_START) {
7361    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;
7362   }
7363  }
7364         YY_BREAK
7365 case 379:
7366 YY_RULE_SETUP
7367 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7368         YY_BREAK
7369 case 380:
7370 YY_RULE_SETUP
7371 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7372         YY_BREAK
7373 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7374 FAIL("EOF in attribute list of `bypassRoute' element.");
7375         YY_BREAK
7376
7377 case 381:
7378 /* rule 381 can match eol */
7379 YY_RULE_SETUP
7380 {
7381   LEAVE;
7382   ETag_surfxml_bypassRoute();
7383   popbuffer(); /* attribute */
7384   switch (YY_START) {
7385    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;
7386   }
7387  }
7388         YY_BREAK
7389 case 382:
7390 /* rule 382 can match eol */
7391 YY_RULE_SETUP
7392 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7393         YY_BREAK
7394 case 383:
7395 YY_RULE_SETUP
7396 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7397         YY_BREAK
7398 case YY_STATE_EOF(S_surfxml_bypassRoute):
7399 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7400 case YY_STATE_EOF(E_surfxml_bypassRoute):
7401 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7402         YY_BREAK
7403
7404 case 384:
7405 /* rule 384 can match eol */
7406 YY_RULE_SETUP
7407 FAIL("Starting tag <bypassASroute> is not allowed here.");
7408         YY_BREAK
7409 case 385:
7410 /* rule 385 can match eol */
7411 YY_RULE_SETUP
7412 {
7413   AX_surfxml_bypassASroute_src = 0;
7414   surfxml_bypassASroute_src_isset = 0;
7415   AX_surfxml_bypassASroute_dst = 0;
7416   surfxml_bypassASroute_dst_isset = 0;
7417   AX_surfxml_bypassASroute_gw_src = 0;
7418   surfxml_bypassASroute_gw_src_isset = 0;
7419   AX_surfxml_bypassASroute_gw_dst = 0;
7420   surfxml_bypassASroute_gw_dst_isset = 0;
7421   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7422   }
7423         YY_BREAK
7424
7425 case 386:
7426 /* rule 386 can match eol */
7427 YY_RULE_SETUP
7428 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);
7429         YY_BREAK
7430 case 387:
7431 /* rule 387 can match eol */
7432 YY_RULE_SETUP
7433 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);
7434         YY_BREAK
7435 case 388:
7436 /* rule 388 can match eol */
7437 YY_RULE_SETUP
7438 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);
7439         YY_BREAK
7440 case 389:
7441 /* rule 389 can match eol */
7442 YY_RULE_SETUP
7443 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);
7444         YY_BREAK
7445 case 390:
7446 /* rule 390 can match eol */
7447 YY_RULE_SETUP
7448 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);
7449         YY_BREAK
7450 case 391:
7451 /* rule 391 can match eol */
7452 YY_RULE_SETUP
7453 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);
7454         YY_BREAK
7455 case 392:
7456 /* rule 392 can match eol */
7457 YY_RULE_SETUP
7458 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);
7459         YY_BREAK
7460 case 393:
7461 /* rule 393 can match eol */
7462 YY_RULE_SETUP
7463 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);
7464         YY_BREAK
7465 case 394:
7466 YY_RULE_SETUP
7467 {
7468   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7469   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7470   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7471   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7472   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7473  }
7474         YY_BREAK
7475 case 395:
7476 YY_RULE_SETUP
7477 {
7478   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7479   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7480   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7481   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7482   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7483   switch (YY_START) {
7484    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;
7485   }
7486  }
7487         YY_BREAK
7488 case 396:
7489 YY_RULE_SETUP
7490 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7491         YY_BREAK
7492 case 397:
7493 YY_RULE_SETUP
7494 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7495         YY_BREAK
7496 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7497 FAIL("EOF in attribute list of `bypassASroute' element.");
7498         YY_BREAK
7499
7500 case 398:
7501 /* rule 398 can match eol */
7502 YY_RULE_SETUP
7503 {
7504   LEAVE;
7505   ETag_surfxml_bypassASroute();
7506   popbuffer(); /* attribute */
7507   switch (YY_START) {
7508    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;
7509   }
7510  }
7511         YY_BREAK
7512 case 399:
7513 /* rule 399 can match eol */
7514 YY_RULE_SETUP
7515 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7516         YY_BREAK
7517 case 400:
7518 YY_RULE_SETUP
7519 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7520         YY_BREAK
7521 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7522 case YY_STATE_EOF(E_surfxml_bypassASroute):
7523 case YY_STATE_EOF(S_surfxml_bypassASroute):
7524 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7525         YY_BREAK
7526
7527 case 401:
7528 /* rule 401 can match eol */
7529 YY_RULE_SETUP
7530 FAIL("Starting tag <process> is not allowed here.");
7531         YY_BREAK
7532 case 402:
7533 /* rule 402 can match eol */
7534 YY_RULE_SETUP
7535 {
7536   AX_surfxml_process_host = 0;
7537   surfxml_process_host_isset = 0;
7538   AX_surfxml_process_function = 0;
7539   surfxml_process_function_isset = 0;
7540   AX_surfxml_process_start_time = 28;
7541   surfxml_process_start_time_isset = 0;
7542   AX_surfxml_process_kill_time = 33;
7543   surfxml_process_kill_time_isset = 0;
7544   ENTER(AL_surfxml_process); pushbuffer(0);
7545   }
7546         YY_BREAK
7547
7548 case 403:
7549 /* rule 403 can match eol */
7550 YY_RULE_SETUP
7551 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);
7552         YY_BREAK
7553 case 404:
7554 /* rule 404 can match eol */
7555 YY_RULE_SETUP
7556 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);
7557         YY_BREAK
7558 case 405:
7559 /* rule 405 can match eol */
7560 YY_RULE_SETUP
7561 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);
7562         YY_BREAK
7563 case 406:
7564 /* rule 406 can match eol */
7565 YY_RULE_SETUP
7566 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);
7567         YY_BREAK
7568 case 407:
7569 /* rule 407 can match eol */
7570 YY_RULE_SETUP
7571 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);
7572         YY_BREAK
7573 case 408:
7574 /* rule 408 can match eol */
7575 YY_RULE_SETUP
7576 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);
7577         YY_BREAK
7578 case 409:
7579 /* rule 409 can match eol */
7580 YY_RULE_SETUP
7581 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);
7582         YY_BREAK
7583 case 410:
7584 /* rule 410 can match eol */
7585 YY_RULE_SETUP
7586 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);
7587         YY_BREAK
7588 case 411:
7589 YY_RULE_SETUP
7590 {
7591   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7592   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7593   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7594  }
7595         YY_BREAK
7596 case 412:
7597 YY_RULE_SETUP
7598 {
7599   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7600   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7601   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7602   switch (YY_START) {
7603    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;
7604   }
7605  }
7606         YY_BREAK
7607 case 413:
7608 YY_RULE_SETUP
7609 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7610         YY_BREAK
7611 case 414:
7612 YY_RULE_SETUP
7613 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7614         YY_BREAK
7615 case YY_STATE_EOF(AL_surfxml_process):
7616 FAIL("EOF in attribute list of `process' element.");
7617         YY_BREAK
7618
7619 case 415:
7620 /* rule 415 can match eol */
7621 YY_RULE_SETUP
7622 {
7623   LEAVE;
7624   ETag_surfxml_process();
7625   popbuffer(); /* attribute */
7626   switch (YY_START) {
7627    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;
7628   }
7629  }
7630         YY_BREAK
7631 case 416:
7632 /* rule 416 can match eol */
7633 YY_RULE_SETUP
7634 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7635         YY_BREAK
7636 case 417:
7637 YY_RULE_SETUP
7638 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7639         YY_BREAK
7640 case YY_STATE_EOF(E_surfxml_process):
7641 case YY_STATE_EOF(S_surfxml_process):
7642 case YY_STATE_EOF(S_surfxml_process_2):
7643 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7644         YY_BREAK
7645
7646 case 418:
7647 /* rule 418 can match eol */
7648 YY_RULE_SETUP
7649 FAIL("Starting tag <argument> is not allowed here.");
7650         YY_BREAK
7651 case 419:
7652 /* rule 419 can match eol */
7653 YY_RULE_SETUP
7654 {
7655   AX_surfxml_argument_value = 0;
7656   surfxml_argument_value_isset = 0;
7657   ENTER(AL_surfxml_argument); pushbuffer(0);
7658   }
7659         YY_BREAK
7660
7661 case 420:
7662 /* rule 420 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 421:
7667 /* rule 421 can match eol */
7668 YY_RULE_SETUP
7669 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);
7670         YY_BREAK
7671 case 422:
7672 YY_RULE_SETUP
7673 {
7674   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7675   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7676  }
7677         YY_BREAK
7678 case 423:
7679 YY_RULE_SETUP
7680 {
7681   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7682   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7683   switch (YY_START) {
7684    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7685   }
7686  }
7687         YY_BREAK
7688 case 424:
7689 YY_RULE_SETUP
7690 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7691         YY_BREAK
7692 case 425:
7693 YY_RULE_SETUP
7694 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7695         YY_BREAK
7696 case YY_STATE_EOF(AL_surfxml_argument):
7697 FAIL("EOF in attribute list of `argument' element.");
7698         YY_BREAK
7699
7700 case 426:
7701 /* rule 426 can match eol */
7702 YY_RULE_SETUP
7703 {
7704   LEAVE;
7705   ETag_surfxml_argument();
7706   popbuffer(); /* attribute */
7707   switch (YY_START) {
7708    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7709   }
7710  }
7711         YY_BREAK
7712 case 427:
7713 /* rule 427 can match eol */
7714 YY_RULE_SETUP
7715 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7716         YY_BREAK
7717 case 428:
7718 YY_RULE_SETUP
7719 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7720         YY_BREAK
7721 case YY_STATE_EOF(E_surfxml_argument):
7722 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7723         YY_BREAK
7724
7725 case 429:
7726 /* rule 429 can match eol */
7727 YY_RULE_SETUP
7728 FAIL("Starting tag <config> is not allowed here.");
7729         YY_BREAK
7730 case 430:
7731 /* rule 430 can match eol */
7732 YY_RULE_SETUP
7733 {
7734   AX_surfxml_config_id = 0;
7735   surfxml_config_id_isset = 0;
7736   ENTER(AL_surfxml_config); pushbuffer(0);
7737   }
7738         YY_BREAK
7739
7740 case 431:
7741 /* rule 431 can match eol */
7742 YY_RULE_SETUP
7743 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);
7744         YY_BREAK
7745 case 432:
7746 /* rule 432 can match eol */
7747 YY_RULE_SETUP
7748 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);
7749         YY_BREAK
7750 case 433:
7751 YY_RULE_SETUP
7752 {
7753   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7754  }
7755         YY_BREAK
7756 case 434:
7757 YY_RULE_SETUP
7758 {
7759   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7760   switch (YY_START) {
7761    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7762   }
7763  }
7764         YY_BREAK
7765 case 435:
7766 YY_RULE_SETUP
7767 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7768         YY_BREAK
7769 case 436:
7770 YY_RULE_SETUP
7771 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7772         YY_BREAK
7773 case YY_STATE_EOF(AL_surfxml_config):
7774 FAIL("EOF in attribute list of `config' element.");
7775         YY_BREAK
7776
7777 case 437:
7778 /* rule 437 can match eol */
7779 YY_RULE_SETUP
7780 {
7781   LEAVE;
7782   ETag_surfxml_config();
7783   popbuffer(); /* attribute */
7784   switch (YY_START) {
7785    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7786   }
7787  }
7788         YY_BREAK
7789 case 438:
7790 /* rule 438 can match eol */
7791 YY_RULE_SETUP
7792 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7793         YY_BREAK
7794 case 439:
7795 YY_RULE_SETUP
7796 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7797         YY_BREAK
7798 case YY_STATE_EOF(S_surfxml_config):
7799 case YY_STATE_EOF(S_surfxml_config_2):
7800 case YY_STATE_EOF(E_surfxml_config):
7801 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7802         YY_BREAK
7803
7804 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7805   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7806 case 440:
7807 /* rule 440 can match eol */
7808 YY_RULE_SETUP
7809 FAIL("Starting tag <prop> is not allowed here.");
7810         YY_BREAK
7811 case 441:
7812 /* rule 441 can match eol */
7813 YY_RULE_SETUP
7814 {
7815   AX_surfxml_prop_id = 0;
7816   surfxml_prop_id_isset = 0;
7817   AX_surfxml_prop_value = 0;
7818   surfxml_prop_value_isset = 0;
7819   ENTER(AL_surfxml_prop); pushbuffer(0);
7820   }
7821         YY_BREAK
7822
7823 case 442:
7824 /* rule 442 can match eol */
7825 YY_RULE_SETUP
7826 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);
7827         YY_BREAK
7828 case 443:
7829 /* rule 443 can match eol */
7830 YY_RULE_SETUP
7831 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);
7832         YY_BREAK
7833 case 444:
7834 /* rule 444 can match eol */
7835 YY_RULE_SETUP
7836 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);
7837         YY_BREAK
7838 case 445:
7839 /* rule 445 can match eol */
7840 YY_RULE_SETUP
7841 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);
7842         YY_BREAK
7843 case 446:
7844 YY_RULE_SETUP
7845 {
7846   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7847   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7848   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7849  }
7850         YY_BREAK
7851 case 447:
7852 YY_RULE_SETUP
7853 {
7854   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7855   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7856   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7857   switch (YY_START) {
7858    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7859    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7860    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7861    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7862    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7863    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7864    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7865   }
7866  }
7867         YY_BREAK
7868 case 448:
7869 YY_RULE_SETUP
7870 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7871         YY_BREAK
7872 case 449:
7873 YY_RULE_SETUP
7874 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7875         YY_BREAK
7876 case YY_STATE_EOF(AL_surfxml_prop):
7877 FAIL("EOF in attribute list of `prop' element.");
7878         YY_BREAK
7879
7880 case 450:
7881 /* rule 450 can match eol */
7882 YY_RULE_SETUP
7883 {
7884   LEAVE;
7885   ETag_surfxml_prop();
7886   popbuffer(); /* attribute */
7887   switch (YY_START) {
7888    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7889    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7890    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7891    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7892    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7893    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7894    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7895   }
7896  }
7897         YY_BREAK
7898 case 451:
7899 /* rule 451 can match eol */
7900 YY_RULE_SETUP
7901 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
7902         YY_BREAK
7903 case 452:
7904 YY_RULE_SETUP
7905 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
7906         YY_BREAK
7907 case YY_STATE_EOF(E_surfxml_prop):
7908 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
7909         YY_BREAK
7910
7911 /* EPILOG: after the root element. */
7912
7913 case 453:
7914 YY_RULE_SETUP
7915 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
7916         YY_BREAK
7917 case YY_STATE_EOF(EPILOG):
7918 SUCCEED;
7919         YY_BREAK
7920
7921 /* CHARACTER DATA. */
7922
7923 /* Non-defined standard entities... */
7924 case 454:
7925 YY_RULE_SETUP
7926 BUFFERPUTC('&');
7927         YY_BREAK
7928 case 455:
7929 YY_RULE_SETUP
7930 BUFFERPUTC('<');
7931         YY_BREAK
7932 case 456:
7933 YY_RULE_SETUP
7934 BUFFERPUTC('>');
7935         YY_BREAK
7936 case 457:
7937 YY_RULE_SETUP
7938 BUFFERPUTC('\'');
7939         YY_BREAK
7940 case 458:
7941 YY_RULE_SETUP
7942 BUFFERPUTC('"');
7943         YY_BREAK
7944 /* Character entities. */
7945 case 459:
7946 YY_RULE_SETUP
7947 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
7948         YY_BREAK
7949 case 460:
7950 YY_RULE_SETUP
7951 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
7952         YY_BREAK
7953
7954 case 461:
7955 /* rule 461 can match eol */
7956 case 462:
7957 /* rule 462 can match eol */
7958 case 463:
7959 /* rule 463 can match eol */
7960 case 464:
7961 /* rule 464 can match eol */
7962 YY_RULE_SETUP
7963 BUFFERPUTC('\n');
7964         YY_BREAK
7965
7966 case 465:
7967 YY_RULE_SETUP
7968 ENTER(CDATA);
7969         YY_BREAK
7970 case 466:
7971 YY_RULE_SETUP
7972 FAIL("Unexpected `]""]>' in character data.");
7973         YY_BREAK
7974
7975 case 467:
7976 YY_RULE_SETUP
7977 BUFFERDONE; LEAVE;
7978         YY_BREAK
7979 case YY_STATE_EOF(VALUE1):
7980 FAIL("EOF in literal (\"'\" expected).");
7981         YY_BREAK
7982
7983 case 468:
7984 YY_RULE_SETUP
7985 BUFFERDONE; LEAVE;
7986         YY_BREAK
7987 case YY_STATE_EOF(VALUE2):
7988 FAIL("EOF in literal (`\"' expected).");
7989         YY_BREAK
7990
7991 case 469:
7992 /* rule 469 can match eol */
7993 YY_RULE_SETUP
7994 BUFFERPUTC(surf_parse_text[0]);
7995         YY_BREAK
7996 case 470:
7997 YY_RULE_SETUP
7998 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
7999         YY_BREAK
8000
8001 case 471:
8002 YY_RULE_SETUP
8003 LEAVE;
8004         YY_BREAK
8005 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8006 case 472:
8007 YY_RULE_SETUP
8008 BUFFERPUTC(surf_parse_text[0]);
8009         YY_BREAK
8010 case YY_STATE_EOF(CDATA):
8011 FAIL("EOF in CDATA section.");
8012         YY_BREAK
8013
8014 /* Impossible rules to avoid warnings from flex(1). */
8015 /* Ideally, this should be replaced by code in flexml.pl that
8016     generates just the states not covered by other rules. */
8017
8018 case 473:
8019 /* rule 473 can match eol */
8020 YY_RULE_SETUP
8021 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8022         YY_BREAK
8023
8024 case 474:
8025 YY_RULE_SETUP
8026 ECHO;
8027         YY_BREAK
8028 case YY_STATE_EOF(INITIAL):
8029 case YY_STATE_EOF(ROOT_surfxml_platform):
8030 case YY_STATE_EOF(S_surfxml_platform_2):
8031 case YY_STATE_EOF(S_surfxml_platform_5):
8032 case YY_STATE_EOF(S_surfxml_platform_7):
8033 case YY_STATE_EOF(S_surfxml_include_1):
8034 case YY_STATE_EOF(S_surfxml_random_1):
8035 case YY_STATE_EOF(S_surfxml_AS_2):
8036 case YY_STATE_EOF(S_surfxml_AS_5):
8037 case YY_STATE_EOF(S_surfxml_AS_7):
8038 case YY_STATE_EOF(S_surfxml_AS_10):
8039 case YY_STATE_EOF(S_surfxml_AS_12):
8040 case YY_STATE_EOF(S_surfxml_storage_type_1):
8041 case YY_STATE_EOF(S_surfxml_storage_1):
8042 case YY_STATE_EOF(S_surfxml_host_1):
8043 case YY_STATE_EOF(S_surfxml_link_1):
8044 case YY_STATE_EOF(S_surfxml_route_1):
8045 case YY_STATE_EOF(S_surfxml_ASroute_1):
8046 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8047 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8048 case YY_STATE_EOF(S_surfxml_process_1):
8049 case YY_STATE_EOF(S_surfxml_config_1):
8050 case YY_STATE_EOF(IMPOSSIBLE):
8051         yyterminate();
8052
8053         case YY_END_OF_BUFFER:
8054                 {
8055                 /* Amount of text matched not including the EOB char. */
8056                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8057
8058                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8059                 *yy_cp = (yy_hold_char);
8060                 YY_RESTORE_YY_MORE_OFFSET
8061
8062                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8063                         {
8064                         /* We're scanning a new file or input source.  It's
8065                          * possible that this happened because the user
8066                          * just pointed surf_parse_in at a new source and called
8067                          * surf_parse_lex().  If so, then we have to assure
8068                          * consistency between YY_CURRENT_BUFFER and our
8069                          * globals.  Here is the right place to do so, because
8070                          * this is the first action (other than possibly a
8071                          * back-up) that will match for the new input source.
8072                          */
8073                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8074                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8075                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8076                         }
8077
8078                 /* Note that here we test for yy_c_buf_p "<=" to the position
8079                  * of the first EOB in the buffer, since yy_c_buf_p will
8080                  * already have been incremented past the NUL character
8081                  * (since all states make transitions on EOB to the
8082                  * end-of-buffer state).  Contrast this with the test
8083                  * in input().
8084                  */
8085                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8086                         { /* This was really a NUL. */
8087                         yy_state_type yy_next_state;
8088
8089                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8090
8091                         yy_current_state = yy_get_previous_state(  );
8092
8093                         /* Okay, we're now positioned to make the NUL
8094                          * transition.  We couldn't have
8095                          * yy_get_previous_state() go ahead and do it
8096                          * for us because it doesn't know how to deal
8097                          * with the possibility of jamming (and we don't
8098                          * want to build jamming into it because then it
8099                          * will run more slowly).
8100                          */
8101
8102                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8103
8104                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8105
8106                         if ( yy_next_state )
8107                                 {
8108                                 /* Consume the NUL. */
8109                                 yy_cp = ++(yy_c_buf_p);
8110                                 yy_current_state = yy_next_state;
8111                                 goto yy_match;
8112                                 }
8113
8114                         else
8115                                 {
8116                                 yy_cp = (yy_c_buf_p);
8117                                 goto yy_find_action;
8118                                 }
8119                         }
8120
8121                 else switch ( yy_get_next_buffer(  ) )
8122                         {
8123                         case EOB_ACT_END_OF_FILE:
8124                                 {
8125                                 (yy_did_buffer_switch_on_eof) = 0;
8126
8127                                 if ( surf_parse_wrap( ) )
8128                                         {
8129                                         /* Note: because we've taken care in
8130                                          * yy_get_next_buffer() to have set up
8131                                          * surf_parse_text, we can now set up
8132                                          * yy_c_buf_p so that if some total
8133                                          * hoser (like flex itself) wants to
8134                                          * call the scanner after we return the
8135                                          * YY_NULL, it'll still work - another
8136                                          * YY_NULL will get returned.
8137                                          */
8138                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8139
8140                                         yy_act = YY_STATE_EOF(YY_START);
8141                                         goto do_action;
8142                                         }
8143
8144                                 else
8145                                         {
8146                                         if ( ! (yy_did_buffer_switch_on_eof) )
8147                                                 YY_NEW_FILE;
8148                                         }
8149                                 break;
8150                                 }
8151
8152                         case EOB_ACT_CONTINUE_SCAN:
8153                                 (yy_c_buf_p) =
8154                                         (yytext_ptr) + yy_amount_of_matched_text;
8155
8156                                 yy_current_state = yy_get_previous_state(  );
8157
8158                                 yy_cp = (yy_c_buf_p);
8159                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8160                                 goto yy_match;
8161
8162                         case EOB_ACT_LAST_MATCH:
8163                                 (yy_c_buf_p) =
8164                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8165
8166                                 yy_current_state = yy_get_previous_state(  );
8167
8168                                 yy_cp = (yy_c_buf_p);
8169                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8170                                 goto yy_find_action;
8171                         }
8172                 break;
8173                 }
8174
8175         default:
8176                 YY_FATAL_ERROR(
8177                         "fatal flex scanner internal error--no action found" );
8178         } /* end of action switch */
8179                 } /* end of scanning one token */
8180 } /* end of surf_parse_lex */
8181
8182 /* yy_get_next_buffer - try to read in a new buffer
8183  *
8184  * Returns a code representing an action:
8185  *      EOB_ACT_LAST_MATCH -
8186  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8187  *      EOB_ACT_END_OF_FILE - end of file
8188  */
8189 static int yy_get_next_buffer (void)
8190 {
8191         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8192         register char *source = (yytext_ptr);
8193         register int number_to_move, i;
8194         int ret_val;
8195
8196         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8197                 YY_FATAL_ERROR(
8198                 "fatal flex scanner internal error--end of buffer missed" );
8199
8200         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8201                 { /* Don't try to fill the buffer, so this is an EOF. */
8202                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8203                         {
8204                         /* We matched a single character, the EOB, so
8205                          * treat this as a final EOF.
8206                          */
8207                         return EOB_ACT_END_OF_FILE;
8208                         }
8209
8210                 else
8211                         {
8212                         /* We matched some text prior to the EOB, first
8213                          * process it.
8214                          */
8215                         return EOB_ACT_LAST_MATCH;
8216                         }
8217                 }
8218
8219         /* Try to read more data. */
8220
8221         /* First move last chars to start of buffer. */
8222         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8223
8224         for ( i = 0; i < number_to_move; ++i )
8225                 *(dest++) = *(source++);
8226
8227         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8228                 /* don't do the read, it's not guaranteed to return an EOF,
8229                  * just force an EOF
8230                  */
8231                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8232
8233         else
8234                 {
8235                         int num_to_read =
8236                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8237
8238                 while ( num_to_read <= 0 )
8239                         { /* Not enough room in the buffer - grow it. */
8240
8241                         /* just a shorter name for the current buffer */
8242                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8243
8244                         int yy_c_buf_p_offset =
8245                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8246
8247                         if ( b->yy_is_our_buffer )
8248                                 {
8249                                 int new_size = b->yy_buf_size * 2;
8250
8251                                 if ( new_size <= 0 )
8252                                         b->yy_buf_size += b->yy_buf_size / 8;
8253                                 else
8254                                         b->yy_buf_size *= 2;
8255
8256                                 b->yy_ch_buf = (char *)
8257                                         /* Include room in for 2 EOB chars. */
8258                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8259                                 }
8260                         else
8261                                 /* Can't grow it, we don't own it. */
8262                                 b->yy_ch_buf = 0;
8263
8264                         if ( ! b->yy_ch_buf )
8265                                 YY_FATAL_ERROR(
8266                                 "fatal error - scanner input buffer overflow" );
8267
8268                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8269
8270                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8271                                                 number_to_move - 1;
8272
8273                         }
8274
8275                 if ( num_to_read > YY_READ_BUF_SIZE )
8276                         num_to_read = YY_READ_BUF_SIZE;
8277
8278                 /* Read in more data. */
8279                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8280                         (yy_n_chars), (size_t) num_to_read );
8281
8282                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8283                 }
8284
8285         if ( (yy_n_chars) == 0 )
8286                 {
8287                 if ( number_to_move == YY_MORE_ADJ )
8288                         {
8289                         ret_val = EOB_ACT_END_OF_FILE;
8290                         surf_parse_restart(surf_parse_in  );
8291                         }
8292
8293                 else
8294                         {
8295                         ret_val = EOB_ACT_LAST_MATCH;
8296                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8297                                 YY_BUFFER_EOF_PENDING;
8298                         }
8299                 }
8300
8301         else
8302                 ret_val = EOB_ACT_CONTINUE_SCAN;
8303
8304         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8305                 /* Extend the array by 50%, plus the number we really need. */
8306                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8307                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8308                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8309                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8310         }
8311
8312         (yy_n_chars) += number_to_move;
8313         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8314         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8315
8316         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8317
8318         return ret_val;
8319 }
8320
8321 /* yy_get_previous_state - get the state just before the EOB char was reached */
8322
8323     static yy_state_type yy_get_previous_state (void)
8324 {
8325         register yy_state_type yy_current_state;
8326         register char *yy_cp;
8327     
8328         yy_current_state = (yy_start);
8329
8330         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8331                 {
8332                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8333                 if ( yy_accept[yy_current_state] )
8334                         {
8335                         (yy_last_accepting_state) = yy_current_state;
8336                         (yy_last_accepting_cpos) = yy_cp;
8337                         }
8338                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8339                         {
8340                         yy_current_state = (int) yy_def[yy_current_state];
8341                         if ( yy_current_state >= 2797 )
8342                                 yy_c = yy_meta[(unsigned int) yy_c];
8343                         }
8344                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8345                 }
8346
8347         return yy_current_state;
8348 }
8349
8350 /* yy_try_NUL_trans - try to make a transition on the NUL character
8351  *
8352  * synopsis
8353  *      next_state = yy_try_NUL_trans( current_state );
8354  */
8355     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8356 {
8357         register int yy_is_jam;
8358         register char *yy_cp = (yy_c_buf_p);
8359
8360         register YY_CHAR yy_c = 1;
8361         if ( yy_accept[yy_current_state] )
8362                 {
8363                 (yy_last_accepting_state) = yy_current_state;
8364                 (yy_last_accepting_cpos) = yy_cp;
8365                 }
8366         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8367                 {
8368                 yy_current_state = (int) yy_def[yy_current_state];
8369                 if ( yy_current_state >= 2797 )
8370                         yy_c = yy_meta[(unsigned int) yy_c];
8371                 }
8372         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8373         yy_is_jam = (yy_current_state == 2796);
8374
8375         return yy_is_jam ? 0 : yy_current_state;
8376 }
8377
8378 #ifndef YY_NO_INPUT
8379 #ifdef __cplusplus
8380     static int yyinput (void)
8381 #else
8382     static int input  (void)
8383 #endif
8384
8385 {
8386         int c;
8387     
8388         *(yy_c_buf_p) = (yy_hold_char);
8389
8390         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8391                 {
8392                 /* yy_c_buf_p now points to the character we want to return.
8393                  * If this occurs *before* the EOB characters, then it's a
8394                  * valid NUL; if not, then we've hit the end of the buffer.
8395                  */
8396                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8397                         /* This was really a NUL. */
8398                         *(yy_c_buf_p) = '\0';
8399
8400                 else
8401                         { /* need more input */
8402                         int offset = (yy_c_buf_p) - (yytext_ptr);
8403                         ++(yy_c_buf_p);
8404
8405                         switch ( yy_get_next_buffer(  ) )
8406                                 {
8407                                 case EOB_ACT_LAST_MATCH:
8408                                         /* This happens because yy_g_n_b()
8409                                          * sees that we've accumulated a
8410                                          * token and flags that we need to
8411                                          * try matching the token before
8412                                          * proceeding.  But for input(),
8413                                          * there's no matching to consider.
8414                                          * So convert the EOB_ACT_LAST_MATCH
8415                                          * to EOB_ACT_END_OF_FILE.
8416                                          */
8417
8418                                         /* Reset buffer status. */
8419                                         surf_parse_restart(surf_parse_in );
8420
8421                                         /*FALLTHROUGH*/
8422
8423                                 case EOB_ACT_END_OF_FILE:
8424                                         {
8425                                         if ( surf_parse_wrap( ) )
8426                                                 return EOF;
8427
8428                                         if ( ! (yy_did_buffer_switch_on_eof) )
8429                                                 YY_NEW_FILE;
8430 #ifdef __cplusplus
8431                                         return yyinput();
8432 #else
8433                                         return input();
8434 #endif
8435                                         }
8436
8437                                 case EOB_ACT_CONTINUE_SCAN:
8438                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8439                                         break;
8440                                 }
8441                         }
8442                 }
8443
8444         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8445         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8446         (yy_hold_char) = *++(yy_c_buf_p);
8447
8448         if ( c == '\n' )
8449                    
8450     surf_parse_lineno++;
8451 ;
8452
8453         return c;
8454 }
8455 #endif  /* ifndef YY_NO_INPUT */
8456
8457 /** Immediately switch to a different input stream.
8458  * @param input_file A readable stream.
8459  * 
8460  * @note This function does not reset the start condition to @c INITIAL .
8461  */
8462     void surf_parse_restart  (FILE * input_file )
8463 {
8464     
8465         if ( ! YY_CURRENT_BUFFER ){
8466         surf_parse_ensure_buffer_stack ();
8467                 YY_CURRENT_BUFFER_LVALUE =
8468             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8469         }
8470
8471         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8472         surf_parse__load_buffer_state( );
8473 }
8474
8475 /** Switch to a different input buffer.
8476  * @param new_buffer The new input buffer.
8477  * 
8478  */
8479     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8480 {
8481     
8482         /* TODO. We should be able to replace this entire function body
8483          * with
8484          *              surf_parse_pop_buffer_state();
8485          *              surf_parse_push_buffer_state(new_buffer);
8486      */
8487         surf_parse_ensure_buffer_stack ();
8488         if ( YY_CURRENT_BUFFER == new_buffer )
8489                 return;
8490
8491         if ( YY_CURRENT_BUFFER )
8492                 {
8493                 /* Flush out information for old buffer. */
8494                 *(yy_c_buf_p) = (yy_hold_char);
8495                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8496                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8497                 }
8498
8499         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8500         surf_parse__load_buffer_state( );
8501
8502         /* We don't actually know whether we did this switch during
8503          * EOF (surf_parse_wrap()) processing, but the only time this flag
8504          * is looked at is after surf_parse_wrap() is called, so it's safe
8505          * to go ahead and always set it.
8506          */
8507         (yy_did_buffer_switch_on_eof) = 1;
8508 }
8509
8510 static void surf_parse__load_buffer_state  (void)
8511 {
8512         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8513         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8514         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8515         (yy_hold_char) = *(yy_c_buf_p);
8516 }
8517
8518 /** Allocate and initialize an input buffer state.
8519  * @param file A readable stream.
8520  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8521  * 
8522  * @return the allocated buffer state.
8523  */
8524     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8525 {
8526         YY_BUFFER_STATE b;
8527     
8528         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8529         if ( ! b )
8530                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8531
8532         b->yy_buf_size = size;
8533
8534         /* yy_ch_buf has to be 2 characters longer than the size given because
8535          * we need to put in 2 end-of-buffer characters.
8536          */
8537         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8538         if ( ! b->yy_ch_buf )
8539                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8540
8541         b->yy_is_our_buffer = 1;
8542
8543         surf_parse__init_buffer(b,file );
8544
8545         return b;
8546 }
8547
8548 /** Destroy the buffer.
8549  * @param b a buffer created with surf_parse__create_buffer()
8550  * 
8551  */
8552     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8553 {
8554     
8555         if ( ! b )
8556                 return;
8557
8558         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8559                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8560
8561         if ( b->yy_is_our_buffer )
8562                 surf_parse_free((void *) b->yy_ch_buf  );
8563
8564         surf_parse_free((void *) b  );
8565 }
8566
8567 #ifndef __cplusplus
8568 extern int isatty (int );
8569 #endif /* __cplusplus */
8570     
8571 /* Initializes or reinitializes a buffer.
8572  * This function is sometimes called more than once on the same buffer,
8573  * such as during a surf_parse_restart() or at EOF.
8574  */
8575     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8576
8577 {
8578         int oerrno = errno;
8579     
8580         surf_parse__flush_buffer(b );
8581
8582         b->yy_input_file = file;
8583         b->yy_fill_buffer = 1;
8584
8585     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8586      * called from surf_parse_restart() or through yy_get_next_buffer.
8587      * In that case, we don't want to reset the lineno or column.
8588      */
8589     if (b != YY_CURRENT_BUFFER){
8590         b->yy_bs_lineno = 1;
8591         b->yy_bs_column = 0;
8592     }
8593
8594         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8595     
8596         errno = oerrno;
8597 }
8598
8599 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8600  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8601  * 
8602  */
8603     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8604 {
8605         if ( ! b )
8606                 return;
8607
8608         b->yy_n_chars = 0;
8609
8610         /* We always need two end-of-buffer characters.  The first causes
8611          * a transition to the end-of-buffer state.  The second causes
8612          * a jam in that state.
8613          */
8614         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8615         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8616
8617         b->yy_buf_pos = &b->yy_ch_buf[0];
8618
8619         b->yy_at_bol = 1;
8620         b->yy_buffer_status = YY_BUFFER_NEW;
8621
8622         if ( b == YY_CURRENT_BUFFER )
8623                 surf_parse__load_buffer_state( );
8624 }
8625
8626 /** Pushes the new state onto the stack. The new state becomes
8627  *  the current state. This function will allocate the stack
8628  *  if necessary.
8629  *  @param new_buffer The new state.
8630  *  
8631  */
8632 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8633 {
8634         if (new_buffer == NULL)
8635                 return;
8636
8637         surf_parse_ensure_buffer_stack();
8638
8639         /* This block is copied from surf_parse__switch_to_buffer. */
8640         if ( YY_CURRENT_BUFFER )
8641                 {
8642                 /* Flush out information for old buffer. */
8643                 *(yy_c_buf_p) = (yy_hold_char);
8644                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8645                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8646                 }
8647
8648         /* Only push if top exists. Otherwise, replace top. */
8649         if (YY_CURRENT_BUFFER)
8650                 (yy_buffer_stack_top)++;
8651         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8652
8653         /* copied from surf_parse__switch_to_buffer. */
8654         surf_parse__load_buffer_state( );
8655         (yy_did_buffer_switch_on_eof) = 1;
8656 }
8657
8658 /** Removes and deletes the top of the stack, if present.
8659  *  The next element becomes the new top.
8660  *  
8661  */
8662 void surf_parse_pop_buffer_state (void)
8663 {
8664         if (!YY_CURRENT_BUFFER)
8665                 return;
8666
8667         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8668         YY_CURRENT_BUFFER_LVALUE = NULL;
8669         if ((yy_buffer_stack_top) > 0)
8670                 --(yy_buffer_stack_top);
8671
8672         if (YY_CURRENT_BUFFER) {
8673                 surf_parse__load_buffer_state( );
8674                 (yy_did_buffer_switch_on_eof) = 1;
8675         }
8676 }
8677
8678 /* Allocates the stack if it does not exist.
8679  *  Guarantees space for at least one push.
8680  */
8681 static void surf_parse_ensure_buffer_stack (void)
8682 {
8683         int num_to_alloc;
8684     
8685         if (!(yy_buffer_stack)) {
8686
8687                 /* First allocation is just for 2 elements, since we don't know if this
8688                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8689                  * immediate realloc on the next call.
8690          */
8691                 num_to_alloc = 1;
8692                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8693                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8694                                                                 );
8695                 if ( ! (yy_buffer_stack) )
8696                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8697                                                                   
8698                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8699                                 
8700                 (yy_buffer_stack_max) = num_to_alloc;
8701                 (yy_buffer_stack_top) = 0;
8702                 return;
8703         }
8704
8705         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8706
8707                 /* Increase the buffer to prepare for a possible push. */
8708                 int grow_size = 8 /* arbitrary grow size */;
8709
8710                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8711                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8712                                                                 ((yy_buffer_stack),
8713                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8714                                                                 );
8715                 if ( ! (yy_buffer_stack) )
8716                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8717
8718                 /* zero only the new slots.*/
8719                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8720                 (yy_buffer_stack_max) = num_to_alloc;
8721         }
8722 }
8723
8724 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8725  * @param base the character buffer
8726  * @param size the size in bytes of the character buffer
8727  * 
8728  * @return the newly allocated buffer state object. 
8729  */
8730 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8731 {
8732         YY_BUFFER_STATE b;
8733     
8734         if ( size < 2 ||
8735              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8736              base[size-1] != YY_END_OF_BUFFER_CHAR )
8737                 /* They forgot to leave room for the EOB's. */
8738                 return 0;
8739
8740         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8741         if ( ! b )
8742                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8743
8744         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8745         b->yy_buf_pos = b->yy_ch_buf = base;
8746         b->yy_is_our_buffer = 0;
8747         b->yy_input_file = 0;
8748         b->yy_n_chars = b->yy_buf_size;
8749         b->yy_is_interactive = 0;
8750         b->yy_at_bol = 1;
8751         b->yy_fill_buffer = 0;
8752         b->yy_buffer_status = YY_BUFFER_NEW;
8753
8754         surf_parse__switch_to_buffer(b  );
8755
8756         return b;
8757 }
8758
8759 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8760  * scan from a @e copy of @a str.
8761  * @param yystr a NUL-terminated string to scan
8762  * 
8763  * @return the newly allocated buffer state object.
8764  * @note If you want to scan bytes that may contain NUL values, then use
8765  *       surf_parse__scan_bytes() instead.
8766  */
8767 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8768 {
8769     
8770         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8771 }
8772
8773 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8774  * scan from a @e copy of @a bytes.
8775  * @param yybytes the byte buffer to scan
8776  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8777  * 
8778  * @return the newly allocated buffer state object.
8779  */
8780 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8781 {
8782         YY_BUFFER_STATE b;
8783         char *buf;
8784         yy_size_t n;
8785         int i;
8786     
8787         /* Get memory for full buffer, including space for trailing EOB's. */
8788         n = _yybytes_len + 2;
8789         buf = (char *) surf_parse_alloc(n  );
8790         if ( ! buf )
8791                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8792
8793         for ( i = 0; i < _yybytes_len; ++i )
8794                 buf[i] = yybytes[i];
8795
8796         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8797
8798         b = surf_parse__scan_buffer(buf,n );
8799         if ( ! b )
8800                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8801
8802         /* It's okay to grow etc. this buffer, and we should throw it
8803          * away when we're done.
8804          */
8805         b->yy_is_our_buffer = 1;
8806
8807         return b;
8808 }
8809
8810     static void yy_push_state (int  new_state )
8811 {
8812         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8813                 {
8814                 yy_size_t new_size;
8815
8816                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8817                 new_size = (yy_start_stack_depth) * sizeof( int );
8818
8819                 if ( ! (yy_start_stack) )
8820                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8821
8822                 else
8823                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8824
8825                 if ( ! (yy_start_stack) )
8826                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8827                 }
8828
8829         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8830
8831         BEGIN(new_state);
8832 }
8833
8834     static void yy_pop_state  (void)
8835 {
8836         if ( --(yy_start_stack_ptr) < 0 )
8837                 YY_FATAL_ERROR( "start-condition stack underflow" );
8838
8839         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8840 }
8841
8842 #ifndef YY_EXIT_FAILURE
8843 #define YY_EXIT_FAILURE 2
8844 #endif
8845
8846 static void yy_fatal_error (yyconst char* msg )
8847 {
8848         (void) fprintf( stderr, "%s\n", msg );
8849         exit( YY_EXIT_FAILURE );
8850 }
8851
8852 /* Redefine yyless() so it works in section 3 code. */
8853
8854 #undef yyless
8855 #define yyless(n) \
8856         do \
8857                 { \
8858                 /* Undo effects of setting up surf_parse_text. */ \
8859         int yyless_macro_arg = (n); \
8860         YY_LESS_LINENO(yyless_macro_arg);\
8861                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8862                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8863                 (yy_hold_char) = *(yy_c_buf_p); \
8864                 *(yy_c_buf_p) = '\0'; \
8865                 surf_parse_leng = yyless_macro_arg; \
8866                 } \
8867         while ( 0 )
8868
8869 /* Accessor  methods (get/set functions) to struct members. */
8870
8871 /** Get the current line number.
8872  * 
8873  */
8874 int surf_parse_get_lineno  (void)
8875 {
8876         
8877     return surf_parse_lineno;
8878 }
8879
8880 /** Get the input stream.
8881  * 
8882  */
8883 FILE *surf_parse_get_in  (void)
8884 {
8885         return surf_parse_in;
8886 }
8887
8888 /** Get the output stream.
8889  * 
8890  */
8891 FILE *surf_parse_get_out  (void)
8892 {
8893         return surf_parse_out;
8894 }
8895
8896 /** Get the length of the current token.
8897  * 
8898  */
8899 int surf_parse_get_leng  (void)
8900 {
8901         return surf_parse_leng;
8902 }
8903
8904 /** Get the current token.
8905  * 
8906  */
8907
8908 char *surf_parse_get_text  (void)
8909 {
8910         return surf_parse_text;
8911 }
8912
8913 /** Set the current line number.
8914  * @param line_number
8915  * 
8916  */
8917 void surf_parse_set_lineno (int  line_number )
8918 {
8919     
8920     surf_parse_lineno = line_number;
8921 }
8922
8923 /** Set the input stream. This does not discard the current
8924  * input buffer.
8925  * @param in_str A readable stream.
8926  * 
8927  * @see surf_parse__switch_to_buffer
8928  */
8929 void surf_parse_set_in (FILE *  in_str )
8930 {
8931         surf_parse_in = in_str ;
8932 }
8933
8934 void surf_parse_set_out (FILE *  out_str )
8935 {
8936         surf_parse_out = out_str ;
8937 }
8938
8939 int surf_parse_get_debug  (void)
8940 {
8941         return surf_parse__flex_debug;
8942 }
8943
8944 void surf_parse_set_debug (int  bdebug )
8945 {
8946         surf_parse__flex_debug = bdebug ;
8947 }
8948
8949 static int yy_init_globals (void)
8950 {
8951         /* Initialization is the same as for the non-reentrant scanner.
8952      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
8953      */
8954
8955     /* We do not touch surf_parse_lineno unless the option is enabled. */
8956     surf_parse_lineno =  1;
8957     
8958     (yy_buffer_stack) = 0;
8959     (yy_buffer_stack_top) = 0;
8960     (yy_buffer_stack_max) = 0;
8961     (yy_c_buf_p) = (char *) 0;
8962     (yy_init) = 0;
8963     (yy_start) = 0;
8964
8965     (yy_start_stack_ptr) = 0;
8966     (yy_start_stack_depth) = 0;
8967     (yy_start_stack) =  NULL;
8968
8969 /* Defined in main.c */
8970 #ifdef YY_STDINIT
8971     surf_parse_in = stdin;
8972     surf_parse_out = stdout;
8973 #else
8974     surf_parse_in = (FILE *) 0;
8975     surf_parse_out = (FILE *) 0;
8976 #endif
8977
8978     /* For future reference: Set errno on error, since we are called by
8979      * surf_parse_lex_init()
8980      */
8981     return 0;
8982 }
8983
8984 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
8985 int surf_parse_lex_destroy  (void)
8986 {
8987     
8988     /* Pop the buffer stack, destroying each element. */
8989         while(YY_CURRENT_BUFFER){
8990                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
8991                 YY_CURRENT_BUFFER_LVALUE = NULL;
8992                 surf_parse_pop_buffer_state();
8993         }
8994
8995         /* Destroy the stack itself. */
8996         surf_parse_free((yy_buffer_stack) );
8997         (yy_buffer_stack) = NULL;
8998
8999     /* Destroy the start condition stack. */
9000         surf_parse_free((yy_start_stack)  );
9001         (yy_start_stack) = NULL;
9002
9003     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9004      * surf_parse_lex() is called, initialization will occur. */
9005     yy_init_globals( );
9006
9007     return 0;
9008 }
9009
9010 /*
9011  * Internal utility routines.
9012  */
9013
9014 #ifndef yytext_ptr
9015 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9016 {
9017         register int i;
9018         for ( i = 0; i < n; ++i )
9019                 s1[i] = s2[i];
9020 }
9021 #endif
9022
9023 #ifdef YY_NEED_STRLEN
9024 static int yy_flex_strlen (yyconst char * s )
9025 {
9026         register int n;
9027         for ( n = 0; s[n]; ++n )
9028                 ;
9029
9030         return n;
9031 }
9032 #endif
9033
9034 void *surf_parse_alloc (yy_size_t  size )
9035 {
9036         return (void *) malloc( size );
9037 }
9038
9039 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9040 {
9041         /* The cast to (char *) in the following accommodates both
9042          * implementations that use char* generic pointers, and those
9043          * that use void* generic pointers.  It works with the latter
9044          * because both ANSI C and C++ allow castless assignment from
9045          * any pointer type to void*, and deal with argument conversions
9046          * as though doing an assignment.
9047          */
9048         return (void *) realloc( (char *) ptr, size );
9049 }
9050
9051 void surf_parse_free (void * ptr )
9052 {
9053         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9054 }
9055
9056 #define YYTABLES_NAME "yytables"
9057
9058 /* Element context stack lookup. */
9059 int surfxml_element_context(int i)
9060 {
9061   return (0<i && i<yy_start_stack_depth
9062           ? yy_start_stack[yy_start_stack_ptr - i]
9063           : 0);
9064 }
9065
9066 #ifdef FLEX_DEBUG
9067 void print_yy_stack(char* fmt, ...)
9068 {
9069   int i = 0; va_list ap; va_start(ap, fmt);
9070   vfprintf(stderr, fmt, ap);
9071   if (surfxml_statenames) {
9072       for (i=1; i<yy_start_stack_ptr; i++) {
9073           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9074       }
9075       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9076   }
9077   va_end(ap);
9078 }
9079
9080 void print_surfxml_bufferstack()
9081 {
9082     int i;
9083     fputs("Buffer: ", stderr);
9084     for (i = 0; i < blimit; i++) {
9085        if ( surfxml_bufferstack[i] == '\377' ) break;
9086          putc(surfxml_bufferstack[i], stderr);
9087     }
9088     putc('\n', stderr);
9089 }
9090
9091 static void debug_enter(int state, const char* statename) {
9092   yy_push_state(state);
9093   if (surf_parse__flex_debug) {
9094        print_yy_stack("--ENTER(%s) : ",statename);
9095        print_surfxml_bufferstack();
9096   }
9097 }
9098
9099 static void debug_leave(void) {
9100     if (surf_parse__flex_debug) {
9101         print_yy_stack("--LEAVE : ");
9102         print_surfxml_bufferstack();
9103     }
9104   yy_pop_state();
9105 }
9106
9107 static void debug_set(int state, const char* statename) {
9108   BEGIN(state);
9109   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9110 }
9111 #endif
9112
9113 static void cleanup(void)
9114 {
9115     if (surfxml_statenames) {
9116         free(surfxml_statenames);
9117         surfxml_statenames = NULL;
9118     }
9119     free(surfxml_bufferstack);
9120     surfxml_bufferstack = NULL;
9121
9122     free(indexstack);
9123     indexstack = NULL;
9124 }
9125
9126 static int fail(const char* fmt, ...)
9127 {
9128     int chars_left, used;
9129     va_list ap; va_start(ap, fmt);
9130 #ifdef FLEXML_yylineno
9131     used = sprintf(flexml_err_msg,
9132                    "Invalid XML (XML input line %d, state %d): ",
9133                    surf_parse_lineno, YY_START);
9134 #else
9135     used = sprintf(flexml_err_msg,
9136                    "Invalid XML (state %d): ",
9137                    YY_START);
9138 #endif
9139     chars_left = flexml_max_err_msg_size - used - 1;
9140     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9141     va_end(ap);
9142
9143 #ifndef FLEXML_quiet_parser
9144     /* print directly to sdterr */
9145     fprintf(stderr, "%s\n", flexml_err_msg);
9146     flexml_err_msg[0] = '\0';
9147 #endif
9148
9149     cleanup();
9150
9151     return 1;
9152 }
9153