Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'hypervisor' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid...
[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 568
407 #define YY_END_OF_BUFFER 569
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[3323] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,  569,  567,
445        15,   10,   10,   15,   15,  547,   10,  547,    5,    6,
446         5,    8,    9,    8,  563,  555,  556,  564,  561,  564,
447       562,  566,  555,  556,  566,  567,   22,   10,   22,   22,
448        22,   20,   22,   26,   10,   26,   26,  567,   26,  567,
449
450       567,   26,   33,   10,   33,   33,   33,   31,   33,   37,
451        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
452        48,   48,  564,  563,   78,   10,   78,   78,   78,   76,
453        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
454       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
455       126,   10,  126,  126,  126,  124,  126,  126,  130,   10,
456       130,  130,  567,  130,  567,  130,  130,  567,  567,  130,
457       567,  130,  567,  130,  145,   10,  145,  145,  145,  143,
458       145,  145,  145,  145,  149,   10,  149,  149,  162,   10,
459       162,  162,  162,  160,  162,  162,  162,  166,   10,  166,
460
461       166,  175,   10,  175,  175,  175,  173,  175,  175,  179,
462        10,  179,  188,   10,  188,  188,  188,  186,  188,  188,
463       192,   10,  192,  217,   10,  217,  217,  217,  215,  217,
464       217,  217,  217,  217,  221,   10,  221,  567,  221,  228,
465        10,  228,  228,  228,  226,  228,  232,   10,  232,  243,
466        10,  243,  243,  243,  241,  243,  243,  243,  247,   10,
467       247,  294,   10,  294,  294,  294,  292,  294,  294,  294,
468       294,  294,  294,  294,  294,  298,   10,  298,  298,  317,
469        10,  317,  317,  317,  315,  317,  317,  317,  317,  317,
470       317,  321,   10,  321,  342,   10,  342,  342,  342,  340,
471
472       342,  342,  342,  342,  342,  342,  342,  346,   10,  346,
473       355,   10,  355,  355,  355,  353,  355,  355,  359,   10,
474       359,  370,   10,  370,  370,  370,  368,  370,  370,  370,
475       374,   10,  374,  401,   10,  401,  401,  401,  399,  401,
476       401,  401,  401,  405,   10,  405,  405,  418,   10,  418,
477       418,  418,  416,  418,  418,  422,   10,  422,  567,  422,
478       439,   10,  439,  439,  439,  437,  439,  439,  439,  443,
479        10,  443,  443,  456,   10,  456,  456,  456,  454,  456,
480       456,  460,   10,  460,  469,   10,  469,  469,  469,  467,
481       469,  469,  473,   10,  473,  473,  486,   10,  486,  486,
482
483       486,  484,  486,  486,  486,  490,   10,  490,  490,  507,
484        10,  507,  507,  507,  505,  507,  507,  507,  507,  507,
485       511,   10,  511,  567,  511,  518,   10,  518,  518,  518,
486       516,  518,  522,   10,  522,  529,   10,  529,  529,  529,
487       527,  529,  533,   10,  533,  533,  542,   10,  542,  542,
488       542,  540,  542,  542,  546,   10,  546,   10,    0,    2,
489         2,    0,    4,    7,  558,  557,    0,    0,    0,    0,
490         0,    0,    0,   21,   23,   23,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493
494        32,   34,   34,    0,   47,   49,   49,   49,   49,    0,
495         0,    0,   77,   79,   79,   79,   79,   79,   79,   79,
496        79,   79,    0,  100,  102,  102,  102,  102,    0,  125,
497       127,  127,  127,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,  144,  146,  146,  146,  146,  146,    0,  161,
500       163,  163,  163,  163,    0,  174,  176,  176,  176,    0,
501       187,  189,  189,  189,    0,  216,  218,  218,  218,  218,
502       218,  218,  218,    0,    0,  227,  229,  229,    0,  242,
503       244,  244,  244,  244,    0,  293,  295,  295,  295,  295,
504
505       295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
506       295,  295,    0,  316,  318,  318,  318,  318,  318,  318,
507       318,  318,    0,  341,  343,  343,  343,  343,  343,  343,
508       343,  343,    0,  354,  356,  356,  356,    0,  369,  371,
509       371,  371,  371,    0,  400,  402,  402,  402,  402,  402,
510       402,    0,  417,  419,  419,  419,  419,    0,    0,  438,
511       440,  440,  440,  440,  440,    0,  455,  457,  457,  457,
512         0,  468,  470,  470,  470,    0,  485,  487,  487,  487,
513       487,    0,  506,  508,  508,  508,  508,  508,  508,    0,
514         0,  517,  519,  519,    0,  528,  530,  530,    0,  541,
515
516       543,  543,  543,    0,    0,    0,    0,    0,    3,    0,
517         0,    0,    0,    0,    0,    0,  565,    0,   23,    0,
518         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520         0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
521        34,    0,    0,   49,    0,    0,   49,    0,    0,    0,
522       560,   79,    0,    0,   79,   79,   79,   79,   79,   79,
523         0,    0,  102,  102,  102,    0,    0,    0,    0,  127,
524         0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
525         0,  106,    0,    0,    0,    0,  146,    0,    0,  146,
526
527       146,    0,    0,  163,    0,    0,  163,    0,    0,  176,
528       176,    0,    0,  189,  189,    0,    0,  218,  218,  218,
529         0,    0,  218,  218,  218,    0,    0,    0,    0,  229,
530         0,    0,  244,    0,    0,    0,    0,    0,    0,  295,
531       295,    0,    0,  295,    0,    0,  295,  295,  295,  295,
532       295,  295,  295,  295,  295,  295,    0,    0,    0,    0,
533         0,    0,  318,  318,  318,  318,  318,    0,    0,  343,
534       343,  343,    0,    0,  343,  343,  343,    0,    0,  356,
535         0,    0,    0,    0,  371,    0,    0,  371,    0,    0,
536       402,    0,    0,  402,  402,  402,    0,    0,  419,  419,
537
538       419,    0,    0,    0,  440,  440,  440,  440,    0,    0,
539       457,    0,    0,    0,    0,  470,  470,    0,    0,  487,
540       487,  487,    0,    0,  508,  508,  508,  508,  508,    0,
541         0,    0,  519,    0,    0,    0,    0,    0,    0,    0,
542         0,  543,    0,    0,    0,   14,    1,    0,    0,  553,
543         0,    0,    0,  550,  549,    0,    0,   23,    0,    0,
544        25,    0,  107,    0,    0,    0,    0,    0,    0,    0,
545       222,    0,    0,    0,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
547         0,    0,   34,    0,    0,   36,    0,   49,    0,   41,
548
549        40,   49,    0,    0,    0,   51,    0,   79,    0,   55,
550        54,    0,    0,   79,    0,    0,   79,   79,   79,    0,
551         0,   81,    0,  102,  102,  102,    0,    0,  104,    0,
552         0,  109,  108,  127,    0,    0,  129,    0,    0,    0,
553         0,  223,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,  146,    0,  134,  133,  146,  146,    0,    0,  148,
555         0,  163,    0,  153,  152,  163,    0,    0,  165,    0,
556       176,  176,    0,    0,  178,    0,  189,  189,    0,    0,
557       191,    0,  218,  218,  218,    0,  196,  195,  218,  218,
558       218,    0,    0,  220,    0,    0,    0,  229,    0,    0,
559
560       231,    0,  244,    0,  236,  235,    0,  238,  237,    0,
561         0,  246,    0,  295,  295,  295,  295,    0,  263,  262,
562       295,    0,  251,  250,    0,    0,  295,  295,  295,  295,
563       295,  295,  295,  295,  295,    0,    0,  297,    0,    0,
564       312,  311,    0,  302,  301,    0,    0,  318,  318,  318,
565       318,    0,    0,  320,    0,  343,  343,  343,  343,    0,
566       325,  324,    0,    0,  343,  343,    0,    0,  345,    0,
567       356,    0,  350,  349,    0,    0,  358,    0,  371,    0,
568       363,  362,  371,    0,    0,  373,    0,  402,    0,  378,
569       377,  402,  402,  402,    0,    0,  404,    0,    0,    0,
570
571         0,    0,  419,    0,    0,  421,    0,    0,    0,    0,
572       440,  440,    0,    0,  440,    0,    0,  442,    0,  457,
573         0,  447,  446,    0,    0,  459,    0,    0,    0,    0,
574         0,    0,    0,  472,    0,    0,    0,  487,  487,    0,
575         0,    0,    0,  489,    0,  508,  508,  508,  508,  508,
576         0,    0,  510,    0,    0,  519,    0,    0,  521,    0,
577         0,  526,  525,    0,    0,  532,    0,    0,  537,  536,
578       543,    0,    0,  545,    0,    0,    0,  554,  548,    0,
579         0,    0,   23,    0,    0,    0,    0,    0,    0,    0,
580         0,  222,  193,    0,  375,    0,    0,  323,    0,    0,
581
582       534,    0,    0,    0,    0,    0,    0,    0,    0,    0,
583       322,    0,    0,    0,    0,    0,    0,    0,   49,    0,
584         0,   79,    0,   59,   58,    0,    0,    0,   57,   56,
585        79,    0,    0,   79,    0,  102,    0,    0,  102,    0,
586       127,    0,  128,    0,    0,    0,  223,  194,  376,  535,
587         0,    0,    0,    0,    0,    0,  146,  146,    0,    0,
588         0,  163,  163,    0,    0,    0,  176,    0,    0,    0,
589       189,    0,  218,  218,    0,    0,  218,  218,  218,    0,
590         0,    0,    0,    0,    0,    0,    0,    0,  295,  295,
591       295,  295,    0,    0,    0,  265,  264,  295,  295,  295,
592
593       295,  295,  295,  295,  295,  295,    0,    0,  314,  313,
594       318,  318,  318,  318,    0,  343,  343,  343,  343,    0,
595       333,  332,  343,  343,    0,  356,    0,  371,  371,    0,
596       402,  402,  402,  402,    0,    0,  411,  410,    0,  409,
597       408,  419,    0,  375,    0,  428,  427,  440,  440,    0,
598       426,  425,  440,    0,  457,    0,    0,  466,  465,    0,
599       464,  463,    0,    0,  479,  478,  487,  487,    0,  477,
600       476,    0,  508,    0,    0,  508,  508,  508,    0,    0,
601       519,    0,    0,  543,    0,    0,    0,    0,   12,    0,
602       551,  552,    0,   23,    0,    0,    0,    0,    0,    0,
603
604         0,    0,  193,    0,    0,  375,    0,  167,    0,  323,
605         0,    0,  534,    0,  406,    0,   39,    0,    0,    0,
606         0,    0,  322,    0,   38,    0,   30,   29,    0,    0,
607        43,   42,   49,    0,    0,   79,    0,   61,   60,   79,
608         0,   65,   64,   79,    0,  102,    0,    0,    0,    0,
609         0,    0,  127,    0,    0,    0,  194,    0,  376,  535,
610       407,    0,    0,    0,  407,  406,  146,    0,    0,    0,
611       138,  137,    0,  163,  163,    0,    0,  172,  171,  176,
612         0,    0,  185,  184,  189,    0,  218,  218,    0,  200,
613       199,    0,    0,  218,    0,    0,  218,    0,  168,    0,
614
615         0,  225,  224,    0,  230,    0,  240,  239,    0,  295,
616         0,    0,  295,  295,    0,  261,  260,  295,  295,    0,
617         0,  295,  295,  295,  295,  295,  295,    0,    0,    0,
618       318,  318,  318,    0,  343,    0,    0,  343,  343,    0,
619         0,  343,    0,  356,    0,  371,  371,    0,  402,  402,
620       402,    0,    0,  402,    0,  419,    0,    0,  440,  440,
621       440,    0,  457,    0,    0,  487,  487,    0,  508,    0,
622       494,  493,  508,  508,  508,    0,    0,    0,    0,    0,
623         0,    0,    0,    0,    0,    0,    0,   11,    0,   23,
624         0,    0,    0,    0,    0,    0,    0,  524,    0,    0,
625
626         0,  167,    0,    0,    0,   53,  406,  347,    0,   39,
627         0,  523,   52,    0,    0,    0,    0,   38,    0,    0,
628        49,    0,    0,   79,   79,   79,    0,  102,    0,    0,
629         0,    0,    0,    0,    0,    0,    0,   96,   95,    0,
630       127,    0,    0,    0,    0,  407,  348,    0,    0,    0,
631       146,    0,  136,  135,    0,  163,    0,    0,    0,  176,
632         0,    0,    0,    0,  218,  218,    0,  198,  197,    0,
633         0,    0,    0,    0,  218,    0,  219,  168,    0,    0,
634       295,    0,  273,  272,    0,    0,  295,  295,  295,    0,
635       259,  258,    0,    0,  295,  295,  295,  295,    0,    0,
636
637         0,    0,  310,  309,    0,    0,  318,    0,    0,    0,
638       343,    0,  329,  328,    0,    0,  343,    0,  327,  326,
639       343,    0,  344,  356,    0,  371,  371,    0,  402,  402,
640       402,    0,    0,    0,  402,    0,  403,  419,    0,    0,
641         0,    0,    0,    0,  440,    0,  457,    0,    0,    0,
642         0,    0,    0,    0,  508,  508,  508,  508,    0,    0,
643         0,  515,  514,    0,    0,    0,  539,  538,    0,  544,
644         0,    0,    0,    0,    0,    0,    0,  423,    0,    0,
645         0,    0,  300,  249,  524,    0,   28,    0,    0,    0,
646       492,   53,  347,  150,    0,  523,   52,  299,  248,   27,
647
648       491,    0,    0,   49,    0,    0,   50,   79,    0,    0,
649        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,  424,    0,    0,
651         0,    0,  348,  151,    0,    0,  146,    0,    0,    0,
652       163,    0,  155,  154,    0,  176,    0,  177,    0,  183,
653       182,    0,  218,  218,    0,  214,  213,    0,    0,  218,
654         0,    0,  295,    0,  275,  274,  295,  295,  295,    0,
655       253,  252,    0,    0,  295,  295,  295,    0,  255,  254,
656         0,    0,  304,  303,    0,    0,    0,  306,  305,    0,
657       343,    0,  331,  330,  343,  343,  356,    0,  371,    0,
658
659         0,    0,  402,    0,    0,  402,  402,    0,    0,  402,
660       419,    0,  420,    0,    0,  432,  431,    0,  430,  429,
661       440,    0,  457,    0,    0,    0,  483,  482,    0,  481,
662       480,    0,  508,  508,  508,  508,    0,    0,    0,    0,
663         0,    0,    0,   17,    0,   19,   18,    0,  423,  512,
664       360,    0,    0,  300,  249,    0,   28,  444,  180,   16,
665       492,  150,    0,    0,  299,  248,   27,  491,    0,    0,
666        49,  559,   79,    0,   67,   66,   79,    0,   80,    0,
667        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,  424,  361,    0,    0,
669
670         0,  151,    0,    0,  140,  139,  146,    0,    0,  157,
671       156,  163,    0,  176,    0,  218,  218,    0,    0,    0,
672         0,  218,  181,    0,  295,  295,  295,  295,    0,  257,
673       256,  295,  295,  295,    0,    0,  308,  307,    0,  343,
674       343,  343,  356,    0,  357,  371,    0,  367,  366,    0,
675       402,    0,  384,  383,  402,  402,    0,    0,    0,    0,
676       402,  419,  445,  440,    0,  457,    0,    0,    0,    0,
677         0,  508,  508,  508,    0,  513,    0,    0,  531,    0,
678         0,    0,   17,    0,  512,  360,    0,    0,  233,  444,
679       180,   16,    0,    0,    0,    0,   35,   49,    0,    0,
680
681        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683         0,    0,  361,    0,    0,  234,    0,  146,    0,  163,
684         0,  164,    0,    0,    0,  218,  218,    0,  206,    0,
685       205,  218,  181,    0,  295,  295,  295,  295,  295,    0,
686         0,  295,  295,    0,  296,    0,  319,  343,  343,  343,
687       356,    0,    0,    0,    0,    0,  402,  402,  402,    0,
688       388,    0,  387,  402,  419,  445,  440,    0,  441,    0,
689         0,    0,    0,    0,    0,  496,  495,    0,    0,  508,
690       508,    0,  509,  513,    0,    0,    0,    0,    0,   24,
691
692         0,    0,  233,    0,    0,    0,   49,    0,    0,    0,
693        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,  234,    0,  146,    0,
696       163,    0,  170,  169,    0,  190,  218,  218,  208,  207,
697         0,    0,    0,  295,  295,  295,  295,  295,    0,  285,
698       284,  295,    0,    0,  343,  343,    0,    0,  356,    0,
699       365,  364,    0,  372,    0,  380,  379,  402,  402,  402,
700       390,  389,    0,    0,  419,  440,    0,    0,    0,    0,
701       458,    0,    0,    0,  500,  499,    0,    0,    0,    0,
702
703         0,  520,    0,    0,    0,    0,  461,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
705         0,    0,    0,   88,    0,    0,    0,    0,   87,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,  462,    0,  146,    0,  163,  218,    0,
708         0,    0,  210,  209,    0,  245,  295,  295,  295,    0,
709         0,  295,  295,    0,  283,  282,  343,    0,    0,    0,
710       339,  338,    0,    0,  402,  402,  402,    0,  392,  391,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,    0,    0,    0,    0,  498,  497,    0,    0,
713
714         0,    0,  461,  131,    0,    0,    0,   45,   44,    0,
715         0,    0,    0,    0,    0,    0,    0,   79,    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       462,  132,    0,    0,    0,    0,    0,    0,    0,  218,
719         0,  212,  211,  295,  295,    0,    0,    0,  289,  288,
720         0,    0,  295,  343,    0,  335,  334,    0,  352,  351,
721       402,    0,    0,  402,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,  474,  131,   84,   83,
724
725         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
726         0,    0,   94,    0,    0,    0,   93,    0,    0,    0,
727         0,    0,  111,  119,    0,    0,    0,    0,  110,  118,
728         0,  475,  132,    0,  142,  141,    0,    0,  159,  158,
729         0,  202,  201,  218,  295,  295,    0,  287,  286,    0,
730       291,  290,  295,  343,  402,    0,  386,  385,  402,    0,
731         0,    0,    0,    0,    0,    0,    0,    0,    0,  449,
732         0,    0,  448,    0,  471,    0,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,  474,   84,   83,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,   63,   62,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,  113,
737         0,    0,    0,  112,    0,  475,    0,  147,  218,  295,
738       295,    0,    0,  343,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741         0,    0,   75,   71,    0,    0,   74,   70,    0,   92,
742         0,    0,   91,    0,    0,    0,  103,    0,    0,    0,
743         0,    0,    0,  218,  295,  295,    0,    0,    0,  343,
744         0,  382,  381,    0,    0,    0,  415,    0,  414,    0,
745       436,    0,  435,    0,  451,  453,  450,  452,    0,  488,
746
747       502,    0,  501,    0,    0,    0,    0,   12,    0,   12,
748         0,    0,    0,    0,    0,   86,   90,   85,   89,  123,
749         0,  121,  122,    0,  120,  218,  295,  295,    0,    0,
750         0,    0,  343,    0,    0,    0,    0,  413,  412,  434,
751       433,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,  115,    0,  114,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755        69,    0,   68,    0,    0,    0,    0,  204,  203,    0,
756       281,  280,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,  337,  336,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,   11,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,  504,  503,    0,   73,   72,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,    0,  117,  116,    0,
766         0,    0,    0,    0,    0,  267,    0,    0,  266,    0,
767         0,  394,    0,    0,  393,    0,    0,    0,    0,    0,
768
769       271,    0,  270,    0,  396,    0,  395,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,  277,
771         0,  276,    0,    0,    0,    0,    0,    0,  279,  278,
772       269,  268,  398,  397,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
782        13,    0
783     } ;
784
785 static yyconst flex_int32_t yy_ec[256] =
786     {   0,
787         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
788         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
791         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
792        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
793        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
794        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
795        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
796        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
797
798        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
799        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
800        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808
809         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
813         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
814         1,    1,    1,    1,    1
815     } ;
816
817 static yyconst flex_int32_t yy_meta[75] =
818     {   0,
819         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
820         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
821         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
822         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
823         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
824         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
825         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
826         5,    5,    5,    5
827     } ;
828
829 static yyconst flex_int16_t yy_base[3816] =
830     {   0,
831         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
832        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
833       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
834       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
835       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
836       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
837       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
838       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
839       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
840       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
841
842       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
843      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
844      1149, 1153, 1191, 1258, 1211, 1214, 1325, 1393, 1217, 1221,
845      1461, 1528, 1224, 1278, 1281, 1284, 1288, 1291, 1345, 1348,
846      1595, 1657, 1351, 1355, 1719, 1788, 1358, 1413, 1857,    0,
847      1416, 1419, 1423, 1426, 1481, 1484, 1487, 1491, 1931, 1998,
848      1548, 1551, 2065, 2132, 1554, 1558, 2199, 2256, 1615, 1618,
849      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
850      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
851      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
852
853      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
854      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
855      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
856      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
857      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
858      2523, 2526, 3605, 3675, 2530, 2533,    0,    0, 8437,12292,
859     12292,   95,  100,   29,   41,12292,  103,   51,12292,12292,
860      8426,12292,12292, 8414,12292, 8429, 8428,  202,12292,12292,
861     12292,12292, 8422, 8422, 8372,  153,12292,  161, 8398,    0,
862       145,12292, 8363,12292,  165, 3741,   73, 2540,  315,  357,
863
864      8392, 8339,12292,  168, 8379,    0,  152,12292, 8341,12292,
865       261, 8384,   31,12292,  266, 8375,    0,  245,12292, 8314,
866      8314, 8312,  421, 8305,12292,  269, 8331,    0,  340,12292,
867      8296, 8292,  271, 8294,  238,12292,  441,  484,12292,  504,
868      8321,    0,  401,12292, 8276, 8278, 8267,12292,  561,  548,
869     12292,  571, 8304,    0,  481,12292, 8271, 8259,12292,  628,
870      3805, 8255,  163, 2542,  567,  206,   38, 8306,  954, 2533,
871       639,  907,  437,   79,12292,  634, 8287,    0,  546,12292,
872      8243, 8249, 8237, 8241,12292,  638,  313,  368,12292,  697,
873      8276,    0,  549,12292, 8232, 8241, 8214,12292,  704,  426,
874
875       497,12292,  707, 8259,    0,  747,12292, 8229, 8208,12292,
876       767,  753,12292,  773, 8250,    0,  757,12292, 8220, 8194,
877     12292,  831,  818,12292,  838, 8238,    0,  758,12292, 8183,
878      8176, 8181,  251, 8164,12292,  841,  559,  825,  530,12292,
879       906, 8210,    0,  815,12292, 8162,12292,  914,  891,12292,
880       977, 8186,    0,  953,12292, 8142, 8142, 8129,12292,  981,
881       965,12292, 1021, 8171,    0,  966,12292, 8120,  203, 8125,
882      8131,  378,   85,  311,  972,12292, 1040,  564,  814,12292,
883      1044, 8152,    0, 1032,12292, 8098, 8111, 8112,  157, 8109,
884      8087,12292, 1048, 1086,12292, 1106, 8132,    0, 1033,12292,
885
886      8080, 8068, 8075, 8080, 8082, 8055, 8049,12292, 1111, 1099,
887     12292, 1114, 8095,    0, 1100,12292, 8047, 8057,12292, 1156,
888      1160,12292, 1173, 8087,    0, 1157,12292, 8052, 8047, 8046,
889     12292, 1180, 1228,12292, 1183, 8073,    0, 1158,12292, 8043,
890      8038, 8033,   15,12292, 1186,  899,  963,12292, 1241, 8059,
891         0, 1225,12292, 8007,  181,12292, 1248, 1243,  432,  303,
892     12292, 1308, 8053,    0, 1226,12292, 7994, 7989,  299,12292,
893      1311, 1229,  350,12292, 1314, 8038,    0, 1303,12292, 7993,
894      7997,12292, 1319, 1362,12292, 1375, 8018,    0, 1359,12292,
895      7970, 7968,12292, 1382, 1378,  676,12292, 1445, 8006,    0,
896
897      1360,12292, 7949, 7944, 7938,12292, 1448, 1446,  685,12292,
898      1494, 7983,    0, 1370,12292, 7932, 7933, 7938, 7931, 7924,
899     12292, 1513, 1514,  560, 1007,12292, 1517, 7970,    0, 1438,
900     12292, 7936,12292, 1520, 1559,12292, 1579, 7964,    0, 1506,
901     12292, 7926,12292, 1584, 1210, 1236,12292, 1587, 7957,    0,
902      1563,12292, 7923, 7915,12292, 1645, 1632, 1648,  677, 7891,
903     12292, 7951, 7935,12292,12292,12292, 1641,  375, 7885, 7880,
904      7878, 7925, 7877,12292,    0, 7868, 7864, 7888, 7859,  104,
905      1037, 7853, 7853, 7852, 7852,  889, 1646, 1105, 7839, 7840,
906      1393, 1307, 7865, 1510, 7836, 1649, 7830, 1647, 1708, 1709,
907
908     12292,    0, 7831, 7833,12292,    0, 7828, 2098, 7810,  666,
909      7806, 7850,12292,    0, 7806, 2165, 7794, 7815, 7801, 7794,
910      7789, 7789, 7773,12292,    0, 7772, 7762, 7773, 7749,12292,
911         0, 2232, 7747, 7791, 7772,  172, 7742, 7741, 7746, 1719,
912      1319, 7726, 1720, 7754,  707,  724,  814,  841, 1577, 1651,
913      1701,  888,12292,    0, 7729, 2289, 7734, 7711, 7713,12292,
914         0, 7717, 2592, 7713, 7701,12292,    0, 7704, 7700, 7698,
915     12292,    0, 7686, 7682, 7683,12292,    0, 7686,  758, 2598,
916      7662, 7660, 7678, 7661,  897,12292,    0, 7655, 7659,12292,
917         0, 7635, 2654, 2657, 7649,12292,    0, 7654, 7654, 2660,
918
919      7634, 2663, 7628, 7633, 7627, 7608, 7625, 7624, 7601, 7620,
920      7617, 7604, 7603,12292,    0, 2666, 2721, 7569, 7565, 7580,
921      7579, 7570, 7572,12292,    0, 7563, 7563, 7544, 2724, 7537,
922      7533, 7545, 7529,12292,    0, 7528, 2727, 7517,12292,    0,
923      7520, 2730, 7512, 7529,12292,    0, 7511, 2733, 7503, 7520,
924      7514, 7502,12292,    0, 7489, 7505, 7489, 7483, 7490,12292,
925         0, 7468, 7487, 7482, 7471, 7507,12292,    0, 7457, 2788,
926      7448,12292,    0, 7439, 7454, 7446,12292,    0, 7427, 7445,
927      7437, 7437,12292,    0, 7419, 7413, 7418, 7422, 7420, 7400,
928      7397,12292,    0, 7401, 7411,12292,    0, 2791, 7407,12292,
929
930         0, 2794, 7392, 7382, 7425, 7433, 1807, 7370,12292, 1833,
931         0, 7364, 7364, 7408, 7392, 7345,12292, 7357, 7324, 2797,
932      2801, 1981, 7335, 7337, 7319, 7332, 7306, 7312, 7300, 7297,
933      7312, 7299, 7274, 7274, 7287, 7282, 7266, 7265, 7255, 7259,
934      7269, 7243, 7240, 1990, 7244, 7224, 7240, 7237, 7218, 7221,
935      7215, 2855, 2860, 7210, 2864, 2048, 7205, 7236, 2868, 2912,
936     12292, 7194, 2915, 2117, 2921, 7184, 2924, 7187, 7187, 7189,
937      2927, 2983, 7175, 7178, 7178, 2969, 2972, 2978, 2184, 7159,
938      3037, 3040, 2363, 7175, 7148, 7141, 7142, 7144, 7137, 7116,
939      7115, 2423, 7113, 7111, 7085, 7081, 7077, 2996, 2618, 7091,
940
941      7089, 3044, 3047, 7048, 3050, 2685, 7061, 3103, 3106, 7060,
942      7040, 3114, 3117, 7052, 7050, 3129, 3173, 7045, 7018, 7029,
943      3109, 2755, 7027, 7030, 7009, 3179, 3183, 7003, 7002, 7006,
944      3186, 3245, 6992, 3239, 2822, 3248, 3002, 3252, 3257, 6994,
945      1920, 3304, 3068, 6993, 3308, 3137, 3313, 6985, 6966, 6975,
946      6972, 6961, 6947, 6948, 6941, 6954, 3322, 3383, 3331, 3205,
947      3371, 3374, 3389, 3392, 3397, 3450, 3459, 3444, 3468, 6940,
948        37, 6930, 3454, 3403, 3512, 6938, 6922, 3516, 3519, 6922,
949      3522, 3411, 3525, 3571, 6925, 3574, 3473, 6923, 3577, 3580,
950      6917, 3583, 3481, 6909, 6894, 6882, 3628, 3634, 3637, 3640,
951
952      3695, 3643, 3698, 6887, 3701, 3705, 3708, 3732, 3713, 3727,
953      6894, 3735, 3662, 3738, 3765, 3746, 3775, 3779, 3784, 3809,
954      3812, 3816, 3821, 3830, 6885, 6867, 6873, 6877, 6864, 3843,
955      3872, 6868, 6853, 3878, 3881, 3834, 3884, 3892, 3902, 3840,
956      3905, 6847, 3913, 3916, 6885,12292,12292, 1070, 6843,12292,
957      6885, 6880, 6829,12292,12292, 6826, 6818, 6828, 3921, 3924,
958     12292, 3928, 1714, 6791, 6783, 6789, 6794, 6784, 6769, 6781,
959      1779, 6765, 6756, 6756, 6732, 6720, 6716, 6712,  446, 6723,
960      6706, 6697, 6711, 6701, 6677, 1849, 6671, 6655, 6660, 6645,
961      1381, 6659, 3947, 3950, 3953,12292, 3956, 3959, 3965,12292,
962
963     12292, 3977, 6681, 3981, 3984,12292, 3988, 6635, 3991,12292,
964     12292, 4007, 4010, 4019, 4025, 4030, 6649, 4039, 6642, 4043,
965      4046,12292, 4049, 6638, 4052, 6636, 4057, 4070,12292, 4076,
966      4079,12292,12292, 6631, 4089, 4095,12292, 4098, 6623, 6619,
967      6625, 1852, 6604, 6612, 1449, 6601, 6593, 6609, 6607, 6583,
968      6578, 6591, 4101,12292,12292, 6583, 4110, 4117, 4120,12292,
969      4124, 6588, 4129,12292,12292, 6600, 4139, 4143,12292, 4146,
970      4149, 4152, 4158, 4170,12292, 4173, 4177, 4180, 4200, 4203,
971     12292, 4209, 6568, 6574, 4212, 4215,12292,12292, 6559, 6555,
972      6569, 4223, 4230,12292, 4233, 6558, 6552, 4236, 4242, 4245,
973
974     12292, 4254, 4257, 4264,12292,12292, 4276,12292,12292, 4284,
975      4287,12292, 4290, 6547, 6535, 6555, 6539, 4293,12292,12292,
976      4309, 4312,12292,12292, 4322, 4327, 6525, 6538, 6521, 6519,
977      6523, 6517, 6508, 6511, 6501, 4335, 4340,12292, 4343, 4347,
978     12292,12292, 4362,12292,12292, 4370, 4373, 6490, 6498, 6497,
979      6490, 4381, 4384,12292, 4388, 6485, 6477, 6465, 6481, 4391,
980     12292,12292, 4403, 4407, 6465, 6473, 4415, 4421,12292, 4424,
981      6473, 4427,12292,12292, 4443, 4446,12292, 4449, 6449, 4452,
982     12292,12292, 6457, 4468, 4471,12292, 4476, 6446, 4480,12292,
983     12292, 6441, 6444, 6441, 4490, 4495,12292, 4499, 4502, 4505,
984
985      4520, 4526, 6434, 4534, 4538,12292, 4542, 6426, 4545, 4563,
986      6413, 6412, 4549, 4571, 6406, 4579, 4582,12292, 4585, 6407,
987      4588,12292,12292, 4604, 4610,12292, 4613, 4616, 4619, 4634,
988      4637, 4645, 4652,12292, 4656, 4659, 4664, 6371, 6369, 4677,
989      4680, 4688, 4691,12292, 4695, 6354, 4698, 6369, 6367, 6346,
990      4701, 4710,12292, 4720, 6333, 6347, 4723, 4729,12292, 4732,
991      4735,12292,12292, 4743, 4751,12292, 4754, 4758,12292,12292,
992      6346, 4766, 4773,12292, 4776, 1099, 4786,12292,12292, 6379,
993      6378, 6332, 6263, 4795, 6229, 6236, 6245, 6203, 6150, 6131,
994      6085, 2057, 2250, 6049, 2307, 6047, 6032, 2483, 6031, 5953,
995
996      2492, 5912, 5878, 5881, 5739, 5734, 5704, 5620, 5613, 5561,
997      2495, 5575,   13, 4798, 4816, 4801, 4807, 4825,   37,  172,
998      4833,  268, 4838,12292,12292, 4846, 4853, 4864,12292,12292,
999       333, 4872, 4876,  346, 4884,  343, 4890, 4893, 4903, 4908,
1000       384, 4810,12292,  409,  449,  460, 2626, 2629, 2693, 2696,
1001       497,  507,  551,  576,  631,  632,  667, 4911, 4914, 4917,
1002      4935,  693,  715, 4938, 4941, 4944,  757, 4959, 4962, 4965,
1003       779, 4973,  797,  835, 4980, 4983, 4992,  844, 5003, 5006,
1004       834,  854, 5010, 5014, 5028, 5031, 5035, 5043,  981, 5050,
1005       963,  984, 5053, 5056, 5064,12292,12292, 1039, 1046, 5073,
1006
1007      1050, 1117, 1107, 1145, 1186, 1164, 5076, 5079,12292,12292,
1008      5087, 5091, 5095, 5098, 5101, 1205, 5105, 1188, 1200, 5116,
1009     12292,12292, 5126, 1250, 5129, 1244, 5132, 1262, 1290, 5135,
1010      1331, 1338, 1330, 5138, 5144, 5163,12292,12292, 5171,12292,
1011     12292, 1341, 5158, 2763, 5179,12292,12292, 1356, 1382, 5187,
1012     12292,12292, 1367, 5195, 1368, 5202, 5205,12292,12292, 5214,
1013     12292,12292, 5225, 5228,12292,12292, 1386, 1406, 5237,12292,
1014     12292, 5245, 1403, 5248, 5251, 1409, 1435, 1453, 5260, 1442,
1015      5266, 5269, 5273, 5279, 5284, 1739, 1484, 5288,12292, 1524,
1016     12292,12292, 1502, 1505, 5293, 1525, 1541, 1548, 1567, 1582,
1017
1018      1585, 1590, 2830, 1613, 1636, 2874, 1646, 2882, 1686, 2887,
1019      1695, 1710, 2933, 1717, 3010, 1732, 3266, 1749, 1758, 1775,
1020      1777, 1779, 3078, 1766, 3540, 5297,12292,12292, 5312, 5315,
1021     12292,12292, 1780, 1798, 5326, 1773, 5331,12292,12292, 1782,
1022      5347,12292,12292, 1774, 5340, 1781, 5359, 2516, 2779, 5367,
1023      5371, 5380, 1892, 1894, 1908, 1906, 3279, 1914, 3342, 3530,
1024      5385, 1921, 1919, 1922, 5388, 5391, 1922, 5394, 5402, 5412,
1025     12292,12292, 5420, 1928, 5423, 5426, 5432,12292,12292, 1961,
1026      5441, 5446,12292,12292, 5460, 5456, 1979, 1975, 5464,12292,
1027     12292, 5478, 5481, 5489, 5492, 5496, 1984, 5510, 3670, 1991,
1028
1029      5514,12292,12292, 5522,12292, 5525,12292,12292, 5533, 1991,
1030      5536, 5541, 5554, 1977, 5557,12292,12292, 1987, 2012, 5565,
1031      5568, 5576, 2021, 2048, 2049, 2051, 5583, 5586, 5589, 5594,
1032      5607, 5610, 5613, 5616, 2057, 5619, 5631, 5639, 2046, 5642,
1033      5646, 2056, 5660, 2056, 5663, 2072, 2054, 5669, 2076, 2057,
1034      2076, 5672, 5684, 2094, 5692, 2097, 5695, 2120, 5698, 5701,
1035      5704, 5707, 2115, 5726, 5722, 5730, 5733, 5736, 2111, 5741,
1036     12292,12292, 2118, 2117, 2117, 5751, 2138, 5756, 5759, 5775,
1037      5778, 5781, 5784, 5803, 2178, 2177, 2252,12292, 2128, 5806,
1038      5809, 2142, 2168, 2176, 2274, 2173, 2176, 3771, 2187, 2195,
1039
1040      2181, 4553, 2200, 2221, 2228, 5812, 5815, 5818, 2246, 5824,
1041      2250, 5828, 5835, 2238, 2263, 2291, 2285, 5838, 2302, 5841,
1042      2305, 2336, 5844, 2299, 5847, 2311, 5850, 5854, 2347, 2335,
1043      2382, 2336, 2367, 2377, 2442, 2379, 5865,12292,12292, 5874,
1044      5877, 2363, 2356, 2453, 2365, 5880, 5883, 2375, 2454, 2518,
1045      5886, 5895,12292,12292, 5904, 5910, 5913, 5917, 5933, 2401,
1046      5936, 5941, 5945, 5959, 2375, 2400, 5962,12292,12292, 5970,
1047      5974, 5988, 2437, 2442, 2425, 5982,12292, 5996, 2433, 6001,
1048      2459, 6007,12292,12292, 6015, 6020, 2474, 2494, 2484, 6029,
1049     12292,12292, 6037, 6040, 6048, 2501, 2511, 2504, 6051, 6056,
1050
1051      6069, 6072,12292,12292, 6080, 6084, 6092, 6098, 6101, 6110,
1052      2506, 6117,12292,12292, 6125, 6129, 2516, 6137,12292,12292,
1053      2509, 6145,12292, 2540, 6148, 2522, 6151, 6154, 2525, 6157,
1054      2550, 6169, 2567, 2569, 2550, 6177,12292, 2552, 6180, 2544,
1055      6183, 6186, 6204, 6207, 2558, 6216, 2553, 6222, 6225, 6228,
1056      6231, 6246, 6249, 6257, 2556, 2562, 2556, 2569, 6260, 2588,
1057      6265,12292,12292, 6279, 6283, 6287,12292,12292, 6298,12292,
1058      2652, 2809, 2651, 2613, 6302, 6305, 6313, 6326, 2607, 2630,
1059      2645, 2627, 6332, 6337, 6340, 2630, 6343, 2631, 2685, 2678,
1060      6346, 6349, 6352, 6355, 2679, 6358, 6361, 6364, 6367, 6370,
1061
1062      6373, 2681, 6378, 2688, 2704, 6381,12292, 2685, 6385, 6388,
1063      2705, 6403, 6406, 6409, 2720, 2721, 2722, 2728, 2741, 2771,
1064      2770, 2778, 2784, 2779, 6417, 6424, 6430, 6438, 2774, 2791,
1065      2788, 2803, 6442, 6445, 6448, 6451, 2801, 6459, 6462, 6467,
1066      2805, 6480,12292,12292, 6488, 2822, 6493,12292, 6496,12292,
1067     12292, 6507, 2819, 2840, 6512,12292,12292, 2906, 2956, 2860,
1068      2868, 6520, 2882, 6526,12292,12292, 2883, 2886, 2900, 6540,
1069     12292,12292, 6534, 6548, 2913, 2913, 2919, 6557,12292,12292,
1070      6565, 6569,12292,12292, 6577, 6580, 6588,12292,12292, 6596,
1071      2924, 6599,12292,12292, 2920, 2930, 2925, 6607, 2938, 6610,
1072
1073      6615, 6630, 2946, 6633, 6636, 2953, 2945, 3031, 3038, 2950,
1074      2994, 6645,12292, 2993, 6651,12292,12292, 6664,12292,12292,
1075      3005, 6659, 2997, 6673, 6678, 6681,12292,12292, 6693,12292,
1076     12292, 6701, 6705, 6711, 6715, 6723, 6729, 2993, 6733, 6736,
1077      6741, 3079, 3055, 6744, 6748,12292,12292, 6756, 6763, 6766,
1078      6769, 3012, 3045, 6775, 6783, 3065, 6786, 6789, 6795, 6798,
1079      6801, 6804, 3057, 3065, 6807, 6810, 6816, 6819, 3074, 6822,
1080      3076,12292, 6825, 6828,12292,12292, 6836, 6843,12292, 6847,
1081     12292,12292, 3120, 3107, 3122, 3134, 3146, 3148, 3138, 3153,
1082      3152, 3165, 6855, 6858, 3294, 6841, 6867, 6870, 3126, 3125,
1083
1084      3136, 6875, 3130, 6878,12292,12292, 3127, 6886, 6889,12292,
1085     12292, 3128, 6897, 6905, 6908, 3147, 3157, 3185, 3207, 3188,
1086      3207, 3180, 6911, 6917, 3182, 3189, 3188, 3289, 6923,12292,
1087     12292, 6936, 3190, 3204, 6939, 6942,12292,12292, 6950, 3205,
1088      3213, 3221, 3222, 6954,12292, 6961, 6969,12292,12292, 6964,
1089      6979, 6983,12292,12292, 6991, 6997, 3251, 3273, 3273, 3304,
1090      7000, 3273, 7003, 3279, 7009, 7018, 7021, 7029, 7032, 7036,
1091      7041, 7054, 7059, 7062, 7065, 7072, 7084, 7087,12292, 7091,
1092      3398, 3347, 7094, 7097, 7106, 7116, 3274, 3273, 7119, 7122,
1093      7125, 7128, 3275, 3317, 3319, 7131,12292, 3309, 7134, 7137,
1094
1095      3327, 3345, 3341, 3367, 3362, 3381, 3394, 3396, 3414, 3407,
1096      3421, 7145, 3400, 3408, 3420, 3403, 3417, 3421, 3429, 3529,
1097      3467, 3478, 7154, 3477, 3478, 7157, 3474, 3500, 7160, 3506,
1098      7164,12292, 7167, 7170, 7179, 3503, 3523, 3586,12292, 3587,
1099     12292, 7185, 7188, 7191, 3531, 3553, 3541, 3533, 3572, 7194,
1100      7199, 3567, 7212, 7215,12292, 7218,12292, 3560, 3566, 7221,
1101      3568, 7230, 7239, 7249, 7252, 7255, 7263, 7270, 7273, 3643,
1102     12292, 3641,12292, 7276, 3593, 7281, 3595, 7284,12292, 7294,
1103      7297, 7305, 7308, 7312, 7317,12292,12292, 7332, 7335, 7343,
1104      7346, 7350,12292, 7353, 7356, 3699, 3649, 3650, 7364,12292,
1105
1106      3588, 3605, 7369, 3596, 3608, 3614, 7377, 7383, 3814, 3864,
1107      3660, 3695, 3704, 3704, 3721, 3738, 3722, 3733, 3736, 3742,
1108      3761, 7391, 3702, 3718, 3717, 3724, 3727, 3725, 3731, 3745,
1109      3743, 3761, 3767, 3760, 3771, 3795, 7395, 3787, 3805, 7398,
1110      3814, 7401,12292,12292, 7410,12292, 3795, 7413,12292,12292,
1111      7417, 7420, 7431, 3797, 3813, 3819, 7435, 3823, 7438,12292,
1112     12292, 3840, 7446, 7453, 3827, 7464, 7470, 7473, 7482, 7488,
1113     12292,12292, 7496,12292, 7500,12292,12292, 7508, 7511, 7515,
1114     12292,12292, 7518, 7522, 7536, 7539, 7542, 3904, 3964, 7550,
1115     12292, 7557, 7564, 7572,12292,12292, 7583, 7586, 7594, 7597,
1116
1117      7606,12292, 3893, 3944, 3955, 3842, 7612, 3868, 3883, 3884,
1118      7615, 7626, 3899, 3904, 3980, 3905, 3910, 3996, 3910, 3973,
1119      3961, 3975, 3982,12292, 4000, 3988, 3990, 4015,12292, 7618,
1120      3995, 4005, 3992, 4007, 4015, 4021, 4008, 4017, 4011, 4026,
1121      4034, 4040, 4026, 7637, 4042, 7640, 7643, 7646, 7649, 7653,
1122      7658, 7671,12292,12292, 7679,12292, 4058, 4045, 7682, 7685,
1123      7689, 7706, 4065, 7709,12292,12292, 4069, 7717, 7720, 7728,
1124     12292,12292, 7736, 7739, 7747, 7750, 7754, 7758,12292,12292,
1125      7768, 7772, 7780, 7786, 4094, 4098, 4099, 4103, 4121, 4121,
1126      7794, 7798, 7806, 4160, 4170, 7817,12292,12292, 4249, 4145,
1127
1128      7825, 4111, 7828, 7831, 4099, 4101, 7834,12292,12292, 4148,
1129      4151, 4153, 4161, 4169, 4157, 4159, 4169, 7846, 4182, 4206,
1130      4224, 4219, 4211, 4230, 4245, 4241, 7849, 4196, 4204, 4220,
1131      4269, 4275, 4223, 4216, 4231, 4249, 4294, 4296, 4246, 4255,
1132      7852, 7855, 7858, 7869, 7877, 7880, 7883, 7891, 7899, 4255,
1133      7909,12292,12292, 4265, 4260, 7917, 7920, 7929,12292,12292,
1134      7937, 7940, 4249, 4273, 7948,12292,12292, 7956,12292,12292,
1135      7964, 7967, 7970, 7978, 7985, 4313, 4317, 7996, 4324, 4335,
1136      4289, 4299, 4329, 4297, 4319, 4352, 8004, 8007, 4337, 4352,
1137      4351, 4370, 4378, 8010, 8016, 8019, 8029, 8038, 8041, 8044,
1138
1139      4364, 4376, 4378, 4375, 4380, 4394, 4396, 4395, 8050, 8053,
1140      4408, 4409,12292, 4410, 4413, 4413,12292, 4427, 8061, 4406,
1141      4392, 4456,12292,12292, 4412, 4412, 4399, 4459,12292,12292,
1142      4424, 8064, 8068, 8074,12292,12292, 8082, 8085,12292,12292,
1143      8094,12292,12292, 4424, 4428, 4430, 8102,12292,12292, 8110,
1144     12292,12292, 8118, 4433, 8121, 8124,12292,12292, 8132, 4459,
1145      4474, 4476, 4487, 4480, 4491, 4484, 4499, 4491, 4505,12292,
1146      4498, 4508,12292, 8139,12292, 8142, 4517, 4511, 4533, 4521,
1147      4581, 8145, 8151, 8164, 8195, 8242, 8172, 8175, 8178, 4538,
1148      4564, 4565, 4536, 4553, 4570, 4584, 4555, 8183,12292,12292,
1149
1150      4590, 4565, 4567, 4594, 4571, 4576, 8206, 4544, 4560,12292,
1151      4570, 4563, 4565,12292, 4575, 8215, 8218,12292, 4574, 4582,
1152      4594, 8221, 8225, 4590, 8233, 8262, 8253, 8271, 4646, 4618,
1153      4655, 4630, 4665, 4635, 4668, 4646, 4681, 4682, 4697, 4698,
1154      8279, 4703, 4670, 4707, 4678, 4699, 8288, 4722, 4764, 8308,
1155      8355, 4715,12292,12292, 4710, 4736,12292,12292, 4713,12292,
1156      4760, 4766,12292, 4772, 4773, 8282,12292, 4779, 4742, 4786,
1157      4785, 4746, 4799, 4770, 4771, 4759, 8328, 4806, 4819, 4785,
1158      8336,12292,12292, 8344, 4825, 4833,12292, 4837,12292, 4842,
1159     12292, 4848,12292, 4860,12292,12292,12292,12292, 8301,12292,
1160
1161     12292, 4849,12292, 4855, 4863, 4883, 4880, 4875, 4971, 4881,
1162      8366, 4883, 4882, 4910, 4901,12292,12292,12292,12292,12292,
1163      4925,12292,12292, 4948,12292, 8375, 8378, 8381, 4910, 4900,
1164      4913, 4905, 8386, 4956, 4923, 4978, 4927,12292,12292,12292,
1165     12292, 4932, 4935, 8389, 4982, 4969, 4989, 8404, 4996, 4981,
1166      5006, 5002,12292, 4976,12292, 4978, 8408, 8411, 8419, 8426,
1167      8437, 8440, 4988, 5007, 5020, 5003, 5016, 5039, 8448, 8456,
1168      5024, 5038, 5062, 5046, 5054, 5090, 5073, 5075, 8451, 5096,
1169     12292, 5089,12292, 5092, 5076, 5099, 8466,12292,12292, 8474,
1170     12292,12292, 8482, 5129, 5132, 5114, 5120, 5116, 5139, 5146,
1171
1172      5146, 8490,12292,12292, 5150, 5159, 5163, 5165, 5177, 5174,
1173      5207, 5210, 5239,12292, 5215, 5215, 5169, 5177, 5213, 5207,
1174      5216, 5213, 5214, 5231, 5240, 5248, 5254, 5276, 5275, 5282,
1175      5283, 5280, 5287, 5294,12292,12292, 5306,12292,12292, 5269,
1176      5270, 5285, 5309, 5296, 5317, 5315, 5313, 5330, 5320, 5318,
1177      5339, 5329, 5326, 5347, 5339, 5337, 5360, 5379, 5395, 5393,
1178      5370, 5371, 5373, 5374, 5391, 5383, 5425, 5406, 5400, 5430,
1179      5421, 5416, 5450, 5439, 5434, 5463, 5481,12292,12292, 5444,
1180      5451, 5448, 5460, 5482, 5456,12292, 5494, 5471,12292, 5500,
1181      5477,12292, 5506, 5486,12292, 5512, 5484, 5508, 5504, 5523,
1182
1183     12292, 5523,12292, 5525,12292, 5526,12292, 5528, 8498, 5536,
1184      5558, 5539, 5566, 5532, 5538, 5539, 5550, 8501, 5593,12292,
1185      5592,12292, 5598, 5596, 5601, 5615, 5636, 5657,12292,12292,
1186     12292,12292,12292,12292, 5611, 5698, 5701, 5731, 5605, 5737,
1187      5631, 5637, 5648, 5702, 5752, 5782, 5664, 5835, 5776, 5777,
1188      5804, 5839, 5840, 5855, 5619, 5843, 5871, 5898, 5607, 5721,
1189      5922, 5930, 5872, 5926, 5947, 5973, 5932, 5949, 5962, 6000,
1190      6025, 6037, 5994, 5995, 5976, 6057, 5950, 6049, 6017, 6104,
1191      6043, 6071, 6077, 6088, 6142, 6144, 6105, 6183, 6010, 6147,
1192      6149, 6178, 6184, 6226, 6221, 6246, 6219, 6237, 5842, 6116,
1193
1194      6201, 6223, 6259, 6358, 6255, 6373, 5905, 6202, 6299, 6311,
1195      6436, 6452, 6252, 6409, 6454, 6455, 6317, 6016, 8509, 8512,
1196     12292,12292, 8532, 8541, 8550, 8559, 8568, 8577, 8586, 8595,
1197      8604, 8613, 8622, 8631, 8640, 8649, 8658, 8667, 8676, 8685,
1198      8694, 8703, 8712, 8721, 8730, 8739, 8748, 8757, 8766, 8775,
1199      8784, 8793, 8802, 8811, 8820, 8829, 8838, 8847, 8856, 8865,
1200      8874, 8883, 8892, 8901, 8910, 8919, 8928, 8937, 8946, 8955,
1201      8964, 8973, 8982, 8991, 9000, 9009, 9018, 9027, 9036, 9045,
1202      9054, 9063, 9072, 9079, 9086, 9093, 9100, 9107, 9114, 9121,
1203      9128, 9135, 9142, 9149, 9156, 9163, 9170, 9177, 9184, 9191,
1204
1205      9198, 9205, 9212, 9219, 9226, 9233, 9240, 9247, 9254, 9261,
1206      9268, 9277, 9284, 9289, 9296, 9301, 9308, 9313, 9320, 9325,
1207      9332, 9337, 9344, 9349, 9356, 9361, 9368, 9373, 9380, 9385,
1208      9392, 9397, 9404, 9409, 9416, 9421, 9428, 9433, 9440, 9445,
1209      9452, 9457, 9464, 9469, 9476, 9481, 9488, 9493, 9500, 9505,
1210      9512, 9517, 9524, 9529, 9536, 9541, 9548, 9553, 9560, 9565,
1211      9572, 9577, 9584, 9589, 9596, 9601, 9608, 9613, 9622, 9628,
1212      9635, 9643, 9650, 9658, 9665, 9673, 9680, 9688, 9695, 9703,
1213      9710, 9718, 9725, 9733, 9740, 9748, 9755, 9763, 9770, 9778,
1214      9785, 9793, 9800, 9808, 9815, 9823, 9830, 9838, 9846, 9854,
1215
1216      9861, 9869, 9876, 9884, 9891, 9899, 9906, 9914, 9922, 9930,
1217      9938, 9946, 9953, 9961, 9969, 9977, 9985, 9993,10000,10008,
1218     10015,10023,10031,10038,10046,10055,10061,10068,10076,10084,
1219     10092,10100,10108,10115,10123,10130,10138,10145,10153,10160,
1220     10168,10175,10183,10191,10199,10207,10215,10222,10230,10238,
1221     10246,10254,10262,10269,10277,10284,10292,10299,10307,10314,
1222     10322,10329,10337,10344,10352,10359,10367,10374,10382,10389,
1223     10397,10405,10412,10420,10427,10435,10442,10450,10458,10465,
1224     10473,10482,10491,10498,10506,10514,10521,10529,10536,10544,
1225     10551,10559,10566,10573,10581,10588,10596,10603,10611,10618,
1226
1227     10626,10633,10641,10649,10657,10664,10672,10680,10688,10695,
1228     10703,10710,10718,10725,10733,10740,10748,10755,10763,10770,
1229     10778,10785,10793,10801,10808,10816,10823,10831,10839,10847,
1230     10855,10863,10871,10880,10889,10896,10904,10912,10919,10927,
1231     10934,10942,10949,10957,10964,10971,10979,10986,10994,11001,
1232     11009,11017,11025,11032,11040,11048,11055,11063,11071,11079,
1233     11086,11094,11101,11109,11116,11124,11131,11139,11146,11154,
1234     11162,11170,11177,11185,11193,11201,11209,11216,11224,11232,
1235     11240,11248,11257,11266,11274,11282,11290,11297,11305,11312,
1236     11320,11328,11336,11344,11352,11360,11368,11376,11383,11391,
1237
1238     11399,11406,11414,11421,11429,11437,11445,11452,11459,11467,
1239     11474,11482,11489,11496,11504,11511,11519,11526,11534,11542,
1240     11550,11557,11565,11573,11581,11590,11599,11607,11615,11622,
1241     11629,11637,11645,11652,11660,11667,11675,11682,11690,11697,
1242     11705,11712,11720,11728,11735,11742,11750,11757,11765,11772,
1243     11779,11786,11794,11801,11809,11817,11825,11833,11841,11849,
1244     11857,11866,11875,11883,11891,11898,11906,11914,11921,11929,
1245     11936,11944,11952,11960,11967,11975,11982,11990,11998,12005,
1246     12012,12020,12028,12036,12043,12050,12058,12066,12074,12082,
1247     12090,12098,12106,12114,12123,12132,12140,12147,12154,12162,
1248
1249     12169,12177,12184,12192,12199,12207,12214,12221,12228,12237,
1250     12246,12255,12264,12273,12282
1251     } ;
1252
1253 static yyconst flex_int16_t yy_def[3816] =
1254     {   0,
1255      3323, 3323, 3324, 3324, 3324, 3324, 3325, 3325, 3326, 3326,
1256      3327, 3327, 3328, 3328, 3328, 3328, 3329, 3329, 3323, 3323,
1257      3330, 3330, 3331, 3331, 3331, 3331, 3323, 3323, 3331, 3331,
1258      3331, 3331, 3323, 3323, 3331, 3331, 3323, 3323, 3331, 3331,
1259      3331, 3331, 3332, 3332, 3333, 3333, 3323, 3323, 3333, 3333,
1260      3333, 3333, 3334, 3334, 3328, 3328, 3335, 3335, 3336, 3336,
1261      3337, 3337, 3338, 3338, 3339, 3339, 3340, 3340, 3340, 3340,
1262      3323, 3323, 3340, 3340, 3340, 3340, 3323, 3323, 3340, 3340,
1263      3340, 3340, 3323, 3323, 3340, 3340, 3323, 3323, 3340, 3340,
1264      3340, 3340, 3323, 3323, 3340, 3340, 3323, 3323, 3340, 3340,
1265
1266      3340, 3340, 3341, 3341, 3342, 3342, 3323, 3323, 3342, 3342,
1267      3342, 3342, 3343, 3343, 3344, 3344, 3323, 3323, 3344, 3344,
1268      3344, 3344, 3345, 3345, 3346, 3346, 3347, 3347, 3348, 3348,
1269      3349, 3349, 3350, 3350, 3323, 3323, 3350, 3350, 3350, 3350,
1270      3351, 3351, 3352, 3352, 3353, 3353, 3354, 3354, 3322,  149,
1271      3355, 3355, 3323, 3323, 3355, 3355, 3355, 3355, 3356, 3356,
1272      3357, 3357, 3358, 3358, 3359, 3359, 3360, 3360, 3361, 3361,
1273      3362, 3362, 3363, 3363, 3364, 3364, 3365, 3365, 3323, 3323,
1274      3365, 3365, 3365, 3365, 3366, 3366, 3367, 3367, 3323, 3323,
1275      3367, 3367, 3367, 3367, 3368, 3368, 3369, 3369, 3323, 3323,
1276
1277      3369, 3369, 3369, 3369, 3370, 3370, 3371, 3371, 3372, 3372,
1278      3373, 3373, 3323, 3323, 3373, 3373, 3373, 3373, 3374, 3374,
1279      3375, 3375, 3323, 3323, 3375, 3375, 3375, 3375, 3376, 3376,
1280      3377, 3377, 3323, 3323, 3377, 3377, 3377, 3377, 3378, 3378,
1281      3379, 3379, 3380, 3380, 3381, 3381, 3323, 3323, 3381, 3381,
1282      3381, 3381, 3382, 3382, 3383, 3383, 3323, 3323, 3322, 3322,
1283      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1284      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1285      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3384,
1286      3322, 3322, 3384, 3322, 3322, 3322,  296,  296,  298,  296,
1287
1288       299,  299, 3322, 3322, 3322, 3385, 3322, 3322, 3385, 3322,
1289      3322,  300,  299, 3322, 3322, 3322, 3386, 3322, 3322, 3386,
1290      3386, 3386, 3322, 3322, 3322, 3322, 3322, 3387, 3322, 3322,
1291      3387, 3387, 3387, 3387, 3387, 3322, 3322, 3322, 3322, 3322,
1292      3322, 3388, 3322, 3322, 3388, 3388, 3388, 3322, 3322, 3322,
1293      3322, 3322, 3322, 3389, 3322, 3322, 3389, 3389, 3322, 3322,
1294      3322,  361,  299,  299,  300,  365,  364,  364,  364,  364,
1295       365,  371,  369,  369, 3322, 3322, 3322, 3390, 3322, 3322,
1296      3390, 3390, 3390, 3390, 3322, 3322,  299,  299, 3322, 3322,
1297      3322, 3391, 3322, 3322, 3391, 3391, 3391, 3322, 3322,  299,
1298
1299       299, 3322, 3322, 3322, 3392, 3322, 3322, 3392, 3392, 3322,
1300      3322, 3322, 3322, 3322, 3322, 3393, 3322, 3322, 3393, 3393,
1301      3322, 3322, 3322, 3322, 3322, 3322, 3394, 3322, 3322, 3394,
1302      3394, 3394, 3394, 3394, 3322, 3322,  299,  299,  299, 3322,
1303      3322, 3322, 3395, 3322, 3322, 3395, 3322, 3322, 3322, 3322,
1304      3322, 3322, 3396, 3322, 3322, 3396, 3396, 3396, 3322, 3322,
1305      3322, 3322, 3322, 3322, 3397, 3322, 3322, 3397, 3397, 3397,
1306      3397, 3397, 3397, 3397, 3397, 3322, 3322,  299,  299, 3322,
1307      3322, 3322, 3398, 3322, 3322, 3398, 3398, 3398, 3398, 3398,
1308      3398, 3322, 3322, 3322, 3322, 3322, 3322, 3399, 3322, 3322,
1309
1310      3399, 3399, 3399, 3399, 3399, 3399, 3399, 3322, 3322, 3322,
1311      3322, 3322, 3322, 3400, 3322, 3322, 3400, 3400, 3322, 3322,
1312      3322, 3322, 3322, 3322, 3401, 3322, 3322, 3401, 3401, 3401,
1313      3322, 3322, 3322, 3322, 3322, 3322, 3402, 3322, 3322, 3402,
1314      3402, 3402, 3402, 3322, 3322,  299,  299, 3322, 3322, 3322,
1315      3403, 3322, 3322, 3403, 3403, 3322, 3322,  299,  369,  369,
1316      3322, 3322, 3322, 3404, 3322, 3322, 3404, 3404, 3404, 3322,
1317      3322,  369,  369, 3322, 3322, 3322, 3405, 3322, 3322, 3405,
1318      3405, 3322, 3322, 3322, 3322, 3322, 3322, 3406, 3322, 3322,
1319      3406, 3406, 3322, 3322,  369,  369, 3322, 3322, 3322, 3407,
1320
1321      3322, 3322, 3407, 3407, 3407, 3322, 3322,  369,  369, 3322,
1322      3322, 3322, 3408, 3322, 3322, 3408, 3408, 3408, 3408, 3408,
1323      3322, 3322,  299,  438,  299, 3322, 3322, 3322, 3409, 3322,
1324      3322, 3409, 3322, 3322, 3322, 3322, 3322, 3322, 3410, 3322,
1325      3322, 3410, 3322, 3322,  299,  299, 3322, 3322, 3322, 3411,
1326      3322, 3322, 3411, 3411, 3322, 3322, 3322, 3322, 3412, 3322,
1327      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1328      3322, 3322, 3322, 3322, 3413, 3413, 3414, 3322, 3322, 3322,
1329      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1330      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1331
1332      3322, 3415, 3415, 3416, 3322, 3417, 3417, 3417, 3417, 3322,
1333      3418, 3322, 3322, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
1334      3419, 3419, 3420, 3322, 3421, 3421, 3421, 3421, 3422, 3322,
1335      3423, 3423, 3423, 3424, 3322, 3322, 3322, 3322, 3322, 3322,
1336      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1337      3322, 3322, 3322, 3425, 3425, 3425, 3425, 3425, 3426, 3322,
1338      3427, 3427, 3427, 3427, 3428, 3322, 3429, 3429, 3429, 3430,
1339      3322, 3431, 3431, 3431, 3432, 3322, 3433, 3433, 3433, 3433,
1340      3433, 3433, 3433, 3434, 3322, 3322, 3435, 3435, 3436, 3322,
1341      3437, 3437, 3437, 3437, 3438, 3322, 3439, 3439, 3439, 3439,
1342
1343      3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439,
1344      3439, 3439, 3440, 3322, 3441, 3441, 3441, 3441, 3441, 3441,
1345      3441, 3441, 3442, 3322, 3443, 3443, 3443, 3443, 3443, 3443,
1346      3443, 3443, 3444, 3322, 3445, 3445, 3445, 3446, 3322, 3447,
1347      3447, 3447, 3447, 3448, 3322, 3449, 3449, 3449, 3449, 3449,
1348      3449, 3450, 3322, 3451, 3451, 3451, 3451, 3452, 3322, 3322,
1349      3453, 3453, 3453, 3453, 3453, 3454, 3322, 3455, 3455, 3455,
1350      3456, 3322, 3457, 3457, 3457, 3458, 3322, 3459, 3459, 3459,
1351      3459, 3460, 3322, 3461, 3461, 3461, 3461, 3461, 3461, 3462,
1352      3322, 3322, 3463, 3463, 3464, 3322, 3465, 3465, 3466, 3322,
1353
1354      3467, 3467, 3467, 3468, 3469, 3322, 3469, 3322, 3322, 3322,
1355      3470, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3471, 3472,
1356      3472, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1357      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1358      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1359      3473, 3474, 3474, 3475, 3322, 3322, 3475, 3322, 3476, 3476,
1360      3322, 3477, 3322, 3322, 3477, 3477, 3477, 3477, 3477, 3477,
1361      3478, 3478, 3479, 3479, 3479, 3480, 3480, 3322, 3322, 3481,
1362      3482, 3482, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1363      3322, 3322, 3322, 3322, 3322, 3322, 3483, 3322, 3322, 3483,
1364
1365      3483, 3484, 3484, 3485, 3322, 3322, 3485, 3486, 3486, 3487,
1366      3487, 3488, 3488, 3489, 3489, 3490, 3490, 3491, 3491, 3491,
1367      3322, 3322, 3491, 3491, 3491, 3492, 3492, 3322, 3322, 3493,
1368      3494, 3494, 3495, 3322, 3322, 3322, 3322, 3496, 3496, 3497,
1369      3497, 3322, 3322, 3497, 3322, 3322, 3497, 3497, 3497, 3497,
1370      3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3322, 3322,
1371      3322, 3322, 3499, 3499, 3499, 3499, 3499, 3500, 3500, 3501,
1372      3501, 3501, 3322, 3322, 3501, 3501, 3501, 3502, 3502, 3503,
1373      3322, 3322, 3504, 3504, 3505, 3322, 3322, 3505, 3506, 3506,
1374      3507, 3322, 3322, 3507, 3507, 3507, 3508, 3508, 3509, 3509,
1375
1376      3509, 3510, 3510, 3322, 3511, 3511, 3511, 3511, 3512, 3512,
1377      3513, 3322, 3322, 3514, 3514, 3515, 3515, 3516, 3516, 3517,
1378      3517, 3517, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3520,
1379      3520, 3322, 3521, 3522, 3522, 3322, 3322, 3523, 3523, 3322,
1380      3322, 3524, 3525, 3525, 3526, 3322, 3322, 3526, 3322, 3322,
1381      3527, 3322, 3322, 3322, 3322, 3322, 3322, 3528, 3322, 3529,
1382      3322, 3529, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1383      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1384      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1385      3322, 3322, 3530, 3322, 3531, 3322, 3531, 3532, 3322, 3322,
1386
1387      3322, 3532, 3322, 3322, 3533, 3322, 3533, 3534, 3322, 3322,
1388      3322, 3322, 3322, 3534, 3322, 3322, 3534, 3534, 3534, 3322,
1389      3535, 3322, 3535, 3536, 3536, 3536, 3322, 3537, 3322, 3537,
1390      3322, 3322, 3322, 3538, 3322, 3539, 3322, 3539, 3322, 3322,
1391      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1392      3322, 3540, 3322, 3322, 3322, 3540, 3540, 3322, 3541, 3322,
1393      3541, 3542, 3322, 3322, 3322, 3542, 3322, 3543, 3322, 3543,
1394      3544, 3544, 3322, 3545, 3322, 3545, 3546, 3546, 3322, 3547,
1395      3322, 3547, 3548, 3548, 3548, 3322, 3322, 3322, 3548, 3548,
1396      3548, 3322, 3549, 3322, 3549, 3322, 3322, 3550, 3322, 3551,
1397
1398      3322, 3551, 3552, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1399      3553, 3322, 3553, 3554, 3554, 3554, 3554, 3322, 3322, 3322,
1400      3554, 3322, 3322, 3322, 3322, 3322, 3554, 3554, 3554, 3554,
1401      3554, 3554, 3554, 3554, 3554, 3322, 3555, 3322, 3555, 3322,
1402      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3556, 3556, 3556,
1403      3556, 3322, 3557, 3322, 3557, 3558, 3558, 3558, 3558, 3322,
1404      3322, 3322, 3322, 3322, 3558, 3558, 3322, 3559, 3322, 3559,
1405      3560, 3322, 3322, 3322, 3322, 3561, 3322, 3561, 3562, 3322,
1406      3322, 3322, 3562, 3322, 3563, 3322, 3563, 3564, 3322, 3322,
1407      3322, 3564, 3564, 3564, 3322, 3565, 3322, 3565, 3322, 3322,
1408
1409      3322, 3322, 3566, 3322, 3567, 3322, 3567, 3322, 3322, 3322,
1410      3568, 3568, 3322, 3322, 3568, 3322, 3569, 3322, 3569, 3570,
1411      3322, 3322, 3322, 3322, 3571, 3322, 3571, 3322, 3322, 3322,
1412      3322, 3322, 3572, 3322, 3572, 3322, 3322, 3573, 3573, 3322,
1413      3322, 3322, 3574, 3322, 3574, 3575, 3575, 3575, 3575, 3575,
1414      3322, 3576, 3322, 3576, 3322, 3577, 3322, 3578, 3322, 3578,
1415      3322, 3322, 3322, 3322, 3579, 3322, 3579, 3322, 3322, 3322,
1416      3580, 3322, 3581, 3322, 3581, 3582, 3583, 3322, 3322, 3322,
1417      3322, 3322, 3584, 3585, 3322, 3322, 3322, 3322, 3322, 3322,
1418      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1419
1420      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1421      3322, 3322, 3322, 3322, 3322, 3586, 3322, 3322, 3587, 3322,
1422      3588, 3589, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1423      3589, 3322, 3322, 3589, 3590, 3591, 3322, 3322, 3591, 3592,
1424      3593, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1425      3322, 3322, 3322, 3322, 3322, 3322, 3594, 3594, 3322, 3322,
1426      3595, 3596, 3596, 3597, 3322, 3322, 3598, 3599, 3322, 3322,
1427      3600, 3601, 3602, 3602, 3322, 3322, 3602, 3602, 3602, 3603,
1428      3322, 3322, 3322, 3322, 3604, 3322, 3322, 3605, 3606, 3606,
1429      3606, 3606, 3322, 3322, 3322, 3322, 3322, 3606, 3606, 3606,
1430
1431      3606, 3606, 3606, 3606, 3606, 3606, 3607, 3322, 3322, 3322,
1432      3608, 3608, 3608, 3608, 3609, 3610, 3610, 3610, 3610, 3322,
1433      3322, 3322, 3610, 3610, 3611, 3612, 3613, 3614, 3614, 3615,
1434      3616, 3616, 3616, 3616, 3617, 3322, 3322, 3322, 3322, 3322,
1435      3322, 3618, 3619, 3322, 3322, 3322, 3322, 3620, 3620, 3322,
1436      3322, 3322, 3620, 3621, 3622, 3623, 3322, 3322, 3322, 3322,
1437      3322, 3322, 3624, 3322, 3322, 3322, 3625, 3625, 3322, 3322,
1438      3322, 3626, 3627, 3322, 3322, 3627, 3627, 3627, 3628, 3322,
1439      3629, 3630, 3631, 3632, 3633, 3634, 3635, 3635, 3322, 3635,
1440      3322, 3322, 3322, 3636, 3637, 3322, 3322, 3322, 3322, 3322,
1441
1442      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1443      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1444      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3638, 3322,
1445      3322, 3322, 3639, 3322, 3640, 3641, 3322, 3322, 3322, 3641,
1446      3322, 3322, 3322, 3641, 3642, 3643, 3322, 3322, 3322, 3322,
1447      3322, 3644, 3645, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1448      3322, 3322, 3322, 3322, 3322, 3322, 3646, 3322, 3322, 3322,
1449      3322, 3322, 3647, 3648, 3648, 3649, 3322, 3322, 3322, 3650,
1450      3651, 3322, 3322, 3322, 3652, 3653, 3654, 3654, 3322, 3322,
1451      3322, 3322, 3322, 3654, 3322, 3322, 3654, 3655, 3322, 3322,
1452
1453      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3656, 3657,
1454      3322, 3322, 3657, 3657, 3322, 3322, 3322, 3657, 3657, 3322,
1455      3322, 3657, 3657, 3657, 3657, 3657, 3657, 3658, 3322, 3322,
1456      3659, 3659, 3659, 3660, 3661, 3322, 3322, 3661, 3661, 3322,
1457      3322, 3661, 3662, 3663, 3664, 3665, 3665, 3666, 3667, 3667,
1458      3667, 3322, 3322, 3667, 3668, 3669, 3670, 3322, 3671, 3671,
1459      3671, 3672, 3673, 3674, 3675, 3676, 3676, 3677, 3678, 3322,
1460      3322, 3322, 3678, 3678, 3678, 3679, 3322, 3322, 3322, 3680,
1461      3681, 3322, 3322, 3682, 3683, 3684, 3684, 3322, 3322, 3685,
1462      3686, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1463
1464      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1465      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3687,
1466      3688, 3322, 3689, 3690, 3690, 3690, 3691, 3692, 3322, 3322,
1467      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3693,
1468      3694, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1469      3695, 3322, 3322, 3322, 3696, 3697, 3322, 3322, 3698, 3699,
1470      3700, 3322, 3322, 3701, 3702, 3702, 3322, 3322, 3322, 3322,
1471      3322, 3322, 3322, 3322, 3702, 3322, 3322, 3322, 3322, 3703,
1472      3704, 3322, 3322, 3322, 3322, 3322, 3704, 3704, 3704, 3322,
1473      3322, 3322, 3322, 3322, 3704, 3704, 3704, 3704, 3322, 3322,
1474
1475      3705, 3322, 3322, 3322, 3322, 3322, 3706, 3322, 3322, 3707,
1476      3708, 3322, 3322, 3322, 3322, 3322, 3708, 3322, 3322, 3322,
1477      3708, 3322, 3322, 3709, 3710, 3711, 3711, 3712, 3713, 3713,
1478      3713, 3322, 3322, 3322, 3713, 3322, 3322, 3714, 3715, 3322,
1479      3322, 3322, 3322, 3322, 3716, 3717, 3718, 3719, 3720, 3322,
1480      3322, 3322, 3322, 3721, 3722, 3722, 3722, 3722, 3723, 3322,
1481      3322, 3322, 3322, 3724, 3725, 3322, 3322, 3322, 3322, 3322,
1482      3726, 3727, 3727, 3322, 3322, 3322, 3728, 3322, 3322, 3322,
1483      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1484      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1485
1486      3322, 3322, 3729, 3730, 3322, 3322, 3322, 3731, 3322, 3322,
1487      3731, 3732, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1488      3322, 3322, 3322, 3322, 3733, 3322, 3322, 3322, 3322, 3322,
1489      3322, 3322, 3322, 3322, 3322, 3322, 3734, 3735, 3322, 3322,
1490      3736, 3322, 3322, 3322, 3737, 3738, 3322, 3322, 3322, 3322,
1491      3322, 3739, 3740, 3740, 3322, 3322, 3322, 3322, 3322, 3740,
1492      3322, 3741, 3742, 3322, 3322, 3322, 3742, 3742, 3742, 3322,
1493      3322, 3322, 3322, 3322, 3742, 3742, 3742, 3322, 3322, 3322,
1494      3743, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3744,
1495      3745, 3322, 3322, 3322, 3745, 3745, 3746, 3747, 3748, 3322,
1496
1497      3322, 3749, 3750, 3322, 3322, 3750, 3750, 3322, 3322, 3750,
1498      3751, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1499      3752, 3753, 3754, 3755, 3756, 3322, 3322, 3322, 3322, 3322,
1500      3322, 3757, 3758, 3758, 3758, 3758, 3759, 3322, 3760, 3761,
1501      3762, 3763, 3763, 3322, 3322, 3322, 3322, 3764, 3322, 3322,
1502      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1503      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3765,
1504      3766, 3322, 3767, 3322, 3322, 3322, 3767, 3322, 3322, 3322,
1505      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1506      3322, 3322, 3768, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1507
1508      3322, 3322, 3322, 3322, 3322, 3322, 3769, 3770, 3322, 3322,
1509      3322, 3771, 3772, 3773, 3774, 3775, 3775, 3322, 3322, 3322,
1510      3322, 3775, 3322, 3776, 3777, 3777, 3777, 3777, 3322, 3322,
1511      3322, 3777, 3777, 3777, 3778, 3322, 3322, 3322, 3779, 3780,
1512      3780, 3780, 3781, 3322, 3322, 3782, 3322, 3322, 3322, 3783,
1513      3784, 3322, 3322, 3322, 3784, 3784, 3322, 3322, 3322, 3322,
1514      3784, 3785, 3322, 3786, 3787, 3788, 3789, 3790, 3791, 3322,
1515      3322, 3792, 3792, 3792, 3793, 3322, 3794, 3322, 3322, 3795,
1516      3796, 3796, 3322, 3797, 3322, 3322, 3322, 3322, 3322, 3322,
1517      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3798, 3322, 3322,
1518
1519      3799, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1520      3322, 3800, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1521      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3801, 3802, 3803,
1522      3322, 3322, 3322, 3322, 3804, 3805, 3805, 3322, 3322, 3322,
1523      3322, 3805, 3322, 3806, 3807, 3807, 3807, 3807, 3807, 3322,
1524      3322, 3807, 3807, 3322, 3322, 3322, 3322, 3808, 3808, 3808,
1525      3809, 3322, 3322, 3783, 3322, 3322, 3784, 3784, 3784, 3322,
1526      3322, 3322, 3322, 3784, 3785, 3322, 3786, 3322, 3322, 3322,
1527      3322, 3789, 3790, 3791, 3322, 3322, 3322, 3322, 3322, 3792,
1528      3792, 3322, 3322, 3322, 3794, 3795, 3796, 3796, 3322, 3322,
1529
1530      3322, 3322, 3322, 3322, 3322, 3322, 3798, 3322, 3322, 3322,
1531      3799, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1532      3322, 3800, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1533      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3801, 3802,
1534      3803, 3322, 3322, 3322, 3322, 3322, 3805, 3805, 3322, 3322,
1535      3322, 3322, 3806, 3807, 3807, 3807, 3807, 3807, 3322, 3322,
1536      3322, 3807, 3322, 3322, 3808, 3808, 3322, 3322, 3809, 3322,
1537      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3784, 3784, 3784,
1538      3322, 3322, 3322, 3322, 3785, 3786, 3322, 3322, 3322, 3322,
1539      3322, 3790, 3791, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1540
1541      3322, 3322, 3795, 3796, 3796, 3322, 3322, 3322, 3322, 3322,
1542      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3799, 3322,
1543      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3800,
1544      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1545      3322, 3322, 3322, 3322, 3322, 3801, 3802, 3803, 3805, 3322,
1546      3322, 3322, 3322, 3322, 3322, 3322, 3807, 3807, 3807, 3322,
1547      3322, 3807, 3807, 3322, 3322, 3322, 3808, 3322, 3322, 3322,
1548      3322, 3322, 3322, 3322, 3784, 3784, 3784, 3322, 3322, 3322,
1549      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1550      3790, 3791, 3322, 3322, 3322, 3322, 3322, 3322, 3795, 3796,
1551
1552      3796, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1553      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3799, 3322, 3322,
1554      3322, 3322, 3322, 3322, 3322, 3322, 3800, 3322, 3322, 3322,
1555      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1556      3322, 3322, 3322, 3322, 3802, 3322, 3322, 3322, 3322, 3805,
1557      3322, 3322, 3322, 3807, 3807, 3322, 3322, 3322, 3322, 3322,
1558      3322, 3322, 3807, 3808, 3322, 3322, 3322, 3322, 3322, 3322,
1559      3784, 3322, 3322, 3784, 3322, 3322, 3322, 3322, 3322, 3322,
1560      3322, 3322, 3322, 3322, 3322, 3322, 3790, 3791, 3322, 3322,
1561      3322, 3322, 3795, 3796, 3796, 3796, 3322, 3322, 3322, 3322,
1562
1563      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1564      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3800, 3322,
1565      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1566      3322, 3322, 3322, 3322, 3322, 3322, 3802, 3322, 3322, 3322,
1567      3322, 3322, 3322, 3805, 3807, 3807, 3322, 3322, 3322, 3322,
1568      3322, 3322, 3807, 3808, 3784, 3322, 3322, 3322, 3784, 3322,
1569      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1570      3322, 3322, 3322, 3322, 3322, 3791, 3322, 3322, 3322, 3322,
1571      3795, 3796, 3796, 3796, 3810, 3811, 3322, 3322, 3322, 3322,
1572      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1573
1574      3322, 3322, 3322, 3322, 3322, 3322, 3800, 3322, 3322, 3322,
1575      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3805, 3807,
1576      3807, 3322, 3322, 3808, 3322, 3322, 3322, 3322, 3322, 3322,
1577      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1578      3791, 3322, 3322, 3322, 3322, 3795, 3796, 3812, 3813, 3810,
1579      3811, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1580      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1581      3322, 3322, 3322, 3805, 3807, 3807, 3322, 3322, 3322, 3808,
1582      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1583      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1584
1585      3322, 3322, 3322, 3322, 3795, 3812, 3796, 3814, 3813, 3815,
1586      3796, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1587      3322, 3322, 3322, 3322, 3322, 3805, 3807, 3807, 3322, 3322,
1588      3322, 3322, 3808, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1589      3322, 3322, 3322, 3795, 3814, 3322, 3815, 3796, 3322, 3322,
1590      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1591      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1592      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3795, 3322,
1593      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1594      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1595
1596      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1597      3322, 3322, 3795, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1598      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1599      3322, 3322, 3322, 3322, 3322, 3322, 3795, 3322, 3322, 3322,
1600      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1601      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3795, 3322, 3322,
1602      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1603      3322, 3322, 3322, 3322, 3322, 3322, 3795, 3322, 3322, 3322,
1604      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1605      3322, 3322, 3322, 3322, 3322, 3795, 3322, 3322, 3322, 3322,
1606
1607      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3795, 3322,
1608      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3795, 3322, 3322,
1609      3322, 3322, 3322, 3322, 3322, 3322, 3795, 3795, 3322, 3322,
1610      3322, 3322, 3322, 3322, 3795, 3795, 3795, 3795, 3795, 3795,
1611      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1612      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1613      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1614      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1615      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1616      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1617
1618      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1619      3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
1620      3322,    0, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1621      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1622      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1623      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1624      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1625      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1626      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1627      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1628
1629      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1630      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1631      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1632      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1633      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1634      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1635      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1636      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1637      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1638      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1639
1640      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1641      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1642      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1643      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1644      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1645      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1646      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1647      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1648      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1649      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1650
1651      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1652      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1653      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1654      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1655      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1656      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1657      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1658      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1659      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1660      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1661
1662      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1663      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1664      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1665      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1666      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1667      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1668      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1669      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1670      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1671      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1672
1673      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
1674      3322, 3322, 3322, 3322, 3322
1675     } ;
1676
1677 static yyconst flex_int16_t yy_nxt[12367] =
1678     {   0,
1679      3322,  262,  263,  262,  262,  263,  262,  262,  263,  262,
1680       262,  263,  262,  267,  263,  267,  273,  264,  270,  273,
1681       264,  270, 3322,  265, 3322,  271,  265, 3322,  271,  268,
1682       267,  263,  267,  659,  274,  276,  277,  274,  276,  277,
1683       278,  279,  704,  278,  279,  659,  268,  283,  284,  660,
1684       280,  276,  277,  280,  281,  662,  278,  276,  277,  693,
1685       281,  661,  278,  283,  284, 1725,  280,  263,  263,  263,
1686       850,  661,  280,  263,  263,  263,  295,  263,  295,  295,
1687       263,  295,  851,  286,  295,  263,  295,  680, 1733,  286,
1688       734,  285,  296, 1357,  696,  296,  658,  658,  658, 1358,
1689
1690       297,  658,  658,  658,  658,  658,  658,  285,  287,  288,
1691       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1692       287,  287,  287,  691,  287,  291,  287,  292,  287,  295,
1693       263,  295,  263,  263,  263,  263,  263,  263,  692,  295,
1694       263,  295,  295,  263,  295,  297,  697,  806,  298,  662,
1695       807,  298,  924,  287,  287,  296,  662,  662,  296,  295,
1696       263,  295,  658,  658,  658,  661,  658,  658,  658,  658,
1697       658,  658,  661,  661, 3322,  299,  925,  293,  287,  288,
1698       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1699       287,  287,  287, 1734,  287,  291,  287,  292,  287,  295,
1700
1701       263,  295,  263,  263,  263,  263,  263,  263,  667,  295,
1702       263,  295,  295,  263,  295,  299,  673,  734,  300,  819,
1703       984,  300,  820,  287,  287,  297,  743,  735,  297,  263,
1704       263,  263,  263,  263,  263,  295,  263,  295,  295,  263,
1705       295,  295,  263,  295,  985,  301,  856,  293,  301,  662,
1706       668,  299,  799,  857,  299,  747,  669,  302,  295,  263,
1707       295,  670,  658,  658,  658,  661,  671,  658,  658,  658,
1708       658,  658,  658,  800,  302,  303,  304,  263,  304,  303,
1709       303,  303,  303,  303,  303,  303,  305,  303,  303,  303,
1710       721,  303,  307,  303,  308,  303,  311,  263,  311,  311,
1711
1712       263,  311,  263,  263,  263,  722,  263,  263,  263,  311,
1713       263,  311,  312,  781,  858,  312, 1736,  782,  300,  717,
1714       303,  303,  300,  718,  759,  312,  677,  719,  309,  303,
1715       304,  263,  304,  303,  303,  303,  303,  303,  303,  303,
1716       305,  303,  303,  303,  662,  303,  307,  303,  308,  303,
1717       311,  263,  311,  311,  263,  311,  311,  263,  311,  808,
1718       661,  866,  276,  277,  864,  698,  312,  278, 3322,  313,
1719       697,  865,  313,  809,  303,  303,  743,  323,  699,  759,
1720       692, 1740,  309,  314,  315,  263,  315,  314,  314,  314,
1721       314,  314,  314,  314,  316,  314,  314,  314, 1744,  314,
1722
1723       318,  314,  319,  314, 1746,  662,  324,  691,  337,  263,
1724       337,  337,  263,  337,  349,  263,  349,  697,  276,  277,
1725       700,  661,  692,  278,  338,  710,  803,  338,  314,  314,
1726       350,  696,  711,  323,  804,  912,  320,  765,  913,  321,
1727       805,  661,  658,  658,  658, 1753,  322,  314,  315,  263,
1728       315,  314,  314,  314,  314,  314,  314,  314,  316,  314,
1729       314,  314,  324,  314,  318,  314,  319,  314,  349,  263,
1730       349,  360,  263,  360,  360,  263,  360, 1754,  360,  263,
1731       360,  360,  263,  360,  350,  662,  748,  361,  662,  743,
1732       361,  859,  314,  314,  362,  723, 1500,  362, 1755,  697,
1733
1734       320,  661,  749,  321,  661,  658,  658,  658,  765, 1501,
1735       322,  325,  326,  263,  326,  325,  325,  325,  325,  325,
1736       325,  325,  327,  325,  325,  325, 1756,  325,  329,  325,
1737       330,  325,  263,  263,  263,  263,  263,  263,  360,  263,
1738       360,  784,  360,  263,  360,  360,  263,  360,  363, 1761,
1739       662,  363,  662,  662,  361, 1762,  325,  325,  361,  729,
1740       696,  364,  658,  658,  658,  331,  661,  332,  661,  661,
1741       784,  333,  658,  658,  658,  813,  334,  335,  325,  326,
1742       263,  326,  325,  325,  325,  325,  325,  325,  325,  327,
1743       325,  325,  325,  696,  325,  329,  325,  330,  325,  360,
1744
1745       263,  360,  263,  263,  263,  263,  263,  263,  891,  360,
1746       263,  360,  360,  263,  360,  364,  746, 1763,  365,  785,
1747       686,  365,  743,  325,  325,  366,  739,  743,  366,  658,
1748       658,  658,  331,  742,  332,  658,  658,  658,  333,  658,
1749       658,  658, 1764,  334,  335,  339,  340,  263,  340,  339,
1750       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1751       693,  339,  343,  339,  344,  339,  360,  263,  360,  360,
1752       263,  360,  263,  263,  263,  906,  263,  263,  263,  360,
1753       263,  360,  367, 1765, 1766,  367,  906,  876,  368,  750,
1754       339,  339,  368,  737,  738,  364,  882,  345,  658,  658,
1755
1756       658,  907,  696,  346,  751,  658,  658,  658,  658,  658,
1757       658,  958,  347,  339,  340,  263,  340,  339,  339,  339,
1758       339,  339,  339,  339,  341,  339,  339,  339, 1767,  339,
1759       343,  339,  344,  339,  360,  263,  360,  263,  263,  263,
1760       263,  263,  263,  697,  360,  263,  360,  360,  263,  360,
1761       364,  662,  697,  369, 1774,  924,  369,  662,  339,  339,
1762       367,  662,  662,  367,  770,  345, 1775,  661,  658,  658,
1763       658,  346,  984,  661,  658,  658,  658,  661,  661,  993,
1764       347,  351,  352,  263,  352,  351,  351,  351,  351,  351,
1765       351,  351,  353,  351,  351,  351,  925,  351,  355,  351,
1766
1767       356,  351,  360,  263,  360,  360,  263,  360,  263,  263,
1768       263, 1780,  263,  263,  263,  360,  263,  360,  370,  662,
1769      1019,  370,  662, 1020,  371,  813,  351,  351,  371,  775,
1770      1785,  372,  658,  658,  658,  661, 3322,  357,  661,  658,
1771       658,  658,  658,  658,  658, 1787,  358,  351,  352,  263,
1772       352,  351,  351,  351,  351,  351,  351,  351,  353,  351,
1773       351,  351,  984,  351,  355,  351,  356,  351,  360,  263,
1774       360,  263,  263,  263,  263,  263,  263,  696,  360,  263,
1775       360,  360,  263,  360,  372,  785,  993,  373,  743,  924,
1776       373, 1788,  351,  351,  370,  662, 1794,  370,  360,  263,
1777
1778       360, 1799,  789,  357,  360,  263,  360,  658,  658,  658,
1779       852,  661,  358,  994,  374,  658,  658,  658,  734, 1800,
1780       374,  375,  376,  263,  376,  375,  375,  375,  375,  375,
1781       375,  375,  377,  375,  375,  375,  984,  375,  379,  375,
1782       380,  375,  386,  263,  386,  386,  263,  386,  263,  263,
1783       263,  933,  263,  263,  263,  934,  752,  662,  387, 1028,
1784       994,  387,  743, 1029,  363, 3322,  375,  375,  363,  662,
1785       662,  381,  741,  661,  852,  693,  795,  382,  658,  658,
1786       658,  383,  658,  658,  658,  661,  661,  384,  375,  376,
1787       263,  376,  375,  375,  375,  375,  375,  375,  375,  377,
1788
1789       375,  375,  375,  680,  375,  379,  375,  380,  375,  386,
1790       263,  386,  386,  263,  386,  386,  263,  386,  890,  386,
1791       263,  386,  658,  658,  658,  387,  696,  810,  387, 1810,
1792      1813,  388, 1814,  375,  375,  388,  662,  662,  381,  811,
1793       812,  658,  658,  658,  382,  658,  658,  658,  383,  658,
1794       658,  658,  661,  661,  384,  389,  390,  263,  390,  389,
1795       389,  389,  389,  389,  389,  389,  391,  389,  389,  389,
1796       696,  389,  393,  389,  394,  389,  399,  263,  399,  399,
1797       263,  399,  263,  263,  263,  926,  263,  263,  263, 1146,
1798       662, 1818,  400, 1476, 1819,  400,  927,  823,  363,  928,
1799
1800       389,  389,  363,  662,  662,  395,  661,  658,  658,  658,
1801       833,  396,  658,  658,  658,  658,  658,  658, 1146,  661,
1802       661, 1822,  397,  389,  390,  263,  390,  389,  389,  389,
1803       389,  389,  389,  389,  391,  389,  389,  389, 1686,  389,
1804       393,  389,  394,  389,  399,  263,  399,  399,  263,  399,
1805       399,  263,  399,  938,  399,  263,  399,  658,  658,  658,
1806       400,  662,  662,  400,  662, 1823,  401,  939,  389,  389,
1807       401,  838, 1824,  395,  658,  658,  658,  661,  661,  396,
1808       661,  658,  658,  658,  658,  658,  658,  658,  658,  658,
1809       397,  402,  403,  263,  403,  402,  402,  402,  402,  402,
1810
1811       402,  402,  404,  402,  402,  402, 1825,  402,  406,  402,
1812       407,  402,  411,  263,  411,  411,  263,  411,  422,  263,
1813       422,  899,  422,  263,  422,  436,  263,  436,  412,  662,
1814       662,  412,  662, 1826,  423, 1827,  402,  402,  423,  844,
1815       866,  437,  658,  658,  658,  661,  661,  899,  661,  658,
1816       658,  658,  408, 1835,  858, 1838, 1839,  409,  402,  403,
1817       263,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1818       402,  402,  402,  743,  402,  406,  402,  407,  402,  436,
1819       263,  436,  263,  263,  263,  263,  263,  263,  859,  436,
1820       263,  436,  436,  263,  436,  437,  697, 1842,  438,  696,
1821
1822      1844,  438,  859,  402,  402,  437,  696,  662,  437,  658,
1823       658,  658,  658,  658,  658,  658,  658,  658, 1846,  408,
1824       658,  658,  658,  661,  409,  413,  414,  263,  414,  413,
1825       413,  413,  413,  413,  413,  413,  415,  413,  413,  413,
1826      1847,  413,  417,  413,  418,  413,  436,  263,  436,  436,
1827       263,  436,  448,  263,  448,  943,  448,  263,  448,  460,
1828       263,  460,  439,  662,  662,  439,  662,  943,  449,  939,
1829       413,  413,  449,  871,  662,  461,  658,  658,  658,  661,
1830       661,  990,  661,  658,  658,  658,  419, 1849, 1850,  876,
1831       661, 1851,  420,  413,  414,  263,  414,  413,  413,  413,
1832
1833       413,  413,  413,  413,  415,  413,  413,  413, 1856,  413,
1834       417,  413,  418,  413,  460,  263,  460,  477,  263,  477,
1835       477,  263,  477, 1859,  263,  263,  263,  263,  263,  263,
1836       461, 1512, 1860,  478, 1861, 1863,  478,  859,  413,  413,
1837       363,  926,  662,  363, 1501,  697,  658,  658,  658,  658,
1838       658,  658,  927, 1866,  419,  942, 1867,  882,  661, 1869,
1839       420,  424,  425,  263,  425,  424,  424,  424,  424,  424,
1840       424,  424,  426,  424,  424,  424, 1873,  424,  428,  424,
1841       429,  424,  477,  263,  477,  477,  263,  477,  477,  263,
1842       477, 1874,  477,  263,  477,  658,  658,  658,  478, 1512,
1843
1844      1875,  478, 1877, 1689,  479,  859,  424,  424,  479,  430,
1845       662,  431, 1550,  697,  658,  658,  658,  432,  658,  658,
1846       658,  658,  658,  658,  433,  890,  661,  434,  424,  425,
1847       263,  425,  424,  424,  424,  424,  424,  424,  424,  426,
1848       424,  424,  424, 1888,  424,  428,  424,  429,  424,  493,
1849       263,  493,  493,  263,  493,  509,  263,  509,  945,  509,
1850       263,  509,  891,  662, 1889,  494, 1890,  662,  494,  946,
1851       895,  510,  928,  424,  424,  510,  430,  743,  431,  661,
1852       658,  658,  658,  661,  432,  658,  658,  658,  658,  658,
1853       658,  433, 1892, 1893,  434,  440,  441,  263,  441,  440,
1854
1855       440,  440,  440,  440,  440,  440,  442,  440,  440,  440,
1856      1894,  440,  444,  440,  445,  440,  520,  263,  520,  520,
1857       263,  520,  532,  263,  532,  943,  532,  263,  532,  545,
1858       263,  545,  521, 1895, 1896,  521,  662, 1897,  533,  995,
1859       440,  440,  533,  904, 1898,  546,  658,  658,  658,  658,
1860       658,  658,  661,  910,  910,  910,  446,  440,  441,  263,
1861       441,  440,  440,  440,  440,  440,  440,  440,  442,  440,
1862       440,  440, 1899,  440,  444,  440,  445,  440,  545,  263,
1863       545,  263,  263,  263,  263,  263,  263, 1900,  545,  263,
1864       545,  545,  263,  545,  546,  945, 1901,  363,  935,  926,
1865
1866       363,  948,  440,  440,  546,  936,  946,  546,  936,  942,
1867       946,  937,  911,  942,  949, 1163, 1163, 1163,  446,  450,
1868       451,  263,  451,  450,  450,  450,  450,  450,  450,  450,
1869       452,  450,  450,  450, 1903,  450,  454,  450,  455,  450,
1870       545,  263,  545,  545,  263,  545,  557,  263,  557,  943,
1871       557,  263,  557,  263,  263,  263,  547, 1904, 1146,  547,
1872       948,  935,  558,  996,  450,  450,  558,  936,  936,  559,
1873       456,  935,  948,  937,  949,  457, 1905, 1906,  936,  936,
1874      1492, 1492, 1492, 1885,  989,  989, 1909,  458,  450,  451,
1875       263,  451,  450,  450,  450,  450,  450,  450,  450,  452,
1876
1877       450,  450,  450, 1912,  450,  454,  450,  455,  450,  263,
1878       263,  263,  557,  263,  557,  557,  263,  557, 1913,  557,
1879       263,  557,  557,  263,  557,  559, 1146, 1914,  558, 1915,
1880      1916,  558, 1917,  450,  450,  560, 1921, 1922,  560,  456,
1881      1924, 1925, 1148, 1926,  457,  910,  910,  910, 1928, 1150,
1882      1186, 1186, 1186, 1547, 1547, 1547,  458,  462,  463,  263,
1883       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1884       462,  462,  465,  462,  466,  462,  467,  462,  465,  465,
1885       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1886       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1887
1888       465,  465,  462,  462,  465,  468,  469,  470,  465,  465,
1889       465,  465,  465,  471,  465,  465,  472,  465,  465,  465,
1890       473,  465,  474,  475,  465,  465,  465,  465,  465,  465,
1891       465,  480,  481,  263,  481,  480,  480,  480,  480,  480,
1892       480,  480,  482,  480,  480,  480, 1941,  480,  484,  480,
1893       485,  480,  571,  263,  571,  571,  263,  571,  263,  263,
1894       263, 1942,  263,  263,  263,  571,  263,  571,  572, 1315,
1895      1943,  572, 1944, 1945,  559, 1948,  480,  480,  559, 1316,
1896       486,  572, 1163, 1163, 1163, 1949, 1317,  487, 1950, 1951,
1897       488, 1186, 1186, 1186,  489, 1956,  490,  491,  480,  481,
1898
1899       263,  481,  480,  480,  480,  480,  480,  480,  480,  482,
1900       480,  480,  480, 1960,  480,  484,  480,  485,  480,  571,
1901       263,  571,  571,  263,  571,  571,  263,  571, 1965,  583,
1902       263,  583,  583,  263,  583,  572, 1966, 1975,  573, 1979,
1903      1981,  573, 1987,  480,  480,  584, 1164,  486,  584, 1199,
1904      1199, 1199, 1988, 1200,  487, 1164, 1201,  488, 1492, 1492,
1905      1492,  489, 1989,  490,  491,  495,  496,  263,  496,  495,
1906       495,  495,  495,  495,  495,  495,  497,  495,  495,  495,
1907      1995,  495,  499,  495,  500,  495,  594,  263,  594,  594,
1908       263,  594,  263,  263,  263, 1996,  263,  263,  263,  955,
1909
1910       955,  955,  595, 1997, 1998,  595, 2011, 2017,  559, 2021,
1911       495,  495,  559,  501,  502,  503,  956, 2024, 1209, 1209,
1912      1209,  504, 1210, 2026,  505, 1211, 2027, 2029,  506, 2030,
1913      2031,  507,  495,  496,  263,  496,  495,  495,  495,  495,
1914       495,  495,  495,  497,  495,  495,  495, 2035,  495,  499,
1915       495,  500,  495,  594,  263,  594,  594,  263,  594,  594,
1916       263,  594, 2038,  594,  263,  594,  963,  963,  963,  595,
1917      2040, 2047,  595, 2055, 2056,  596, 2057,  495,  495,  596,
1918       501,  502,  503,  964, 2058, 1231, 1231, 1231,  504, 1232,
1919      2060,  505, 1233, 2074, 2078,  506, 1689, 1146,  507,  511,
1920
1921       512,  263,  512,  511,  511,  511,  511,  511,  511,  511,
1922       513,  511,  511,  511, 2071,  511,  515,  511,  516,  511,
1923       607,  263,  607,  607,  263,  607,  263,  263,  263, 2079,
1924       263,  263,  263,  978,  978,  978,  608, 2080, 2072,  608,
1925      2083, 2084,  559, 2086,  511,  511,  559, 2087, 2088,  517,
1926       979, 1703, 1703, 1703, 2089,  518,  511,  512,  263,  512,
1927       511,  511,  511,  511,  511,  511,  511,  513,  511,  511,
1928       511, 1689,  511,  515,  511,  516,  511,  607,  263,  607,
1929       607,  263,  607,  607,  263,  607, 2090,  607,  263,  607,
1930       998,  998,  998,  608, 2091, 2081,  608, 1704, 2094,  609,
1931
1932      2095,  511,  511,  609, 2073, 2098,  517,  999, 1706, 1706,
1933      1706, 2082,  518,  522,  523,  263,  523,  522,  522,  522,
1934       522,  522,  522,  522,  524,  522,  522,  522, 2099,  522,
1935       526,  522,  527,  522,  622,  263,  622,  622,  263,  622,
1936       263,  263,  263, 2100,  263,  263,  263,  622,  263,  622,
1937       623, 2101, 2102,  623, 1707, 2104,  624, 2105,  522,  522,
1938       624, 2108,  528,  623, 1163, 1163, 1163, 2111, 2115,  529,
1939      2116, 2119,  530,  522,  523,  263,  523,  522,  522,  522,
1940       522,  522,  522,  522,  524,  522,  522,  522, 2120,  522,
1941       526,  522,  527,  522,  622,  263,  622,  622,  263,  622,
1942
1943       622,  263,  622, 2117,  634,  263,  634,  634,  263,  634,
1944       623, 2118, 2121,  625, 2124, 2128,  625, 2129,  522,  522,
1945       635, 2132,  528,  635, 1186, 1186, 1186, 2134, 1239,  529,
1946      2146, 2153,  530,  534,  535,  263,  535,  534,  534,  534,
1947       534,  534,  534,  534,  536,  534,  534,  534, 2154,  534,
1948       538,  534,  539,  534,  644,  263,  644,  644,  263,  644,
1949       263,  263,  263, 2122,  263,  263,  263,  644,  263,  644,
1950       645, 2123, 2158,  645, 2130, 2130,  363, 2159,  534,  534,
1951       363, 2160,  540,  645, 1710, 1710, 1710, 2161, 1239,  541,
1952      2131, 2082,  542, 1713, 1713, 1713, 1723, 1723, 1723,  543,
1953
1954       534,  535,  263,  535,  534,  534,  534,  534,  534,  534,
1955       534,  536,  534,  534,  534, 2163,  534,  538,  534,  539,
1956       534,  644,  263,  644,  644,  263,  644,  644,  263,  644,
1957      2167,  656,  263,  656,  656,  263,  656,  645, 1929, 2081,
1958       646, 2168, 2169,  646, 1930,  534,  534,  657, 1931,  540,
1959       657, 3322, 1932,  734,  693, 2131,  541, 2175, 2176,  542,
1960      2177,  693, 2191,  744, 2195, 2196,  543,  548,  549,  263,
1961       549,  548,  548,  548,  548,  548,  548,  548,  550,  548,
1962       548,  548,  748,  548,  552,  548,  553,  548, 2197, 2199,
1963       694,  745, 2203, 1005, 1005, 1005,  695, 2207,  749, 1021,
1964
1965      1021, 1021, 2208,  696, 2209,  696, 2210,  697, 2211,  690,
1966      1006, 2214,  548,  548, 2221, 2223, 1022, 2233,  554, 1253,
1967      1253, 1253, 2234, 1254, 2235, 2236, 1255, 1547, 1547, 1547,
1968      1757, 1757, 1757,  555,  548,  549,  263,  549,  548,  548,
1969       548,  548,  548,  548,  548,  550,  548,  548,  548, 2238,
1970       548,  552,  548,  553,  548, 1034, 1034, 1034, 1036, 1036,
1971      1036, 1042, 1042, 1042, 1045, 1045, 1045, 1059, 1059, 1059,
1972      1689, 1146, 1035, 2244, 2250, 1037, 1758, 2241, 1043,  548,
1973       548, 1046, 2251, 2252, 1060,  554, 1263, 1263, 1263, 2253,
1974      1264, 2256, 2258, 1265, 1759, 1759, 1759, 1760, 1760, 1760,
1975
1976       555,  561,  562,  263,  562,  561,  561,  561,  561,  561,
1977       561,  561,  563,  561,  561,  561, 2243,  561,  565,  561,
1978       566,  561, 1061, 1061, 1061, 1073, 1073, 1073, 1081, 1081,
1979      1081, 1086, 1086, 1086, 1092, 1092, 1092, 2259, 2260, 1062,
1980      1707, 2264, 1074, 2269, 2271, 1082,  561,  561, 1087, 2272,
1981      2273, 1093,  567, 2277, 2283,  568, 1286, 1286, 1286, 2284,
1982      1287, 2285, 2286, 1288, 1706, 1706, 1706,  569,  561,  562,
1983       263,  562,  561,  561,  561,  561,  561,  561,  561,  563,
1984       561,  561,  561, 2287,  561,  565,  561,  566,  561, 1112,
1985      1112, 1112, 1136, 1136, 1136, 1140, 1140, 1140, 1159, 1159,
1986
1987      1159, 1933, 1159, 1159, 1159, 2288, 1113, 1934, 2289, 1137,
1988      1858, 1935, 1141,  561,  561, 1936, 1161, 2290, 2291,  567,
1989      1161, 2292,  568, 1304, 1304, 1304, 2298, 1305, 1689, 2299,
1990      1306, 1703, 1703, 1703,  569,  574,  575,  263,  575,  574,
1991       574,  574,  574,  574,  574,  574,  576,  574,  574,  574,
1992      2300,  574,  578,  574,  579,  574, 1194, 1194, 1194, 2242,
1993      1162, 1194, 1194, 1194, 2301,  955,  955,  955, 2307, 1204,
1994      1204, 1204, 2312, 2314, 1196, 1706, 1706, 1706, 2316, 1196,
1995       574,  574,  956, 1902, 1902, 1902,  580, 1206, 1710, 1710,
1996      1710,  581,  574,  575,  263,  575,  574,  574,  574,  574,
1997
1998       574,  574,  574,  576,  574,  574,  574, 2317,  574,  578,
1999       574,  579,  574, 1204, 1204, 1204,  963,  963,  963, 2322,
2000      2323, 1197, 1212, 1212, 1212, 1215, 1215, 1215, 1220, 1220,
2001      1220, 1206, 2318,  964, 1713, 1713, 1713,  574,  574, 1213,
2002      2319, 2325, 1216,  580, 2326, 2327, 1222, 2328,  581,  585,
2003       586,  263,  586,  585,  585,  585,  585,  585,  585,  585,
2004       587,  585,  585,  585, 2332,  585,  589,  585,  590,  585,
2005      1227, 1227, 1227, 1227, 1227, 1227, 2333, 1207, 2334,  978,
2006       978,  978, 2320, 2340, 1220, 1220, 1220, 2341, 1229, 2342,
2007      2321, 1229, 2343, 2346,  585,  585,  979,  998,  998,  998,
2008
2009       591, 2351, 1222, 1307, 1307, 1307, 2355, 1308, 2356, 2361,
2010      1309, 1907, 1907, 1907,  999,  592,  585,  586,  263,  586,
2011       585,  585,  585,  585,  585,  585,  585,  587,  585,  585,
2012       585, 1223,  585,  589,  585,  590,  585, 1230, 1235, 1235,
2013      1235, 1235, 1235, 1235, 2362, 1258, 1258, 1258, 1258, 1258,
2014      1258, 1005, 1005, 1005, 2363, 2364, 1237, 2357, 2366, 1237,
2015      2376,  585,  585, 1260, 2359, 2358, 1260,  591, 1006, 1318,
2016      1318, 1318, 2360, 1319, 1689, 1908, 1320, 2387, 1238, 1723,
2017      1723, 1723,  592,  597,  598,  263,  598,  597,  597,  597,
2018       597,  597,  597,  597,  599,  597,  597,  597, 1689,  597,
2019
2020       601,  597,  602,  597, 1267, 1267, 1267, 1267, 1267, 1267,
2021      1021, 1021, 1021, 2388, 1261, 1273, 1273, 1273, 1273, 1273,
2022      1273, 2382, 1269, 2389, 2393, 1269, 2394, 1022,  597,  597,
2023      1279, 1279, 1279, 1275,  603, 2395, 1275,  604, 1322, 1322,
2024      1322, 2381, 1323, 2398, 2402, 1324, 2403, 2404, 1281,  605,
2025       597,  598,  263,  598,  597,  597,  597,  597,  597,  597,
2026       597,  599,  597,  597,  597, 2405,  597,  601,  597,  602,
2027       597, 2406, 2407, 1270, 1279, 1279, 1279, 2408, 2409, 1276,
2028      1292, 1292, 1292, 2410, 1292, 1292, 1292, 1299, 1299, 1299,
2029      2411, 2424, 1281, 2425, 2426,  597,  597, 2427, 1294, 2428,
2030
2031      2430,  603, 1294, 2436,  604, 1301, 1340, 1340, 1340, 2437,
2032      1341, 2438, 2439, 1342, 2440, 2441,  605,  610,  611,  263,
2033       611,  610,  610,  610,  610,  610,  610,  610,  612,  610,
2034       610,  610, 2442,  610,  614,  610,  615,  610, 2445, 1282,
2035      1034, 1034, 1034, 2446, 2447, 1295, 1299, 1299, 1299, 1036,
2036      1036, 1036, 2452, 1310, 1310, 1310, 2453, 1035, 1310, 1310,
2037      1310, 2458,  610,  610, 1301, 2459, 1037, 1910, 1910, 1910,
2038       616, 1312,  617, 2460, 2461,  618, 1312, 2470, 2471,  619,
2039      1757, 1757, 1757,  620,  610,  611,  263,  611,  610,  610,
2040       610,  610,  610,  610,  610,  612,  610,  610,  610, 2472,
2041
2042       610,  614,  610,  615,  610, 1042, 1042, 1042, 1302, 1045,
2043      1045, 1045, 2473, 1911, 1325, 1325, 1325, 2413, 2414, 1313,
2044      2415, 2475, 1043, 1336, 1336, 1336, 1046, 2477, 2416,  610,
2045       610, 1326, 1059, 1059, 1059, 2417, 2501,  616, 2448,  617,
2046      2502, 1338,  618, 1759, 1759, 1759,  619, 2504, 2449, 1060,
2047       620,  626,  627,  263,  627,  626,  626,  626,  626,  626,
2048       626,  626,  628,  626,  626,  626, 1689,  626,  630,  626,
2049       631,  626, 1061, 1061, 1061, 1343, 1343, 1343, 2505, 1344,
2050      2506, 2507, 1345, 2511, 1336, 1336, 1336, 2512, 2513, 1062,
2051      1346, 1346, 1346, 3322, 3322, 3322,  626,  626, 3322, 3322,
2052
2053      3322, 2514, 1338, 2498, 1360, 1360, 1360, 1347, 1361, 2515,
2054      3322, 1362, 1372, 1372, 1372, 3322, 1373, 1689, 2516, 1374,
2055       632,  626,  627,  263,  627,  626,  626,  626,  626,  626,
2056       626,  626,  628,  626,  626,  626, 2517,  626,  630,  626,
2057       631,  626, 1339, 2518, 1348, 1352, 1352, 1352, 2519, 2497,
2058      1349, 3322, 3322, 3322, 2520, 1073, 1073, 1073, 2521, 2523,
2059      3322, 3322, 3322, 1354, 2524, 2527,  626,  626, 3322, 1352,
2060      1352, 1352, 1074, 2528, 1380, 1380, 1380, 3322, 1381, 2525,
2061      2529, 1382, 1389, 1389, 1389, 2530, 1390, 1354, 2526, 1391,
2062       632,  636,  637,  263,  637,  636,  636,  636,  636,  636,
2063
2064       636,  636,  638,  636,  636,  636, 1350,  636,  640,  636,
2065       641,  636, 1351, 1363, 1363, 1363, 1355, 1367, 1367, 1367,
2066      1367, 1367, 1367, 1081, 1081, 1081, 1375, 1375, 1375, 2533,
2067      1364, 1760, 1760, 1760, 2534, 1369,  636,  636, 1369, 2535,
2068      1082, 1918, 1918, 1918, 1377, 2536, 2538,  642,  636,  637,
2069       263,  637,  636,  636,  636,  636,  636,  636,  636,  638,
2070       636,  636,  636, 2539,  636,  640,  636,  641,  636, 2541,
2071      2547, 1370, 1375, 1375, 1375, 1086, 1086, 1086, 1384, 1384,
2072      1384, 1384, 1384, 1384, 1092, 1092, 1092, 1919, 2531, 2548,
2073      1377, 2549, 1087,  636,  636, 2550, 1386, 2532, 2554, 1386,
2074
2075      2555, 1093, 2556, 2557,  642,  647,  648,  263,  648,  647,
2076       647,  647,  647,  647,  647,  647,  649,  647,  647,  647,
2077      2558,  647,  651,  647,  652,  647, 2562, 2565, 1387, 1395,
2078      1395, 1395, 2566, 1378, 2569, 1395, 1395, 1395, 1399, 1399,
2079      1399, 1401, 1401, 1401, 1404, 1404, 1404, 1397, 2581, 2582,
2080       647,  647, 2585, 1397, 2586, 1400, 2606, 2607, 1402, 2608,
2081      2609,  653, 1406, 1421, 1421, 1421, 2610, 1422, 1689, 1689,
2082      1423, 1978, 1978, 1978,  654,  647,  648,  263,  648,  647,
2083       647,  647,  647,  647,  647,  647,  649,  647,  647,  647,
2084      1398,  647,  651,  647,  652,  647, 3322, 3322, 3322, 1404,
2085
2086      1404, 1404, 1409, 1409, 1409, 2604, 3322, 3322, 3322, 1413,
2087      1413, 1413, 2605, 3322, 1416, 1416, 1416, 1406, 1146, 1410,
2088       647,  647, 2619, 3322, 2620, 2621, 1414, 2622, 1416, 1416,
2089      1416,  653, 1418, 3322, 3322, 3322, 1112, 1112, 1112, 1424,
2090      1424, 1424, 2623, 2624,  654,  662, 1418, 1428, 1428, 1428,
2091      3322, 2625,  677, 1113, 2626, 1403, 1411, 1426, 2603, 2627,
2092      1407,  661,  678, 2628, 1429, 1419, 1424, 1424, 1424, 2629,
2093      2631, 1412, 2085, 2085, 2085, 2632, 1430, 1430, 1430, 2633,
2094      1432, 1432, 1432, 2634, 1426, 1432, 1432, 1432, 2635,  679,
2095       680,  681, 1415, 1431, 2636,  682,  683,  684, 1434, 2637,
2096
2097       685,  686, 2638, 1434,  687, 2639,  688,  689,  690,  662,
2098      1436, 1436, 1436, 3322, 3322, 3322,  734, 1440, 1440, 1440,
2099      2640, 1427, 1442, 1442, 1442,  661,  735, 1437, 2641, 2642,
2100      3322, 1442, 1442, 1442, 1441, 1136, 1136, 1136, 2613, 2643,
2101      1444, 1140, 1140, 1140, 1451, 1451, 1451, 2644, 2614, 1444,
2102      2645, 2615, 1137,  679,  736,  691, 1435, 2646, 1141,  737,
2103       738,  684, 1453, 1438,  739,  686, 2648, 2649,  740, 2657,
2104       741,  742,  690, 1451, 1451, 1451, 2658, 2659, 1439, 1457,
2105      1457, 1457, 1457, 1457, 1457, 1461, 1461, 1461, 2616, 1462,
2106      2662, 1453, 1463, 1464, 1464, 1464, 2663, 1459, 2617, 2667,
2107
2108      1459, 2618, 1445, 1464, 1464, 1464, 1468, 1468, 1468, 2702,
2109      1469, 1466, 1146, 1470, 1472, 1472, 1472, 1472, 1472, 1472,
2110      2704, 1466, 1159, 1159, 1159, 1159, 1159, 1159, 2685, 1159,
2111      1159, 1159, 1474, 2705, 2706, 1474, 2710, 1454, 2686, 2711,
2112      1161, 2699, 2714, 1161, 2687, 2715, 1460, 1161, 1514, 1514,
2113      1514, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
2114      1517, 1517, 1517, 1689, 1467, 1515, 1199, 1199, 1199, 1196,
2115      1200, 2718, 1196, 1201, 1689, 1196, 1484, 1518, 3322, 3322,
2116      3322, 1475, 1204, 1204, 1204, 1204, 1204, 1204, 2688, 1204,
2117      1204, 1204, 1209, 1209, 1209, 3322, 1210, 2719, 2689, 1211,
2118
2119      1206, 2712, 2720, 1206, 2690, 2700, 1516, 1206, 1212, 1212,
2120      1212, 1523, 1523, 1523, 2713, 1524, 2701, 2716, 1525, 2721,
2121      1526, 1526, 1526, 2722, 2723, 1213, 1215, 1215, 1215, 2724,
2122      2717, 1528, 1528, 1528, 2725, 1529, 1521, 1527, 1530, 1519,
2123      1532, 1532, 1532, 1216, 1220, 1220, 1220, 1220, 1220, 1220,
2124      1220, 1220, 1220, 1537, 1537, 1537, 2726, 1533, 1227, 1227,
2125      1227, 2728, 1222, 2729, 2730, 1222, 2731, 2732, 1222, 2733,
2126      1538, 1227, 1227, 1227, 2734, 2735, 1229, 1227, 1227, 1227,
2127      1231, 1231, 1231, 2736, 1232, 2737, 2738, 1233, 2739, 1229,
2128      1235, 1235, 1235, 2740, 2742, 1229, 1235, 1235, 1235, 1542,
2129
2130      1542, 1542, 1253, 1253, 1253, 2754, 1254, 2755, 1237, 1255,
2131      1535, 1559, 1559, 1559, 1237, 2763, 2764, 1543, 1258, 1258,
2132      1258, 1258, 1258, 1258, 1540, 1258, 1258, 1258, 1560, 2781,
2133      1263, 1263, 1263, 2782, 1264, 2783, 1260, 1265, 2784, 1260,
2134      1267, 1267, 1267, 1260, 1267, 1267, 1267, 1267, 1267, 1267,
2135      1565, 1565, 1565, 3322, 3322, 3322, 2785, 2786, 1269, 1273,
2136      1273, 1273, 1269, 2797, 1689, 1269, 2799, 1566, 2800, 2801,
2137      3322, 1273, 1273, 1273, 1273, 1273, 1273, 1275, 1569, 1569,
2138      1569, 3322, 3322, 3322, 2789, 2802, 1561, 2803, 2804, 1275,
2139      2805, 2806, 1275, 2807, 2791, 1570, 2808, 2790, 3322, 2794,
2140
2141      1567, 1279, 1279, 1279, 1279, 1279, 1279, 2792, 1564, 1571,
2142      1279, 1279, 1279, 1575, 1575, 1575, 1286, 1286, 1286, 1281,
2143      1287, 2811, 1281, 1288, 1292, 1292, 1292, 2812, 1281, 2813,
2144      1576, 1292, 1292, 1292, 1292, 1292, 1292, 1583, 1583, 1583,
2145      2814, 1568, 1294, 1299, 1299, 1299, 1299, 1299, 1299, 1294,
2146      2815, 2816, 1294, 2817, 1584, 1299, 1299, 1299, 1586, 1586,
2147      1586, 1301, 2818, 2820, 1301, 1304, 1304, 1304, 1146, 1305,
2148      2821, 2822, 1306, 1301, 2823, 1587, 1572, 1307, 1307, 1307,
2149      2824, 1308, 2825, 2826, 1309, 1310, 1310, 1310, 1310, 1310,
2150      1310, 1310, 1310, 1310, 1318, 1318, 1318, 2827, 1319, 1580,
2151
2152      2828, 1320, 2829, 1312, 2830, 2831, 1312, 2832, 2844, 1312,
2153      1593, 1593, 1593, 1322, 1322, 1322, 2793, 1323, 2845, 2846,
2154      1324, 2853, 1585, 1325, 1325, 1325, 2854, 1594, 1595, 1595,
2155      1595, 2868, 1596, 2869, 2870, 1597, 1336, 1336, 1336, 2871,
2156      1326, 1336, 1336, 1336, 1336, 1336, 1336, 2860, 1340, 1340,
2157      1340, 2862, 1341, 2872, 1338, 1342, 1588, 2861, 2864, 1338,
2158      2873, 2863, 1338, 1343, 1343, 1343, 2877, 1344, 2865, 2866,
2159      1345, 1346, 1346, 1346, 1608, 1608, 1608, 2878, 1609, 2867,
2160      2879, 1610, 1352, 1352, 1352, 1352, 1352, 1352, 1347, 1352,
2161      1352, 1352, 1360, 1360, 1360, 2880, 1361, 1146, 2890, 1362,
2162
2163      1354, 2891, 2892, 1354, 1363, 1363, 1363, 1354, 1620, 1620,
2164      1620, 1607, 1621, 2893, 2894, 1622, 1367, 1367, 1367, 2895,
2165      2896, 1364, 1367, 1367, 1367, 1367, 1367, 1367, 1372, 1372,
2166      1372, 2881, 1373, 2897, 1369, 1374, 2901, 1615, 2902, 2903,
2167      1369, 2904, 2905, 1369, 1375, 1375, 1375, 1375, 1375, 1375,
2168      1375, 1375, 1375, 1380, 1380, 1380, 2906, 1381, 2908, 2909,
2169      1382, 2910, 1377, 2911, 2912, 1377, 2913, 2914, 1377, 1384,
2170      1384, 1384, 1384, 1384, 1384, 2915, 1625, 1384, 1384, 1384,
2171      2919, 1389, 1389, 1389, 2920, 1390, 2921, 1386, 1391, 2924,
2172      1386, 1395, 1395, 1395, 2929, 1386, 1395, 1395, 1395, 2930,
2173
2174      1395, 1395, 1395, 1399, 1399, 1399, 1636, 1636, 1636, 1397,
2175      1637, 2931, 2932, 1638, 1397, 2933, 2934, 1627, 1397, 2935,
2176      1400, 1401, 1401, 1401, 2936, 2937, 1630, 1639, 1639, 1639,
2177      2938, 1640, 2939, 2940, 1641, 1404, 1404, 1404, 1402, 1404,
2178      1404, 1404, 2942, 1404, 1404, 1404, 1409, 1409, 1409, 2943,
2179      1413, 1413, 1413, 1406, 1902, 1902, 1902, 1406, 2944, 2945,
2180      1635, 1406, 2952, 1410, 1645, 1645, 1645, 1414, 1646, 2953,
2181      2954, 1647, 1650, 1650, 1650, 2955, 1651, 2956, 2957, 1652,
2182      1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1421,
2183      1421, 1421, 2958, 1422, 2959, 2960, 1423, 2961, 1418, 2962,
2184
2185      1146, 1418, 2963, 2964, 1418, 1424, 1424, 1424, 2965, 2968,
2186      1643, 1424, 1424, 1424, 1424, 1424, 1424, 1428, 1428, 1428,
2187      1657, 1657, 1657, 1426, 1658, 2969, 2970, 1659, 2971, 1426,
2188      2972, 2973, 1426, 2974, 1429, 1430, 1430, 1430, 1660, 1660,
2189      1660, 2975, 1661, 2946, 2976, 1662, 1432, 1432, 1432, 2980,
2190      1654, 2987, 1431, 1432, 1432, 1432, 2988, 1432, 1432, 1432,
2191      1436, 1436, 1436, 2989, 1434, 1664, 1664, 1664, 2990, 1665,
2192      2991, 1434, 1666, 2992, 1656, 1434, 2993, 1437, 1440, 1440,
2193      1440, 1669, 1669, 1669, 2994, 1670, 2995, 2996, 1671, 1442,
2194      1442, 1442, 1442, 1442, 1442, 1441, 1442, 1442, 1442, 1674,
2195
2196      1674, 1674, 1451, 1451, 1451, 2997, 2998, 1444, 3001, 3002,
2197      1444, 1451, 1451, 1451, 1444, 3003, 1675, 3004, 1146, 1663,
2198      1453, 1451, 1451, 1451, 1457, 1457, 1457, 3007, 3012, 1453,
2199      1457, 1457, 1457, 1457, 1457, 1457, 1461, 1461, 1461, 1453,
2200      1462, 3008, 1459, 1463, 1464, 1464, 1464, 3013, 1459, 3014,
2201      3015, 1459, 1464, 1464, 1464, 1464, 1464, 1464, 1672, 1468,
2202      1468, 1468, 1466, 1469, 3005, 3016, 1470, 1472, 1472, 1472,
2203      1466, 3017, 3007, 1466, 1472, 1472, 1472, 1472, 1472, 1472,
2204      3018, 3019, 1679, 3010, 3020, 1474, 1682, 1688, 1688, 1688,
2205      3021, 3022, 1474, 3023, 3024, 1474, 1159, 1159, 1159, 1514,
2206
2207      1514, 1514, 1194, 1194, 1194, 1689, 1690, 3025, 1517, 1517,
2208      1517, 1542, 1542, 1542, 1161, 1683, 1515, 1726, 1726, 1726,
2209      1196, 1727, 3026, 3027, 1728, 1518, 1730, 1730, 1730, 1543,
2210      1731, 3028, 3029, 1732, 1204, 1204, 1204, 3033, 1685, 1523,
2211      1523, 1523, 3038, 1524, 3030, 3031, 1525, 1526, 1526, 1526,
2212      3039, 3034, 1206, 3040, 1737, 1737, 1737, 3032, 1738, 3036,
2213      1729, 1739, 1695, 3035, 1527, 1528, 1528, 1528, 3041, 1529,
2214      3042, 3037, 1530, 1532, 1532, 1532, 3043, 1741, 1741, 1741,
2215      3046, 1742, 1146, 1735, 1743, 1220, 1220, 1220, 3007, 3046,
2216      1533, 1537, 1537, 1537, 1747, 1747, 1747, 3049, 1748, 1689,
2217
2218      1690, 1749, 3008, 1222, 1750, 1750, 1750, 3050, 1538, 1227,
2219      1227, 1227, 1768, 1768, 1768, 1559, 1559, 1559, 1770, 1770,
2220      1770, 1751, 1771, 3044, 3051, 1772, 3052, 1229, 3065, 1769,
2221      3053, 3063, 1560, 3068, 3066, 1745, 1258, 1258, 1258, 1267,
2222      1267, 1267, 1565, 1565, 1565, 1777, 1777, 1777, 3054, 1778,
2223      3064, 3073, 1779, 3067, 1260, 3076, 3055, 1269, 1752, 1566,
2224      1273, 1273, 1273, 1569, 1569, 1569, 1782, 1782, 1782, 3077,
2225      1783, 3056, 3078, 1784, 1279, 1279, 1279, 3071, 1275, 3007,
2226      1570, 1575, 1575, 1575, 1789, 1789, 1789, 3046, 1790, 3080,
2227      3010, 1791, 1281, 1792, 1792, 1792, 3072, 3046, 1576, 3074,
2228
2229      1773, 3081, 3082, 1776, 1795, 1795, 1795, 1292, 1292, 1292,
2230      1793, 1583, 1583, 1583, 3083, 1801, 1801, 1801, 3075, 1802,
2231      1781, 1796, 1803, 3084, 3085, 1294, 3086, 3096, 1584, 1804,
2232      1804, 1804, 1586, 1586, 1586, 1786, 1806, 1806, 1806, 3097,
2233      1807, 3098, 3099, 1808, 1310, 1310, 1310, 1805, 3100, 1587,
2234      1797, 1811, 1811, 1811, 1593, 1593, 1593, 1815, 1815, 1815,
2235      3101, 1816, 1312, 3105, 1817, 1595, 1595, 1595, 1812, 1596,
2236      3106, 1594, 1597, 1798, 1820, 1820, 1820, 1336, 1336, 1336,
2237      1608, 1608, 1608, 3107, 1609, 3108, 3109, 1610, 1829, 1829,
2238      1829, 1821, 3322, 3322, 3322, 1338, 3322, 3322, 3322, 3322,
2239
2240      3322, 3322, 1352, 1352, 1352, 1830, 1836, 1836, 1836, 3322,
2241      1809, 3110, 3111, 3322, 3112, 3114, 3322, 1620, 1620, 1620,
2242      1354, 1621, 3115, 1837, 1622, 3116, 3117, 1840, 1840, 1840,
2243      1367, 1367, 1367, 1375, 1375, 1375, 1384, 1384, 1384, 1852,
2244      1852, 1852, 1828, 1832, 1841, 1395, 1395, 1395, 1369, 3118,
2245      3123, 1377, 3124, 3125, 1386, 3119, 1853, 1834, 3121, 1404,
2246      1404, 1404, 1831, 1397, 1636, 1636, 1636, 3120, 1637, 1833,
2247      3122, 1638, 1639, 1639, 1639, 3126, 1640, 1406, 3127, 1641,
2248      1645, 1645, 1645, 3128, 1646, 1854, 3129, 1647, 1650, 1650,
2249      1650, 3130, 1651, 1848, 1843, 1652, 1416, 1416, 1416, 1845,
2250
2251      3131, 3132, 1855, 1424, 1424, 1424, 1657, 1657, 1657, 3133,
2252      1658, 3134, 3135, 1659, 1418, 1660, 1660, 1660, 3136, 1661,
2253      3138, 1426, 1662, 3139, 3140, 1857, 1432, 1432, 1432, 1664,
2254      1664, 1664, 3141, 1665, 3142, 3143, 1666, 3144, 1669, 1669,
2255      1669, 3145, 1670, 3146, 1434, 1671, 1442, 1442, 1442, 1674,
2256      1674, 1674, 1870, 1870, 1870, 3147, 1871, 1862, 1146, 1872,
2257      1864, 1451, 1451, 1451, 1444, 3148, 1675, 1878, 1878, 1878,
2258      1457, 1457, 1457, 1865, 1464, 1464, 1464, 3149, 3150, 1453,
2259      1882, 1882, 1882, 3137, 1879, 1472, 1472, 1472, 1459, 1688,
2260      1688, 1688, 1466, 1868, 1159, 1159, 1159, 1883, 1726, 1726,
2261
2262      1726, 3151, 1727, 1474, 3152, 1728, 3153, 1689, 3154, 3155,
2263      1876, 3156, 1161, 1194, 1194, 1194, 1730, 1730, 1730, 3157,
2264      1731, 3159, 3160, 1732, 3161, 1146, 1881, 1204, 1204, 1204,
2265      3162, 1196, 1737, 1737, 1737, 3163, 1738, 1880, 3164, 1739,
2266      1886, 1220, 1220, 1220, 3158, 1206, 1891, 1884, 1741, 1741,
2267      1741, 3165, 1742, 3166, 3167, 1743, 3168, 1887, 3169, 1222,
2268      1747, 1747, 1747, 3170, 1748, 3171, 3172, 1749, 1750, 1750,
2269      1750, 3173, 1937, 1937, 1937, 3174, 1938, 3175, 1923, 1939,
2270      1920, 1227, 1227, 1227, 3176, 1751, 1946, 1946, 1946, 1946,
2271      1946, 1946, 1907, 1907, 1907, 1768, 1768, 1768, 1146, 1229,
2272
2273      3178, 3179, 1927, 1952, 1952, 1952, 3180, 1953, 3181, 3182,
2274      1954, 3183, 1769, 1770, 1770, 1770, 3184, 1771, 3177, 3185,
2275      1772, 1258, 1258, 1258, 1957, 1957, 1957, 1267, 1267, 1267,
2276      3186, 3187, 1940, 1777, 1777, 1777, 3188, 1778, 3189, 1260,
2277      1779, 1958, 1273, 1273, 1273, 1269, 3190, 1782, 1782, 1782,
2278      1947, 1783, 3191, 1908, 1784, 3192, 1947, 1279, 1279, 1279,
2279      1275, 1962, 1962, 1962, 3193, 1789, 1789, 1789, 1955, 1790,
2280      3194, 3195, 1791, 3197, 1959, 1281, 3198, 3199, 1963, 1792,
2281      1792, 1792, 1967, 1967, 1967, 3200, 1968, 3201, 3202, 1969,
2282      1970, 1970, 1970, 1795, 1795, 1795, 1793, 1972, 1972, 1972,
2283
2284      1146, 1973, 3203, 3204, 1974, 3205, 3196, 1971, 1961, 3206,
2285      1796, 1976, 1976, 1976, 3207, 1801, 1801, 1801, 3208, 1802,
2286      3210, 1964, 1803, 1804, 1804, 1804, 1806, 1806, 1806, 1977,
2287      1807, 1146, 3211, 1808, 1310, 1310, 1310, 1811, 1811, 1811,
2288      3212, 1805, 1982, 1982, 1982, 3209, 1983, 3213, 3214, 1984,
2289      3215, 3216, 1312, 3217, 1812, 1985, 1985, 1985, 1815, 1815,
2290      1815, 3219, 1816, 3220, 3221, 1817, 1820, 1820, 1820, 1990,
2291      1990, 1990, 1986, 1991, 3222, 3223, 1992, 1993, 1993, 1993,
2292      1980, 3224, 3225, 1821, 1999, 1999, 1999, 1336, 1336, 1336,
2293      1829, 1829, 1829, 3226, 1994, 2002, 2002, 2002, 3229, 2003,
2294
2295      3230, 2000, 2004, 3231, 3232, 1338, 3233, 1830, 2005, 2005,
2296      2005, 3322, 3322, 3322, 2008, 2008, 2008, 1352, 1352, 1352,
2297      1836, 1836, 1836, 3234, 1146, 2006, 1146, 1724, 3322, 1722,
2298      1146, 2009, 2012, 2012, 2012, 1354, 2013, 1837, 1146, 2014,
2299      2015, 2015, 2015, 1840, 1840, 1840, 3243, 2018, 2018, 2018,
2300      1146, 2019, 3244, 2001, 2020, 1146, 1146, 2016, 3261, 3245,
2301      1841, 2022, 2022, 2022, 1375, 1375, 1375, 1146, 3241, 2007,
2302      1384, 1384, 1384, 1852, 1852, 1852, 1146, 2010, 3237, 2023,
2303      1721, 1720, 1377, 1146, 3257, 2032, 2032, 2032, 1386, 2033,
2304      1853, 3235, 2034, 2036, 2036, 2036, 1404, 1404, 1404, 2041,
2305
2306      2041, 2041, 2043, 2043, 2043, 3322, 3322, 3322, 1416, 1416,
2307      1416, 2037, 3236, 3246, 1406, 2025, 2042, 1146, 2028, 2044,
2308      1146, 1146, 3322, 1432, 1432, 1432, 1418, 1424, 1424, 1424,
2309      3249, 2050, 2050, 2050, 2052, 2052, 2052, 1442, 1442, 1442,
2310      1146, 1434, 1870, 1870, 1870, 1426, 1871, 2039, 2051, 1872,
2311      1146, 2053, 1451, 1451, 1451, 1444, 1146, 1878, 1878, 1878,
2312      2061, 2061, 2061, 3247, 2062, 3238, 1719, 2063, 3239, 2045,
2313      1453, 1146, 3262, 2048, 1879, 2046, 1457, 1457, 1457, 1464,
2314      1464, 1464, 1882, 1882, 1882, 2066, 2066, 2066, 2049, 2067,
2315      1718, 1717, 2068, 3248, 1459, 1146, 1146, 1466, 3240, 1883,
2316
2317      3242, 1146, 2054, 2059, 2069, 2069, 2069, 2075, 2075, 2075,
2318      1159, 1159, 1159, 2092, 2092, 2092, 1907, 1907, 1907, 2093,
2319      2093, 2093, 2070, 1146, 2076, 1910, 1910, 1910, 1161, 2096,
2320      2096, 2096, 3251, 3252, 2065, 2064, 2097, 2097, 2097, 1918,
2321      1918, 1918, 1194, 1194, 1194, 2106, 2106, 2106, 2109, 2109,
2322      2109, 1220, 1220, 1220, 1146, 2113, 2113, 2113, 1146, 1146,
2323      1196, 1146, 1146, 2107, 3253, 2110, 1937, 1937, 1937, 1222,
2324      1938, 2077, 2114, 1939, 1146, 1227, 1227, 1227, 2126, 2126,
2325      2126, 1946, 1946, 1946, 2133, 2133, 2133, 2135, 2135, 2135,
2326      1146, 1146, 2103, 1229, 3255, 2127, 1952, 1952, 1952, 3254,
2327
2328      1953, 3250, 3301, 1954, 2136, 1258, 1258, 1258, 3258, 3256,
2329      2112, 2139, 2139, 2139, 1957, 1957, 1957, 1146, 2142, 2142,
2330      2142, 2125, 2143, 1260, 1146, 2144, 3265, 3259, 2140, 1716,
2331      1715, 1958, 3263, 2137, 1267, 1267, 1267, 2147, 2147, 2147,
2332      3264, 1146, 1962, 1962, 1962, 1146, 2149, 2149, 2149, 1146,
2333      2150, 1146, 1269, 2151, 3260, 2148, 3309, 2141, 2138, 1963,
2334      1279, 1279, 1279, 1967, 1967, 1967, 1146, 1968, 1146, 1146,
2335      1969, 1970, 1970, 1970, 1714, 2155, 2155, 2155, 1281, 2156,
2336      3266, 1146, 2157, 1976, 1976, 1976, 3277, 2145, 1971, 1972,
2337      1972, 1972, 1146, 1973, 3269, 1146, 1974, 1978, 1978, 1978,
2338
2339      3267, 1977, 1310, 1310, 1310, 1712, 3279, 2152, 1982, 1982,
2340      1982, 3270, 1983, 1146, 1146, 1984, 1985, 1985, 1985, 1146,
2341      1312, 2164, 2164, 2164, 3319, 2165, 3268, 3271, 2166, 1146,
2342      1990, 1990, 1990, 1986, 1991, 1146, 1146, 1992, 1993, 1993,
2343      1993, 2170, 2170, 2170, 1146, 2171, 3275, 3276, 2172, 2173,
2344      2173, 2173, 1999, 1999, 1999, 1994, 1146, 2178, 2178, 2178,
2345      2162, 2179, 1146, 3291, 2180, 3272, 2174, 3278, 1146, 2000,
2346      1336, 1336, 1336, 2002, 2002, 2002, 1146, 2003, 3281, 3273,
2347      2004, 2005, 2005, 2005, 1711, 2182, 2182, 2182, 1338, 2183,
2348      1146, 3274, 2184, 2185, 2185, 2185, 1146, 1709, 2006, 2008,
2349
2350      2008, 2008, 2187, 2187, 2187, 3280, 2188, 1146, 3283, 2189,
2351      2186, 1352, 1352, 1352, 1708, 3289, 2009, 1705, 2012, 2012,
2352      2012, 2181, 2013, 1146, 1146, 2014, 2015, 2015, 2015, 1354,
2353      2192, 2192, 2192, 3285, 2193, 1146, 3284, 2194, 2018, 2018,
2354      2018, 1702, 2019, 2016, 3286, 2020, 2022, 2022, 2022, 1375,
2355      1375, 1375, 2200, 2200, 2200, 1384, 1384, 1384, 2204, 2204,
2356      2204, 1146, 2190, 1146, 2023, 3282, 1146, 1377, 1146, 2201,
2357      2032, 2032, 2032, 1386, 2033, 2205, 3302, 2034, 2036, 2036,
2358      2036, 2212, 2212, 2212, 2041, 2041, 2041, 2215, 2215, 2215,
2359      3287, 2216, 3288, 3290, 2217, 3295, 2037, 1146, 1701, 2213,
2360
2361      3292, 2042, 1146, 1146, 2206, 2043, 2043, 2043, 2218, 2218,
2362      2218, 1700, 2219, 2198, 3293, 2220, 2202, 1416, 1416, 1416,
2363      1146, 1146, 2044, 1424, 1424, 1424, 1432, 1432, 1432, 2050,
2364      2050, 2050, 2226, 2226, 2226, 1418, 2227, 3296, 1146, 2228,
2365      1146, 1426, 1146, 3294, 1434, 1146, 2051, 2052, 2052, 2052,
2366      2229, 2229, 2229, 3310, 2230, 3303, 1146, 2231, 1442, 1442,
2367      1442, 1451, 1451, 1451, 2053, 1146, 2061, 2061, 2061, 1699,
2368      2062, 1146, 2224, 2063, 1146, 3299, 1444, 3304, 1146, 1453,
2369      1457, 1457, 1457, 2222, 1464, 1464, 1464, 3297, 2066, 2066,
2370      2066, 2225, 2067, 3300, 1698, 2068, 1697, 1696, 1459, 2069,
2371
2372      2069, 2069, 1466, 2075, 2075, 2075, 2245, 2245, 2245, 3311,
2373      2246, 3307, 3298, 2247, 1159, 1159, 1159, 2070, 1146, 3315,
2374      2076, 3312, 3319, 2232, 3305, 1694, 2237, 2249, 2249, 2249,
2375      1146, 2239, 1161, 2254, 2254, 2254, 1146, 2240, 2255, 2255,
2376      2255, 2085, 2085, 2085, 2257, 2257, 2257, 2261, 2261, 2261,
2377      2092, 2092, 2092, 2093, 2093, 2093, 2262, 2262, 2262, 2096,
2378      2096, 2096, 2097, 2097, 2097, 2265, 2265, 2265, 2266, 2266,
2379      2266, 2267, 2267, 2267, 2268, 2268, 2268, 1146, 2248, 1194,
2380      1194, 1194, 2106, 2106, 2106, 1693, 2109, 2109, 2109, 2274,
2381      2274, 2274, 1146, 2275, 1692, 1691, 2276, 1196, 1684, 1681,
2382
2383      2107, 1680, 2263, 2110, 2278, 2278, 2278, 2113, 2113, 2113,
2384      2280, 2280, 2280, 1678, 2281, 1677, 1676, 2282, 1227, 1227,
2385      1227, 1673, 2279, 3306, 2114, 2126, 2126, 2126, 1146, 3308,
2386      2270, 2294, 2294, 2294, 1668, 2295, 1229, 1667, 2296, 2297,
2387      2297, 2297, 2127, 2133, 2133, 2133, 2302, 2302, 2302, 2135,
2388      2135, 2135, 2304, 2304, 2304, 1146, 2305, 1655, 1653, 2306,
2389      1258, 1258, 1258, 2139, 2139, 2139, 2136, 2293, 2309, 2309,
2390      2309, 1146, 2310, 1146, 1146, 2311, 3316, 1649, 1260, 1648,
2391      2140, 2142, 2142, 2142, 1644, 2143, 1642, 3313, 2144, 1267,
2392      1267, 1267, 2303, 1634, 2147, 2147, 2147, 2149, 2149, 2149,
2393
2394      1633, 2150, 1632, 3314, 2151, 3317, 3318, 1269, 1279, 1279,
2395      1279, 2308, 2148, 2155, 2155, 2155, 1631, 2156, 1629, 1628,
2396      2157, 1310, 1310, 1310, 1626, 1624, 1281, 2164, 2164, 2164,
2397      1623, 2165, 1619, 1618, 2166, 2173, 2173, 2173, 1617, 1312,
2398      2313, 2170, 2170, 2170, 1616, 2171, 1614, 1613, 2172, 2329,
2399      2329, 2329, 2174, 2330, 1612, 1611, 2331, 1606, 2178, 2178,
2400      2178, 2315, 2179, 1605, 1604, 2180, 1336, 1336, 1336, 1603,
2401      2182, 2182, 2182, 1602, 2183, 1601, 2324, 2184, 2185, 2185,
2402      2185, 2336, 2336, 2336, 1338, 2337, 1600, 1599, 2338, 2187,
2403      2187, 2187, 1598, 2188, 1592, 2186, 2189, 1352, 1352, 1352,
2404
2405      2192, 2192, 2192, 1591, 2193, 1590, 1589, 2194, 2344, 2344,
2406      2344, 2200, 2200, 2200, 1582, 1354, 2347, 2347, 2347, 1581,
2407      2348, 1579, 1578, 2349, 1577, 1574, 2345, 1573, 2201, 1563,
2408      2335, 1384, 1384, 1384, 2204, 2204, 2204, 2352, 2352, 2352,
2409      1562, 2353, 1558, 1557, 2354, 1556, 2212, 2212, 2212, 1386,
2410      1555, 2205, 2215, 2215, 2215, 1554, 2216, 1553, 1552, 2217,
2411      1416, 1416, 1416, 2339, 2213, 2218, 2218, 2218, 1551, 2219,
2412      1549, 1548, 2220, 1546, 1424, 1424, 1424, 1545, 1418, 1432,
2413      1432, 1432, 2226, 2226, 2226, 1544, 2227, 1541, 1539, 2228,
2414      1536, 2350, 1426, 1534, 2229, 2229, 2229, 1434, 2230, 1531,
2415
2416      1522, 2231, 1442, 1442, 1442, 1520, 2370, 2370, 2370, 1513,
2417      1511, 2365, 3322, 3322, 3322, 2368, 3322, 3322, 3322, 1510,
2418      1444, 1509, 2369, 2371, 3322, 3322, 3322, 1508, 1507, 3322,
2419      1451, 1451, 1451, 3322, 1457, 1457, 1457, 2378, 2378, 2378,
2420      2367, 3322, 2380, 2380, 2380, 2383, 2383, 2383, 1453, 2245,
2421      2245, 2245, 1459, 2246, 1506, 2379, 2247, 1159, 1159, 1159,
2422      1146, 1505, 1504, 2372, 2249, 2249, 2249, 2385, 2385, 2385,
2423      2386, 2386, 2386, 1503, 1502, 1161, 2254, 2254, 2254, 1499,
2424      2373, 1498, 1497, 2374, 2255, 2255, 2255, 2257, 2257, 2257,
2425      2390, 2390, 2390, 1496, 2377, 2375, 2391, 2391, 2391, 2392,
2426
2427      2392, 2392, 2261, 2261, 2261, 2262, 2262, 2262, 2265, 2265,
2428      2265, 2266, 2266, 2266, 1495, 1494, 2384, 2267, 2267, 2267,
2429      2268, 2268, 2268, 2396, 2396, 2396, 2399, 2399, 2399, 2274,
2430      2274, 2274, 1493, 2275, 1491, 1490, 2276, 3322, 3322, 3322,
2431      1489, 2397, 1488, 2400, 2278, 2278, 2278, 1487, 2280, 2280,
2432      2280, 1486, 2281, 1485, 3322, 2282, 1227, 1227, 1227, 2294,
2433      2294, 2294, 2279, 2295, 2418, 2419, 2296, 2420, 2297, 2297,
2434      2297, 2423, 2423, 2423, 1229, 2421, 2302, 2302, 2302, 2304,
2435      2304, 2304, 2422, 2305, 1483, 1482, 2306, 1258, 1258, 1258,
2436      2309, 2309, 2309, 1481, 2310, 1480, 1479, 2311, 2431, 2431,
2437
2438      2431, 1478, 1477, 2401, 1146, 1260, 2433, 2433, 2433, 1279,
2439      1279, 1279, 2443, 2443, 2443, 1471, 2432, 2412, 1310, 1310,
2440      1310, 1456, 1455, 2434, 2329, 2329, 2329, 1281, 2330, 1450,
2441      1449, 2331, 1448, 2429, 1447, 1446, 1312, 2450, 2450, 2450,
2442      2454, 2454, 2454, 2336, 2336, 2336, 1420, 2337, 1408, 1394,
2443      2338, 2456, 2456, 2456, 2451, 2344, 2344, 2344, 2455, 1393,
2444      2435, 1392, 2462, 2462, 2462, 1384, 1384, 1384, 1388, 2457,
2445      2347, 2347, 2347, 2345, 2348, 1383, 1379, 2349, 2444, 2463,
2446      2465, 2465, 2465, 1386, 2352, 2352, 2352, 1371, 2353, 1366,
2447      1365, 2354, 3322, 3322, 3322, 1359, 1356, 2466, 3322, 3322,
2448
2449      3322, 3322, 3322, 3322, 2476, 2476, 2476, 1335, 1334, 3322,
2450      2478, 2478, 2478, 1333, 1332, 3322, 2464, 1331, 3322, 2480,
2451      2480, 2480, 1424, 1424, 1424, 1330, 2467, 1329, 2479, 1328,
2452      1432, 1432, 1432, 1442, 1442, 1442, 2481, 2370, 2370, 2370,
2453      1426, 1327, 2485, 2485, 2485, 1321, 2486, 2468, 1434, 2487,
2454      1314, 1444, 2474, 1303, 2371, 2488, 2488, 2488, 1298, 2469,
2455      3322, 3322, 3322, 3322, 3322, 3322, 2492, 2492, 2492, 1297,
2456      2484, 1296, 2489, 2494, 2494, 2494, 1291, 3322, 1290, 1289,
2457      3322, 1285, 2482, 1284, 2493, 1457, 1457, 1457, 2378, 2378,
2458      2378, 2483, 2380, 2380, 2380, 2383, 2383, 2383, 2499, 2499,
2459
2460      2499, 1283, 1278, 1459, 1277, 1272, 2379, 2385, 2385, 2385,
2461      1146, 2490, 1271, 1266, 2491, 1262, 2500, 2386, 2386, 2386,
2462      2503, 2503, 2503, 2390, 2390, 2390, 2391, 2391, 2391, 2392,
2463      2392, 2392, 2396, 2396, 2396, 2399, 2399, 2399, 2508, 2508,
2464      2508, 1257, 2509, 1256, 1252, 2510, 1227, 1227, 1227, 1251,
2465      2397, 2495, 2400, 1250, 2496, 2423, 2423, 2423, 2537, 2537,
2466      2537, 1258, 1258, 1258, 1229, 2431, 2431, 2431, 2433, 2433,
2467      2433, 2542, 2542, 2542, 1249, 2543, 1248, 1247, 2544, 1260,
2468      2545, 2545, 2545, 2432, 1246, 2434, 2551, 2551, 2551, 2443,
2469      2443, 2443, 1310, 1310, 1310, 2450, 2450, 2450, 2546, 1245,
2470
2471      2559, 2559, 2559, 2552, 2560, 1244, 2522, 2561, 1243, 1242,
2472      1312, 1241, 2451, 2563, 2563, 2563, 2454, 2454, 2454, 2456,
2473      2456, 2456, 2567, 2567, 2567, 1240, 1234, 2540, 1226, 1225,
2474      2564, 2462, 2462, 2462, 2455, 1224, 1219, 2457, 1218, 2568,
2475      2570, 2570, 2570, 1217, 2571, 1214, 1208, 2572, 2463, 2553,
2476      2573, 2573, 2573, 2465, 2465, 2465, 2575, 2575, 2575, 1203,
2477      2576, 1202, 1198, 2577, 3322, 3322, 3322, 1193, 2574, 1192,
2478      2466, 3322, 3322, 3322, 3322, 3322, 3322, 2583, 2583, 2583,
2479      1191, 3322, 2476, 2476, 2476, 2478, 2478, 2478, 3322, 1190,
2480      1189, 3322, 1188, 1187, 2584, 2480, 2480, 2480, 2587, 2587,
2481
2482      2587, 1185, 2588, 2479, 1184, 2589, 2590, 2590, 2590, 1432,
2483      1432, 1432, 2481, 1442, 1442, 1442, 2578, 1183, 2485, 2485,
2484      2485, 1182, 2486, 1181, 2591, 2487, 1180, 1434, 1179, 2579,
2485      1178, 1444, 2580, 2488, 2488, 2488, 2594, 2594, 2594, 1177,
2486      2595, 1176, 1175, 2596, 2597, 2597, 2597, 2599, 2599, 2599,
2487      2489, 2492, 2492, 2492, 2494, 2494, 2494, 2601, 2601, 2601,
2488      1174, 2598, 1173, 1172, 2600, 2499, 2499, 2499, 1171, 2493,
2489      2503, 2503, 2503, 1170, 1169, 2602, 2592, 2593, 2611, 2611,
2490      2611, 1168, 1167, 2500, 2508, 2508, 2508, 1166, 2509, 1165,
2491      1158, 2510, 1227, 1227, 1227, 2612, 2537, 2537, 2537, 1258,
2492
2493      1258, 1258, 2542, 2542, 2542, 1157, 2543, 1156, 1155, 2544,
2494      1229, 2545, 2545, 2545, 2650, 2650, 2650, 1260, 2551, 2551,
2495      2551, 2652, 2652, 2652, 1154, 2653, 1153, 1152, 2654, 2546,
2496      1149, 2651, 2655, 2655, 2655, 2552, 2660, 2660, 2660, 2559,
2497      2559, 2559, 1147, 2560, 1146, 1144, 2561, 2563, 2563, 2563,
2498      2656, 1142, 2630, 2661, 2664, 2664, 2664, 1139, 2665, 1135,
2499      1133, 2666, 1132, 1131, 2564, 2668, 2668, 2668, 1129, 1128,
2500      2647, 2567, 2567, 2567, 2670, 2670, 2670, 1127, 2671, 1126,
2501      1125, 2672, 2669, 2673, 2673, 2673, 1124, 1122, 2568, 2570,
2502      2570, 2570, 1121, 2571, 1120, 1119, 2572, 2573, 2573, 2573,
2503
2504      2674, 2575, 2575, 2575, 1117, 2576, 1116, 1115, 2577, 3322,
2505      3322, 3322, 3322, 3322, 3322, 2574, 3322, 3322, 3322, 2583,
2506      2583, 2583, 1111, 2678, 2678, 2678, 3322, 2679, 1110, 3322,
2507      2680, 1108, 1107, 3322, 1106, 1105, 2584, 2681, 2681, 2681,
2508      2683, 2683, 2683, 2587, 2587, 2587, 1104, 2588, 1103, 1101,
2509      2589, 2590, 2590, 2590, 2682, 1100, 1099, 2684, 1432, 1432,
2510      1432, 1098, 1096, 2676, 2675, 1442, 1442, 1442, 1095, 2591,
2511      1094, 2677, 1091, 2594, 2594, 2594, 1434, 2595, 1090, 1088,
2512      2596, 1085, 1084, 1444, 2597, 2597, 2597, 2693, 2693, 2693,
2513      1080, 2694, 1079, 1077, 2695, 2599, 2599, 2599, 2696, 2696,
2514
2515      2696, 2598, 2697, 1076, 1075, 2698, 1072, 2601, 2601, 2601,
2516      1071, 1070, 2600, 2703, 2703, 2703, 2611, 2611, 2611, 1227,
2517      1227, 1227, 1069, 1067, 2691, 2602, 2692, 2707, 2707, 2707,
2518      1066, 2708, 1065, 2612, 2709, 1064, 1063, 1229, 2741, 2741,
2519      2741, 2743, 2743, 2743, 1258, 1258, 1258, 2746, 2746, 2746,
2520      2748, 2748, 2748, 1058, 2650, 2650, 2650, 1056, 2744, 2751,
2521      2751, 2751, 1260, 2752, 2747, 1055, 2753, 2749, 1054, 1053,
2522      2727, 2651, 2652, 2652, 2652, 1052, 2653, 1051, 1050, 2654,
2523      2655, 2655, 2655, 2756, 2756, 2756, 2660, 2660, 2660, 1049,
2524      2758, 2758, 2758, 1048, 2759, 1047, 2750, 2760, 2656, 1044,
2525
2526      2757, 1041, 1040, 2661, 1039, 1033, 2745, 2761, 2761, 2761,
2527      2664, 2664, 2664, 1032, 2665, 1030, 1027, 2666, 2668, 2668,
2528      2668, 2765, 2765, 2765, 2762, 2766, 1025, 1024, 2767, 2670,
2529      2670, 2670, 1023, 2671, 1018, 2669, 2672, 2673, 2673, 2673,
2530      2768, 2768, 2768, 1017, 2769, 1015, 1014, 2770, 3322, 3322,
2531      3322, 2772, 2772, 2772, 2674, 3322, 3322, 3322, 1013, 2678,
2532      2678, 2678, 1011, 2679, 1010, 3322, 2680, 1009, 2773, 2681,
2533      2681, 2681, 3322, 2775, 2775, 2775, 1007, 2776, 1004, 1003,
2534      2777, 2683, 2683, 2683, 1001, 1000, 2682, 2778, 2778, 2778,
2535       997, 2779,  992,  991, 2780, 1432, 1432, 1432, 2684, 1442,
2536
2537      1442, 1442,  988,  987, 2774,  986, 2771, 2693, 2693, 2693,
2538       983, 2694,  982, 1434, 2695,  980,  977, 1444, 2696, 2696,
2539      2696,  975, 2697,  974,  973, 2698, 2795, 2795, 2795, 2703,
2540      2703, 2703, 2798, 2798, 2798, 2707, 2707, 2707,  972, 2708,
2541       970,  969, 2709, 2796, 1689,  968, 2787, 2809, 2809, 2809,
2542      1227, 1227, 1227, 2741, 2741, 2741, 2833, 2833, 2833, 2743,
2543      2743, 2743,  967,  966, 2810,  965, 2788,  962, 1229,  961,
2544      2834, 2834, 2834,  960, 2835,  957, 2744, 2836, 1258, 1258,
2545      1258, 2746, 2746, 2746, 2838, 2838, 2838,  954, 2839,  953,
2546       951, 2840, 2748, 2748, 2748,  950, 1260,  947, 2747, 2819,
2547
2548      2841, 2841, 2841,  944, 2842,  941,  940, 2843,  932, 2749,
2549      2751, 2751, 2751,  931, 2752,  930,  929, 2753, 2756, 2756,
2550      2756, 2847, 2847, 2847,  923, 2848,  922,  921, 2849, 2837,
2551      2758, 2758, 2758,  919, 2759, 2757,  918, 2760, 2761, 2761,
2552      2761, 2850, 2850, 2850,  917, 2851,  916,  915, 2852, 2765,
2553      2765, 2765,  914, 2766,  909, 2762, 2767, 2768, 2768, 2768,
2554       906, 2769,  908,  903, 2770, 3322, 3322, 3322, 2772, 2772,
2555      2772, 2856, 2856, 2856,  902, 2857,  900,  898, 2858, 3322,
2556      3322, 3322, 3322,  896,  894, 2773, 2775, 2775, 2775,  892,
2557      2776,  889,  888, 2777,  887,  886, 3322, 2778, 2778, 2778,
2558
2559       885, 2779,  883,  881, 2780, 2874, 2874, 2874, 1442, 1442,
2560      1442, 2882, 2882, 2882,  880,  879, 2855, 2795, 2795, 2795,
2561      2884, 2884, 2884, 2875, 2885,  877, 1444, 2886, 2883, 1689,
2562      2887, 2887, 2887,  875, 2796, 1689,  874,  872, 1689, 2798,
2563      2798, 2798, 2888, 2888, 2888, 2889, 2889, 2889,  870,  869,
2564      2859, 2809, 2809, 2809, 2898, 2898, 2898,  867, 2899,  863,
2565       862, 2900, 1227, 1227, 1227, 2916, 2916, 2916, 2810, 2833,
2566      2833, 2833,  860,  855, 2876, 2834, 2834, 2834,  853, 2835,
2567      1229,  849, 2836, 2917, 2917, 2917, 2838, 2838, 2838,  848,
2568      2839,  847,  845, 2840,  843, 2841, 2841, 2841,  842, 2842,
2569
2570       841, 2918, 2843, 2847, 2847, 2847,  839, 2848,  837,  836,
2571      2849, 2850, 2850, 2850,  834, 2851,  832,  831, 2852, 2922,
2572      2922, 2922, 2925, 2925, 2925, 2856, 2856, 2856, 2907, 2857,
2573       830,  829, 2858, 2927, 2927, 2927, 2923,  828,  827, 2926,
2574      2874, 2874, 2874, 1442, 1442, 1442, 2882, 2882, 2882,  826,
2575      2928,  824, 2947, 2947, 2947,  822, 2948,  821, 2875, 2949,
2576       818, 1444,  817, 2883, 1689, 2884, 2884, 2884,  816, 2885,
2577      1689,  814, 2886, 2887, 2887, 2887, 2888, 2888, 2888, 2889,
2578      2889, 2889,  802, 1689, 2898, 2898, 2898,  801, 2899,  798,
2579       796, 2900,  794,  793, 2941, 1687, 1687, 1687, 1687, 1687,
2580
2581      1687, 1687, 1687, 1687,  792,  790, 1687, 2966, 2966, 2966,
2582       788, 1687, 1687, 1687, 1689, 1687, 2916, 2916, 2916, 2917,
2583      2917, 2917, 2922, 2922, 2922, 2967, 2977, 2977, 2977,  786,
2584      2978,  783,  780, 2979, 2925, 2925, 2925, 2918,  779, 2923,
2585      1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
2586      1687, 2926,  778, 1687, 2927, 2927, 2927,  776, 1687, 1687,
2587      1687, 1689, 1687, 2981, 2981, 2981,  774, 2982,  773,  771,
2588      2983, 2928, 2984, 2984, 2984,  769, 2985,  768,  766, 2986,
2589      2999, 2999, 2999, 2966, 2966, 2966,  764, 1687, 1687, 2947,
2590      2947, 2947,  763, 2948,  762,  760, 2949,  758, 3000,  757,
2591
2592       756, 2967, 2999, 2999, 2999,  755,  753, 1689, 1687, 1687,
2593      1687, 1687, 1687, 3011, 1687, 1687, 1687, 3322,  700, 1687,
2594      3000,  733,  732,  730, 1687, 1687, 1687, 1689, 1687, 2977,
2595      2977, 2977,  728, 2978,  727,  726, 2979, 2981, 2981, 2981,
2596       724, 2982,  720,  716, 2983, 2984, 2984, 2984,  715, 2985,
2597       713,  712, 2986, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
2598      1687, 1687, 1687, 3011,  709,  708, 1687, 3048, 3048, 3048,
2599       707, 1687, 1687, 1687, 1689, 1687, 3057, 3057, 3057, 3059,
2600      3059, 3059, 3061, 3061, 3061, 1689, 1690, 3069, 3069, 3069,
2601      3079, 3079, 3079, 3058,  705,  704, 3060,  703,  701, 3062,
2602
2603      1687, 1687,  696, 3322, 3070, 3048, 3048, 3048, 1146, 3057,
2604      3057, 3057, 3087, 3087, 3087,  676, 3088,  674,  672, 3089,
2605      3059, 3059, 3059, 1689,  666,  665, 3058, 3090, 3090, 3090,
2606       666, 3091,  665,  664, 3092,  663, 3322, 3060, 3061, 3061,
2607      3061, 3093, 3093, 3093, 3322, 3094, 3322, 3322, 3095, 3069,
2608      3069, 3069, 3079, 3079, 3079, 3062, 1886, 3102, 3102, 3102,
2609      3322, 3103, 3322, 3322, 3104, 3322, 3070, 3087, 3087, 3087,
2610      1146, 3088, 3322, 3322, 3089, 3090, 3090, 3090, 3322, 3091,
2611      3322, 3322, 3092, 3093, 3093, 3093, 3322, 3094, 3322, 3113,
2612      3095, 3102, 3102, 3102, 3322, 3103, 3322, 3322, 3104, 3218,
2613
2614      3218, 3218, 3218, 3218, 3218, 3322, 3227, 3322, 3322, 3228,
2615      3320, 3320, 3320, 3320, 3320, 3320, 3322, 1146, 3322, 3322,
2616      1146, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3321, 3322,
2617      3322, 3321,  260,  260,  260,  260,  260,  260,  260,  260,
2618       260,  261,  261,  261,  261,  261,  261,  261,  261,  261,
2619       266,  266,  266,  266,  266,  266,  266,  266,  266,  269,
2620       269,  269,  269,  269,  269,  269,  269,  269,  272,  272,
2621       272,  272,  272,  272,  272,  272,  272,  275,  275,  275,
2622       275,  275,  275,  275,  275,  275,  282,  282,  282,  282,
2623       282,  282,  282,  282,  282,  290,  290,  290,  290,  290,
2624
2625       290,  290,  290,  290,  294,  294,  294,  294,  294,  294,
2626       294,  294,  294,  306,  306,  306,  306,  306,  306,  306,
2627       306,  306,  310,  310,  310,  310,  310,  310,  310,  310,
2628       310,  317,  317,  317,  317,  317,  317,  317,  317,  317,
2629       328,  328,  328,  328,  328,  328,  328,  328,  328,  336,
2630       336,  336,  336,  336,  336,  336,  336,  336,  342,  342,
2631       342,  342,  342,  342,  342,  342,  342,  348,  348,  348,
2632       348,  348,  348,  348,  348,  348,  354,  354,  354,  354,
2633       354,  354,  354,  354,  354,  359,  359,  359,  359,  359,
2634       359,  359,  359,  359,  378,  378,  378,  378,  378,  378,
2635
2636       378,  378,  378,  385,  385,  385,  385,  385,  385,  385,
2637       385,  385,  392,  392,  392,  392,  392,  392,  392,  392,
2638       392,  398,  398,  398,  398,  398,  398,  398,  398,  398,
2639       405,  405,  405,  405,  405,  405,  405,  405,  405,  410,
2640       410,  410,  410,  410,  410,  410,  410,  410,  416,  416,
2641       416,  416,  416,  416,  416,  416,  416,  421,  421,  421,
2642       421,  421,  421,  421,  421,  421,  427,  427,  427,  427,
2643       427,  427,  427,  427,  427,  435,  435,  435,  435,  435,
2644       435,  435,  435,  435,  443,  443,  443,  443,  443,  443,
2645       443,  443,  443,  447,  447,  447,  447,  447,  447,  447,
2646
2647       447,  447,  453,  453,  453,  453,  453,  453,  453,  453,
2648       453,  459,  459,  459,  459,  459,  459,  459,  459,  459,
2649       476,  476,  476,  476,  476,  476,  476,  476,  476,  483,
2650       483,  483,  483,  483,  483,  483,  483,  483,  492,  492,
2651       492,  492,  492,  492,  492,  492,  492,  498,  498,  498,
2652       498,  498,  498,  498,  498,  498,  508,  508,  508,  508,
2653       508,  508,  508,  508,  508,  514,  514,  514,  514,  514,
2654       514,  514,  514,  514,  519,  519,  519,  519,  519,  519,
2655       519,  519,  519,  525,  525,  525,  525,  525,  525,  525,
2656       525,  525,  531,  531,  531,  531,  531,  531,  531,  531,
2657
2658       531,  537,  537,  537,  537,  537,  537,  537,  537,  537,
2659       544,  544,  544,  544,  544,  544,  544,  544,  544,  551,
2660       551,  551,  551,  551,  551,  551,  551,  551,  556,  556,
2661       556,  556,  556,  556,  556,  556,  556,  564,  564,  564,
2662       564,  564,  564,  564,  564,  564,  570,  570,  570,  570,
2663       570,  570,  570,  570,  570,  577,  577,  577,  577,  577,
2664       577,  577,  577,  577,  582,  582,  582,  582,  582,  582,
2665       582,  582,  582,  588,  588,  588,  588,  588,  588,  588,
2666       588,  588,  593,  593,  593,  593,  593,  593,  593,  593,
2667       593,  600,  600,  600,  600,  600,  600,  600,  600,  600,
2668
2669       606,  606,  606,  606,  606,  606,  606,  606,  606,  613,
2670       613,  613,  613,  613,  613,  613,  613,  613,  621,  621,
2671       621,  621,  621,  621,  621,  621,  621,  629,  629,  629,
2672       629,  629,  629,  629,  629,  629,  633,  633,  633,  633,
2673       633,  633,  633,  633,  633,  639,  639,  639,  639,  639,
2674       639,  639,  639,  639,  643,  643,  643,  643,  643,  643,
2675       643,  643,  643,  650,  650,  650,  650,  650,  650,  650,
2676       650,  650,  655,  655,  655,  655,  655,  655,  655,  655,
2677       655,  675,  675,  675, 3322, 3322, 3322,  675,  702,  702,
2678       702, 3322, 3322, 3322,  702,  706,  706,  706, 3322, 3322,
2679
2680      3322,  706,  714,  714,  714, 3322, 3322, 3322,  714,  725,
2681       725,  725, 3322, 3322, 3322,  725,  731,  731,  731, 3322,
2682      3322, 3322,  731,  754,  754,  754, 3322, 3322, 3322,  754,
2683       761,  761,  761, 3322, 3322, 3322,  761,  767,  767,  767,
2684      3322, 3322, 3322,  767,  772,  772,  772, 3322, 3322, 3322,
2685       772,  777,  777,  777, 3322, 3322, 3322,  777,  787,  787,
2686       787, 3322, 3322, 3322,  787,  791,  791,  791, 3322, 3322,
2687      3322,  791,  797,  797,  797, 3322, 3322, 3322,  797,  815,
2688       815,  815, 3322, 3322, 3322,  815,  825,  825,  825, 3322,
2689      3322, 3322,  825,  835,  835,  835, 3322, 3322, 3322,  835,
2690
2691       840,  840,  840, 3322, 3322, 3322,  840,  846,  846,  846,
2692      3322, 3322, 3322,  846,  854,  854,  854, 3322, 3322, 3322,
2693       854,  861,  861,  861, 3322, 3322, 3322,  861,  868,  868,
2694       868, 3322, 3322, 3322,  868,  873,  873,  873, 3322, 3322,
2695      3322,  873,  878,  878,  878, 3322, 3322, 3322,  878,  884,
2696       884,  884, 3322, 3322, 3322,  884,  893,  893,  893, 3322,
2697      3322, 3322,  893,  897,  897,  897, 3322, 3322, 3322,  897,
2698       901,  901,  901, 3322, 3322, 3322,  901,  905,  905,  905,
2699       905,  905,  905,  905, 3322,  905,  675,  675,  675, 3322,
2700      3322, 3322,  675,  920, 3322, 3322, 3322,  920,  702,  702,
2701
2702       702, 3322, 3322, 3322,  702,  952, 3322, 3322, 3322,  952,
2703       706,  706,  706, 3322, 3322, 3322,  706,  959, 3322, 3322,
2704      3322,  959,  714,  714,  714, 3322, 3322, 3322,  714,  971,
2705      3322, 3322, 3322,  971,  725,  725,  725, 3322, 3322, 3322,
2706       725,  976, 3322, 3322, 3322,  976,  731,  731,  731, 3322,
2707      3322, 3322,  731,  981, 3322, 3322, 3322,  981,  754,  754,
2708       754, 3322, 3322, 3322,  754, 1002, 3322, 3322, 3322, 1002,
2709       761,  761,  761, 3322, 3322, 3322,  761, 1008, 3322, 3322,
2710      3322, 1008,  767,  767,  767, 3322, 3322, 3322,  767, 1012,
2711      3322, 3322, 3322, 1012,  772,  772,  772, 3322, 3322, 3322,
2712
2713       772, 1016, 3322, 3322, 3322, 1016,  777,  777,  777, 3322,
2714      3322, 3322,  777, 1026, 3322, 3322, 3322, 1026,  787,  787,
2715       787, 3322, 3322, 3322,  787, 1031, 3322, 3322, 3322, 1031,
2716       791,  791,  791, 3322, 3322, 3322,  791, 1038, 3322, 3322,
2717      3322, 1038,  797,  797,  797, 3322, 3322, 3322,  797, 1057,
2718      3322, 3322, 3322, 1057,  815,  815,  815, 3322, 3322, 3322,
2719       815, 1068, 3322, 3322, 3322, 1068,  825,  825,  825, 3322,
2720      3322, 3322,  825, 1078, 3322, 3322, 3322, 1078,  835,  835,
2721       835, 3322, 3322, 3322,  835, 1083, 3322, 3322, 3322, 1083,
2722       840,  840,  840, 3322, 3322, 3322,  840, 1089, 3322, 3322,
2723
2724      3322, 1089,  846,  846,  846, 3322, 3322, 3322,  846, 1097,
2725      3322, 3322, 3322, 1097,  854,  854,  854, 3322, 3322, 3322,
2726       854, 1102, 3322, 3322, 3322, 1102,  861,  861,  861, 3322,
2727      3322, 3322,  861, 1109, 3322, 3322, 3322, 1109,  868,  868,
2728       868, 3322, 3322, 3322,  868, 1114, 3322, 3322, 3322, 1114,
2729       873,  873,  873, 3322, 3322, 3322,  873, 1118, 3322, 3322,
2730      3322, 1118,  878,  878,  878, 3322, 3322, 3322,  878, 1123,
2731      3322, 3322, 3322, 1123,  884,  884,  884, 3322, 3322, 3322,
2732       884, 1130, 3322, 3322, 3322, 1130,  893,  893,  893, 3322,
2733      3322, 3322,  893, 1134, 3322, 3322, 3322, 1134,  897,  897,
2734
2735       897, 3322, 3322, 3322,  897, 1138, 3322, 3322, 3322, 1138,
2736       901,  901,  901, 3322, 3322, 3322,  901, 1143, 3322, 3322,
2737      3322, 1143, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
2738      1145, 1151, 3322, 3322, 3322, 3322, 1151,  675,  675,  675,
2739      3322, 3322, 3322,  675, 1160, 1160, 1160, 1160, 3322, 3322,
2740      1160, 1160,  702,  702,  702, 3322, 3322, 3322,  702, 1195,
2741      1195, 1195, 1195, 3322, 3322, 1195, 1195,  706,  706,  706,
2742      3322, 3322, 3322,  706, 1205, 1205, 1205, 1205, 3322, 3322,
2743      1205, 1205,  714,  714,  714, 3322, 3322, 3322,  714, 1221,
2744      1221, 1221, 1221, 3322, 3322, 1221, 1221,  725,  725,  725,
2745
2746      3322, 3322, 3322,  725, 1228, 1228, 1228, 1228, 3322, 3322,
2747      1228, 1228,  731,  731,  731, 3322, 3322, 3322,  731, 1236,
2748      1236, 1236, 1236, 3322, 3322, 1236, 1236,  754,  754,  754,
2749      3322, 3322, 3322,  754, 1259, 1259, 1259, 1259, 3322, 3322,
2750      1259, 1259,  761,  761,  761, 3322, 3322, 3322,  761, 1268,
2751      1268, 1268, 1268, 3322, 3322, 1268, 1268,  767,  767,  767,
2752      3322, 3322, 3322,  767, 1274, 1274, 1274, 1274, 3322, 3322,
2753      1274, 1274,  772,  772,  772, 3322, 3322, 3322,  772, 1280,
2754      1280, 1280, 1280, 3322, 3322, 1280, 1280,  777,  777,  777,
2755      3322, 3322, 3322,  777, 1293, 1293, 1293, 1293, 3322, 3322,
2756
2757      1293, 1293,  787,  787,  787, 3322, 3322, 3322,  787, 1300,
2758      1300, 1300, 1300, 3322, 3322, 1300, 1300,  791,  791,  791,
2759      3322, 3322, 3322,  791, 1311, 1311, 1311, 1311, 3322, 3322,
2760      1311, 1311,  797,  797,  797, 3322, 3322, 3322,  797, 1337,
2761      1337, 1337, 1337, 3322, 3322, 1337, 1337,  815,  815,  815,
2762       815, 3322,  815, 3322,  815, 1353, 1353, 1353, 1353, 3322,
2763      3322, 1353, 1353,  825,  825,  825, 3322, 3322, 3322,  825,
2764      1368, 1368, 1368, 1368, 3322, 3322, 1368, 1368,  835,  835,
2765       835, 3322, 3322, 3322,  835, 1376, 1376, 1376, 1376, 3322,
2766      3322, 1376, 1376,  840,  840,  840, 3322, 3322, 3322,  840,
2767
2768      1385, 1385, 1385, 1385, 3322, 3322, 1385, 1385,  846,  846,
2769       846, 3322, 3322, 3322,  846, 1396, 1396, 1396, 1396, 3322,
2770      3322, 1396, 1396,  854,  854,  854,  854, 3322,  854, 3322,
2771       854, 1405, 1405, 1405, 1405, 3322, 3322, 1405, 1405,  861,
2772       861,  861,  861, 3322,  861, 3322,  861, 1417, 1417, 1417,
2773      1417, 3322, 3322, 1417, 1417,  868,  868,  868, 3322, 3322,
2774      3322,  868, 1425, 1425, 1425, 1425, 3322, 3322, 1425, 1425,
2775       873,  873,  873,  873, 3322,  873, 3322,  873, 1433, 1433,
2776      1433, 1433, 3322, 3322, 1433, 1433,  878,  878,  878,  878,
2777      3322,  878, 3322,  878, 1443, 1443, 1443, 1443, 3322, 3322,
2778
2779      1443, 1443,  884,  884,  884, 3322, 3322, 3322,  884, 1452,
2780      1452, 1452, 1452, 3322, 3322, 1452, 1452,  893,  893,  893,
2781      3322, 3322, 3322,  893, 1458, 1458, 1458, 1458, 3322, 3322,
2782      1458, 1458, 1465, 1465, 1465, 1465, 3322, 3322, 1465, 1465,
2783       901,  901,  901, 3322, 3322, 3322,  901, 1473, 1473, 1473,
2784      1473, 3322, 3322, 1473, 1473, 1145, 1145, 1145, 1145, 1145,
2785      1145, 1145, 1145, 1145, 1151, 3322, 1151, 3322, 3322, 1151,
2786       675,  675,  675, 3322, 3322, 3322,  675, 1160, 1160, 1160,
2787      1160, 3322, 3322, 1160, 1160,  702,  702,  702,  702, 3322,
2788       702, 3322,  702, 1195, 1195, 1195, 1195, 3322, 3322, 1195,
2789
2790      1195,  706,  706,  706,  706, 3322,  706, 3322,  706, 1205,
2791      1205, 1205, 1205, 3322, 3322, 1205, 1205,  714,  714,  714,
2792      3322, 3322, 3322,  714, 1221, 1221, 1221, 1221, 3322, 3322,
2793      1221, 1221,  725,  725,  725, 3322, 3322, 3322,  725, 1228,
2794      1228, 1228, 1228, 3322, 3322, 1228, 1228,  731,  731,  731,
2795      3322, 3322, 3322,  731, 1236, 1236, 1236, 1236, 3322, 3322,
2796      1236, 1236,  754,  754,  754, 3322, 3322, 3322,  754, 1259,
2797      1259, 1259, 1259, 3322, 3322, 1259, 1259,  761,  761,  761,
2798      3322, 3322, 3322,  761, 1268, 1268, 1268, 1268, 3322, 3322,
2799      1268, 1268,  767,  767,  767,  767, 3322,  767, 3322,  767,
2800
2801      1274, 1274, 1274, 1274, 3322, 3322, 1274, 1274,  772,  772,
2802       772,  772, 3322,  772, 3322,  772, 1280, 1280, 1280, 1280,
2803      3322, 3322, 1280, 1280,  777,  777,  777, 3322, 3322, 3322,
2804       777, 1293, 1293, 1293, 1293, 3322, 3322, 1293, 1293,  787,
2805       787,  787,  787, 3322,  787, 3322,  787, 1300, 1300, 1300,
2806      1300, 3322, 3322, 1300, 1300,  791,  791,  791,  791, 3322,
2807       791, 3322,  791, 1311, 1311, 1311, 1311, 3322, 3322, 1311,
2808      1311,  797,  797,  797, 3322, 3322, 3322,  797, 1337, 1337,
2809      1337, 1337, 3322, 3322, 1337, 1337,  815,  815,  815, 3322,
2810      3322, 3322,  815, 1353, 1353, 1353, 1353, 3322, 3322, 1353,
2811
2812      1353,  825,  825,  825, 3322, 3322, 3322,  825, 1368, 1368,
2813      1368, 1368, 3322, 3322, 1368, 1368,  835,  835,  835, 3322,
2814      3322, 3322,  835, 1376, 1376, 1376, 1376, 3322, 3322, 1376,
2815      1376,  840,  840,  840, 3322, 3322, 3322,  840, 1385, 1385,
2816      1385, 1385, 3322, 3322, 1385, 1385,  846,  846,  846, 3322,
2817      3322, 3322,  846, 1396, 1396, 1396, 1396, 3322, 3322, 1396,
2818      1396,  854,  854,  854, 3322, 3322, 3322,  854, 1405, 1405,
2819      1405, 1405, 3322, 3322, 1405, 1405,  861,  861,  861, 3322,
2820      3322, 3322,  861, 1417, 1417, 1417, 1417, 3322, 3322, 1417,
2821      1417,  868,  868,  868, 3322, 3322, 3322,  868, 1425, 1425,
2822
2823      1425, 1425, 3322, 3322, 1425, 1425, 1433, 1433, 1433, 1433,
2824      3322, 3322, 1433, 1433,  878,  878,  878, 3322, 3322, 3322,
2825       878, 1443, 1443, 1443, 1443, 3322, 3322, 1443, 1443,  884,
2826       884,  884, 3322, 3322, 3322,  884, 1452, 1452, 1452, 1452,
2827      3322, 3322, 1452, 1452,  893,  893,  893, 3322, 3322, 3322,
2828       893, 1458, 1458, 1458, 1458, 3322, 3322, 1458, 1458, 1465,
2829      1465, 1465, 1465, 3322, 3322, 1465, 1465,  901,  901,  901,
2830      3322, 3322, 3322,  901, 1473, 1473, 1473, 1473, 3322, 3322,
2831      1473, 1473, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
2832      1145, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
2833
2834       675,  675,  675, 3322, 3322, 3322,  675, 1160, 1160, 1160,
2835      1160, 3322, 3322, 1160, 1160, 1195, 1195, 1195, 1195, 3322,
2836      3322, 1195, 1195,  706,  706,  706, 3322, 3322, 3322,  706,
2837      1205, 1205, 1205, 1205, 3322, 3322, 1205, 1205,  714,  714,
2838       714, 3322, 3322, 3322,  714, 1221, 1221, 1221, 1221, 3322,
2839      3322, 1221, 1221,  725,  725,  725, 3322, 3322, 3322,  725,
2840      1228, 1228, 1228, 1228, 3322, 3322, 1228, 1228,  731,  731,
2841       731, 3322, 3322, 3322,  731,  754,  754,  754, 3322, 3322,
2842      3322,  754, 1259, 1259, 1259, 1259, 3322, 3322, 1259, 1259,
2843       761,  761,  761, 3322, 3322, 3322,  761, 1268, 1268, 1268,
2844
2845      1268, 3322, 3322, 1268, 1268,  767,  767,  767, 3322, 3322,
2846      3322,  767, 1274, 1274, 1274, 1274, 3322, 3322, 1274, 1274,
2847       772,  772,  772, 3322, 3322, 3322,  772, 1280, 1280, 1280,
2848      1280, 3322, 3322, 1280, 1280,  777,  777,  777, 3322, 3322,
2849      3322,  777, 1293, 1293, 1293, 1293, 3322, 3322, 1293, 1293,
2850      1300, 1300, 1300, 1300, 3322, 3322, 1300, 1300, 1311, 1311,
2851      1311, 1311, 3322, 3322, 1311, 1311,  797,  797,  797, 3322,
2852      3322, 3322,  797, 1337, 1337, 1337, 1337, 3322, 3322, 1337,
2853      1337,  815,  815,  815,  815, 3322,  815, 3322,  815, 1353,
2854      1353, 1353, 1353, 3322, 3322, 1353, 1353,  825,  825,  825,
2855
2856      3322, 3322, 3322,  825, 1368, 1368, 1368, 1368, 3322, 3322,
2857      1368, 1368,  835,  835,  835, 3322, 3322, 3322,  835, 1376,
2858      1376, 1376, 1376, 3322, 3322, 1376, 1376,  840,  840,  840,
2859      3322, 3322, 3322,  840, 1385, 1385, 1385, 1385, 3322, 3322,
2860      1385, 1385,  846,  846,  846, 3322, 3322, 3322,  846, 1396,
2861      1396, 1396, 1396, 3322, 3322, 1396, 1396,  854,  854,  854,
2862      3322, 3322, 3322,  854, 1405, 1405, 1405, 1405, 3322, 3322,
2863      1405, 1405,  861,  861,  861, 3322, 3322, 3322,  861, 1417,
2864      1417, 1417, 1417, 3322, 3322, 1417, 1417,  868,  868,  868,
2865      3322, 3322, 3322,  868, 1425, 1425, 1425, 1425, 3322, 3322,
2866
2867      1425, 1425, 1433, 1433, 1433, 1433, 3322, 3322, 1433, 1433,
2868       878,  878,  878, 3322, 3322, 3322,  878, 1443, 1443, 1443,
2869      1443, 3322, 3322, 1443, 1443,  884,  884,  884, 3322, 3322,
2870      3322,  884, 1452, 1452, 1452, 1452, 3322, 3322, 1452, 1452,
2871       893,  893,  893,  893, 3322,  893, 3322,  893, 1458, 1458,
2872      1458, 1458, 3322, 3322, 1458, 1458, 1465, 1465, 1465, 1465,
2873      3322, 3322, 1465, 1465,  901,  901,  901,  901, 3322,  901,
2874      3322,  901, 1473, 1473, 1473, 1473, 3322, 3322, 1473, 1473,
2875      1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1687,
2876      1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,  675,  675,
2877
2878       675, 3322, 3322, 3322,  675, 1160, 1160, 1160, 1160, 3322,
2879      3322, 1160, 1160, 1195, 1195, 1195, 1195, 3322, 3322, 1195,
2880      1195,  706,  706,  706, 3322, 3322, 3322,  706, 1205, 1205,
2881      1205, 1205, 3322, 3322, 1205, 1205,  714,  714,  714, 3322,
2882      3322, 3322,  714, 1221, 1221, 1221, 1221, 3322, 3322, 1221,
2883      1221,  725,  725,  725, 3322, 3322, 3322,  725, 1228, 1228,
2884      1228, 1228, 3322, 3322, 1228, 1228,  731,  731,  731, 3322,
2885      3322, 3322,  731,  754,  754,  754, 3322, 3322, 3322,  754,
2886      1259, 1259, 1259, 1259, 3322, 3322, 1259, 1259,  761,  761,
2887       761, 3322, 3322, 3322,  761, 1268, 1268, 1268, 1268, 3322,
2888
2889      3322, 1268, 1268,  767,  767,  767, 3322, 3322, 3322,  767,
2890      1274, 1274, 1274, 1274, 3322, 3322, 1274, 1274,  772,  772,
2891       772,  772, 3322,  772, 3322,  772, 1280, 1280, 1280, 1280,
2892      3322, 3322, 1280, 1280,  777,  777,  777, 3322, 3322, 3322,
2893       777, 1293, 1293, 1293, 1293, 3322, 3322, 1293, 1293, 1311,
2894      1311, 1311, 1311, 3322, 3322, 1311, 1311,  797,  797,  797,
2895      3322, 3322, 3322,  797, 1337, 1337, 1337, 1337, 3322, 3322,
2896      1337, 1337,  815,  815,  815,  815, 3322,  815, 3322,  815,
2897      1353, 1353, 1353, 1353, 3322, 3322, 1353, 1353,  825,  825,
2898       825, 3322, 3322, 3322,  825, 1368, 1368, 1368, 1368, 3322,
2899
2900      3322, 1368, 1368,  835,  835,  835, 3322, 3322, 3322,  835,
2901      1376, 1376, 1376, 1376, 3322, 3322, 1376, 1376,  840,  840,
2902       840, 3322, 3322, 3322,  840, 1385, 1385, 1385, 1385, 3322,
2903      3322, 1385, 1385,  846,  846,  846, 3322, 3322, 3322,  846,
2904      1396, 1396, 1396, 1396, 3322, 3322, 1396, 1396,  854,  854,
2905       854, 3322, 3322, 3322,  854, 1405, 1405, 1405, 1405, 3322,
2906      3322, 1405, 1405,  861,  861,  861,  861, 3322,  861, 3322,
2907       861, 1417, 1417, 1417, 1417, 3322, 3322, 1417, 1417,  868,
2908       868,  868, 3322, 3322, 3322,  868, 1425, 1425, 1425, 1425,
2909      3322, 3322, 1425, 1425, 1433, 1433, 1433, 1433, 3322, 3322,
2910
2911      1433, 1433,  878,  878,  878,  878, 3322,  878, 3322,  878,
2912      1443, 1443, 1443, 1443, 3322, 3322, 1443, 1443,  884,  884,
2913       884, 3322, 3322, 3322,  884, 1452, 1452, 1452, 1452, 3322,
2914      3322, 1452, 1452, 1458, 1458, 1458, 1458, 3322, 3322, 1458,
2915      1458, 1465, 1465, 1465, 1465, 3322, 3322, 1465, 1465, 1473,
2916      1473, 1473, 1473, 3322, 3322, 1473, 1473, 1145, 1145, 1145,
2917      1145, 1145, 1145, 1145, 1145, 1145, 1687, 1687, 1687, 1687,
2918      1687, 1687, 1687, 1687, 1687,  675,  675,  675,  675, 3322,
2919       675, 3322,  675, 1160, 1160, 1160, 1160, 3322, 3322, 1160,
2920      1160, 1195, 1195, 1195, 1195, 3322, 3322, 1195, 1195,  706,
2921
2922       706,  706, 3322, 3322, 3322,  706, 1205, 1205, 1205, 1205,
2923      3322, 3322, 1205, 1205,  714,  714,  714, 3322, 3322, 3322,
2924       714, 1221, 1221, 1221, 1221, 3322, 3322, 1221, 1221,  725,
2925       725,  725,  725, 3322,  725, 3322,  725, 1228, 1228, 1228,
2926      1228, 3322, 3322, 1228, 1228,  731,  731,  731,  731, 3322,
2927       731, 3322,  731,  754,  754,  754,  754, 3322,  754, 3322,
2928       754, 1259, 1259, 1259, 1259, 3322, 3322, 1259, 1259,  761,
2929       761,  761,  761, 3322,  761, 3322,  761, 1268, 1268, 1268,
2930      1268, 3322, 3322, 1268, 1268,  767,  767,  767, 3322, 3322,
2931      3322,  767, 1274, 1274, 1274, 1274, 3322, 3322, 1274, 1274,
2932
2933      1280, 1280, 1280, 1280, 3322, 3322, 1280, 1280,  777,  777,
2934       777, 3322, 3322, 3322,  777, 1311, 1311, 1311, 1311, 3322,
2935      3322, 1311, 1311,  797,  797,  797, 3322, 3322, 3322,  797,
2936      1337, 1337, 1337, 1337, 3322, 3322, 1337, 1337,  815,  815,
2937       815,  815, 3322,  815, 3322,  815, 1353, 1353, 1353, 1353,
2938      3322, 3322, 1353, 1353,  825,  825,  825, 3322, 3322, 3322,
2939       825,  835,  835,  835, 3322, 3322, 3322,  835, 1376, 1376,
2940      1376, 1376, 3322, 3322, 1376, 1376,  840,  840,  840, 3322,
2941      3322, 3322,  840, 1385, 1385, 1385, 1385, 3322, 3322, 1385,
2942      1385,  846,  846,  846, 3322, 3322, 3322,  846,  854,  854,
2943
2944       854, 3322, 3322, 3322,  854, 1405, 1405, 1405, 1405, 3322,
2945      3322, 1405, 1405,  861,  861,  861, 3322, 3322, 3322,  861,
2946      1417, 1417, 1417, 1417, 3322, 3322, 1417, 1417,  868,  868,
2947       868, 3322, 3322, 3322,  868, 1425, 1425, 1425, 1425, 3322,
2948      3322, 1425, 1425, 1433, 1433, 1433, 1433, 3322, 3322, 1433,
2949      1433, 1443, 1443, 1443, 1443, 3322, 3322, 1443, 1443,  884,
2950       884,  884, 3322, 3322, 3322,  884, 1452, 1452, 1452, 1452,
2951      3322, 3322, 1452, 1452, 1458, 1458, 1458, 1458, 3322, 3322,
2952      1458, 1458, 1465, 1465, 1465, 1465, 3322, 3322, 1465, 1465,
2953      1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1687,
2954
2955      1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1160, 1160,
2956      1160, 1160, 3322, 3322, 1160, 1160, 1195, 1195, 1195, 1195,
2957      3322, 3322, 1195, 1195,  706,  706,  706, 3322, 3322, 3322,
2958       706,  714,  714,  714, 3322, 3322, 3322,  714, 1221, 1221,
2959      1221, 1221, 3322, 3322, 1221, 1221, 1228, 1228, 1228, 1228,
2960      3322, 3322, 1228, 1228,  754,  754,  754, 3322, 3322, 3322,
2961       754, 1259, 1259, 1259, 1259, 3322, 3322, 1259, 1259,  761,
2962       761,  761, 3322, 3322, 3322,  761, 1268, 1268, 1268, 1268,
2963      3322, 3322, 1268, 1268,  767,  767,  767, 3322, 3322, 3322,
2964       767, 1280, 1280, 1280, 1280, 3322, 3322, 1280, 1280,  777,
2965
2966       777,  777, 3322, 3322, 3322,  777, 1311, 1311, 1311, 1311,
2967      3322, 3322, 1311, 1311,  797,  797,  797, 3322, 3322, 3322,
2968       797, 1337, 1337, 1337, 1337, 3322, 3322, 1337, 1337, 1353,
2969      1353, 1353, 1353, 3322, 3322, 1353, 1353,  825,  825,  825,
2970      3322, 3322, 3322,  825,  835,  835,  835, 3322, 3322, 3322,
2971       835, 1376, 1376, 1376, 1376, 3322, 3322, 1376, 1376,  840,
2972       840,  840, 3322, 3322, 3322,  840, 1385, 1385, 1385, 1385,
2973      3322, 3322, 1385, 1385,  846,  846,  846, 3322, 3322, 3322,
2974       846,  854,  854,  854, 3322, 3322, 3322,  854,  861,  861,
2975       861, 3322, 3322, 3322,  861, 1417, 1417, 1417, 1417, 3322,
2976
2977      3322, 1417, 1417,  868,  868,  868, 3322, 3322, 3322,  868,
2978      1425, 1425, 1425, 1425, 3322, 3322, 1425, 1425, 1433, 1433,
2979      1433, 1433, 3322, 3322, 1433, 1433, 1443, 1443, 1443, 1443,
2980      3322, 3322, 1443, 1443,  884,  884,  884,  884, 3322,  884,
2981      3322,  884, 1452, 1452, 1452, 1452, 3322, 3322, 1452, 1452,
2982      1458, 1458, 1458, 1458, 3322, 3322, 1458, 1458, 1465, 1465,
2983      1465, 1465, 3322, 3322, 1465, 1465, 1145, 1145, 1145, 1145,
2984      1145, 1145, 1145, 1145, 1145, 1687, 1687, 1687, 1687, 1687,
2985      1687, 1687, 1687, 1687, 1160, 1160, 1160, 1160, 3322, 3322,
2986      1160, 1160, 1195, 1195, 1195, 1195, 3322, 3322, 1195, 1195,
2987
2988       706,  706,  706, 3322, 3322, 3322,  706,  714,  714,  714,
2989       714, 3322,  714, 3322,  714, 1228, 1228, 1228, 1228, 3322,
2990      3322, 1228, 1228,  754,  754,  754, 3322, 3322, 3322,  754,
2991      1259, 1259, 1259, 1259, 3322, 3322, 1259, 1259,  761,  761,
2992       761, 3322, 3322, 3322,  761, 1268, 1268, 1268, 1268, 3322,
2993      3322, 1268, 1268,  767,  767,  767,  767, 3322,  767, 3322,
2994       767, 1280, 1280, 1280, 1280, 3322, 3322, 1280, 1280,  777,
2995       777,  777, 3322, 3322, 3322,  777, 1311, 1311, 1311, 1311,
2996      3322, 3322, 1311, 1311,  797,  797,  797, 3322, 3322, 3322,
2997       797, 1337, 1337, 1337, 1337, 3322, 3322, 1337, 1337, 1353,
2998
2999      1353, 1353, 1353, 3322, 3322, 1353, 1353,  825,  825,  825,
3000      3322, 3322, 3322,  825,  835,  835,  835, 3322, 3322, 3322,
3001       835,  840,  840,  840,  840, 3322,  840, 3322,  840, 1385,
3002      1385, 1385, 1385, 3322, 3322, 1385, 1385,  846,  846,  846,
3003       846, 3322,  846, 3322,  846,  854,  854,  854, 3322, 3322,
3004      3322,  854,  861,  861,  861, 3322, 3322, 3322,  861, 1417,
3005      1417, 1417, 1417, 3322, 3322, 1417, 1417,  868,  868,  868,
3006       868, 3322,  868, 3322,  868, 1425, 1425, 1425, 1425, 3322,
3007      3322, 1425, 1425, 1433, 1433, 1433, 1433, 3322, 3322, 1433,
3008      1433, 1443, 1443, 1443, 1443, 3322, 3322, 1443, 1443,  884,
3009
3010       884,  884,  884, 3322,  884, 3322,  884, 1452, 1452, 1452,
3011      1452, 3322, 3322, 1452, 1452, 1458, 1458, 1458, 1458, 3322,
3012      3322, 1458, 1458, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
3013      1145, 1145, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
3014      1687, 1160, 1160, 1160, 1160, 3322, 3322, 1160, 1160,  706,
3015       706,  706, 3322, 3322, 3322,  706,  714,  714,  714, 3322,
3016      3322, 3322,  714, 1228, 1228, 1228, 1228, 3322, 3322, 1228,
3017      1228,  754,  754,  754, 3322, 3322, 3322,  754, 1259, 1259,
3018      1259, 1259, 3322, 3322, 1259, 1259,  761,  761,  761, 3322,
3019      3322, 3322,  761, 1280, 1280, 1280, 1280, 3322, 3322, 1280,
3020
3021      1280,  777,  777,  777, 3322, 3322, 3322,  777, 1311, 1311,
3022      1311, 1311, 3322, 3322, 1311, 1311,  797,  797,  797, 3322,
3023      3322, 3322,  797,  825,  825,  825, 3322, 3322, 3322,  825,
3024       835,  835,  835, 3322, 3322, 3322,  835, 2950, 2950, 2950,
3025      2950, 2950, 2950, 2950, 2950, 2950, 2951, 2951, 2951, 2951,
3026      2951, 2951, 2951, 2951, 2951, 3006, 3006, 3006, 3006, 3006,
3027      3006, 3006, 3006, 3006, 3009, 3009, 3009, 3009, 3009, 3009,
3028      3009, 3009, 3009, 3045, 3045, 3045, 3045, 3045, 3045, 3045,
3029      3045, 3045, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
3030      3047,  259, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3031
3032      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3033      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3034      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3035      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3036      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3037      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
3038      3322, 3322, 3322, 3322, 3322, 3322
3039     } ;
3040
3041 static yyconst flex_int16_t yy_chk[12367] =
3042     {   0,
3043         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3044         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3045         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3046         8,    8,    8,  264,   11,   13,   13,   12,   14,   14,
3047        13,   13,  313,   14,   14,  265,    8,   17,   17,  264,
3048        13,   15,   15,   14,   15,  268,   15,   16,   16,  367,
3049        16,  265,   16,   18,   18, 1513,   15,   19,   19,   19,
3050       543,  268,   16,   20,   20,   20,   23,   23,   23,   24,
3051        24,   24,  543,   19,   25,   25,   25,  367, 1519,   20,
3052       374,   17,   23, 1071,  313,   24,  262,  262,  262, 1071,
3053
3054        25,  263,  263,  263,  267,  267,  267,   18,   21,   21,
3055        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3056        21,   21,   21,  297,   21,   21,   21,   21,   21,   26,
3057        26,   26,   27,   27,   27,   28,   28,   28,  297,   29,
3058        29,   29,   30,   30,   30,   26,  374,  473,   27,  291,
3059       473,   28,  680,   21,   21,   29,  307,  286,   30,   31,
3060        31,   31,  288,  288,  288,  291,  295,  295,  295,  304,
3061       304,  304,  307,  286,  363,   31,  680,   21,   22,   22,
3062        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3063        22,   22,   22, 1520,   22,   22,   22,   22,   22,   32,
3064
3065        32,   32,   33,   33,   33,   34,   34,   34,  278,   35,
3066        35,   35,   36,   36,   36,   32,  286,  366,   33,  489,
3067       736,   34,  489,   22,   22,   35,  363,  366,   36,   37,
3068        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3069        40,   41,   41,   41,  736,   37,  555,   22,   38,  318,
3070       278,   39,  469,  555,   40,  366,  278,   41,   42,   42,
3071        42,  278,  311,  311,  311,  318,  278,  315,  315,  315,
3072       326,  326,  326,  469,   42,   43,   43,   43,   43,   43,
3073        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3074       335,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3075
3076        46,   46,   47,   47,   47,  335,   48,   48,   48,   49,
3077        49,   49,   45,  433,  560,   46, 1522,  433,   47,  333,
3078        43,   43,   48,  333,  387,   49,  299,  333,   43,   44,
3079        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3080        44,   44,   44,   44,  329,   44,   44,   44,   44,   44,
3081        50,   50,   50,   51,   51,   51,   52,   52,   52,  474,
3082       329,  573,   55,   55,  569,  299,   50,   55,  300,   51,
3083       560,  569,   52,  474,   44,   44,  387,   55,  299,  388,
3084       299, 1531,   44,   53,   53,   53,   53,   53,   53,   53,
3085        53,   53,   53,   53,   53,   53,   53,   53, 1534,   53,
3086
3087        53,   53,   53,   53, 1536,  343,   55,  300,   59,   59,
3088        59,   60,   60,   60,   63,   63,   63,  573,   56,   56,
3089       300,  343,  300,   56,   59,  323,  472,   60,   53,   53,
3090        63,  388,  323,   56,  472,  668,   53,  400,  668,   53,
3091       472,  323,  337,  337,  337, 1541,   53,   54,   54,   54,
3092        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3093        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3094        64,   67,   67,   67,   68,   68,   68, 1544,   69,   69,
3095        69,   70,   70,   70,   64,  355,  373,   67,  338,  400,
3096        68,  559,   54,   54,   69,  338, 1179,   70, 1545,  559,
3097
3098        54,  355,  373,   54,  338,  340,  340,  340,  401, 1179,
3099        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3100        57,   57,   57,   57,   57,   57, 1546,   57,   57,   57,
3101        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3102        73,  439,   74,   74,   74,   75,   75,   75,   71, 1551,
3103       379,   72,  350,  393,   73, 1552,   57,   57,   74,  350,
3104       401,   75,  349,  349,  349,   57,  379,   57,  350,  393,
3105       437,   57,  352,  352,  352,  478,   57,   57,   58,   58,
3106        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3107        58,   58,   58,  439,   58,   58,   58,   58,   58,   76,
3108
3109        76,   76,   77,   77,   77,   78,   78,   78,  624,   79,
3110        79,   79,   80,   80,   80,   76,  365, 1553,   77,  437,
3111       624,   78,  437,   58,   58,   79,  365,  478,   80,  360,
3112       360,  360,   58,  365,   58,  376,  376,  376,   58,  386,
3113       386,  386, 1554,   58,   58,   61,   61,   61,   61,   61,
3114        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3115       371,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3116        82,   82,   83,   83,   83,  710,   84,   84,   84,   85,
3117        85,   85,   81, 1555, 1556,   82,  659,  596,   83,  371,
3118        61,   61,   84,  371,  371,   85,  609,   61,  390,  390,
3119
3120       390,  659,  371,   61,  371,  399,  399,  399,  403,  403,
3121       403,  710,   61,   62,   62,   62,   62,   62,   62,   62,
3122        62,   62,   62,   62,   62,   62,   62,   62, 1557,   62,
3123        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3124        88,   88,   88,  596,   89,   89,   89,   90,   90,   90,
3125        86,  406,  609,   87, 1562,  745,   88,  412,   62,   62,
3126        89,  417,  428,   90,  412,   62, 1563,  406,  411,  411,
3127       411,   62,  746,  412,  414,  414,  414,  417,  428,  745,
3128        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3129        65,   65,   65,   65,   65,   65,  746,   65,   65,   65,
3130
3131        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3132        93, 1567,   94,   94,   94,   95,   95,   95,   91,  444,
3133       779,   92,  423,  779,   93,  479,   65,   65,   94,  423,
3134      1571,   95,  422,  422,  422,  444,  438,   65,  423,  425,
3135       425,  425,  436,  436,  436, 1573,   65,   66,   66,   66,
3136        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3137        66,   66,  747,   66,   66,   66,   66,   66,   96,   96,
3138        96,   97,   97,   97,   98,   98,   98,  479,   99,   99,
3139        99,  100,  100,  100,   96,  438,  747,   97,  438,  748,
3140        98, 1574,   66,   66,   99,  449, 1578,  100,  101,  101,
3141
3142       101, 1581,  449,   66,  102,  102,  102,  441,  441,  441,
3143       546,  449,   66,  748,  101,  448,  448,  448,  372, 1582,
3144       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3145       103,  103,  103,  103,  103,  103,  752,  103,  103,  103,
3146       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3147       107,  686,  108,  108,  108,  686,  372,  454,  105,  785,
3148       752,  106,  546,  785,  107,  369,  103,  103,  108,  461,
3149       466,  103,  372,  454,  547,  369,  461,  103,  451,  451,
3150       451,  103,  460,  460,  460,  461,  466,  103,  104,  104,
3151       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3152
3153       104,  104,  104,  369,  104,  104,  104,  104,  104,  109,
3154       109,  109,  110,  110,  110,  111,  111,  111,  625,  112,
3155       112,  112,  463,  463,  463,  109,  547,  475,  110, 1589,
3156      1591,  111, 1592,  104,  104,  112,  484,  499,  104,  475,
3157       475,  477,  477,  477,  104,  481,  481,  481,  104,  493,
3158       493,  493,  484,  499,  104,  113,  113,  113,  113,  113,
3159       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3160       625,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3161       116,  116,  117,  117,  117,  681,  118,  118,  118, 1148,
3162       494, 1598,  115, 1148, 1599,  116,  681,  494,  117,  681,
3163
3164       113,  113,  118,  510,  515,  113,  494,  496,  496,  496,
3165       510,  113,  509,  509,  509,  512,  512,  512, 1476,  510,
3166       515, 1601,  113,  114,  114,  114,  114,  114,  114,  114,
3167       114,  114,  114,  114,  114,  114,  114,  114, 1476,  114,
3168       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3169       121,  121,  121,  688,  122,  122,  122,  520,  520,  520,
3170       119,  526,  538,  120,  521, 1602,  121,  688,  114,  114,
3171       122,  521, 1603,  114,  523,  523,  523,  526,  538,  114,
3172       521,  532,  532,  532,  535,  535,  535,  545,  545,  545,
3173       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3174
3175       123,  123,  123,  123,  123,  123, 1604,  123,  123,  123,
3176       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3177       129,  645,  130,  130,  130,  133,  133,  133,  125,  552,
3178       565,  126,  533, 1605,  129, 1606,  123,  123,  130,  533,
3179       572,  133,  549,  549,  549,  552,  565,  646,  533,  557,
3180       557,  557,  123, 1616,  558, 1618, 1619,  123,  124,  124,
3181       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
3182       124,  124,  124,  645,  124,  124,  124,  124,  124,  134,
3183       134,  134,  135,  135,  135,  136,  136,  136,  572,  137,
3184       137,  137,  138,  138,  138,  134,  572, 1624,  135,  646,
3185
3186      1626,  136,  558,  124,  124,  137,  558,  578,  138,  562,
3187       562,  562,  571,  571,  571,  575,  575,  575, 1628,  124,
3188       583,  583,  583,  578,  124,  127,  127,  127,  127,  127,
3189       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3190      1629,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3191       140,  140,  143,  143,  143,  692,  144,  144,  144,  147,
3192       147,  147,  139,  589,  601,  140,  584,  741,  143,  692,
3193       127,  127,  144,  584,  614,  147,  586,  586,  586,  589,
3194       601,  741,  584,  594,  594,  594,  127, 1631, 1632,  595,
3195       614, 1633,  127,  128,  128,  128,  128,  128,  128,  128,
3196
3197       128,  128,  128,  128,  128,  128,  128,  128, 1642,  128,
3198       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3199       152,  152,  152, 1648,  153,  153,  153,  154,  154,  154,
3200       148, 1191, 1649,  151, 1653, 1655,  152,  595,  128,  128,
3201       153,  691,  630,  154, 1191,  595,  598,  598,  598,  607,
3202       607,  607,  691, 1667,  128,  691, 1668,  608,  630, 1673,
3203       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3204       131,  131,  131,  131,  131,  131, 1676,  131,  131,  131,
3205       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3206       157, 1677,  158,  158,  158,  611,  611,  611,  155, 1245,
3207
3208      1678,  156, 1680, 1687,  157,  608,  131,  131,  158,  131,
3209       640,  131, 1245,  608,  622,  622,  622,  131,  627,  627,
3210       627,  634,  634,  634,  131,  623,  640,  131,  132,  132,
3211       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3212       132,  132,  132, 1690,  132,  132,  132,  132,  132,  161,
3213       161,  161,  162,  162,  162,  165,  165,  165,  694,  166,
3214       166,  166,  623,  635, 1693,  161, 1694,  651,  162,  694,
3215       635,  165,  694,  132,  132,  166,  132,  623,  132,  635,
3216       637,  637,  637,  651,  132,  644,  644,  644,  648,  648,
3217       648,  132, 1696, 1697,  132,  141,  141,  141,  141,  141,
3218
3219       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3220      1698,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3221       170,  170,  173,  173,  173,  749,  174,  174,  174,  177,
3222       177,  177,  169, 1699, 1700,  170,  657, 1701,  173,  749,
3223       141,  141,  174,  657, 1702,  177,  656,  656,  656,  658,
3224       658,  658,  657,  667,  667,  667,  141,  142,  142,  142,
3225       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3226       142,  142, 1704,  142,  142,  142,  142,  142,  178,  178,
3227       178,  179,  179,  179,  180,  180,  180, 1705,  181,  181,
3228       181,  182,  182,  182,  178,  698, 1707,  179,  687,  750,
3229
3230       180,  696,  142,  142,  181,  687,  698,  182,  696,  698,
3231       750,  687,  667,  750,  696, 1163, 1163, 1163,  142,  145,
3232       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3233       145,  145,  145,  145, 1709,  145,  145,  145,  145,  145,
3234       183,  183,  183,  184,  184,  184,  187,  187,  187,  751,
3235       188,  188,  188,  189,  189,  189,  183, 1711, 1686,  184,
3236       699,  700,  187,  751,  145,  145,  188,  699,  700,  189,
3237       145,  740,  743,  699,  700,  145, 1712, 1714,  740,  743,
3238      1171, 1171, 1171, 1686,  740,  743, 1716,  145,  146,  146,
3239       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3240
3241       146,  146,  146, 1718,  146,  146,  146,  146,  146,  190,
3242       190,  190,  191,  191,  191,  192,  192,  192, 1719,  193,
3243       193,  193,  194,  194,  194,  190,  907, 1720,  191, 1721,
3244      1722,  192, 1724,  146,  146,  193, 1733, 1734,  194,  146,
3245      1736, 1740,  907, 1744,  146,  910,  910,  910, 1746,  910,
3246      1186, 1186, 1186, 1242, 1242, 1242,  146,  149,  149,  149,
3247       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3248       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3249       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3250       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3251
3252       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3253       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3254       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3255       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3256       159,  159,  159,  159,  159,  159, 1753,  159,  159,  159,
3257       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3258       199, 1754,  200,  200,  200,  201,  201,  201,  197, 1041,
3259      1755,  198, 1756, 1758,  199, 1762,  159,  159,  200, 1041,
3260       159,  201,  922,  922,  922, 1763, 1041,  159, 1764, 1767,
3261       159,  944,  944,  944,  159, 1774,  159,  159,  160,  160,
3262
3263       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3264       160,  160,  160, 1780,  160,  160,  160,  160,  160,  202,
3265       202,  202,  203,  203,  203,  204,  204,  204, 1787,  207,
3266       207,  207,  208,  208,  208,  202, 1788, 1797,  203, 1800,
3267      1810,  204, 1814,  160,  160,  207,  922,  160,  208,  956,
3268       956,  956, 1818,  956,  160,  944,  956,  160, 1492, 1492,
3269      1492,  160, 1819,  160,  160,  163,  163,  163,  163,  163,
3270       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3271      1823,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3272       212,  212,  213,  213,  213, 1824,  214,  214,  214,  708,
3273
3274       708,  708,  211, 1825, 1826,  212, 1835, 1839,  213, 1842,
3275       163,  163,  214,  163,  163,  163,  708, 1844,  964,  964,
3276       964,  163,  964, 1846,  163,  964, 1847, 1849,  163, 1850,
3277      1851,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3278       164,  164,  164,  164,  164,  164,  164, 1854,  164,  164,
3279       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3280       217,  217, 1856,  218,  218,  218,  716,  716,  716,  215,
3281      1858, 1863,  216, 1869, 1873,  217, 1874,  164,  164,  218,
3282       164,  164,  164,  716, 1875,  979,  979,  979,  164,  979,
3283      1877,  164,  979, 1889, 1892,  164, 1886, 1885,  164,  167,
3284
3285       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3286       167,  167,  167,  167, 1885,  167,  167,  167,  167,  167,
3287       221,  221,  221,  222,  222,  222,  223,  223,  223, 1893,
3288       224,  224,  224,  732,  732,  732,  221, 1894, 1886,  222,
3289      1896, 1897,  223, 1899,  167,  167,  224, 1900, 1901,  167,
3290       732, 1493, 1493, 1493, 1903,  167,  168,  168,  168,  168,
3291       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3292       168, 1887,  168,  168,  168,  168,  168,  225,  225,  225,
3293       226,  226,  226,  227,  227,  227, 1904,  228,  228,  228,
3294       756,  756,  756,  225, 1905, 1895,  226, 1493, 1909,  227,
3295
3296      1911,  168,  168,  228, 1887, 1914,  168,  756, 1495, 1495,
3297      1495, 1895,  168,  171,  171,  171,  171,  171,  171,  171,
3298       171,  171,  171,  171,  171,  171,  171,  171, 1915,  171,
3299       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3300       233,  233,  233, 1916,  234,  234,  234,  235,  235,  235,
3301       231, 1917, 1919,  232, 1495, 1921,  233, 1922,  171,  171,
3302       234, 1924,  171,  235,  983,  983,  983, 1926, 1929,  171,
3303      1930, 1932,  171,  172,  172,  172,  172,  172,  172,  172,
3304       172,  172,  172,  172,  172,  172,  172,  172, 1933,  172,
3305       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3306
3307       238,  238,  238, 1931,  241,  241,  241,  242,  242,  242,
3308       236, 1931, 1934,  237, 1936, 1942,  238, 1943,  172,  172,
3309       241, 1945,  172,  242,  992,  992,  992, 1948,  983,  172,
3310      1960, 1965,  172,  175,  175,  175,  175,  175,  175,  175,
3311       175,  175,  175,  175,  175,  175,  175,  175, 1966,  175,
3312       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3313       247,  247,  247, 1935,  248,  248,  248,  249,  249,  249,
3314       245, 1935, 1973,  246, 1944, 1949,  247, 1974,  175,  175,
3315       248, 1975,  175,  249, 1498, 1498, 1498, 1979,  992,  175,
3316      1944, 1949,  175, 1501, 1501, 1501, 1511, 1511, 1511,  175,
3317
3318       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3319       176,  176,  176,  176,  176, 1981,  176,  176,  176,  176,
3320       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3321      1987,  255,  255,  255,  256,  256,  256,  250, 1748, 1950,
3322       251, 1988, 1989,  252, 1748,  176,  176,  255, 1748,  176,
3323       256,  298, 1748,  364,  370, 1950,  176, 1996, 1997,  176,
3324      1998,  298, 2011,  364, 2017, 2021,  176,  185,  185,  185,
3325       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3326       185,  185,  370,  185,  185,  185,  185,  185, 2024, 2026,
3327       298,  364, 2029,  763,  763,  763,  298, 2031,  370,  780,
3328
3329       780,  780, 2033,  298, 2034,  364, 2035,  298, 2038,  364,
3330       763, 2040,  185,  185, 2045, 2047,  780, 2055,  185,  999,
3331       999,  999, 2056,  999, 2057, 2058,  999, 1547, 1547, 1547,
3332      1548, 1548, 1548,  185,  186,  186,  186,  186,  186,  186,
3333       186,  186,  186,  186,  186,  186,  186,  186,  186, 2060,
3334       186,  186,  186,  186,  186,  793,  793,  793,  794,  794,
3335       794,  800,  800,  800,  802,  802,  802,  816,  816,  816,
3336      2073, 2071,  793, 2074, 2079,  794, 1548, 2071,  800,  186,
3337       186,  802, 2080, 2081,  816,  186, 1006, 1006, 1006, 2082,
3338      1006, 2086, 2088, 1006, 1549, 1549, 1549, 1550, 1550, 1550,
3339
3340       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3341       195,  195,  195,  195,  195,  195, 2073,  195,  195,  195,
3342       195,  195,  817,  817,  817,  829,  829,  829,  837,  837,
3343       837,  842,  842,  842,  848,  848,  848, 2089, 2090,  817,
3344      1549, 2095,  829, 2102, 2104,  837,  195,  195,  842, 2105,
3345      2108,  848,  195, 2111, 2115,  195, 1022, 1022, 1022, 2116,
3346      1022, 2117, 2118, 1022, 1644, 1644, 1644,  195,  196,  196,
3347       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3348       196,  196,  196, 2119,  196,  196,  196,  196,  196,  870,
3349       870,  870,  898,  898,  898,  902,  902,  902,  920,  920,
3350
3351       920, 1749,  921,  921,  921, 2120,  870, 1749, 2121,  898,
3352      1644, 1749,  902,  196,  196, 1749,  920, 2122, 2123,  196,
3353       921, 2124,  196, 1035, 1035, 1035, 2129, 1035, 2072, 2130,
3354      1035, 1703, 1703, 1703,  196,  205,  205,  205,  205,  205,
3355       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3356      2131,  205,  205,  205,  205,  205,  952,  952,  952, 2072,
3357       921,  953,  953,  953, 2132,  955,  955,  955, 2137,  959,
3358       959,  959, 2141, 2146,  952, 1706, 1706, 1706, 2153,  953,
3359       205,  205,  955, 1708, 1708, 1708,  205,  959, 1710, 1710,
3360      1710,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3361
3362       206,  206,  206,  206,  206,  206,  206, 2154,  206,  206,
3363       206,  206,  206,  960,  960,  960,  963,  963,  963, 2160,
3364      2161,  953,  965,  965,  965,  967,  967,  967,  971,  971,
3365       971,  960, 2158,  963, 1713, 1713, 1713,  206,  206,  965,
3366      2158, 2163,  967,  206, 2167, 2168,  971, 2169,  206,  209,
3367       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3368       209,  209,  209,  209, 2175,  209,  209,  209,  209,  209,
3369       976,  976,  976,  977,  977,  977, 2176,  960, 2177,  978,
3370       978,  978, 2159, 2191,  972,  972,  972, 2195,  976, 2196,
3371      2159,  977, 2197, 2199,  209,  209,  978,  998,  998,  998,
3372
3373       209, 2203,  972, 1037, 1037, 1037, 2206, 1037, 2207, 2210,
3374      1037, 1715, 1715, 1715,  998,  209,  210,  210,  210,  210,
3375       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3376       210,  972,  210,  210,  210,  210,  210,  977,  981,  981,
3377       981,  982,  982,  982, 2211, 1002, 1002, 1002, 1003, 1003,
3378      1003, 1005, 1005, 1005, 2214, 2221,  981, 2208, 2223,  982,
3379      2238,  210,  210, 1002, 2209, 2208, 1003,  210, 1005, 1043,
3380      1043, 1043, 2209, 1043, 2243, 1715, 1043, 2252,  982, 1723,
3381      1723, 1723,  210,  219,  219,  219,  219,  219,  219,  219,
3382       219,  219,  219,  219,  219,  219,  219,  219, 2242,  219,
3383
3384       219,  219,  219,  219, 1008, 1008, 1008, 1009, 1009, 1009,
3385      1021, 1021, 1021, 2253, 1003, 1012, 1012, 1012, 1013, 1013,
3386      1013, 2243, 1008, 2256, 2263, 1009, 2264, 1021,  219,  219,
3387      1016, 1016, 1016, 1012,  219, 2269, 1013,  219, 1046, 1046,
3388      1046, 2242, 1046, 2271, 2283, 1046, 2284, 2285, 1016,  219,
3389       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3390       220,  220,  220,  220,  220, 2286,  220,  220,  220,  220,
3391       220, 2287, 2288, 1009, 1017, 1017, 1017, 2289, 2290, 1013,
3392      1026, 1026, 1026, 2291, 1027, 1027, 1027, 1031, 1031, 1031,
3393      2292, 2299, 1017, 2300, 2301,  220,  220, 2303, 1026, 2307,
3394
3395      2312,  220, 1027, 2316,  220, 1031, 1060, 1060, 1060, 2317,
3396      1060, 2318, 2319, 1060, 2320, 2321,  220,  229,  229,  229,
3397       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3398       229,  229, 2322,  229,  229,  229,  229,  229, 2325, 1017,
3399      1034, 1034, 1034, 2326, 2327, 1027, 1032, 1032, 1032, 1036,
3400      1036, 1036, 2333, 1038, 1038, 1038, 2334, 1034, 1039, 1039,
3401      1039, 2340,  229,  229, 1032, 2341, 1036, 1717, 1717, 1717,
3402       229, 1038,  229, 2342, 2343,  229, 1039, 2357, 2358,  229,
3403      1757, 1757, 1757,  229,  230,  230,  230,  230,  230,  230,
3404       230,  230,  230,  230,  230,  230,  230,  230,  230, 2359,
3405
3406       230,  230,  230,  230,  230, 1042, 1042, 1042, 1032, 1045,
3407      1045, 1045, 2360, 1717, 1047, 1047, 1047, 2295, 2295, 1039,
3408      2295, 2362, 1042, 1057, 1057, 1057, 1045, 2364, 2295,  230,
3409       230, 1047, 1059, 1059, 1059, 2295, 2387,  230, 2328,  230,
3410      2388, 1057,  230, 1759, 1759, 1759,  230, 2393, 2328, 1059,
3411       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3412       239,  239,  239,  239,  239,  239, 2382,  239,  239,  239,
3413       239,  239, 1061, 1061, 1061, 1062, 1062, 1062, 2394, 1062,
3414      2395, 2398, 1062, 2401, 1058, 1058, 1058, 2402, 2403, 1061,
3415      1063, 1063, 1063, 1064, 1064, 1064,  239,  239, 1065, 1065,
3416
3417      1065, 2404, 1058, 2382, 1074, 1074, 1074, 1063, 1074, 2405,
3418      1064, 1074, 1082, 1082, 1082, 1065, 1082, 2381, 2406, 1082,
3419       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3420       240,  240,  240,  240,  240,  240, 2407,  240,  240,  240,
3421       240,  240, 1058, 2408, 1064, 1068, 1068, 1068, 2409, 2381,
3422      1065, 1066, 1066, 1066, 2410, 1073, 1073, 1073, 2411, 2413,
3423      1067, 1067, 1067, 1068, 2414, 2416,  240,  240, 1066, 1069,
3424      1069, 1069, 1073, 2417, 1087, 1087, 1087, 1067, 1087, 2415,
3425      2418, 1087, 1093, 1093, 1093, 2419, 1093, 1069, 2415, 1093,
3426       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3427
3428       243,  243,  243,  243,  243,  243, 1066,  243,  243,  243,
3429       243,  243, 1067, 1075, 1075, 1075, 1069, 1078, 1078, 1078,
3430      1079, 1079, 1079, 1081, 1081, 1081, 1083, 1083, 1083, 2421,
3431      1075, 1760, 1760, 1760, 2422, 1078,  243,  243, 1079, 2424,
3432      1081, 1725, 1725, 1725, 1083, 2425, 2427,  243,  244,  244,
3433       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3434       244,  244,  244, 2428,  244,  244,  244,  244,  244, 2430,
3435      2436, 1079, 1084, 1084, 1084, 1086, 1086, 1086, 1089, 1089,
3436      1089, 1090, 1090, 1090, 1092, 1092, 1092, 1725, 2420, 2437,
3437      1084, 2438, 1086,  244,  244, 2440, 1089, 2420, 2445, 1090,
3438
3439      2446, 1092, 2447, 2448,  244,  253,  253,  253,  253,  253,
3440       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3441      2449,  253,  253,  253,  253,  253, 2452, 2458, 1090, 1097,
3442      1097, 1097, 2459, 1084, 2461, 1098, 1098, 1098, 1099, 1099,
3443      1099, 1100, 1100, 1100, 1102, 1102, 1102, 1097, 2470, 2472,
3444       253,  253, 2475, 1098, 2477, 1099, 2501, 2502, 1100, 2504,
3445      2505,  253, 1102, 1113, 1113, 1113, 2506, 1113, 2497, 2498,
3446      1113, 1799, 1799, 1799,  253,  254,  254,  254,  254,  254,
3447       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3448      1098,  254,  254,  254,  254,  254, 1101, 1101, 1101, 1103,
3449
3450      1103, 1103, 1105, 1105, 1105, 2497, 1106, 1106, 1106, 1107,
3451      1107, 1107, 2498, 1101, 1109, 1109, 1109, 1103, 2496, 1105,
3452       254,  254, 2511, 1106, 2512, 2513, 1107, 2514, 1110, 1110,
3453      1110,  254, 1109, 1108, 1108, 1108, 1112, 1112, 1112, 1114,
3454      1114, 1114, 2515, 2516,  254,  296, 1110, 1116, 1116, 1116,
3455      1108, 2517,  296, 1112, 2518, 1101, 1106, 1114, 2496, 2519,
3456      1103,  296,  296, 2520, 1116, 1110, 1115, 1115, 1115, 2521,
3457      2523, 1106, 1898, 1898, 1898, 2524, 1117, 1117, 1117, 2525,
3458      1118, 1118, 1118, 2526, 1115, 1119, 1119, 1119, 2527,  296,
3459       296,  296, 1108, 1117, 2528,  296,  296,  296, 1118, 2529,
3460
3461       296,  296, 2530, 1119,  296, 2531,  296,  296,  296,  361,
3462      1120, 1120, 1120, 1121, 1121, 1121,  361, 1122, 1122, 1122,
3463      2532, 1115, 1123, 1123, 1123,  361,  361, 1120, 2533, 2534,
3464      1121, 1124, 1124, 1124, 1122, 1136, 1136, 1136, 2509, 2535,
3465      1123, 1140, 1140, 1140, 1130, 1130, 1130, 2536, 2509, 1124,
3466      2538, 2509, 1136,  361,  361,  361, 1119, 2539, 1140,  361,
3467       361,  361, 1130, 1121,  361,  361, 2541, 2547,  361, 2554,
3468       361,  361,  361, 1131, 1131, 1131, 2555, 2556, 1121, 1134,
3469      1134, 1134, 1135, 1135, 1135, 1137, 1137, 1137, 2510, 1137,
3470      2558, 1131, 1137, 1138, 1138, 1138, 2562, 1134, 2510, 2565,
3471
3472      1135, 2510, 1124, 1139, 1139, 1139, 1141, 1141, 1141, 2606,
3473      1141, 1138, 2603, 1141, 1143, 1143, 1143, 1144, 1144, 1144,
3474      2608, 1139, 1159, 1159, 1159, 1160, 1160, 1160, 2588, 1162,
3475      1162, 1162, 1143, 2609, 2610, 1144, 2613, 1131, 2588, 2614,
3476      1159, 2603, 2616, 1160, 2588, 2617, 1135, 1162, 1193, 1193,
3477      1193, 1194, 1194, 1194, 1195, 1195, 1195, 1197, 1197, 1197,
3478      1198, 1198, 1198, 2604, 1139, 1193, 1199, 1199, 1199, 1194,
3479      1199, 2619, 1195, 1199, 2605, 1197, 1162, 1198, 1202, 1202,
3480      1202, 1144, 1204, 1204, 1204, 1205, 1205, 1205, 2589, 1207,
3481      1207, 1207, 1209, 1209, 1209, 1202, 1209, 2620, 2589, 1209,
3482
3483      1204, 2615, 2621, 1205, 2589, 2604, 1197, 1207, 1212, 1212,
3484      1212, 1213, 1213, 1213, 2615, 1213, 2605, 2618, 1213, 2622,
3485      1214, 1214, 1214, 2623, 2625, 1212, 1215, 1215, 1215, 2626,
3486      2618, 1216, 1216, 1216, 2627, 1216, 1207, 1214, 1216, 1202,
3487      1218, 1218, 1218, 1215, 1220, 1220, 1220, 1221, 1221, 1221,
3488      1223, 1223, 1223, 1225, 1225, 1225, 2628, 1218, 1227, 1227,
3489      1227, 2631, 1220, 2632, 2633, 1221, 2634, 2635, 1223, 2636,
3490      1225, 1228, 1228, 1228, 2637, 2638, 1227, 1230, 1230, 1230,
3491      1231, 1231, 1231, 2639, 1231, 2640, 2641, 1231, 2642, 1228,
3492      1235, 1235, 1235, 2643, 2645, 1230, 1236, 1236, 1236, 1238,
3493
3494      1238, 1238, 1253, 1253, 1253, 2657, 1253, 2658, 1235, 1253,
3495      1223, 1257, 1257, 1257, 1236, 2663, 2667, 1238, 1258, 1258,
3496      1258, 1259, 1259, 1259, 1230, 1261, 1261, 1261, 1257, 2685,
3497      1263, 1263, 1263, 2686, 1263, 2687, 1258, 1263, 2688, 1259,
3498      1267, 1267, 1267, 1261, 1268, 1268, 1268, 1270, 1270, 1270,
3499      1271, 1271, 1271, 1272, 1272, 1272, 2689, 2690, 1267, 1273,
3500      1273, 1273, 1268, 2702, 2700, 1270, 2705, 1271, 2706, 2710,
3501      1272, 1274, 1274, 1274, 1276, 1276, 1276, 1273, 1277, 1277,
3502      1277, 1278, 1278, 1278, 2694, 2711, 1261, 2712, 2713, 1274,
3503      2714, 2715, 1276, 2716, 2695, 1277, 2717, 2694, 1278, 2700,
3504
3505      1272, 1279, 1279, 1279, 1280, 1280, 1280, 2695, 1270, 1278,
3506      1282, 1282, 1282, 1285, 1285, 1285, 1286, 1286, 1286, 1279,
3507      1286, 2719, 1280, 1286, 1292, 1292, 1292, 2720, 1282, 2721,
3508      1285, 1293, 1293, 1293, 1295, 1295, 1295, 1298, 1298, 1298,
3509      2722, 1276, 1292, 1299, 1299, 1299, 1300, 1300, 1300, 1293,
3510      2723, 2724, 1295, 2725, 1298, 1302, 1302, 1302, 1303, 1303,
3511      1303, 1299, 2726, 2728, 1300, 1304, 1304, 1304, 2699, 1304,
3512      2729, 2730, 1304, 1302, 2731, 1303, 1282, 1307, 1307, 1307,
3513      2732, 1307, 2733, 2734, 1307, 1310, 1310, 1310, 1311, 1311,
3514      1311, 1313, 1313, 1313, 1318, 1318, 1318, 2735, 1318, 1295,
3515
3516      2736, 1318, 2737, 1310, 2738, 2739, 1311, 2740, 2750, 1313,
3517      1321, 1321, 1321, 1322, 1322, 1322, 2699, 1322, 2754, 2755,
3518      1322, 2763, 1302, 1325, 1325, 1325, 2764, 1321, 1326, 1326,
3519      1326, 2781, 1326, 2782, 2783, 1326, 1336, 1336, 1336, 2784,
3520      1325, 1337, 1337, 1337, 1339, 1339, 1339, 2776, 1340, 1340,
3521      1340, 2777, 1340, 2785, 1336, 1340, 1313, 2776, 2779, 1337,
3522      2786, 2777, 1339, 1343, 1343, 1343, 2789, 1343, 2779, 2780,
3523      1343, 1346, 1346, 1346, 1347, 1347, 1347, 2790, 1347, 2780,
3524      2791, 1347, 1352, 1352, 1352, 1353, 1353, 1353, 1346, 1355,
3525      1355, 1355, 1360, 1360, 1360, 2792, 1360, 2793, 2801, 1360,
3526
3527      1352, 2802, 2803, 1353, 1363, 1363, 1363, 1355, 1364, 1364,
3528      1364, 1339, 1364, 2804, 2805, 1364, 1367, 1367, 1367, 2806,
3529      2807, 1363, 1368, 1368, 1368, 1370, 1370, 1370, 1372, 1372,
3530      1372, 2793, 1372, 2808, 1367, 1372, 2811, 1355, 2812, 2814,
3531      1368, 2815, 2816, 1370, 1375, 1375, 1375, 1376, 1376, 1376,
3532      1378, 1378, 1378, 1380, 1380, 1380, 2818, 1380, 2820, 2821,
3533      1380, 2822, 1375, 2825, 2826, 1376, 2827, 2828, 1378, 1384,
3534      1384, 1384, 1385, 1385, 1385, 2831, 1370, 1387, 1387, 1387,
3535      2844, 1389, 1389, 1389, 2845, 1389, 2846, 1384, 1389, 2854,
3536      1385, 1395, 1395, 1395, 2860, 1387, 1396, 1396, 1396, 2861,
3537
3538      1398, 1398, 1398, 1399, 1399, 1399, 1400, 1400, 1400, 1395,
3539      1400, 2862, 2863, 1400, 1396, 2864, 2865, 1378, 1398, 2866,
3540      1399, 1401, 1401, 1401, 2867, 2868, 1387, 1402, 1402, 1402,
3541      2869, 1402, 2871, 2872, 1402, 1404, 1404, 1404, 1401, 1405,
3542      1405, 1405, 2877, 1407, 1407, 1407, 1409, 1409, 1409, 2878,
3543      1413, 1413, 1413, 1404, 1902, 1902, 1902, 1405, 2879, 2880,
3544      1398, 1407, 2890, 1409, 1410, 1410, 1410, 1413, 1410, 2891,
3545      2892, 1410, 1414, 1414, 1414, 2893, 1414, 2894, 2895, 1414,
3546      1416, 1416, 1416, 1417, 1417, 1417, 1419, 1419, 1419, 1421,
3547      1421, 1421, 2896, 1421, 2897, 2901, 1421, 2902, 1416, 2903,
3548
3549      2881, 1417, 2904, 2905, 1419, 1424, 1424, 1424, 2906, 2908,
3550      1407, 1425, 1425, 1425, 1427, 1427, 1427, 1428, 1428, 1428,
3551      1429, 1429, 1429, 1424, 1429, 2909, 2911, 1429, 2912, 1425,
3552      2913, 2915, 1427, 2919, 1428, 1430, 1430, 1430, 1431, 1431,
3553      1431, 2920, 1431, 2881, 2921, 1431, 1432, 1432, 1432, 2924,
3554      1419, 2929, 1430, 1433, 1433, 1433, 2930, 1435, 1435, 1435,
3555      1436, 1436, 1436, 2931, 1432, 1437, 1437, 1437, 2932, 1437,
3556      2933, 1433, 1437, 2934, 1427, 1435, 2935, 1436, 1440, 1440,
3557      1440, 1441, 1441, 1441, 2936, 1441, 2937, 2938, 1441, 1442,
3558      1442, 1442, 1443, 1443, 1443, 1440, 1445, 1445, 1445, 1447,
3559
3560      1447, 1447, 1451, 1451, 1451, 2939, 2940, 1442, 2942, 2943,
3561      1443, 1452, 1452, 1452, 1445, 2944, 1447, 2945, 2946, 1435,
3562      1451, 1454, 1454, 1454, 1457, 1457, 1457, 2948, 2952, 1452,
3563      1458, 1458, 1458, 1460, 1460, 1460, 1461, 1461, 1461, 1454,
3564      1461, 2948, 1457, 1461, 1464, 1464, 1464, 2955, 1458, 2956,
3565      2959, 1460, 1465, 1465, 1465, 1467, 1467, 1467, 1445, 1468,
3566      1468, 1468, 1464, 1468, 2946, 2961, 1468, 1472, 1472, 1472,
3567      1465, 2962, 2949, 1467, 1473, 1473, 1473, 1475, 1475, 1475,
3568      2964, 2965, 1454, 2949, 2968, 1472, 1460, 1477, 1477, 1477,
3569      2969, 2970, 1473, 2971, 2972, 1475, 1484, 1484, 1484, 1514,
3570
3571      1514, 1514, 1516, 1516, 1516, 1477, 1477, 2973, 1517, 1517,
3572      1517, 1542, 1542, 1542, 1484, 1467, 1514, 1515, 1515, 1515,
3573      1516, 1515, 2974, 2975, 1515, 1517, 1518, 1518, 1518, 1542,
3574      1518, 2976, 2978, 1518, 1521, 1521, 1521, 2980, 1475, 1523,
3575      1523, 1523, 2988, 1523, 2978, 2979, 1523, 1526, 1526, 1526,
3576      2990, 2985, 1521, 2992, 1527, 1527, 1527, 2979, 1527, 2986,
3577      1516, 1527, 1484, 2985, 1526, 1528, 1528, 1528, 2994, 1528,
3578      3002, 2986, 1528, 1532, 1532, 1532, 3004, 1533, 1533, 1533,
3579      3008, 1533, 3005, 1521, 1533, 1535, 1535, 1535, 3006, 3010,
3580      1532, 1537, 1537, 1537, 1538, 1538, 1538, 3012, 1538, 3007,
3581
3582      3007, 1538, 3006, 1535, 1539, 1539, 1539, 3013, 1537, 1540,
3583      1540, 1540, 1558, 1558, 1558, 1559, 1559, 1559, 1560, 1560,
3584      1560, 1539, 1560, 3005, 3014, 1560, 3015, 1540, 3030, 1558,
3585      3021, 3029, 1559, 3032, 3031, 1535, 1561, 1561, 1561, 1564,
3586      1564, 1564, 1565, 1565, 1565, 1566, 1566, 1566, 3021, 1566,
3587      3029, 3035, 1566, 3031, 1561, 3037, 3024, 1564, 1540, 1565,
3588      1568, 1568, 1568, 1569, 1569, 1569, 1570, 1570, 1570, 3042,
3589      1570, 3024, 3043, 1570, 1572, 1572, 1572, 3034, 1568, 3009,
3590      1569, 1575, 1575, 1575, 1576, 1576, 1576, 3045, 1576, 3046,
3591      3009, 1576, 1572, 1577, 1577, 1577, 3034, 3047, 1575, 3036,
3592
3593      1561, 3049, 3050, 1564, 1579, 1579, 1579, 1580, 1580, 1580,
3594      1577, 1583, 1583, 1583, 3051, 1584, 1584, 1584, 3036, 1584,
3595      1568, 1579, 1584, 3052, 3054, 1580, 3056, 3063, 1583, 1585,
3596      1585, 1585, 1586, 1586, 1586, 1572, 1587, 1587, 1587, 3064,
3597      1587, 3065, 3066, 1587, 1588, 1588, 1588, 1585, 3067, 1586,
3598      1579, 1590, 1590, 1590, 1593, 1593, 1593, 1594, 1594, 1594,
3599      3068, 1594, 1588, 3071, 1594, 1595, 1595, 1595, 1590, 1595,
3600      3072, 1593, 1595, 1580, 1600, 1600, 1600, 1607, 1607, 1607,
3601      1608, 1608, 1608, 3073, 1608, 3074, 3075, 1608, 1611, 1611,
3602      1611, 1600, 1612, 1612, 1612, 1607, 1613, 1613, 1613, 1614,
3603
3604      1614, 1614, 1615, 1615, 1615, 1611, 1617, 1617, 1617, 1612,
3605      1588, 3076, 3077, 1613, 3078, 3080, 1614, 1620, 1620, 1620,
3606      1615, 1620, 3082, 1617, 1620, 3084, 3085, 1623, 1623, 1623,
3607      1625, 1625, 1625, 1627, 1627, 1627, 1630, 1630, 1630, 1634,
3608      1634, 1634, 1607, 1613, 1623, 1635, 1635, 1635, 1625, 3086,
3609      3096, 1627, 3097, 3098, 1630, 3094, 1634, 1615, 3095, 1643,
3610      1643, 1643, 1612, 1635, 1636, 1636, 1636, 3094, 1636, 1614,
3611      3095, 1636, 1639, 1639, 1639, 3099, 1639, 1643, 3100, 1639,
3612      1645, 1645, 1645, 3101, 1645, 1634, 3105, 1645, 1650, 1650,
3613      1650, 3106, 1650, 1630, 1625, 1650, 1654, 1654, 1654, 1627,
3614
3615      3107, 3108, 1635, 1656, 1656, 1656, 1657, 1657, 1657, 3109,
3616      1657, 3110, 3111, 1657, 1654, 1660, 1660, 1660, 3112, 1660,
3617      3115, 1656, 1660, 3116, 3117, 1643, 1663, 1663, 1663, 1664,
3618      1664, 1664, 3118, 1664, 3119, 3120, 1664, 3121, 1669, 1669,
3619      1669, 3122, 1669, 3123, 1663, 1669, 1672, 1672, 1672, 1674,
3620      1674, 1674, 1675, 1675, 1675, 3124, 1675, 1654, 3113, 1675,
3621      1656, 1679, 1679, 1679, 1672, 3125, 1674, 1681, 1681, 1681,
3622      1682, 1682, 1682, 1663, 1683, 1683, 1683, 3126, 3127, 1679,
3623      1684, 1684, 1684, 3113, 1681, 1685, 1685, 1685, 1682, 1688,
3624      1688, 1688, 1683, 1672, 1695, 1695, 1695, 1684, 1726, 1726,
3625
3626      1726, 3128, 1726, 1685, 3129, 1726, 3130, 1688, 3131, 3132,
3627      1679, 3133, 1695, 1729, 1729, 1729, 1730, 1730, 1730, 3134,
3628      1730, 3140, 3141, 1730, 3142, 3137, 1683, 1735, 1735, 1735,
3629      3143, 1729, 1737, 1737, 1737, 3144, 1737, 1682, 3145, 1737,
3630      1688, 1745, 1745, 1745, 3137, 1735, 1695, 1685, 1741, 1741,
3631      1741, 3146, 1741, 3147, 3148, 1741, 3149, 1688, 3150, 1745,
3632      1747, 1747, 1747, 3151, 1747, 3152, 3153, 1747, 1750, 1750,
3633      1750, 3154, 1751, 1751, 1751, 3155, 1751, 3156, 1735, 1751,
3634      1729, 1752, 1752, 1752, 3157, 1750, 1761, 1761, 1761, 1765,
3635      1765, 1765, 1766, 1766, 1766, 1768, 1768, 1768, 3158, 1752,
3636
3637      3159, 3160, 1745, 1769, 1769, 1769, 3161, 1769, 3162, 3163,
3638      1769, 3164, 1768, 1770, 1770, 1770, 3165, 1770, 3158, 3166,
3639      1770, 1773, 1773, 1773, 1775, 1775, 1775, 1776, 1776, 1776,
3640      3167, 3168, 1752, 1777, 1777, 1777, 3169, 1777, 3170, 1773,
3641      1777, 1775, 1781, 1781, 1781, 1776, 3171, 1782, 1782, 1782,
3642      1761, 1782, 3172, 1765, 1782, 3173, 1766, 1786, 1786, 1786,
3643      1781, 1785, 1785, 1785, 3174, 1789, 1789, 1789, 1773, 1789,
3644      3175, 3176, 1789, 3180, 1776, 1786, 3181, 3182, 1785, 1792,
3645      1792, 1792, 1793, 1793, 1793, 3183, 1793, 3184, 3185, 1793,
3646      1794, 1794, 1794, 1795, 1795, 1795, 1792, 1796, 1796, 1796,
3647
3648      3177, 1796, 3187, 3188, 1796, 3190, 3177, 1794, 1781, 3191,
3649      1795, 1798, 1798, 1798, 3193, 1801, 1801, 1801, 3194, 1801,
3650      3197, 1786, 1801, 1804, 1804, 1804, 1806, 1806, 1806, 1798,
3651      1806, 3196, 3198, 1806, 1809, 1809, 1809, 1811, 1811, 1811,
3652      3199, 1804, 1812, 1812, 1812, 3196, 1812, 3200, 3202, 1812,
3653      3204, 3206, 1809, 3208, 1811, 1813, 1813, 1813, 1815, 1815,
3654      1815, 3210, 1815, 3211, 3212, 1815, 1820, 1820, 1820, 1821,
3655      1821, 1821, 1813, 1821, 3213, 3214, 1821, 1822, 1822, 1822,
3656      1809, 3215, 3216, 1820, 1827, 1827, 1827, 1828, 1828, 1828,
3657      1829, 1829, 1829, 3217, 1822, 1830, 1830, 1830, 3219, 1830,
3658
3659      3221, 1827, 1830, 3223, 3224, 1828, 3225, 1829, 1831, 1831,
3660      1831, 1832, 1832, 1832, 1833, 1833, 1833, 1834, 1834, 1834,
3661      1836, 1836, 1836, 3226, 3239, 1831, 3259, 1512, 1832, 1510,
3662      3235, 1833, 1837, 1837, 1837, 1834, 1837, 1836, 3255, 1837,
3663      1838, 1838, 1838, 1840, 1840, 1840, 3241, 1841, 1841, 1841,
3664      3241, 1841, 3242, 1828, 1841, 3227, 3242, 1838, 3259, 3243,
3665      1840, 1843, 1843, 1843, 1845, 1845, 1845, 3243, 3239, 1832,
3666      1848, 1848, 1848, 1852, 1852, 1852, 3228, 1834, 3235, 1843,
3667      1509, 1508, 1845, 3247, 3255, 1853, 1853, 1853, 1848, 1853,
3668      1852, 3227, 1853, 1855, 1855, 1855, 1857, 1857, 1857, 1859,
3669
3670      1859, 1859, 1860, 1860, 1860, 1861, 1861, 1861, 1862, 1862,
3671      1862, 1855, 3228, 3244, 1857, 1845, 1859, 3236, 1848, 1860,
3672      3237, 3244, 1861, 1865, 1865, 1865, 1862, 1864, 1864, 1864,
3673      3247, 1866, 1866, 1866, 1867, 1867, 1867, 1868, 1868, 1868,
3674      3260, 1865, 1870, 1870, 1870, 1864, 1870, 1857, 1866, 1870,
3675      3238, 1867, 1876, 1876, 1876, 1868, 3240, 1878, 1878, 1878,
3676      1879, 1879, 1879, 3245, 1879, 3236, 1507, 1879, 3237, 1861,
3677      1876, 3245, 3260, 1864, 1878, 1862, 1880, 1880, 1880, 1881,
3678      1881, 1881, 1882, 1882, 1882, 1883, 1883, 1883, 1865, 1883,
3679      1506, 1505, 1883, 3246, 1880, 3249, 3250, 1881, 3238, 1882,
3680
3681      3240, 3246, 1868, 1876, 1884, 1884, 1884, 1890, 1890, 1890,
3682      1891, 1891, 1891, 1906, 1906, 1906, 1907, 1907, 1907, 1908,
3683      1908, 1908, 1884, 3251, 1890, 1910, 1910, 1910, 1891, 1912,
3684      1912, 1912, 3249, 3250, 1881, 1880, 1913, 1913, 1913, 1918,
3685      1918, 1918, 1920, 1920, 1920, 1923, 1923, 1923, 1925, 1925,
3686      1925, 1927, 1927, 1927, 3248, 1928, 1928, 1928, 3252, 3253,
3687      1920, 3299, 3256, 1923, 3251, 1925, 1937, 1937, 1937, 1927,
3688      1937, 1891, 1928, 1937, 3254, 1940, 1940, 1940, 1941, 1941,
3689      1941, 1946, 1946, 1946, 1947, 1947, 1947, 1951, 1951, 1951,
3690      3257, 3263, 1920, 1940, 3253, 1941, 1952, 1952, 1952, 3252,
3691
3692      1952, 3248, 3299, 1952, 1951, 1955, 1955, 1955, 3256, 3254,
3693      1927, 1956, 1956, 1956, 1957, 1957, 1957, 3258, 1958, 1958,
3694      1958, 1940, 1958, 1955, 3307, 1958, 3263, 3257, 1956, 1504,
3695      1503, 1957, 3261, 1951, 1959, 1959, 1959, 1961, 1961, 1961,
3696      3262, 3261, 1962, 1962, 1962, 3264, 1963, 1963, 1963, 3262,
3697      1963, 3267, 1959, 1963, 3258, 1961, 3307, 1956, 1955, 1962,
3698      1964, 1964, 1964, 1967, 1967, 1967, 3265, 1967, 3268, 3277,
3699      1967, 1970, 1970, 1970, 1502, 1971, 1971, 1971, 1964, 1971,
3700      3264, 3269, 1971, 1976, 1976, 1976, 3275, 1959, 1970, 1972,
3701      1972, 1972, 3266, 1972, 3267, 3275, 1972, 1978, 1978, 1978,
3702
3703      3265, 1976, 1980, 1980, 1980, 1500, 3277, 1964, 1982, 1982,
3704      1982, 3268, 1982, 3273, 3274, 1982, 1985, 1985, 1985, 3270,
3705      1980, 1986, 1986, 1986, 3318, 1986, 3266, 3269, 1986, 3289,
3706      1990, 1990, 1990, 1985, 1990, 3318, 3279, 1990, 1993, 1993,
3707      1993, 1994, 1994, 1994, 3271, 1994, 3273, 3274, 1994, 1995,
3708      1995, 1995, 1999, 1999, 1999, 1993, 3272, 2000, 2000, 2000,
3709      1980, 2000, 3281, 3289, 2000, 3270, 1995, 3276, 3278, 1999,
3710      2001, 2001, 2001, 2002, 2002, 2002, 3276, 2002, 3279, 3271,
3711      2002, 2005, 2005, 2005, 1499, 2006, 2006, 2006, 2001, 2006,
3712      3282, 3272, 2006, 2007, 2007, 2007, 3283, 1497, 2005, 2008,
3713
3714      2008, 2008, 2009, 2009, 2009, 3278, 2009, 3284, 3281, 2009,
3715      2007, 2010, 2010, 2010, 1496, 3287, 2008, 1494, 2012, 2012,
3716      2012, 2001, 2012, 3280, 3287, 2012, 2015, 2015, 2015, 2010,
3717      2016, 2016, 2016, 3283, 2016, 3300, 3282, 2016, 2018, 2018,
3718      2018, 1491, 2018, 2015, 3284, 2018, 2022, 2022, 2022, 2025,
3719      2025, 2025, 2027, 2027, 2027, 2028, 2028, 2028, 2030, 2030,
3720      2030, 3285, 2010, 3286, 2022, 3280, 3290, 2025, 3291, 2027,
3721      2032, 2032, 2032, 2028, 2032, 2030, 3300, 2032, 2036, 2036,
3722      2036, 2039, 2039, 2039, 2041, 2041, 2041, 2042, 2042, 2042,
3723      3285, 2042, 3286, 3288, 2042, 3293, 2036, 3292, 1490, 2039,
3724
3725      3290, 2041, 3288, 3293, 2030, 2043, 2043, 2043, 2044, 2044,
3726      2044, 1489, 2044, 2025, 3291, 2044, 2028, 2046, 2046, 2046,
3727      3301, 3308, 2043, 2048, 2048, 2048, 2049, 2049, 2049, 2050,
3728      2050, 2050, 2051, 2051, 2051, 2046, 2051, 3294, 3297, 2051,
3729      3295, 2048, 3302, 3292, 2049, 3294, 2050, 2052, 2052, 2052,
3730      2053, 2053, 2053, 3308, 2053, 3301, 3298, 2053, 2054, 2054,
3731      2054, 2059, 2059, 2059, 2052, 3296, 2061, 2061, 2061, 1488,
3732      2061, 3313, 2048, 2061, 3305, 3297, 2054, 3302, 3303, 2059,
3733      2064, 2064, 2064, 2046, 2065, 2065, 2065, 3295, 2066, 2066,
3734      2066, 2049, 2066, 3298, 1487, 2066, 1486, 1485, 2064, 2069,
3735
3736      2069, 2069, 2065, 2075, 2075, 2075, 2076, 2076, 2076, 3309,
3737      2076, 3305, 3296, 2076, 2077, 2077, 2077, 2069, 3309, 3313,
3738      2075, 3310, 3317, 2054, 3303, 1483, 2059, 2078, 2078, 2078,
3739      3310, 2064, 2077, 2083, 2083, 2083, 3317, 2065, 2084, 2084,
3740      2084, 2085, 2085, 2085, 2087, 2087, 2087, 2091, 2091, 2091,
3741      2092, 2092, 2092, 2093, 2093, 2093, 2094, 2094, 2094, 2096,
3742      2096, 2096, 2097, 2097, 2097, 2098, 2098, 2098, 2099, 2099,
3743      2099, 2100, 2100, 2100, 2101, 2101, 2101, 3304, 2077, 2103,
3744      2103, 2103, 2106, 2106, 2106, 1482, 2109, 2109, 2109, 2110,
3745      2110, 2110, 3306, 2110, 1481, 1480, 2110, 2103, 1471, 1456,
3746
3747      2106, 1455, 2094, 2109, 2112, 2112, 2112, 2113, 2113, 2113,
3748      2114, 2114, 2114, 1450, 2114, 1449, 1448, 2114, 2125, 2125,
3749      2125, 1446, 2112, 3304, 2113, 2126, 2126, 2126, 3314, 3306,
3750      2103, 2127, 2127, 2127, 1439, 2127, 2125, 1438, 2127, 2128,
3751      2128, 2128, 2126, 2133, 2133, 2133, 2134, 2134, 2134, 2135,
3752      2135, 2135, 2136, 2136, 2136, 3311, 2136, 1420, 1415, 2136,
3753      2138, 2138, 2138, 2139, 2139, 2139, 2135, 2125, 2140, 2140,
3754      2140, 3312, 2140, 3315, 3316, 2140, 3314, 1412, 2138, 1411,
3755      2139, 2142, 2142, 2142, 1408, 2142, 1403, 3311, 2142, 2145,
3756      2145, 2145, 2134, 1394, 2147, 2147, 2147, 2149, 2149, 2149,
3757
3758      1393, 2149, 1392, 3312, 2149, 3315, 3316, 2145, 2152, 2152,
3759      2152, 2138, 2147, 2155, 2155, 2155, 1388, 2155, 1383, 1379,
3760      2155, 2162, 2162, 2162, 1371, 1366, 2152, 2164, 2164, 2164,
3761      1365, 2164, 1359, 1358, 2164, 2173, 2173, 2173, 1357, 2162,
3762      2145, 2170, 2170, 2170, 1356, 2170, 1351, 1350, 2170, 2174,
3763      2174, 2174, 2173, 2174, 1349, 1348, 2174, 1335, 2178, 2178,
3764      2178, 2152, 2178, 1334, 1333, 2178, 2181, 2181, 2181, 1332,
3765      2182, 2182, 2182, 1331, 2182, 1330, 2162, 2182, 2185, 2185,
3766      2185, 2186, 2186, 2186, 2181, 2186, 1329, 1328, 2186, 2187,
3767      2187, 2187, 1327, 2187, 1317, 2185, 2187, 2190, 2190, 2190,
3768
3769      2192, 2192, 2192, 1316, 2192, 1315, 1314, 2192, 2198, 2198,
3770      2198, 2200, 2200, 2200, 1297, 2190, 2201, 2201, 2201, 1296,
3771      2201, 1291, 1290, 2201, 1289, 1284, 2198, 1283, 2200, 1266,
3772      2181, 2202, 2202, 2202, 2204, 2204, 2204, 2205, 2205, 2205,
3773      1262, 2205, 1256, 1252, 2205, 1251, 2212, 2212, 2212, 2202,
3774      1250, 2204, 2215, 2215, 2215, 1249, 2215, 1248, 1247, 2215,
3775      2222, 2222, 2222, 2190, 2212, 2218, 2218, 2218, 1246, 2218,
3776      1244, 1243, 2218, 1241, 2224, 2224, 2224, 1240, 2222, 2225,
3777      2225, 2225, 2226, 2226, 2226, 1239, 2226, 1234, 1226, 2226,
3778      1224, 2202, 2224, 1219, 2229, 2229, 2229, 2225, 2229, 1217,
3779
3780      1208, 2229, 2232, 2232, 2232, 1203, 2233, 2233, 2233, 1192,
3781      1190, 2222, 2234, 2234, 2234, 2225, 2235, 2235, 2235, 1189,
3782      2232, 1188, 2232, 2233, 2236, 2236, 2236, 1187, 1185, 2234,
3783      2237, 2237, 2237, 2235, 2239, 2239, 2239, 2240, 2240, 2240,
3784      2224, 2236, 2241, 2241, 2241, 2244, 2244, 2244, 2237, 2245,
3785      2245, 2245, 2239, 2245, 1184, 2240, 2245, 2248, 2248, 2248,
3786      2241, 1183, 1182, 2234, 2249, 2249, 2249, 2250, 2250, 2250,
3787      2251, 2251, 2251, 1181, 1180, 2248, 2254, 2254, 2254, 1178,
3788      2235, 1177, 1176, 2236, 2255, 2255, 2255, 2257, 2257, 2257,
3789      2258, 2258, 2258, 1175, 2239, 2237, 2259, 2259, 2259, 2260,
3790
3791      2260, 2260, 2261, 2261, 2261, 2262, 2262, 2262, 2265, 2265,
3792      2265, 2266, 2266, 2266, 1174, 1173, 2248, 2267, 2267, 2267,
3793      2268, 2268, 2268, 2270, 2270, 2270, 2273, 2273, 2273, 2274,
3794      2274, 2274, 1172, 2274, 1170, 1169, 2274, 2277, 2277, 2277,
3795      1168, 2270, 1167, 2273, 2278, 2278, 2278, 1166, 2280, 2280,
3796      2280, 1165, 2280, 1164, 2277, 2280, 2293, 2293, 2293, 2294,
3797      2294, 2294, 2278, 2294, 2296, 2296, 2294, 2296, 2297, 2297,
3798      2297, 2298, 2298, 2298, 2293, 2296, 2302, 2302, 2302, 2304,
3799      2304, 2304, 2296, 2304, 1158, 1157, 2304, 2308, 2308, 2308,
3800      2309, 2309, 2309, 1156, 2309, 1153, 1152, 2309, 2313, 2313,
3801
3802      2313, 1151, 1149, 2277, 1145, 2308, 2314, 2314, 2314, 2315,
3803      2315, 2315, 2323, 2323, 2323, 1142, 2313, 2293, 2324, 2324,
3804      2324, 1133, 1132, 2314, 2329, 2329, 2329, 2315, 2329, 1129,
3805      1128, 2329, 1127, 2308, 1126, 1125, 2324, 2332, 2332, 2332,
3806      2335, 2335, 2335, 2336, 2336, 2336, 1111, 2336, 1104, 1096,
3807      2336, 2339, 2339, 2339, 2332, 2344, 2344, 2344, 2335, 1095,
3808      2315, 1094, 2346, 2346, 2346, 2350, 2350, 2350, 1091, 2339,
3809      2347, 2347, 2347, 2344, 2347, 1088, 1085, 2347, 2324, 2346,
3810      2351, 2351, 2351, 2350, 2352, 2352, 2352, 1080, 2352, 1077,
3811      1076, 2352, 2355, 2355, 2355, 1072, 1070, 2351, 2356, 2356,
3812
3813      2356, 2361, 2361, 2361, 2363, 2363, 2363, 1056, 1055, 2355,
3814      2365, 2365, 2365, 1054, 1053, 2356, 2350, 1052, 2361, 2366,
3815      2366, 2366, 2367, 2367, 2367, 1051, 2351, 1050, 2365, 1049,
3816      2368, 2368, 2368, 2369, 2369, 2369, 2366, 2370, 2370, 2370,
3817      2367, 1048, 2371, 2371, 2371, 1044, 2371, 2355, 2368, 2371,
3818      1040, 2369, 2361, 1033, 2370, 2372, 2372, 2372, 1030, 2356,
3819      2373, 2373, 2373, 2374, 2374, 2374, 2375, 2375, 2375, 1029,
3820      2369, 1028, 2372, 2376, 2376, 2376, 1025, 2373, 1024, 1023,
3821      2374, 1020, 2367, 1019, 2375, 2377, 2377, 2377, 2378, 2378,
3822      2378, 2368, 2380, 2380, 2380, 2383, 2383, 2383, 2384, 2384,
3823
3824      2384, 1018, 1015, 2377, 1014, 1011, 2378, 2385, 2385, 2385,
3825      2380, 2373, 1010, 1007, 2374, 1004, 2384, 2386, 2386, 2386,
3826      2389, 2389, 2389, 2390, 2390, 2390, 2391, 2391, 2391, 2392,
3827      2392, 2392, 2396, 2396, 2396, 2399, 2399, 2399, 2400, 2400,
3828      2400, 1001, 2400, 1000,  997, 2400, 2412, 2412, 2412,  996,
3829      2396, 2377, 2399,  995, 2380, 2423, 2423, 2423, 2426, 2426,
3830      2426, 2429, 2429, 2429, 2412, 2431, 2431, 2431, 2433, 2433,
3831      2433, 2434, 2434, 2434,  994, 2434,  993,  991, 2434, 2429,
3832      2435, 2435, 2435, 2431,  990, 2433, 2442, 2442, 2442, 2443,
3833      2443, 2443, 2444, 2444, 2444, 2450, 2450, 2450, 2435,  989,
3834
3835      2451, 2451, 2451, 2442, 2451,  988, 2412, 2451,  987,  986,
3836      2444,  985, 2450, 2453, 2453, 2453, 2454, 2454, 2454, 2456,
3837      2456, 2456, 2460, 2460, 2460,  984,  980, 2429,  975,  974,
3838      2453, 2462, 2462, 2462, 2454,  973,  970, 2456,  969, 2460,
3839      2463, 2463, 2463,  968, 2463,  966,  962, 2463, 2462, 2444,
3840      2464, 2464, 2464, 2465, 2465, 2465, 2466, 2466, 2466,  958,
3841      2466,  957,  954, 2466, 2467, 2467, 2467,  951, 2464,  950,
3842      2465, 2468, 2468, 2468, 2469, 2469, 2469, 2474, 2474, 2474,
3843       949, 2467, 2476, 2476, 2476, 2478, 2478, 2478, 2468,  948,
3844       947, 2469,  946,  945, 2474, 2480, 2480, 2480, 2481, 2481,
3845
3846      2481,  943, 2481, 2478,  942, 2481, 2482, 2482, 2482, 2483,
3847      2483, 2483, 2480, 2484, 2484, 2484, 2467,  941, 2485, 2485,
3848      2485,  940, 2485,  939, 2482, 2485,  938, 2483,  937, 2468,
3849       936, 2484, 2469, 2488, 2488, 2488, 2489, 2489, 2489,  935,
3850      2489,  934,  933, 2489, 2490, 2490, 2490, 2491, 2491, 2491,
3851      2488, 2492, 2492, 2492, 2494, 2494, 2494, 2495, 2495, 2495,
3852       932, 2490,  931,  930, 2491, 2499, 2499, 2499,  929, 2492,
3853      2503, 2503, 2503,  928,  927, 2495, 2483, 2484, 2507, 2507,
3854      2507,  926,  925, 2499, 2508, 2508, 2508,  924, 2508,  923,
3855       919, 2508, 2522, 2522, 2522, 2507, 2537, 2537, 2537, 2540,
3856
3857      2540, 2540, 2542, 2542, 2542,  918, 2542,  916,  915, 2542,
3858      2522, 2545, 2545, 2545, 2548, 2548, 2548, 2540, 2551, 2551,
3859      2551, 2552, 2552, 2552,  914, 2552,  913,  912, 2552, 2545,
3860       908, 2548, 2553, 2553, 2553, 2551, 2557, 2557, 2557, 2559,
3861      2559, 2559,  906, 2559,  905,  904, 2559, 2563, 2563, 2563,
3862      2553,  903, 2522, 2557, 2564, 2564, 2564,  899, 2564,  895,
3863       894, 2564,  891,  890, 2563, 2566, 2566, 2566,  889,  888,
3864      2540, 2567, 2567, 2567, 2568, 2568, 2568,  887, 2568,  886,
3865       885, 2568, 2566, 2569, 2569, 2569,  882,  881, 2567, 2570,
3866      2570, 2570,  880, 2570,  879,  876, 2570, 2573, 2573, 2573,
3867
3868      2569, 2575, 2575, 2575,  875, 2575,  874,  871, 2575, 2578,
3869      2578, 2578, 2579, 2579, 2579, 2573, 2580, 2580, 2580, 2583,
3870      2583, 2583,  869, 2584, 2584, 2584, 2578, 2584,  866, 2579,
3871      2584,  865,  864, 2580,  863,  862, 2583, 2585, 2585, 2585,
3872      2586, 2586, 2586, 2587, 2587, 2587,  859, 2587,  858,  857,
3873      2587, 2590, 2590, 2590, 2585,  856,  855, 2586, 2592, 2592,
3874      2592,  852,  851, 2579, 2578, 2593, 2593, 2593,  850, 2590,
3875       849, 2580,  847, 2594, 2594, 2594, 2592, 2594,  844,  843,
3876      2594,  841,  838, 2593, 2597, 2597, 2597, 2598, 2598, 2598,
3877       836, 2598,  833,  832, 2598, 2599, 2599, 2599, 2600, 2600,
3878
3879      2600, 2597, 2600,  831,  830, 2600,  828, 2601, 2601, 2601,
3880       827,  826, 2599, 2607, 2607, 2607, 2611, 2611, 2611, 2630,
3881      2630, 2630,  823,  822, 2592, 2601, 2593, 2612, 2612, 2612,
3882       821, 2612,  820, 2611, 2612,  819,  818, 2630, 2644, 2644,
3883      2644, 2646, 2646, 2646, 2647, 2647, 2647, 2648, 2648, 2648,
3884      2649, 2649, 2649,  813, 2650, 2650, 2650,  812, 2646, 2651,
3885      2651, 2651, 2647, 2651, 2648,  811, 2651, 2649,  810,  809,
3886      2630, 2650, 2652, 2652, 2652,  808, 2652,  807,  806, 2652,
3887      2655, 2655, 2655, 2659, 2659, 2659, 2660, 2660, 2660,  805,
3888      2661, 2661, 2661,  804, 2661,  803, 2649, 2661, 2655,  801,
3889
3890      2659,  799,  798, 2660,  795,  792, 2647, 2662, 2662, 2662,
3891      2664, 2664, 2664,  789, 2664,  788,  784, 2664, 2668, 2668,
3892      2668, 2669, 2669, 2669, 2662, 2669,  783,  782, 2669, 2670,
3893      2670, 2670,  781, 2670,  778, 2668, 2670, 2673, 2673, 2673,
3894      2674, 2674, 2674,  775, 2674,  774,  773, 2674, 2675, 2675,
3895      2675, 2676, 2676, 2676, 2673, 2677, 2677, 2677,  770, 2678,
3896      2678, 2678,  769, 2678,  768, 2675, 2678,  765, 2676, 2681,
3897      2681, 2681, 2677, 2682, 2682, 2682,  764, 2682,  762,  759,
3898      2682, 2683, 2683, 2683,  758,  757, 2681, 2684, 2684, 2684,
3899       755, 2684,  744,  742, 2684, 2691, 2691, 2691, 2683, 2692,
3900
3901      2692, 2692,  739,  738, 2677,  737, 2675, 2693, 2693, 2693,
3902       735, 2693,  734, 2691, 2693,  733,  729, 2692, 2696, 2696,
3903      2696,  728, 2696,  727,  726, 2696, 2701, 2701, 2701, 2703,
3904      2703, 2703, 2704, 2704, 2704, 2707, 2707, 2707,  723, 2707,
3905       722,  721, 2707, 2701, 2701,  720, 2691, 2718, 2718, 2718,
3906      2727, 2727, 2727, 2741, 2741, 2741, 2742, 2742, 2742, 2743,
3907      2743, 2743,  719,  718, 2718,  717, 2692,  715, 2727,  712,
3908      2744, 2744, 2744,  711, 2744,  709, 2743, 2744, 2745, 2745,
3909      2745, 2746, 2746, 2746, 2747, 2747, 2747,  707, 2747,  704,
3910       703, 2747, 2748, 2748, 2748,  697, 2745,  695, 2746, 2727,
3911
3912      2749, 2749, 2749,  693, 2749,  690,  689, 2749,  685, 2748,
3913      2751, 2751, 2751,  684, 2751,  683,  682, 2751, 2756, 2756,
3914      2756, 2757, 2757, 2757,  679, 2757,  678,  677, 2757, 2745,
3915      2758, 2758, 2758,  676, 2758, 2756,  673, 2758, 2761, 2761,
3916      2761, 2762, 2762, 2762,  672, 2762,  671,  670, 2762, 2765,
3917      2765, 2765,  669, 2765,  663, 2761, 2765, 2768, 2768, 2768,
3918       662, 2768,  660,  654, 2768, 2771, 2771, 2771, 2772, 2772,
3919      2772, 2773, 2773, 2773,  653, 2773,  649,  642, 2773, 2774,
3920      2774, 2774, 2771,  638,  632, 2772, 2775, 2775, 2775,  628,
3921      2775,  620,  619, 2775,  618,  617, 2774, 2778, 2778, 2778,
3922
3923       616, 2778,  612,  605, 2778, 2787, 2787, 2787, 2788, 2788,
3924      2788, 2794, 2794, 2794,  604,  603, 2771, 2795, 2795, 2795,
3925      2796, 2796, 2796, 2787, 2796,  599, 2788, 2796, 2794, 2794,
3926      2797, 2797, 2797,  592, 2795, 2795,  591,  587, 2796, 2798,
3927      2798, 2798, 2799, 2799, 2799, 2800, 2800, 2800,  581,  580,
3928      2774, 2809, 2809, 2809, 2810, 2810, 2810,  576, 2810,  568,
3929       567, 2810, 2819, 2819, 2819, 2832, 2832, 2832, 2809, 2833,
3930      2833, 2833,  563,  554, 2788, 2834, 2834, 2834,  550, 2834,
3931      2819,  542, 2834, 2837, 2837, 2837, 2838, 2838, 2838,  541,
3932      2838,  540,  536, 2838,  530, 2841, 2841, 2841,  529, 2841,
3933
3934       528, 2837, 2841, 2847, 2847, 2847,  524, 2847,  518,  517,
3935      2847, 2850, 2850, 2850,  513, 2850,  507,  506, 2850, 2853,
3936      2853, 2853, 2855, 2855, 2855, 2856, 2856, 2856, 2819, 2856,
3937       505,  504, 2856, 2859, 2859, 2859, 2853,  503,  502, 2855,
3938      2874, 2874, 2874, 2876, 2876, 2876, 2882, 2882, 2882,  501,
3939      2859,  497, 2883, 2883, 2883,  491, 2883,  490, 2874, 2883,
3940       488, 2876,  487, 2882, 2882, 2884, 2884, 2884,  486, 2884,
3941      2883,  482, 2884, 2887, 2887, 2887, 2888, 2888, 2888, 2889,
3942      2889, 2889,  471, 2884, 2898, 2898, 2898,  470, 2898,  468,
3943       464, 2898,  458,  457, 2876, 2885, 2885, 2885, 2885, 2885,
3944
3945      2885, 2885, 2885, 2885,  456,  452, 2885, 2907, 2907, 2907,
3946       446, 2885, 2885, 2885, 2885, 2885, 2916, 2916, 2916, 2917,
3947      2917, 2917, 2922, 2922, 2922, 2907, 2923, 2923, 2923,  442,
3948      2923,  434,  432, 2923, 2925, 2925, 2925, 2917,  431, 2922,
3949      2885, 2885, 2886, 2886, 2886, 2886, 2886, 2886, 2886, 2886,
3950      2886, 2925,  430, 2886, 2927, 2927, 2927,  426, 2886, 2886,
3951      2886, 2886, 2886, 2926, 2926, 2926,  420, 2926,  419,  415,
3952      2926, 2927, 2928, 2928, 2928,  409, 2928,  408,  404, 2928,
3953      2941, 2941, 2941, 2966, 2966, 2966,  397, 2886, 2886, 2947,
3954      2947, 2947,  396, 2947,  395,  391, 2947,  384, 2941,  383,
3955
3956       382, 2966, 2999, 2999, 2999,  381,  377, 2947, 2950, 2950,
3957      2950, 2950, 2950, 2950, 2950, 2950, 2950,  368,  362, 2950,
3958      2999,  358,  357,  353, 2950, 2950, 2950, 2950, 2950, 2977,
3959      2977, 2977,  347, 2977,  346,  345, 2977, 2981, 2981, 2981,
3960       341, 2981,  334,  332, 2981, 2984, 2984, 2984,  331, 2984,
3961       327,  324, 2984, 2950, 2950, 2951, 2951, 2951, 2951, 2951,
3962      2951, 2951, 2951, 2951,  322,  321, 2951, 3011, 3011, 3011,
3963       320, 2951, 2951, 2951, 2951, 2951, 3026, 3026, 3026, 3027,
3964      3027, 3027, 3028, 3028, 3028, 3011, 3011, 3033, 3033, 3033,
3965      3044, 3044, 3044, 3026,  316,  312, 3027,  309,  305, 3028,
3966
3967      2951, 2951,  302,  301, 3033, 3048, 3048, 3048, 3044, 3057,
3968      3057, 3057, 3058, 3058, 3058,  293, 3058,  289,  285, 3058,
3969      3059, 3059, 3059, 3048,  284,  283, 3057, 3060, 3060, 3060,
3970       277, 3060,  276,  274, 3060,  271,  259, 3059, 3061, 3061,
3971      3061, 3062, 3062, 3062,    0, 3062,    0,    0, 3062, 3069,
3972      3069, 3069, 3079, 3079, 3079, 3061, 3048, 3070, 3070, 3070,
3973         0, 3070,    0,    0, 3070,    0, 3069, 3087, 3087, 3087,
3974      3079, 3087,    0,    0, 3087, 3090, 3090, 3090,    0, 3090,
3975         0,    0, 3090, 3093, 3093, 3093,    0, 3093,    0, 3079,
3976      3093, 3102, 3102, 3102,    0, 3102,    0,    0, 3102, 3209,
3977
3978      3209, 3209, 3218, 3218, 3218,    0, 3218,    0,    0, 3218,
3979      3319, 3319, 3319, 3320, 3320, 3320,    0, 3209,    0,    0,
3980      3218,    0,    0,    0,    0,    0,    0,    0, 3319,    0,
3981         0, 3320, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323,
3982      3323, 3324, 3324, 3324, 3324, 3324, 3324, 3324, 3324, 3324,
3983      3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3326,
3984      3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3327, 3327,
3985      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3328, 3328, 3328,
3986      3328, 3328, 3328, 3328, 3328, 3328, 3329, 3329, 3329, 3329,
3987      3329, 3329, 3329, 3329, 3329, 3330, 3330, 3330, 3330, 3330,
3988
3989      3330, 3330, 3330, 3330, 3331, 3331, 3331, 3331, 3331, 3331,
3990      3331, 3331, 3331, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
3991      3332, 3332, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
3992      3333, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334,
3993      3335, 3335, 3335, 3335, 3335, 3335, 3335, 3335, 3335, 3336,
3994      3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3337, 3337,
3995      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3338, 3338, 3338,
3996      3338, 3338, 3338, 3338, 3338, 3338, 3339, 3339, 3339, 3339,
3997      3339, 3339, 3339, 3339, 3339, 3340, 3340, 3340, 3340, 3340,
3998      3340, 3340, 3340, 3340, 3341, 3341, 3341, 3341, 3341, 3341,
3999
4000      3341, 3341, 3341, 3342, 3342, 3342, 3342, 3342, 3342, 3342,
4001      3342, 3342, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4002      3343, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
4003      3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3346,
4004      3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3347, 3347,
4005      3347, 3347, 3347, 3347, 3347, 3347, 3347, 3348, 3348, 3348,
4006      3348, 3348, 3348, 3348, 3348, 3348, 3349, 3349, 3349, 3349,
4007      3349, 3349, 3349, 3349, 3349, 3350, 3350, 3350, 3350, 3350,
4008      3350, 3350, 3350, 3350, 3351, 3351, 3351, 3351, 3351, 3351,
4009      3351, 3351, 3351, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
4010
4011      3352, 3352, 3353, 3353, 3353, 3353, 3353, 3353, 3353, 3353,
4012      3353, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354, 3354,
4013      3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3356,
4014      3356, 3356, 3356, 3356, 3356, 3356, 3356, 3356, 3357, 3357,
4015      3357, 3357, 3357, 3357, 3357, 3357, 3357, 3358, 3358, 3358,
4016      3358, 3358, 3358, 3358, 3358, 3358, 3359, 3359, 3359, 3359,
4017      3359, 3359, 3359, 3359, 3359, 3360, 3360, 3360, 3360, 3360,
4018      3360, 3360, 3360, 3360, 3361, 3361, 3361, 3361, 3361, 3361,
4019      3361, 3361, 3361, 3362, 3362, 3362, 3362, 3362, 3362, 3362,
4020      3362, 3362, 3363, 3363, 3363, 3363, 3363, 3363, 3363, 3363,
4021
4022      3363, 3364, 3364, 3364, 3364, 3364, 3364, 3364, 3364, 3364,
4023      3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3366,
4024      3366, 3366, 3366, 3366, 3366, 3366, 3366, 3366, 3367, 3367,
4025      3367, 3367, 3367, 3367, 3367, 3367, 3367, 3368, 3368, 3368,
4026      3368, 3368, 3368, 3368, 3368, 3368, 3369, 3369, 3369, 3369,
4027      3369, 3369, 3369, 3369, 3369, 3370, 3370, 3370, 3370, 3370,
4028      3370, 3370, 3370, 3370, 3371, 3371, 3371, 3371, 3371, 3371,
4029      3371, 3371, 3371, 3372, 3372, 3372, 3372, 3372, 3372, 3372,
4030      3372, 3372, 3373, 3373, 3373, 3373, 3373, 3373, 3373, 3373,
4031      3373, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374,
4032
4033      3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3376,
4034      3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3377, 3377,
4035      3377, 3377, 3377, 3377, 3377, 3377, 3377, 3378, 3378, 3378,
4036      3378, 3378, 3378, 3378, 3378, 3378, 3379, 3379, 3379, 3379,
4037      3379, 3379, 3379, 3379, 3379, 3380, 3380, 3380, 3380, 3380,
4038      3380, 3380, 3380, 3380, 3381, 3381, 3381, 3381, 3381, 3381,
4039      3381, 3381, 3381, 3382, 3382, 3382, 3382, 3382, 3382, 3382,
4040      3382, 3382, 3383, 3383, 3383, 3383, 3383, 3383, 3383, 3383,
4041      3383, 3384, 3384, 3384,    0,    0,    0, 3384, 3385, 3385,
4042      3385,    0,    0,    0, 3385, 3386, 3386, 3386,    0,    0,
4043
4044         0, 3386, 3387, 3387, 3387,    0,    0,    0, 3387, 3388,
4045      3388, 3388,    0,    0,    0, 3388, 3389, 3389, 3389,    0,
4046         0,    0, 3389, 3390, 3390, 3390,    0,    0,    0, 3390,
4047      3391, 3391, 3391,    0,    0,    0, 3391, 3392, 3392, 3392,
4048         0,    0,    0, 3392, 3393, 3393, 3393,    0,    0,    0,
4049      3393, 3394, 3394, 3394,    0,    0,    0, 3394, 3395, 3395,
4050      3395,    0,    0,    0, 3395, 3396, 3396, 3396,    0,    0,
4051         0, 3396, 3397, 3397, 3397,    0,    0,    0, 3397, 3398,
4052      3398, 3398,    0,    0,    0, 3398, 3399, 3399, 3399,    0,
4053         0,    0, 3399, 3400, 3400, 3400,    0,    0,    0, 3400,
4054
4055      3401, 3401, 3401,    0,    0,    0, 3401, 3402, 3402, 3402,
4056         0,    0,    0, 3402, 3403, 3403, 3403,    0,    0,    0,
4057      3403, 3404, 3404, 3404,    0,    0,    0, 3404, 3405, 3405,
4058      3405,    0,    0,    0, 3405, 3406, 3406, 3406,    0,    0,
4059         0, 3406, 3407, 3407, 3407,    0,    0,    0, 3407, 3408,
4060      3408, 3408,    0,    0,    0, 3408, 3409, 3409, 3409,    0,
4061         0,    0, 3409, 3410, 3410, 3410,    0,    0,    0, 3410,
4062      3411, 3411, 3411,    0,    0,    0, 3411, 3412, 3412, 3412,
4063      3412, 3412, 3412, 3412,    0, 3412, 3413, 3413, 3413,    0,
4064         0,    0, 3413, 3414,    0,    0,    0, 3414, 3415, 3415,
4065
4066      3415,    0,    0,    0, 3415, 3416,    0,    0,    0, 3416,
4067      3417, 3417, 3417,    0,    0,    0, 3417, 3418,    0,    0,
4068         0, 3418, 3419, 3419, 3419,    0,    0,    0, 3419, 3420,
4069         0,    0,    0, 3420, 3421, 3421, 3421,    0,    0,    0,
4070      3421, 3422,    0,    0,    0, 3422, 3423, 3423, 3423,    0,
4071         0,    0, 3423, 3424,    0,    0,    0, 3424, 3425, 3425,
4072      3425,    0,    0,    0, 3425, 3426,    0,    0,    0, 3426,
4073      3427, 3427, 3427,    0,    0,    0, 3427, 3428,    0,    0,
4074         0, 3428, 3429, 3429, 3429,    0,    0,    0, 3429, 3430,
4075         0,    0,    0, 3430, 3431, 3431, 3431,    0,    0,    0,
4076
4077      3431, 3432,    0,    0,    0, 3432, 3433, 3433, 3433,    0,
4078         0,    0, 3433, 3434,    0,    0,    0, 3434, 3435, 3435,
4079      3435,    0,    0,    0, 3435, 3436,    0,    0,    0, 3436,
4080      3437, 3437, 3437,    0,    0,    0, 3437, 3438,    0,    0,
4081         0, 3438, 3439, 3439, 3439,    0,    0,    0, 3439, 3440,
4082         0,    0,    0, 3440, 3441, 3441, 3441,    0,    0,    0,
4083      3441, 3442,    0,    0,    0, 3442, 3443, 3443, 3443,    0,
4084         0,    0, 3443, 3444,    0,    0,    0, 3444, 3445, 3445,
4085      3445,    0,    0,    0, 3445, 3446,    0,    0,    0, 3446,
4086      3447, 3447, 3447,    0,    0,    0, 3447, 3448,    0,    0,
4087
4088         0, 3448, 3449, 3449, 3449,    0,    0,    0, 3449, 3450,
4089         0,    0,    0, 3450, 3451, 3451, 3451,    0,    0,    0,
4090      3451, 3452,    0,    0,    0, 3452, 3453, 3453, 3453,    0,
4091         0,    0, 3453, 3454,    0,    0,    0, 3454, 3455, 3455,
4092      3455,    0,    0,    0, 3455, 3456,    0,    0,    0, 3456,
4093      3457, 3457, 3457,    0,    0,    0, 3457, 3458,    0,    0,
4094         0, 3458, 3459, 3459, 3459,    0,    0,    0, 3459, 3460,
4095         0,    0,    0, 3460, 3461, 3461, 3461,    0,    0,    0,
4096      3461, 3462,    0,    0,    0, 3462, 3463, 3463, 3463,    0,
4097         0,    0, 3463, 3464,    0,    0,    0, 3464, 3465, 3465,
4098
4099      3465,    0,    0,    0, 3465, 3466,    0,    0,    0, 3466,
4100      3467, 3467, 3467,    0,    0,    0, 3467, 3468,    0,    0,
4101         0, 3468, 3469, 3469, 3469, 3469, 3469, 3469, 3469, 3469,
4102      3469, 3470,    0,    0,    0,    0, 3470, 3471, 3471, 3471,
4103         0,    0,    0, 3471, 3472, 3472, 3472, 3472,    0,    0,
4104      3472, 3472, 3473, 3473, 3473,    0,    0,    0, 3473, 3474,
4105      3474, 3474, 3474,    0,    0, 3474, 3474, 3475, 3475, 3475,
4106         0,    0,    0, 3475, 3476, 3476, 3476, 3476,    0,    0,
4107      3476, 3476, 3477, 3477, 3477,    0,    0,    0, 3477, 3478,
4108      3478, 3478, 3478,    0,    0, 3478, 3478, 3479, 3479, 3479,
4109
4110         0,    0,    0, 3479, 3480, 3480, 3480, 3480,    0,    0,
4111      3480, 3480, 3481, 3481, 3481,    0,    0,    0, 3481, 3482,
4112      3482, 3482, 3482,    0,    0, 3482, 3482, 3483, 3483, 3483,
4113         0,    0,    0, 3483, 3484, 3484, 3484, 3484,    0,    0,
4114      3484, 3484, 3485, 3485, 3485,    0,    0,    0, 3485, 3486,
4115      3486, 3486, 3486,    0,    0, 3486, 3486, 3487, 3487, 3487,
4116         0,    0,    0, 3487, 3488, 3488, 3488, 3488,    0,    0,
4117      3488, 3488, 3489, 3489, 3489,    0,    0,    0, 3489, 3490,
4118      3490, 3490, 3490,    0,    0, 3490, 3490, 3491, 3491, 3491,
4119         0,    0,    0, 3491, 3492, 3492, 3492, 3492,    0,    0,
4120
4121      3492, 3492, 3493, 3493, 3493,    0,    0,    0, 3493, 3494,
4122      3494, 3494, 3494,    0,    0, 3494, 3494, 3495, 3495, 3495,
4123         0,    0,    0, 3495, 3496, 3496, 3496, 3496,    0,    0,
4124      3496, 3496, 3497, 3497, 3497,    0,    0,    0, 3497, 3498,
4125      3498, 3498, 3498,    0,    0, 3498, 3498, 3499, 3499, 3499,
4126      3499,    0, 3499,    0, 3499, 3500, 3500, 3500, 3500,    0,
4127         0, 3500, 3500, 3501, 3501, 3501,    0,    0,    0, 3501,
4128      3502, 3502, 3502, 3502,    0,    0, 3502, 3502, 3503, 3503,
4129      3503,    0,    0,    0, 3503, 3504, 3504, 3504, 3504,    0,
4130         0, 3504, 3504, 3505, 3505, 3505,    0,    0,    0, 3505,
4131
4132      3506, 3506, 3506, 3506,    0,    0, 3506, 3506, 3507, 3507,
4133      3507,    0,    0,    0, 3507, 3508, 3508, 3508, 3508,    0,
4134         0, 3508, 3508, 3509, 3509, 3509, 3509,    0, 3509,    0,
4135      3509, 3510, 3510, 3510, 3510,    0,    0, 3510, 3510, 3511,
4136      3511, 3511, 3511,    0, 3511,    0, 3511, 3512, 3512, 3512,
4137      3512,    0,    0, 3512, 3512, 3513, 3513, 3513,    0,    0,
4138         0, 3513, 3514, 3514, 3514, 3514,    0,    0, 3514, 3514,
4139      3515, 3515, 3515, 3515,    0, 3515,    0, 3515, 3516, 3516,
4140      3516, 3516,    0,    0, 3516, 3516, 3517, 3517, 3517, 3517,
4141         0, 3517,    0, 3517, 3518, 3518, 3518, 3518,    0,    0,
4142
4143      3518, 3518, 3519, 3519, 3519,    0,    0,    0, 3519, 3520,
4144      3520, 3520, 3520,    0,    0, 3520, 3520, 3521, 3521, 3521,
4145         0,    0,    0, 3521, 3522, 3522, 3522, 3522,    0,    0,
4146      3522, 3522, 3523, 3523, 3523, 3523,    0,    0, 3523, 3523,
4147      3524, 3524, 3524,    0,    0,    0, 3524, 3525, 3525, 3525,
4148      3525,    0,    0, 3525, 3525, 3526, 3526, 3526, 3526, 3526,
4149      3526, 3526, 3526, 3526, 3527,    0, 3527,    0,    0, 3527,
4150      3528, 3528, 3528,    0,    0,    0, 3528, 3529, 3529, 3529,
4151      3529,    0,    0, 3529, 3529, 3530, 3530, 3530, 3530,    0,
4152      3530,    0, 3530, 3531, 3531, 3531, 3531,    0,    0, 3531,
4153
4154      3531, 3532, 3532, 3532, 3532,    0, 3532,    0, 3532, 3533,
4155      3533, 3533, 3533,    0,    0, 3533, 3533, 3534, 3534, 3534,
4156         0,    0,    0, 3534, 3535, 3535, 3535, 3535,    0,    0,
4157      3535, 3535, 3536, 3536, 3536,    0,    0,    0, 3536, 3537,
4158      3537, 3537, 3537,    0,    0, 3537, 3537, 3538, 3538, 3538,
4159         0,    0,    0, 3538, 3539, 3539, 3539, 3539,    0,    0,
4160      3539, 3539, 3540, 3540, 3540,    0,    0,    0, 3540, 3541,
4161      3541, 3541, 3541,    0,    0, 3541, 3541, 3542, 3542, 3542,
4162         0,    0,    0, 3542, 3543, 3543, 3543, 3543,    0,    0,
4163      3543, 3543, 3544, 3544, 3544, 3544,    0, 3544,    0, 3544,
4164
4165      3545, 3545, 3545, 3545,    0,    0, 3545, 3545, 3546, 3546,
4166      3546, 3546,    0, 3546,    0, 3546, 3547, 3547, 3547, 3547,
4167         0,    0, 3547, 3547, 3548, 3548, 3548,    0,    0,    0,
4168      3548, 3549, 3549, 3549, 3549,    0,    0, 3549, 3549, 3550,
4169      3550, 3550, 3550,    0, 3550,    0, 3550, 3551, 3551, 3551,
4170      3551,    0,    0, 3551, 3551, 3552, 3552, 3552, 3552,    0,
4171      3552,    0, 3552, 3553, 3553, 3553, 3553,    0,    0, 3553,
4172      3553, 3554, 3554, 3554,    0,    0,    0, 3554, 3555, 3555,
4173      3555, 3555,    0,    0, 3555, 3555, 3556, 3556, 3556,    0,
4174         0,    0, 3556, 3557, 3557, 3557, 3557,    0,    0, 3557,
4175
4176      3557, 3558, 3558, 3558,    0,    0,    0, 3558, 3559, 3559,
4177      3559, 3559,    0,    0, 3559, 3559, 3560, 3560, 3560,    0,
4178         0,    0, 3560, 3561, 3561, 3561, 3561,    0,    0, 3561,
4179      3561, 3562, 3562, 3562,    0,    0,    0, 3562, 3563, 3563,
4180      3563, 3563,    0,    0, 3563, 3563, 3564, 3564, 3564,    0,
4181         0,    0, 3564, 3565, 3565, 3565, 3565,    0,    0, 3565,
4182      3565, 3566, 3566, 3566,    0,    0,    0, 3566, 3567, 3567,
4183      3567, 3567,    0,    0, 3567, 3567, 3568, 3568, 3568,    0,
4184         0,    0, 3568, 3569, 3569, 3569, 3569,    0,    0, 3569,
4185      3569, 3570, 3570, 3570,    0,    0,    0, 3570, 3571, 3571,
4186
4187      3571, 3571,    0,    0, 3571, 3571, 3572, 3572, 3572, 3572,
4188         0,    0, 3572, 3572, 3573, 3573, 3573,    0,    0,    0,
4189      3573, 3574, 3574, 3574, 3574,    0,    0, 3574, 3574, 3575,
4190      3575, 3575,    0,    0,    0, 3575, 3576, 3576, 3576, 3576,
4191         0,    0, 3576, 3576, 3577, 3577, 3577,    0,    0,    0,
4192      3577, 3578, 3578, 3578, 3578,    0,    0, 3578, 3578, 3579,
4193      3579, 3579, 3579,    0,    0, 3579, 3579, 3580, 3580, 3580,
4194         0,    0,    0, 3580, 3581, 3581, 3581, 3581,    0,    0,
4195      3581, 3581, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
4196      3582, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583,
4197
4198      3584, 3584, 3584,    0,    0,    0, 3584, 3585, 3585, 3585,
4199      3585,    0,    0, 3585, 3585, 3586, 3586, 3586, 3586,    0,
4200         0, 3586, 3586, 3587, 3587, 3587,    0,    0,    0, 3587,
4201      3588, 3588, 3588, 3588,    0,    0, 3588, 3588, 3589, 3589,
4202      3589,    0,    0,    0, 3589, 3590, 3590, 3590, 3590,    0,
4203         0, 3590, 3590, 3591, 3591, 3591,    0,    0,    0, 3591,
4204      3592, 3592, 3592, 3592,    0,    0, 3592, 3592, 3593, 3593,
4205      3593,    0,    0,    0, 3593, 3594, 3594, 3594,    0,    0,
4206         0, 3594, 3595, 3595, 3595, 3595,    0,    0, 3595, 3595,
4207      3596, 3596, 3596,    0,    0,    0, 3596, 3597, 3597, 3597,
4208
4209      3597,    0,    0, 3597, 3597, 3598, 3598, 3598,    0,    0,
4210         0, 3598, 3599, 3599, 3599, 3599,    0,    0, 3599, 3599,
4211      3600, 3600, 3600,    0,    0,    0, 3600, 3601, 3601, 3601,
4212      3601,    0,    0, 3601, 3601, 3602, 3602, 3602,    0,    0,
4213         0, 3602, 3603, 3603, 3603, 3603,    0,    0, 3603, 3603,
4214      3604, 3604, 3604, 3604,    0,    0, 3604, 3604, 3605, 3605,
4215      3605, 3605,    0,    0, 3605, 3605, 3606, 3606, 3606,    0,
4216         0,    0, 3606, 3607, 3607, 3607, 3607,    0,    0, 3607,
4217      3607, 3608, 3608, 3608, 3608,    0, 3608,    0, 3608, 3609,
4218      3609, 3609, 3609,    0,    0, 3609, 3609, 3610, 3610, 3610,
4219
4220         0,    0,    0, 3610, 3611, 3611, 3611, 3611,    0,    0,
4221      3611, 3611, 3612, 3612, 3612,    0,    0,    0, 3612, 3613,
4222      3613, 3613, 3613,    0,    0, 3613, 3613, 3614, 3614, 3614,
4223         0,    0,    0, 3614, 3615, 3615, 3615, 3615,    0,    0,
4224      3615, 3615, 3616, 3616, 3616,    0,    0,    0, 3616, 3617,
4225      3617, 3617, 3617,    0,    0, 3617, 3617, 3618, 3618, 3618,
4226         0,    0,    0, 3618, 3619, 3619, 3619, 3619,    0,    0,
4227      3619, 3619, 3620, 3620, 3620,    0,    0,    0, 3620, 3621,
4228      3621, 3621, 3621,    0,    0, 3621, 3621, 3622, 3622, 3622,
4229         0,    0,    0, 3622, 3623, 3623, 3623, 3623,    0,    0,
4230
4231      3623, 3623, 3624, 3624, 3624, 3624,    0,    0, 3624, 3624,
4232      3625, 3625, 3625,    0,    0,    0, 3625, 3626, 3626, 3626,
4233      3626,    0,    0, 3626, 3626, 3627, 3627, 3627,    0,    0,
4234         0, 3627, 3628, 3628, 3628, 3628,    0,    0, 3628, 3628,
4235      3629, 3629, 3629, 3629,    0, 3629,    0, 3629, 3630, 3630,
4236      3630, 3630,    0,    0, 3630, 3630, 3631, 3631, 3631, 3631,
4237         0,    0, 3631, 3631, 3632, 3632, 3632, 3632,    0, 3632,
4238         0, 3632, 3633, 3633, 3633, 3633,    0,    0, 3633, 3633,
4239      3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3635,
4240      3635, 3635, 3635, 3635, 3635, 3635, 3635, 3635, 3636, 3636,
4241
4242      3636,    0,    0,    0, 3636, 3637, 3637, 3637, 3637,    0,
4243         0, 3637, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638,
4244      3638, 3639, 3639, 3639,    0,    0,    0, 3639, 3640, 3640,
4245      3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641,    0,
4246         0,    0, 3641, 3642, 3642, 3642, 3642,    0,    0, 3642,
4247      3642, 3643, 3643, 3643,    0,    0,    0, 3643, 3644, 3644,
4248      3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,    0,
4249         0,    0, 3645, 3646, 3646, 3646,    0,    0,    0, 3646,
4250      3647, 3647, 3647, 3647,    0,    0, 3647, 3647, 3648, 3648,
4251      3648,    0,    0,    0, 3648, 3649, 3649, 3649, 3649,    0,
4252
4253         0, 3649, 3649, 3650, 3650, 3650,    0,    0,    0, 3650,
4254      3651, 3651, 3651, 3651,    0,    0, 3651, 3651, 3652, 3652,
4255      3652, 3652,    0, 3652,    0, 3652, 3653, 3653, 3653, 3653,
4256         0,    0, 3653, 3653, 3654, 3654, 3654,    0,    0,    0,
4257      3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655, 3656,
4258      3656, 3656, 3656,    0,    0, 3656, 3656, 3657, 3657, 3657,
4259         0,    0,    0, 3657, 3658, 3658, 3658, 3658,    0,    0,
4260      3658, 3658, 3659, 3659, 3659, 3659,    0, 3659,    0, 3659,
4261      3660, 3660, 3660, 3660,    0,    0, 3660, 3660, 3661, 3661,
4262      3661,    0,    0,    0, 3661, 3662, 3662, 3662, 3662,    0,
4263
4264         0, 3662, 3662, 3663, 3663, 3663,    0,    0,    0, 3663,
4265      3664, 3664, 3664, 3664,    0,    0, 3664, 3664, 3665, 3665,
4266      3665,    0,    0,    0, 3665, 3666, 3666, 3666, 3666,    0,
4267         0, 3666, 3666, 3667, 3667, 3667,    0,    0,    0, 3667,
4268      3668, 3668, 3668, 3668,    0,    0, 3668, 3668, 3669, 3669,
4269      3669,    0,    0,    0, 3669, 3670, 3670, 3670, 3670,    0,
4270         0, 3670, 3670, 3671, 3671, 3671, 3671,    0, 3671,    0,
4271      3671, 3672, 3672, 3672, 3672,    0,    0, 3672, 3672, 3673,
4272      3673, 3673,    0,    0,    0, 3673, 3674, 3674, 3674, 3674,
4273         0,    0, 3674, 3674, 3675, 3675, 3675, 3675,    0,    0,
4274
4275      3675, 3675, 3676, 3676, 3676, 3676,    0, 3676,    0, 3676,
4276      3677, 3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678,
4277      3678,    0,    0,    0, 3678, 3679, 3679, 3679, 3679,    0,
4278         0, 3679, 3679, 3680, 3680, 3680, 3680,    0,    0, 3680,
4279      3680, 3681, 3681, 3681, 3681,    0,    0, 3681, 3681, 3682,
4280      3682, 3682, 3682,    0,    0, 3682, 3682, 3683, 3683, 3683,
4281      3683, 3683, 3683, 3683, 3683, 3683, 3684, 3684, 3684, 3684,
4282      3684, 3684, 3684, 3684, 3684, 3685, 3685, 3685, 3685,    0,
4283      3685,    0, 3685, 3686, 3686, 3686, 3686,    0,    0, 3686,
4284      3686, 3687, 3687, 3687, 3687,    0,    0, 3687, 3687, 3688,
4285
4286      3688, 3688,    0,    0,    0, 3688, 3689, 3689, 3689, 3689,
4287         0,    0, 3689, 3689, 3690, 3690, 3690,    0,    0,    0,
4288      3690, 3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692,
4289      3692, 3692, 3692,    0, 3692,    0, 3692, 3693, 3693, 3693,
4290      3693,    0,    0, 3693, 3693, 3694, 3694, 3694, 3694,    0,
4291      3694,    0, 3694, 3695, 3695, 3695, 3695,    0, 3695,    0,
4292      3695, 3696, 3696, 3696, 3696,    0,    0, 3696, 3696, 3697,
4293      3697, 3697, 3697,    0, 3697,    0, 3697, 3698, 3698, 3698,
4294      3698,    0,    0, 3698, 3698, 3699, 3699, 3699,    0,    0,
4295         0, 3699, 3700, 3700, 3700, 3700,    0,    0, 3700, 3700,
4296
4297      3701, 3701, 3701, 3701,    0,    0, 3701, 3701, 3702, 3702,
4298      3702,    0,    0,    0, 3702, 3703, 3703, 3703, 3703,    0,
4299         0, 3703, 3703, 3704, 3704, 3704,    0,    0,    0, 3704,
4300      3705, 3705, 3705, 3705,    0,    0, 3705, 3705, 3706, 3706,
4301      3706, 3706,    0, 3706,    0, 3706, 3707, 3707, 3707, 3707,
4302         0,    0, 3707, 3707, 3708, 3708, 3708,    0,    0,    0,
4303      3708, 3709, 3709, 3709,    0,    0,    0, 3709, 3710, 3710,
4304      3710, 3710,    0,    0, 3710, 3710, 3711, 3711, 3711,    0,
4305         0,    0, 3711, 3712, 3712, 3712, 3712,    0,    0, 3712,
4306      3712, 3713, 3713, 3713,    0,    0,    0, 3713, 3714, 3714,
4307
4308      3714,    0,    0,    0, 3714, 3715, 3715, 3715, 3715,    0,
4309         0, 3715, 3715, 3716, 3716, 3716,    0,    0,    0, 3716,
4310      3717, 3717, 3717, 3717,    0,    0, 3717, 3717, 3718, 3718,
4311      3718,    0,    0,    0, 3718, 3719, 3719, 3719, 3719,    0,
4312         0, 3719, 3719, 3720, 3720, 3720, 3720,    0,    0, 3720,
4313      3720, 3721, 3721, 3721, 3721,    0,    0, 3721, 3721, 3722,
4314      3722, 3722,    0,    0,    0, 3722, 3723, 3723, 3723, 3723,
4315         0,    0, 3723, 3723, 3724, 3724, 3724, 3724,    0,    0,
4316      3724, 3724, 3725, 3725, 3725, 3725,    0,    0, 3725, 3725,
4317      3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3727,
4318
4319      3727, 3727, 3727, 3727, 3727, 3727, 3727, 3727, 3728, 3728,
4320      3728, 3728,    0,    0, 3728, 3728, 3729, 3729, 3729, 3729,
4321         0,    0, 3729, 3729, 3730, 3730, 3730,    0,    0,    0,
4322      3730, 3731, 3731, 3731,    0,    0,    0, 3731, 3732, 3732,
4323      3732, 3732,    0,    0, 3732, 3732, 3733, 3733, 3733, 3733,
4324         0,    0, 3733, 3733, 3734, 3734, 3734,    0,    0,    0,
4325      3734, 3735, 3735, 3735, 3735,    0,    0, 3735, 3735, 3736,
4326      3736, 3736,    0,    0,    0, 3736, 3737, 3737, 3737, 3737,
4327         0,    0, 3737, 3737, 3738, 3738, 3738,    0,    0,    0,
4328      3738, 3739, 3739, 3739, 3739,    0,    0, 3739, 3739, 3740,
4329
4330      3740, 3740,    0,    0,    0, 3740, 3741, 3741, 3741, 3741,
4331         0,    0, 3741, 3741, 3742, 3742, 3742,    0,    0,    0,
4332      3742, 3743, 3743, 3743, 3743,    0,    0, 3743, 3743, 3744,
4333      3744, 3744, 3744,    0,    0, 3744, 3744, 3745, 3745, 3745,
4334         0,    0,    0, 3745, 3746, 3746, 3746,    0,    0,    0,
4335      3746, 3747, 3747, 3747, 3747,    0,    0, 3747, 3747, 3748,
4336      3748, 3748,    0,    0,    0, 3748, 3749, 3749, 3749, 3749,
4337         0,    0, 3749, 3749, 3750, 3750, 3750,    0,    0,    0,
4338      3750, 3751, 3751, 3751,    0,    0,    0, 3751, 3752, 3752,
4339      3752,    0,    0,    0, 3752, 3753, 3753, 3753, 3753,    0,
4340
4341         0, 3753, 3753, 3754, 3754, 3754,    0,    0,    0, 3754,
4342      3755, 3755, 3755, 3755,    0,    0, 3755, 3755, 3756, 3756,
4343      3756, 3756,    0,    0, 3756, 3756, 3757, 3757, 3757, 3757,
4344         0,    0, 3757, 3757, 3758, 3758, 3758, 3758,    0, 3758,
4345         0, 3758, 3759, 3759, 3759, 3759,    0,    0, 3759, 3759,
4346      3760, 3760, 3760, 3760,    0,    0, 3760, 3760, 3761, 3761,
4347      3761, 3761,    0,    0, 3761, 3761, 3762, 3762, 3762, 3762,
4348      3762, 3762, 3762, 3762, 3762, 3763, 3763, 3763, 3763, 3763,
4349      3763, 3763, 3763, 3763, 3764, 3764, 3764, 3764,    0,    0,
4350      3764, 3764, 3765, 3765, 3765, 3765,    0,    0, 3765, 3765,
4351
4352      3766, 3766, 3766,    0,    0,    0, 3766, 3767, 3767, 3767,
4353      3767,    0, 3767,    0, 3767, 3768, 3768, 3768, 3768,    0,
4354         0, 3768, 3768, 3769, 3769, 3769,    0,    0,    0, 3769,
4355      3770, 3770, 3770, 3770,    0,    0, 3770, 3770, 3771, 3771,
4356      3771,    0,    0,    0, 3771, 3772, 3772, 3772, 3772,    0,
4357         0, 3772, 3772, 3773, 3773, 3773, 3773,    0, 3773,    0,
4358      3773, 3774, 3774, 3774, 3774,    0,    0, 3774, 3774, 3775,
4359      3775, 3775,    0,    0,    0, 3775, 3776, 3776, 3776, 3776,
4360         0,    0, 3776, 3776, 3777, 3777, 3777,    0,    0,    0,
4361      3777, 3778, 3778, 3778, 3778,    0,    0, 3778, 3778, 3779,
4362
4363      3779, 3779, 3779,    0,    0, 3779, 3779, 3780, 3780, 3780,
4364         0,    0,    0, 3780, 3781, 3781, 3781,    0,    0,    0,
4365      3781, 3782, 3782, 3782, 3782,    0, 3782,    0, 3782, 3783,
4366      3783, 3783, 3783,    0,    0, 3783, 3783, 3784, 3784, 3784,
4367      3784,    0, 3784,    0, 3784, 3785, 3785, 3785,    0,    0,
4368         0, 3785, 3786, 3786, 3786,    0,    0,    0, 3786, 3787,
4369      3787, 3787, 3787,    0,    0, 3787, 3787, 3788, 3788, 3788,
4370      3788,    0, 3788,    0, 3788, 3789, 3789, 3789, 3789,    0,
4371         0, 3789, 3789, 3790, 3790, 3790, 3790,    0,    0, 3790,
4372      3790, 3791, 3791, 3791, 3791,    0,    0, 3791, 3791, 3792,
4373
4374      3792, 3792, 3792,    0, 3792,    0, 3792, 3793, 3793, 3793,
4375      3793,    0,    0, 3793, 3793, 3794, 3794, 3794, 3794,    0,
4376         0, 3794, 3794, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
4377      3795, 3795, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796,
4378      3796, 3797, 3797, 3797, 3797,    0,    0, 3797, 3797, 3798,
4379      3798, 3798,    0,    0,    0, 3798, 3799, 3799, 3799,    0,
4380         0,    0, 3799, 3800, 3800, 3800, 3800,    0,    0, 3800,
4381      3800, 3801, 3801, 3801,    0,    0,    0, 3801, 3802, 3802,
4382      3802, 3802,    0,    0, 3802, 3802, 3803, 3803, 3803,    0,
4383         0,    0, 3803, 3804, 3804, 3804, 3804,    0,    0, 3804,
4384
4385      3804, 3805, 3805, 3805,    0,    0,    0, 3805, 3806, 3806,
4386      3806, 3806,    0,    0, 3806, 3806, 3807, 3807, 3807,    0,
4387         0,    0, 3807, 3808, 3808, 3808,    0,    0,    0, 3808,
4388      3809, 3809, 3809,    0,    0,    0, 3809, 3810, 3810, 3810,
4389      3810, 3810, 3810, 3810, 3810, 3810, 3811, 3811, 3811, 3811,
4390      3811, 3811, 3811, 3811, 3811, 3812, 3812, 3812, 3812, 3812,
4391      3812, 3812, 3812, 3812, 3813, 3813, 3813, 3813, 3813, 3813,
4392      3813, 3813, 3813, 3814, 3814, 3814, 3814, 3814, 3814, 3814,
4393      3814, 3814, 3815, 3815, 3815, 3815, 3815, 3815, 3815, 3815,
4394      3815, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4395
4396      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4397      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4398      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4399      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4400      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4401      3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322, 3322,
4402      3322, 3322, 3322, 3322, 3322, 3322
4403     } ;
4404
4405 /* Table of booleans, true if rule could match eol. */
4406 static yyconst flex_int32_t yy_rule_can_match_eol[569] =
4407     {   0,
4408 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4409     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4410     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4411     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4412     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4413     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4414     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4415     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4416     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4417     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4418     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4419     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4420     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4421     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4422     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4423     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4424     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4425     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4426     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4427     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4428     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4429     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4430     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4431     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4432     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4433     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
4434     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4435     0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 
4436     0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4437
4438 static yy_state_type yy_last_accepting_state;
4439 static char *yy_last_accepting_cpos;
4440
4441 extern int surf_parse__flex_debug;
4442 int surf_parse__flex_debug = 0;
4443
4444 /* The intent behind this definition is that it'll catch
4445  * any uses of REJECT which flex missed.
4446  */
4447 #define REJECT reject_used_but_not_detected
4448 #define yymore() yymore_used_but_not_detected
4449 #define YY_MORE_ADJ 0
4450 #define YY_RESTORE_YY_MORE_OFFSET
4451 char *surf_parse_text;
4452 /* Validating XML processor for src/surf/simgrid.dtd.
4453  *
4454  * This program was generated with the FleXML XML processor generator.
4455  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4456  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4457  * (1.9.6).
4458  * 
4459  * There are two, intertwined parts to this program, part A and part B.
4460  *
4461  * Part A
4462  * ------
4463  * 
4464  * Some parts, here collectively called "Part A", are found in the 
4465  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4466  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4467  *
4468  * You can redistribute, use, perform, display and/or modify "Part A"
4469  * provided the following two conditions hold:
4470  *
4471  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4472  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4473  *    FITNESS FOR A PARTICULAR PURPOSE.
4474  *
4475  * 2. The program distribution conditions do not in any way affect the
4476  *    distribution conditions of the FleXML system used to generate this
4477  *    file or any version of FleXML derived from that system.
4478  *
4479  * Notice that these are explicit rights granted to you for files
4480  * generated by the FleXML system.  For your rights in connection with
4481  * the FleXML system itself please consult the GNU General Public License.
4482  * 
4483  * Part B
4484  * ------
4485  * 
4486  * The other parts, here collectively called "Part B", and which came 
4487  * from the DTD used by FleXML to generate this program, can be 
4488  * distributed (or not, as the case may be) under the terms of whoever
4489  * wrote them, provided these terms respect and obey the two conditions 
4490  * above under the heading "Part A".
4491  *
4492  * The author of and contributors to FleXML specifically disclaim
4493  * any copyright interest in "Part B", unless "Part B" was written 
4494  * by the author of or contributors to FleXML.
4495  * 
4496  */
4497
4498 /* Version strings. */
4499 const char surfxml_flexml_version[] = "1.9.6";
4500
4501 /* ANSI headers. */
4502 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4503 #include <stdio.h>
4504 #include <string.h>
4505 #include <assert.h>
4506 #include <stdarg.h>
4507 #include <ctype.h>
4508      
4509 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4510 # ifndef __STRICT_ANSI__
4511 #  include <io.h>
4512 #  include <process.h>
4513 # endif
4514 #else
4515 # include <unistd.h>
4516 #endif
4517      
4518 #ifndef FLEXML_INDEXSTACKSIZE
4519 #define FLEXML_INDEXSTACKSIZE 1000
4520 #endif
4521
4522 /* Generated definitions. */
4523 #define FLEXML_yylineno
4524 #ifndef FLEXML_BUFFERSTACKSIZE
4525 #define FLEXML_BUFFERSTACKSIZE 1000000
4526 #endif
4527 #define FLEXML_NEED_BUFFERLIT
4528
4529 /* XML processor api. */
4530 /* FleXML-provided data. */
4531 int surfxml_pcdata_ix;
4532 extern char *surfxml_bufferstack;
4533 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4534 AT_surfxml_mount_name AX_surfxml_mount_name;
4535 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4536 short int surfxml_mount_name_isset;
4537 AT_surfxml_random_generator AX_surfxml_random_generator;
4538 #define A_surfxml_random_generator AX_surfxml_random_generator
4539 short int surfxml_random_generator_isset;
4540 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4541 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4542 short int surfxml_ASroute_gw___dst_isset;
4543 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4544 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4545 short int surfxml_trace___connect_element_isset;
4546 AT_surfxml_prop_id AX_surfxml_prop_id;
4547 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4548 short int surfxml_prop_id_isset;
4549 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4550 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4551 short int surfxml_host___link_up_isset;
4552 AT_surfxml_host_id AX_surfxml_host_id;
4553 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4554 short int surfxml_host_id_isset;
4555 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4556 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4557 short int surfxml_ASroute_symmetrical_isset;
4558 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4559 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4560 short int surfxml_peer_lat_isset;
4561 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4562 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4563 short int surfxml_process_on___failure_isset;
4564 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4565 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4566 short int surfxml_link_latency___file_isset;
4567 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4568 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4569 short int surfxml_peer_availability___file_isset;
4570 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4571 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4572 short int surfxml_link___ctn_direction_isset;
4573 AT_surfxml_host_state AX_surfxml_host_state;
4574 #define A_surfxml_host_state AX_surfxml_host_state
4575 short int surfxml_host_state_isset;
4576 AT_surfxml_AS_id AX_surfxml_AS_id;
4577 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4578 short int surfxml_AS_id_isset;
4579 AT_surfxml_host_power AX_surfxml_host_power;
4580 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4581 short int surfxml_host_power_isset;
4582 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4583 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4584 short int surfxml_cabinet_suffix_isset;
4585 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4586 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4587 short int surfxml_gpu_name_isset;
4588 AT_surfxml_router_id AX_surfxml_router_id;
4589 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4590 short int surfxml_router_id_isset;
4591 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4592 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4593 short int surfxml_storage___type_id_isset;
4594 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4595 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4596 short int surfxml_process_start___time_isset;
4597 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4598 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4599 short int surfxml_cabinet_bw_isset;
4600 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4601 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4602 short int surfxml_cluster_suffix_isset;
4603 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4604 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4605 short int surfxml_bypassASroute_dst_isset;
4606 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4607 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4608 short int surfxml_host___link_id_isset;
4609 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4610 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4611 short int surfxml_ASroute_src_isset;
4612 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4613 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4614 short int surfxml_cluster_prefix_isset;
4615 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4616 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4617 short int surfxml_cabinet_prefix_isset;
4618 AT_surfxml_trace_file AX_surfxml_trace_file;
4619 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4620 short int surfxml_trace_file_isset;
4621 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4622 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4623 short int surfxml_link_sharing___policy_isset;
4624 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4625 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4626 short int surfxml_storage_typeId_isset;
4627 AT_surfxml_random_min AX_surfxml_random_min;
4628 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4629 short int surfxml_random_min_isset;
4630 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4631 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4632 short int surfxml_link___ctn_id_isset;
4633 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4634 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4635 short int surfxml_peer_bw___out_isset;
4636 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4637 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4638 short int surfxml_cluster_availability___file_isset;
4639 AT_surfxml_storage_content AX_surfxml_storage_content;
4640 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4641 short int surfxml_storage_content_isset;
4642 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4643 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4644 short int surfxml_process_kill___time_isset;
4645 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4646 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4647 short int surfxml_cluster_bb___bw_isset;
4648 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4649 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4650 short int surfxml_host_pstate_isset;
4651 AT_surfxml_argument_value AX_surfxml_argument_value;
4652 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4653 short int surfxml_argument_value_isset;
4654 AT_surfxml_link_state AX_surfxml_link_state;
4655 #define A_surfxml_link_state AX_surfxml_link_state
4656 short int surfxml_link_state_isset;
4657 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4658 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4659 short int surfxml_cluster_loopback___bw_isset;
4660 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4661 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4662 short int surfxml_ASroute_gw___src_isset;
4663 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4664 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4665 short int surfxml_AS_routing_isset;
4666 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4667 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4668 short int surfxml_link_bandwidth_isset;
4669 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4670 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4671 short int surfxml_cluster_id_isset;
4672 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4673 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4674 short int surfxml_peer_bw___in_isset;
4675 AT_surfxml_random_mean AX_surfxml_random_mean;
4676 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4677 short int surfxml_random_mean_isset;
4678 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4679 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4680 short int surfxml_storage___type_size_isset;
4681 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4682 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4683 short int surfxml_cluster_bb___lat_isset;
4684 AT_surfxml_link_latency AX_surfxml_link_latency;
4685 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4686 short int surfxml_link_latency_isset;
4687 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4688 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4689 short int surfxml_backbone_bandwidth_isset;
4690 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4691 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4692 short int surfxml_backbone_id_isset;
4693 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4694 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4695 short int surfxml_trace___connect_kind_isset;
4696 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4697 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4698 short int surfxml_cabinet_lat_isset;
4699 AT_surfxml_random_seed AX_surfxml_random_seed;
4700 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4701 short int surfxml_random_seed_isset;
4702 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4703 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4704 short int surfxml_cluster_state___file_isset;
4705 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4706 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4707 short int surfxml_link_bandwidth___file_isset;
4708 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4709 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4710 short int surfxml_storage___type_content_isset;
4711 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4712 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4713 short int surfxml_route_symmetrical_isset;
4714 AT_surfxml_random_id AX_surfxml_random_id;
4715 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4716 short int surfxml_random_id_isset;
4717 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4718 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4719 short int surfxml_mstorage_name_isset;
4720 AT_surfxml_random_max AX_surfxml_random_max;
4721 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4722 short int surfxml_random_max_isset;
4723 AT_surfxml_link_id AX_surfxml_link_id;
4724 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4725 short int surfxml_link_id_isset;
4726 AT_surfxml_process_host AX_surfxml_process_host;
4727 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4728 short int surfxml_process_host_isset;
4729 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4730 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4731 short int surfxml_cabinet_id_isset;
4732 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4733 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4734 short int surfxml_host_availability___file_isset;
4735 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4736 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4737 short int surfxml_cluster_lat_isset;
4738 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4739 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4740 short int surfxml_router_coordinates_isset;
4741 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4742 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4743 short int surfxml_trace_periodicity_isset;
4744 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4745 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4746 short int surfxml_cluster_bb___sharing___policy_isset;
4747 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4748 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4749 short int surfxml_peer_state___file_isset;
4750 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4751 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4752 short int surfxml_peer_coordinates_isset;
4753 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4754 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4755 short int surfxml_bypassASroute_src_isset;
4756 AT_surfxml_prop_value AX_surfxml_prop_value;
4757 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4758 short int surfxml_prop_value_isset;
4759 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4760 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4761 short int surfxml_mstorage_typeId_isset;
4762 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4763 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4764 short int surfxml_ASroute_dst_isset;
4765 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4766 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4767 short int surfxml_link_state___file_isset;
4768 AT_surfxml_random_radical AX_surfxml_random_radical;
4769 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4770 short int surfxml_random_radical_isset;
4771 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4772 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4773 short int surfxml_mount_storageId_isset;
4774 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4775 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4776 short int surfxml_bypassASroute_gw___src_isset;
4777 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4778 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4779 short int surfxml_trace___connect_trace_isset;
4780 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4781 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4782 short int surfxml_cluster_power_isset;
4783 AT_surfxml_process_function AX_surfxml_process_function;
4784 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4785 short int surfxml_process_function_isset;
4786 AT_surfxml_peer_id AX_surfxml_peer_id;
4787 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4788 short int surfxml_peer_id_isset;
4789 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4790 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4791 short int surfxml_cabinet_radical_isset;
4792 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4793 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4794 short int surfxml_storage_content___type_isset;
4795 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4796 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4797 short int surfxml_cluster_router___id_isset;
4798 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4799 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4800 short int surfxml_cluster_loopback___lat_isset;
4801 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4802 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4803 short int surfxml_cluster_sharing___policy_isset;
4804 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4805 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4806 short int surfxml_bypassRoute_dst_isset;
4807 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4808 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4809 short int surfxml_cabinet_power_isset;
4810 AT_surfxml_host_core AX_surfxml_host_core;
4811 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4812 short int surfxml_host_core_isset;
4813 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4814 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4815 short int surfxml_storage___type_model_isset;
4816 AT_surfxml_host_availability AX_surfxml_host_availability;
4817 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4818 short int surfxml_host_availability_isset;
4819 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4820 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4821 short int surfxml_bypassRoute_src_isset;
4822 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4823 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4824 short int surfxml_backbone_latency_isset;
4825 AT_surfxml_route_src AX_surfxml_route_src;
4826 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4827 short int surfxml_route_src_isset;
4828 AT_surfxml_storage_id AX_surfxml_storage_id;
4829 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4830 short int surfxml_storage_id_isset;
4831 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4832 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4833 short int surfxml_storage___type_content___type_isset;
4834 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4835 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4836 short int surfxml_host_coordinates_isset;
4837 AT_surfxml_trace_id AX_surfxml_trace_id;
4838 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4839 short int surfxml_trace_id_isset;
4840 AT_surfxml_peer_power AX_surfxml_peer_power;
4841 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4842 short int surfxml_peer_power_isset;
4843 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4844 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4845 short int surfxml_cluster_radical_isset;
4846 AT_surfxml_config_id AX_surfxml_config_id;
4847 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4848 short int surfxml_config_id_isset;
4849 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4850 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4851 short int surfxml_bypassASroute_gw___dst_isset;
4852 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4853 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4854 short int surfxml_host___link_down_isset;
4855 AT_surfxml_include_file AX_surfxml_include_file;
4856 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4857 short int surfxml_include_file_isset;
4858 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4859 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4860 short int surfxml_random_std___deviation_isset;
4861 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4862 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4863 short int surfxml_cluster_core_isset;
4864 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4865 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4866 short int surfxml_cluster_limiter___link_isset;
4867 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4868 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4869 short int surfxml_host_state___file_isset;
4870 AT_surfxml_route_dst AX_surfxml_route_dst;
4871 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4872 short int surfxml_route_dst_isset;
4873 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4874 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4875 short int surfxml_cluster_bw_isset;
4876 AT_surfxml_platform_version AX_surfxml_platform_version;
4877 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4878 short int surfxml_platform_version_isset;
4879
4880 /* XML state. */
4881 #ifdef FLEX_DEBUG
4882 # define ENTER(state)   debug_enter(state,#state)
4883 # define LEAVE          debug_leave()
4884 # define SET(state)     debug_set(state,#state)
4885   static void debug_enter(int, const char*);
4886   static void debug_leave(void);
4887   static void debug_set(int, const char*);
4888 #else
4889 # define ENTER(state)   (yy_push_state(state))
4890 # define LEAVE          (yy_pop_state())
4891 # define SET(state)     BEGIN(state)
4892 #endif
4893
4894 /* Generic actions. */
4895 #define SKIP    /*skip*/
4896 #define SUCCEED        CLEANUP; return 0
4897
4898 #define FAIL    return fail
4899 static int fail(const char*, ...);
4900
4901 enum {flexml_max_err_msg_size = 512};
4902 static char flexml_err_msg[flexml_max_err_msg_size];
4903 const char * surfxml_parse_err_msg()
4904 {
4905     return flexml_err_msg;
4906 }
4907 static void reset_surfxml_parse_err_msg()
4908 {
4909     flexml_err_msg[0] = '\0';
4910 }
4911
4912 /* Cleanup */
4913 static void cleanup(void);
4914 #define CLEANUP  cleanup()
4915
4916 /* Text buffer stack handling. */
4917 char *surfxml_bufferstack = NULL;
4918 static int blimit = FLEXML_BUFFERSTACKSIZE;
4919 static int bnext = 1;
4920
4921 static int *indexstack = NULL;
4922 static int ilimit = FLEXML_INDEXSTACKSIZE;
4923 static int inext = 1;
4924
4925 #define BUFFERSET(P)  (P = bnext)
4926 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4927 #define BUFFERDONE    (BUFFERPUTC('\0'))
4928
4929 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4930
4931 /* after this is called, there are at least 2 slots left in the stack */
4932 static int ck_blimit()
4933 {
4934      if (bnext >= blimit) {
4935          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4936          {
4937              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4938              assert(temp);
4939              surfxml_bufferstack = temp;
4940          }
4941      }
4942      return 0;
4943 }
4944
4945 /* after this is called, there are at least 2 slots left in the stack */
4946 static int ck_ilimit()
4947 {
4948      if (inext >= ilimit) {
4949          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4950          {
4951              int *temp = (int *) realloc(indexstack, ilimit);
4952              assert(temp);
4953              indexstack = temp;
4954          }
4955      }
4956      return 0;
4957 }
4958
4959 #ifdef FLEXML_NEED_BUFFERLIT
4960 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4961 {
4962    BUFFERSET(*pp);
4963    if (c) {
4964       const char *s = strchr(text, c), *e = strrchr(text, c);
4965       assert(s && e && s <= e);
4966       ++s;
4967       while (s < e) {
4968          if (isspace(*s)) {
4969             BUFFERPUTC(' ');
4970             do ++s; while (s < e && isspace(*s));
4971          } else
4972            BUFFERPUTC(*s++);
4973       }
4974    } else {
4975       const char *s = text;
4976       while (*s)
4977         BUFFERPUTC(*s++);
4978    }
4979    BUFFERDONE;
4980 }
4981 #endif
4982
4983 static void pushbuffer(int p)
4984 {
4985     ck_ilimit();
4986     indexstack[inext++] = p;
4987     indexstack[inext++] = bnext;    
4988 }
4989
4990 static int popbuffer(void)
4991 {
4992     assert(inext >= 2);
4993     bnext = indexstack[--inext];
4994     return indexstack[--inext];
4995 }
4996
4997 /* General internal entities are `unput' back onto the input stream... */
4998 #define ENTITYTEXT(T) \
4999   { char *s = (T), *e = s+strlen(s);\
5000     while (--e >= s) { unput(*e); }}
5001
5002 /* Flex standard options. */
5003 #define YY_NO_INPUT 1
5004 /* Flex user-requested options. */
5005 /* XML character classes (currently restricted to ASCII). */
5006 /* "Common syntactic structures." */
5007 /* "Names and Tokens." */
5008 /* Miscellaneous. */
5009 /* Parser states (flex `exclusive start conditions'):
5010  *
5011  * PROLOG       the XML prolog of the document before <?xml...>
5012  * DOCTYPE      the XML prolog of the document after <?xml...>
5013  * EPILOG       after the root element
5014  * INCOMMENT    inside an XML comment <!--....-->
5015  * INPI         inside an XML PI <?...?>
5016  * VALUE1       inside a '...'-delimited literal
5017  * VALUE2       inside a "..."-delimited literal
5018  * CDATA        inside a <![CDATA[...] ]> section.
5019  * ROOT_<tag>   expect root element <tag>
5020  * AL_<tag>     inside the attribute list for <tag>
5021  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5022  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5023  */
5024
5025 /* State names. */
5026 const char* *surfxml_statenames=NULL;
5027
5028 #define INITIAL 0
5029 #define PROLOG 1
5030 #define DOCTYPE 2
5031 #define EPILOG 3
5032 #define INCOMMENT 4
5033 #define INPI 5
5034 #define VALUE1 6
5035 #define VALUE2 7
5036 #define CDATA 8
5037 #define ROOT_surfxml_platform 9
5038 #define AL_surfxml_platform 10
5039 #define S_surfxml_platform 11
5040 #define S_surfxml_platform_1 12
5041 #define S_surfxml_platform_2 13
5042 #define S_surfxml_platform_3 14
5043 #define S_surfxml_platform_4 15
5044 #define S_surfxml_platform_5 16
5045 #define S_surfxml_platform_6 17
5046 #define S_surfxml_platform_7 18
5047 #define S_surfxml_platform_8 19
5048 #define E_surfxml_platform 20
5049 #define AL_surfxml_include 21
5050 #define S_surfxml_include 22
5051 #define S_surfxml_include_1 23
5052 #define S_surfxml_include_2 24
5053 #define E_surfxml_include 25
5054 #define AL_surfxml_trace 26
5055 #define IN_trace 27
5056 #define AL_surfxml_random 28
5057 #define E_surfxml_random 29
5058 #define AL_surfxml_trace___connect 30
5059 #define E_surfxml_trace___connect 31
5060 #define AL_surfxml_AS 32
5061 #define S_surfxml_AS 33
5062 #define S_surfxml_AS_1 34
5063 #define S_surfxml_AS_2 35
5064 #define S_surfxml_AS_3 36
5065 #define S_surfxml_AS_4 37
5066 #define S_surfxml_AS_5 38
5067 #define S_surfxml_AS_6 39
5068 #define S_surfxml_AS_7 40
5069 #define S_surfxml_AS_8 41
5070 #define S_surfxml_AS_9 42
5071 #define S_surfxml_AS_10 43
5072 #define S_surfxml_AS_11 44
5073 #define S_surfxml_AS_12 45
5074 #define S_surfxml_AS_13 46
5075 #define S_surfxml_AS_14 47
5076 #define S_surfxml_AS_15 48
5077 #define S_surfxml_AS_16 49
5078 #define E_surfxml_AS 50
5079 #define AL_surfxml_storage___type 51
5080 #define S_surfxml_storage___type 52
5081 #define S_surfxml_storage___type_1 53
5082 #define S_surfxml_storage___type_2 54
5083 #define E_surfxml_storage___type 55
5084 #define AL_surfxml_storage 56
5085 #define S_surfxml_storage 57
5086 #define S_surfxml_storage_1 58
5087 #define S_surfxml_storage_2 59
5088 #define E_surfxml_storage 60
5089 #define AL_surfxml_mount 61
5090 #define E_surfxml_mount 62
5091 #define AL_surfxml_mstorage 63
5092 #define E_surfxml_mstorage 64
5093 #define AL_surfxml_host 65
5094 #define S_surfxml_host 66
5095 #define S_surfxml_host_1 67
5096 #define S_surfxml_host_2 68
5097 #define E_surfxml_host 69
5098 #define AL_surfxml_gpu 70
5099 #define E_surfxml_gpu 71
5100 #define AL_surfxml_host___link 72
5101 #define E_surfxml_host___link 73
5102 #define AL_surfxml_cluster 74
5103 #define S_surfxml_cluster 75
5104 #define S_surfxml_cluster_1 76
5105 #define S_surfxml_cluster_2 77
5106 #define E_surfxml_cluster 78
5107 #define AL_surfxml_cabinet 79
5108 #define E_surfxml_cabinet 80
5109 #define AL_surfxml_peer 81
5110 #define E_surfxml_peer 82
5111 #define AL_surfxml_router 83
5112 #define E_surfxml_router 84
5113 #define AL_surfxml_backbone 85
5114 #define E_surfxml_backbone 86
5115 #define AL_surfxml_link 87
5116 #define S_surfxml_link 88
5117 #define S_surfxml_link_1 89
5118 #define S_surfxml_link_2 90
5119 #define E_surfxml_link 91
5120 #define AL_surfxml_route 92
5121 #define S_surfxml_route 93
5122 #define S_surfxml_route_1 94
5123 #define S_surfxml_route_2 95
5124 #define E_surfxml_route 96
5125 #define AL_surfxml_ASroute 97
5126 #define S_surfxml_ASroute 98
5127 #define S_surfxml_ASroute_1 99
5128 #define S_surfxml_ASroute_2 100
5129 #define E_surfxml_ASroute 101
5130 #define AL_surfxml_link___ctn 102
5131 #define E_surfxml_link___ctn 103
5132 #define AL_surfxml_bypassRoute 104
5133 #define S_surfxml_bypassRoute 105
5134 #define S_surfxml_bypassRoute_1 106
5135 #define S_surfxml_bypassRoute_2 107
5136 #define E_surfxml_bypassRoute 108
5137 #define AL_surfxml_bypassASroute 109
5138 #define S_surfxml_bypassASroute 110
5139 #define S_surfxml_bypassASroute_1 111
5140 #define S_surfxml_bypassASroute_2 112
5141 #define E_surfxml_bypassASroute 113
5142 #define AL_surfxml_process 114
5143 #define S_surfxml_process 115
5144 #define S_surfxml_process_1 116
5145 #define S_surfxml_process_2 117
5146 #define E_surfxml_process 118
5147 #define AL_surfxml_argument 119
5148 #define E_surfxml_argument 120
5149 #define AL_surfxml_config 121
5150 #define S_surfxml_config 122
5151 #define S_surfxml_config_1 123
5152 #define S_surfxml_config_2 124
5153 #define E_surfxml_config 125
5154 #define AL_surfxml_prop 126
5155 #define E_surfxml_prop 127
5156 #define IMPOSSIBLE 128
5157
5158 #ifndef YY_NO_UNISTD_H
5159 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5160  * down here because we want the user's section 1 to have been scanned first.
5161  * The user has a chance to override it with an option.
5162  */
5163 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5164 #  ifndef __STRICT_ANSI__
5165 #    include <io.h>
5166 #    include <process.h>
5167 #  endif
5168 #else
5169 #  include <unistd.h>
5170 #endif
5171 #endif
5172
5173 #ifndef YY_EXTRA_TYPE
5174 #define YY_EXTRA_TYPE void *
5175 #endif
5176
5177 static int yy_init_globals (void );
5178
5179 /* Accessor methods to globals.
5180    These are made visible to non-reentrant scanners for convenience. */
5181
5182 int surf_parse_lex_destroy (void );
5183
5184 int surf_parse_get_debug (void );
5185
5186 void surf_parse_set_debug (int debug_flag  );
5187
5188 YY_EXTRA_TYPE surf_parse_get_extra (void );
5189
5190 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5191
5192 FILE *surf_parse_get_in (void );
5193
5194 void surf_parse_set_in  (FILE * in_str  );
5195
5196 FILE *surf_parse_get_out (void );
5197
5198 void surf_parse_set_out  (FILE * out_str  );
5199
5200 int surf_parse_get_leng (void );
5201
5202 char *surf_parse_get_text (void );
5203
5204 int surf_parse_get_lineno (void );
5205
5206 void surf_parse_set_lineno (int line_number  );
5207
5208 /* Macros after this point can all be overridden by user definitions in
5209  * section 1.
5210  */
5211
5212 #ifndef YY_SKIP_YYWRAP
5213 #ifdef __cplusplus
5214 extern "C" int surf_parse_wrap (void );
5215 #else
5216 extern int surf_parse_wrap (void );
5217 #endif
5218 #endif
5219
5220 #ifndef yytext_ptr
5221 static void yy_flex_strncpy (char *,yyconst char *,int );
5222 #endif
5223
5224 #ifdef YY_NEED_STRLEN
5225 static int yy_flex_strlen (yyconst char * );
5226 #endif
5227
5228 #ifndef YY_NO_INPUT
5229
5230 #ifdef __cplusplus
5231 static int yyinput (void );
5232 #else
5233 static int input (void );
5234 #endif
5235
5236 #endif
5237
5238         static int yy_start_stack_ptr = 0;
5239         static int yy_start_stack_depth = 0;
5240         static int *yy_start_stack = NULL;
5241     
5242     static void yy_push_state (int new_state );
5243     
5244     static void yy_pop_state (void );
5245     
5246 /* Amount of stuff to slurp up with each read. */
5247 #ifndef YY_READ_BUF_SIZE
5248 #ifdef __ia64__
5249 /* On IA-64, the buffer size is 16k, not 8k */
5250 #define YY_READ_BUF_SIZE 16384
5251 #else
5252 #define YY_READ_BUF_SIZE 8192
5253 #endif /* __ia64__ */
5254 #endif
5255
5256 /* Copy whatever the last rule matched to the standard output. */
5257 #ifndef ECHO
5258 /* This used to be an fputs(), but since the string might contain NUL's,
5259  * we now use fwrite().
5260  */
5261 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5262 #endif
5263
5264 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5265  * is returned in "result".
5266  */
5267 #ifndef YY_INPUT
5268 #define YY_INPUT(buf,result,max_size) \
5269         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5270                 { \
5271                 int c = '*'; \
5272                 size_t n; \
5273                 for ( n = 0; n < max_size && \
5274                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5275                         buf[n] = (char) c; \
5276                 if ( c == '\n' ) \
5277                         buf[n++] = (char) c; \
5278                 if ( c == EOF && ferror( surf_parse_in ) ) \
5279                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5280                 result = n; \
5281                 } \
5282         else \
5283                 { \
5284                 errno=0; \
5285                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5286                         { \
5287                         if( errno != EINTR) \
5288                                 { \
5289                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5290                                 break; \
5291                                 } \
5292                         errno=0; \
5293                         clearerr(surf_parse_in); \
5294                         } \
5295                 }\
5296 \
5297
5298 #endif
5299
5300 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5301  * we don't want an extra ';' after the "return" because that will cause
5302  * some compilers to complain about unreachable statements.
5303  */
5304 #ifndef yyterminate
5305 #define yyterminate() return YY_NULL
5306 #endif
5307
5308 /* Number of entries by which start-condition stack grows. */
5309 #ifndef YY_START_STACK_INCR
5310 #define YY_START_STACK_INCR 25
5311 #endif
5312
5313 /* Report a fatal error. */
5314 #ifndef YY_FATAL_ERROR
5315 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5316 #endif
5317
5318 /* end tables serialization structures and prototypes */
5319
5320 /* Default declaration of generated scanner - a define so the user can
5321  * easily add parameters.
5322  */
5323 #ifndef YY_DECL
5324 #define YY_DECL_IS_OURS 1
5325
5326 extern int surf_parse_lex (void);
5327
5328 #define YY_DECL int surf_parse_lex (void)
5329 #endif /* !YY_DECL */
5330
5331 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5332  * have been set up.
5333  */
5334 #ifndef YY_USER_ACTION
5335 #define YY_USER_ACTION
5336 #endif
5337
5338 /* Code executed at the end of each rule. */
5339 #ifndef YY_BREAK
5340 #define YY_BREAK break;
5341 #endif
5342
5343 #define YY_RULE_SETUP \
5344         YY_USER_ACTION
5345
5346 /** The main scanner function which does all the work.
5347  */
5348 YY_DECL
5349 {
5350         register yy_state_type yy_current_state;
5351         register char *yy_cp, *yy_bp;
5352         register int yy_act;
5353     
5354  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5355  SET(PROLOG);
5356  reset_surfxml_parse_err_msg();
5357  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5358  assert(surfxml_bufferstack);
5359  #ifdef FLEX_DEBUG
5360  {
5361      int i;
5362      for (i = 0; i < blimit; i++) {
5363          surfxml_bufferstack[i] = '\377';
5364      }
5365  }
5366  #endif
5367  surfxml_bufferstack[0] = '\0';
5368  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5369  assert(indexstack);
5370  indexstack[0] = 0;
5371
5372   /* FleXML_init */
5373   bnext = inext = 1;
5374   surfxml_bufferliteral('\0', &bnext, "0.0");
5375   surfxml_bufferliteral('\0', &bnext, "2147483647");
5376   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5377   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5378   surfxml_bufferliteral('\0', &bnext, "1");
5379   surfxml_bufferliteral('\0', &bnext, "1.0");
5380   surfxml_bufferliteral('\0', &bnext, "0.0");
5381   surfxml_bufferliteral('\0', &bnext, "1");
5382   surfxml_bufferliteral('\0', &bnext, "0.0");
5383   surfxml_bufferliteral('\0', &bnext, "-1.0");
5384   surfxml_bufferliteral('\0', &bnext, "-1.0");
5385   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5386   surfxml_statenames[PROLOG] = NULL;
5387   surfxml_statenames[DOCTYPE] = NULL;
5388   surfxml_statenames[EPILOG] = NULL;
5389   surfxml_statenames[INCOMMENT] = NULL;
5390   surfxml_statenames[INPI] = NULL;
5391   surfxml_statenames[VALUE1] = NULL;
5392   surfxml_statenames[VALUE2] = NULL;
5393   surfxml_statenames[CDATA] = NULL;
5394   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5395   surfxml_statenames[AL_surfxml_platform] = NULL;
5396   surfxml_statenames[S_surfxml_platform] = "platform";
5397   surfxml_statenames[S_surfxml_platform_1] = "platform";
5398   surfxml_statenames[S_surfxml_platform_2] = "platform";
5399   surfxml_statenames[S_surfxml_platform_3] = "platform";
5400   surfxml_statenames[S_surfxml_platform_4] = "platform";
5401   surfxml_statenames[S_surfxml_platform_5] = "platform";
5402   surfxml_statenames[S_surfxml_platform_6] = "platform";
5403   surfxml_statenames[S_surfxml_platform_7] = "platform";
5404   surfxml_statenames[S_surfxml_platform_8] = "platform";
5405   surfxml_statenames[E_surfxml_platform] = "platform";
5406   surfxml_statenames[AL_surfxml_include] = NULL;
5407   surfxml_statenames[S_surfxml_include] = "include";
5408   surfxml_statenames[S_surfxml_include_1] = "include";
5409   surfxml_statenames[S_surfxml_include_2] = "include";
5410   surfxml_statenames[E_surfxml_include] = "include";
5411   surfxml_statenames[AL_surfxml_trace] = NULL;
5412   surfxml_statenames[IN_trace] = "trace";
5413   surfxml_statenames[AL_surfxml_random] = NULL;
5414   surfxml_statenames[E_surfxml_random] = "random";
5415   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5416   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5417   surfxml_statenames[AL_surfxml_AS] = NULL;
5418   surfxml_statenames[S_surfxml_AS] = "AS";
5419   surfxml_statenames[S_surfxml_AS_1] = "AS";
5420   surfxml_statenames[S_surfxml_AS_2] = "AS";
5421   surfxml_statenames[S_surfxml_AS_3] = "AS";
5422   surfxml_statenames[S_surfxml_AS_4] = "AS";
5423   surfxml_statenames[S_surfxml_AS_5] = "AS";
5424   surfxml_statenames[S_surfxml_AS_6] = "AS";
5425   surfxml_statenames[S_surfxml_AS_7] = "AS";
5426   surfxml_statenames[S_surfxml_AS_8] = "AS";
5427   surfxml_statenames[S_surfxml_AS_9] = "AS";
5428   surfxml_statenames[S_surfxml_AS_10] = "AS";
5429   surfxml_statenames[S_surfxml_AS_11] = "AS";
5430   surfxml_statenames[S_surfxml_AS_12] = "AS";
5431   surfxml_statenames[S_surfxml_AS_13] = "AS";
5432   surfxml_statenames[S_surfxml_AS_14] = "AS";
5433   surfxml_statenames[S_surfxml_AS_15] = "AS";
5434   surfxml_statenames[S_surfxml_AS_16] = "AS";
5435   surfxml_statenames[E_surfxml_AS] = "AS";
5436   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5437   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5438   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5439   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5440   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5441   surfxml_statenames[AL_surfxml_storage] = NULL;
5442   surfxml_statenames[S_surfxml_storage] = "storage";
5443   surfxml_statenames[S_surfxml_storage_1] = "storage";
5444   surfxml_statenames[S_surfxml_storage_2] = "storage";
5445   surfxml_statenames[E_surfxml_storage] = "storage";
5446   surfxml_statenames[AL_surfxml_mount] = NULL;
5447   surfxml_statenames[E_surfxml_mount] = "mount";
5448   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5449   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5450   surfxml_statenames[AL_surfxml_host] = NULL;
5451   surfxml_statenames[S_surfxml_host] = "host";
5452   surfxml_statenames[S_surfxml_host_1] = "host";
5453   surfxml_statenames[S_surfxml_host_2] = "host";
5454   surfxml_statenames[E_surfxml_host] = "host";
5455   surfxml_statenames[AL_surfxml_gpu] = NULL;
5456   surfxml_statenames[E_surfxml_gpu] = "gpu";
5457   surfxml_statenames[AL_surfxml_host___link] = NULL;
5458   surfxml_statenames[E_surfxml_host___link] = "host_link";
5459   surfxml_statenames[AL_surfxml_cluster] = NULL;
5460   surfxml_statenames[S_surfxml_cluster] = "cluster";
5461   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5462   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5463   surfxml_statenames[E_surfxml_cluster] = "cluster";
5464   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5465   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5466   surfxml_statenames[AL_surfxml_peer] = NULL;
5467   surfxml_statenames[E_surfxml_peer] = "peer";
5468   surfxml_statenames[AL_surfxml_router] = NULL;
5469   surfxml_statenames[E_surfxml_router] = "router";
5470   surfxml_statenames[AL_surfxml_backbone] = NULL;
5471   surfxml_statenames[E_surfxml_backbone] = "backbone";
5472   surfxml_statenames[AL_surfxml_link] = NULL;
5473   surfxml_statenames[S_surfxml_link] = "link";
5474   surfxml_statenames[S_surfxml_link_1] = "link";
5475   surfxml_statenames[S_surfxml_link_2] = "link";
5476   surfxml_statenames[E_surfxml_link] = "link";
5477   surfxml_statenames[AL_surfxml_route] = NULL;
5478   surfxml_statenames[S_surfxml_route] = "route";
5479   surfxml_statenames[S_surfxml_route_1] = "route";
5480   surfxml_statenames[S_surfxml_route_2] = "route";
5481   surfxml_statenames[E_surfxml_route] = "route";
5482   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5483   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5484   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5485   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5486   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5487   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5488   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5489   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5490   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5491   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5492   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5493   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5494   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5495   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5496   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5497   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5498   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5499   surfxml_statenames[AL_surfxml_process] = NULL;
5500   surfxml_statenames[S_surfxml_process] = "process";
5501   surfxml_statenames[S_surfxml_process_1] = "process";
5502   surfxml_statenames[S_surfxml_process_2] = "process";
5503   surfxml_statenames[E_surfxml_process] = "process";
5504   surfxml_statenames[AL_surfxml_argument] = NULL;
5505   surfxml_statenames[E_surfxml_argument] = "argument";
5506   surfxml_statenames[AL_surfxml_config] = NULL;
5507   surfxml_statenames[S_surfxml_config] = "config";
5508   surfxml_statenames[S_surfxml_config_1] = "config";
5509   surfxml_statenames[S_surfxml_config_2] = "config";
5510   surfxml_statenames[E_surfxml_config] = "config";
5511   surfxml_statenames[AL_surfxml_prop] = NULL;
5512   surfxml_statenames[E_surfxml_prop] = "prop";
5513   }
5514
5515  /* COMMENTS and PIs: handled uniformly for efficiency. */
5516
5517         if ( !(yy_init) )
5518                 {
5519                 (yy_init) = 1;
5520
5521 #ifdef YY_USER_INIT
5522                 YY_USER_INIT;
5523 #endif
5524
5525                 if ( ! (yy_start) )
5526                         (yy_start) = 1; /* first start state */
5527
5528                 if ( ! surf_parse_in )
5529                         surf_parse_in = stdin;
5530
5531                 if ( ! surf_parse_out )
5532                         surf_parse_out = stdout;
5533
5534                 if ( ! YY_CURRENT_BUFFER ) {
5535                         surf_parse_ensure_buffer_stack ();
5536                         YY_CURRENT_BUFFER_LVALUE =
5537                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5538                 }
5539
5540                 surf_parse__load_buffer_state( );
5541                 }
5542
5543         while ( 1 )             /* loops until end-of-file is reached */
5544                 {
5545                 yy_cp = (yy_c_buf_p);
5546
5547                 /* Support of surf_parse_text. */
5548                 *yy_cp = (yy_hold_char);
5549
5550                 /* yy_bp points to the position in yy_ch_buf of the start of
5551                  * the current run.
5552                  */
5553                 yy_bp = yy_cp;
5554
5555                 yy_current_state = (yy_start);
5556 yy_match:
5557                 do
5558                         {
5559                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5560                         if ( yy_accept[yy_current_state] )
5561                                 {
5562                                 (yy_last_accepting_state) = yy_current_state;
5563                                 (yy_last_accepting_cpos) = yy_cp;
5564                                 }
5565                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5566                                 {
5567                                 yy_current_state = (int) yy_def[yy_current_state];
5568                                 if ( yy_current_state >= 3323 )
5569                                         yy_c = yy_meta[(unsigned int) yy_c];
5570                                 }
5571                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5572                         ++yy_cp;
5573                         }
5574                 while ( yy_base[yy_current_state] != 12292 );
5575
5576 yy_find_action:
5577                 yy_act = yy_accept[yy_current_state];
5578                 if ( yy_act == 0 )
5579                         { /* have to back up */
5580                         yy_cp = (yy_last_accepting_cpos);
5581                         yy_current_state = (yy_last_accepting_state);
5582                         yy_act = yy_accept[yy_current_state];
5583                         }
5584
5585                 YY_DO_BEFORE_ACTION;
5586
5587                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5588                         {
5589                         int yyl;
5590                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5591                                 if ( surf_parse_text[yyl] == '\n' )
5592                                            
5593     surf_parse_lineno++;
5594 ;
5595                         }
5596
5597 do_action:      /* This label is used only to access EOF actions. */
5598
5599                 switch ( yy_act )
5600         { /* beginning of action switch */
5601                         case 0: /* must back up */
5602                         /* undo the effects of YY_DO_BEFORE_ACTION */
5603                         *yy_cp = (yy_hold_char);
5604                         yy_cp = (yy_last_accepting_cpos);
5605                         yy_current_state = (yy_last_accepting_state);
5606                         goto yy_find_action;
5607
5608 case 1:
5609 YY_RULE_SETUP
5610 ENTER(INCOMMENT);
5611         YY_BREAK
5612 case 2:
5613 YY_RULE_SETUP
5614 ENTER(INPI);
5615         YY_BREAK
5616
5617 case 3:
5618 YY_RULE_SETUP
5619 LEAVE;
5620         YY_BREAK
5621 case 4:
5622 case 5:
5623 case 6:
5624 /* rule 6 can match eol */
5625 YY_RULE_SETUP
5626 SKIP;
5627         YY_BREAK
5628 case YY_STATE_EOF(INCOMMENT):
5629 FAIL("EOF in comment.");
5630         YY_BREAK
5631
5632 case 7:
5633 YY_RULE_SETUP
5634 LEAVE;
5635         YY_BREAK
5636 case 8:
5637 case 9:
5638 /* rule 9 can match eol */
5639 YY_RULE_SETUP
5640 SKIP;
5641         YY_BREAK
5642 case YY_STATE_EOF(INPI):
5643 FAIL("EOF in PI (processing instruction).");
5644         YY_BREAK
5645
5646 /* SPACES: skipped uniformly */
5647 case 10:
5648 /* rule 10 can match eol */
5649 YY_RULE_SETUP
5650 SKIP;
5651         YY_BREAK
5652 /* PROLOG: determine root element and process it. */
5653
5654 case 11:
5655 /* rule 11 can match eol */
5656 YY_RULE_SETUP
5657 SET(DOCTYPE); 
5658         YY_BREAK
5659 case 12:
5660 /* rule 12 can match eol */
5661 YY_RULE_SETUP
5662 FAIL("Bad declaration %s.",surf_parse_text);
5663         YY_BREAK
5664
5665 case 13:
5666 /* rule 13 can match eol */
5667 YY_RULE_SETUP
5668 SET(ROOT_surfxml_platform);
5669         YY_BREAK
5670 case 14:
5671 /* rule 14 can match eol */
5672 YY_RULE_SETUP
5673 FAIL("Bad declaration %s.",surf_parse_text);
5674         YY_BREAK
5675 case 15:
5676 YY_RULE_SETUP
5677 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5678         YY_BREAK
5679 case YY_STATE_EOF(PROLOG):
5680 case YY_STATE_EOF(DOCTYPE):
5681 FAIL("EOF in prolog.");
5682         YY_BREAK
5683
5684 /* RULES DERIVED FROM DTD. */
5685 /* <!-- Small DTD for SURF based tools. -->  */
5686 case 16:
5687 /* rule 16 can match eol */
5688 YY_RULE_SETUP
5689 FAIL("Starting tag <platform> is not allowed here.");
5690         YY_BREAK
5691 case 17:
5692 /* rule 17 can match eol */
5693 YY_RULE_SETUP
5694 {
5695   AX_surfxml_platform_version = 1;
5696   surfxml_platform_version_isset = 0;
5697   ENTER(AL_surfxml_platform); pushbuffer(0);
5698   }
5699         YY_BREAK
5700
5701 case 18:
5702 /* rule 18 can match eol */
5703 YY_RULE_SETUP
5704 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);
5705         YY_BREAK
5706 case 19:
5707 /* rule 19 can match eol */
5708 YY_RULE_SETUP
5709 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);
5710         YY_BREAK
5711 case 20:
5712 YY_RULE_SETUP
5713 {
5714   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5715  }
5716         YY_BREAK
5717 case 21:
5718 YY_RULE_SETUP
5719 {
5720   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5721   switch (YY_START) {
5722    case ROOT_surfxml_platform: SET(EPILOG); break;
5723   }
5724  }
5725         YY_BREAK
5726 case 22:
5727 YY_RULE_SETUP
5728 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5729         YY_BREAK
5730 case 23:
5731 YY_RULE_SETUP
5732 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5733         YY_BREAK
5734 case YY_STATE_EOF(AL_surfxml_platform):
5735 FAIL("EOF in attribute list of `platform' element.");
5736         YY_BREAK
5737
5738 case 24:
5739 /* rule 24 can match eol */
5740 YY_RULE_SETUP
5741 {
5742   LEAVE;
5743   ETag_surfxml_platform();
5744   popbuffer(); /* attribute */
5745   switch (YY_START) {
5746    case ROOT_surfxml_platform: SET(EPILOG); break;
5747   }
5748  }
5749         YY_BREAK
5750 case 25:
5751 /* rule 25 can match eol */
5752 YY_RULE_SETUP
5753 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5754         YY_BREAK
5755 case 26:
5756 YY_RULE_SETUP
5757 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5758         YY_BREAK
5759 case YY_STATE_EOF(S_surfxml_platform_8):
5760 case YY_STATE_EOF(S_surfxml_platform_1):
5761 case YY_STATE_EOF(S_surfxml_platform_3):
5762 case YY_STATE_EOF(S_surfxml_platform):
5763 case YY_STATE_EOF(S_surfxml_platform_4):
5764 case YY_STATE_EOF(S_surfxml_platform_6):
5765 case YY_STATE_EOF(E_surfxml_platform):
5766 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5767         YY_BREAK
5768
5769 case 27:
5770 /* rule 27 can match eol */
5771 YY_RULE_SETUP
5772 FAIL("Starting tag <include> is not allowed here.");
5773         YY_BREAK
5774 case 28:
5775 /* rule 28 can match eol */
5776 YY_RULE_SETUP
5777 {
5778   AX_surfxml_include_file = 0;
5779   surfxml_include_file_isset = 0;
5780   ENTER(AL_surfxml_include); pushbuffer(0);
5781   }
5782         YY_BREAK
5783
5784 case 29:
5785 /* rule 29 can match eol */
5786 YY_RULE_SETUP
5787 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);
5788         YY_BREAK
5789 case 30:
5790 /* rule 30 can match eol */
5791 YY_RULE_SETUP
5792 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);
5793         YY_BREAK
5794 case 31:
5795 YY_RULE_SETUP
5796 {
5797   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5798   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5799  }
5800         YY_BREAK
5801 case 32:
5802 YY_RULE_SETUP
5803 {
5804   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5805   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5806   switch (YY_START) {
5807    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5808    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;
5809    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5810    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5811   }
5812  }
5813         YY_BREAK
5814 case 33:
5815 YY_RULE_SETUP
5816 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5817         YY_BREAK
5818 case 34:
5819 YY_RULE_SETUP
5820 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5821         YY_BREAK
5822 case YY_STATE_EOF(AL_surfxml_include):
5823 FAIL("EOF in attribute list of `include' element.");
5824         YY_BREAK
5825
5826 case 35:
5827 /* rule 35 can match eol */
5828 YY_RULE_SETUP
5829 {
5830   LEAVE;
5831   ETag_surfxml_include();
5832   popbuffer(); /* attribute */
5833   switch (YY_START) {
5834    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5835    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;
5836    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5837    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5838   }
5839  }
5840         YY_BREAK
5841 case 36:
5842 /* rule 36 can match eol */
5843 YY_RULE_SETUP
5844 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5845         YY_BREAK
5846 case 37:
5847 YY_RULE_SETUP
5848 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5849         YY_BREAK
5850 case YY_STATE_EOF(E_surfxml_include):
5851 case YY_STATE_EOF(S_surfxml_include):
5852 case YY_STATE_EOF(S_surfxml_include_2):
5853 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5854         YY_BREAK
5855
5856 case 38:
5857 /* rule 38 can match eol */
5858 YY_RULE_SETUP
5859 FAIL("Starting tag <trace> is not allowed here.");
5860         YY_BREAK
5861 case 39:
5862 /* rule 39 can match eol */
5863 YY_RULE_SETUP
5864 {
5865   AX_surfxml_trace_id = 0;
5866   surfxml_trace_id_isset = 0;
5867   AX_surfxml_trace_file = 0;
5868   surfxml_trace_file_isset = 0;
5869   AX_surfxml_trace_periodicity = 0;
5870   surfxml_trace_periodicity_isset = 0;
5871   ENTER(AL_surfxml_trace); pushbuffer(0);
5872   }
5873         YY_BREAK
5874
5875 case 40:
5876 /* rule 40 can match eol */
5877 YY_RULE_SETUP
5878 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);
5879         YY_BREAK
5880 case 41:
5881 /* rule 41 can match eol */
5882 YY_RULE_SETUP
5883 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);
5884         YY_BREAK
5885 case 42:
5886 /* rule 42 can match eol */
5887 YY_RULE_SETUP
5888 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);
5889         YY_BREAK
5890 case 43:
5891 /* rule 43 can match eol */
5892 YY_RULE_SETUP
5893 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);
5894         YY_BREAK
5895 case 44:
5896 /* rule 44 can match eol */
5897 YY_RULE_SETUP
5898 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);
5899         YY_BREAK
5900 case 45:
5901 /* rule 45 can match eol */
5902 YY_RULE_SETUP
5903 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);
5904         YY_BREAK
5905 case 46:
5906 YY_RULE_SETUP
5907 {
5908   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5909   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5910   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5911  }
5912         YY_BREAK
5913 case 47:
5914 YY_RULE_SETUP
5915 {
5916   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5917   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5918   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5919   switch (YY_START) {
5920    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5921    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5922    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5923    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;
5924    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5925    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5926    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5927   }
5928  }
5929         YY_BREAK
5930 case 48:
5931 YY_RULE_SETUP
5932 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5933         YY_BREAK
5934 case 49:
5935 YY_RULE_SETUP
5936 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5937         YY_BREAK
5938 case YY_STATE_EOF(AL_surfxml_trace):
5939 FAIL("EOF in attribute list of `trace' element.");
5940         YY_BREAK
5941
5942 case 50:
5943 /* rule 50 can match eol */
5944 YY_RULE_SETUP
5945 {
5946   LEAVE;
5947   BUFFERDONE;
5948   ETag_surfxml_trace();
5949   surfxml_pcdata_ix = popbuffer();
5950   popbuffer(); /* attribute */
5951   switch (YY_START) {
5952    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5953    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5954    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5955    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;
5956    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5957    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5958    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5959   }
5960  }
5961         YY_BREAK
5962 case 51:
5963 /* rule 51 can match eol */
5964 YY_RULE_SETUP
5965 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5966         YY_BREAK
5967 case YY_STATE_EOF(IN_trace):
5968 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5969         YY_BREAK
5970
5971 case 52:
5972 /* rule 52 can match eol */
5973 YY_RULE_SETUP
5974 FAIL("Starting tag <random> is not allowed here.");
5975         YY_BREAK
5976 case 53:
5977 /* rule 53 can match eol */
5978 YY_RULE_SETUP
5979 {
5980   AX_surfxml_random_id = 0;
5981   surfxml_random_id_isset = 0;
5982   AX_surfxml_random_min = 0;
5983   surfxml_random_min_isset = 0;
5984   AX_surfxml_random_max = 0;
5985   surfxml_random_max_isset = 0;
5986   AX_surfxml_random_mean = 0;
5987   surfxml_random_mean_isset = 0;
5988   AX_surfxml_random_std___deviation = 0;
5989   surfxml_random_std___deviation_isset = 0;
5990   AX_surfxml_random_seed = 5;
5991   surfxml_random_seed_isset = 0;
5992   AX_surfxml_random_radical = 0;
5993   surfxml_random_radical_isset = 0;
5994   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5995   surfxml_random_generator_isset = 0;
5996   ENTER(AL_surfxml_random); pushbuffer(0);
5997   }
5998         YY_BREAK
5999
6000 case 54:
6001 /* rule 54 can match eol */
6002 YY_RULE_SETUP
6003 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);
6004         YY_BREAK
6005 case 55:
6006 /* rule 55 can match eol */
6007 YY_RULE_SETUP
6008 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);
6009         YY_BREAK
6010 case 56:
6011 /* rule 56 can match eol */
6012 YY_RULE_SETUP
6013 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);
6014         YY_BREAK
6015 case 57:
6016 /* rule 57 can match eol */
6017 YY_RULE_SETUP
6018 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);
6019         YY_BREAK
6020 case 58:
6021 /* rule 58 can match eol */
6022 YY_RULE_SETUP
6023 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);
6024         YY_BREAK
6025 case 59:
6026 /* rule 59 can match eol */
6027 YY_RULE_SETUP
6028 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);
6029         YY_BREAK
6030 case 60:
6031 /* rule 60 can match eol */
6032 YY_RULE_SETUP
6033 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);
6034         YY_BREAK
6035 case 61:
6036 /* rule 61 can match eol */
6037 YY_RULE_SETUP
6038 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);
6039         YY_BREAK
6040 case 62:
6041 /* rule 62 can match eol */
6042 YY_RULE_SETUP
6043 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);
6044         YY_BREAK
6045 case 63:
6046 /* rule 63 can match eol */
6047 YY_RULE_SETUP
6048 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);
6049         YY_BREAK
6050 case 64:
6051 /* rule 64 can match eol */
6052 YY_RULE_SETUP
6053 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);
6054         YY_BREAK
6055 case 65:
6056 /* rule 65 can match eol */
6057 YY_RULE_SETUP
6058 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);
6059         YY_BREAK
6060 case 66:
6061 /* rule 66 can match eol */
6062 YY_RULE_SETUP
6063 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);
6064         YY_BREAK
6065 case 67:
6066 /* rule 67 can match eol */
6067 YY_RULE_SETUP
6068 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);
6069         YY_BREAK
6070 case 68:
6071 /* rule 68 can match eol */
6072 case 69:
6073 /* rule 69 can match eol */
6074 YY_RULE_SETUP
6075 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6076         YY_BREAK
6077 case 70:
6078 /* rule 70 can match eol */
6079 case 71:
6080 /* rule 71 can match eol */
6081 YY_RULE_SETUP
6082 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6083         YY_BREAK
6084 case 72:
6085 /* rule 72 can match eol */
6086 case 73:
6087 /* rule 73 can match eol */
6088 YY_RULE_SETUP
6089 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6090         YY_BREAK
6091 case 74:
6092 /* rule 74 can match eol */
6093 case 75:
6094 /* rule 75 can match eol */
6095 YY_RULE_SETUP
6096 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6097         YY_BREAK
6098 case 76:
6099 YY_RULE_SETUP
6100 {
6101   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6102   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6103   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6104   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6105   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6106   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6107  }
6108         YY_BREAK
6109 case 77:
6110 YY_RULE_SETUP
6111 {
6112   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6113   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6114   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6115   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6116   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6117   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6118   switch (YY_START) {
6119    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6120   }
6121  }
6122         YY_BREAK
6123 case 78:
6124 YY_RULE_SETUP
6125 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6126         YY_BREAK
6127 case 79:
6128 YY_RULE_SETUP
6129 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6130         YY_BREAK
6131 case YY_STATE_EOF(AL_surfxml_random):
6132 FAIL("EOF in attribute list of `random' element.");
6133         YY_BREAK
6134
6135 case 80:
6136 /* rule 80 can match eol */
6137 YY_RULE_SETUP
6138 {
6139   LEAVE;
6140   ETag_surfxml_random();
6141   popbuffer(); /* attribute */
6142   switch (YY_START) {
6143    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6144   }
6145  }
6146         YY_BREAK
6147 case 81:
6148 /* rule 81 can match eol */
6149 YY_RULE_SETUP
6150 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6151         YY_BREAK
6152 case 82:
6153 YY_RULE_SETUP
6154 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6155         YY_BREAK
6156 case YY_STATE_EOF(E_surfxml_random):
6157 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6158         YY_BREAK
6159
6160 case 83:
6161 /* rule 83 can match eol */
6162 YY_RULE_SETUP
6163 FAIL("Starting tag <trace_connect> is not allowed here.");
6164         YY_BREAK
6165 case 84:
6166 /* rule 84 can match eol */
6167 YY_RULE_SETUP
6168 {
6169   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6170   surfxml_trace___connect_kind_isset = 0;
6171   AX_surfxml_trace___connect_trace = 0;
6172   surfxml_trace___connect_trace_isset = 0;
6173   AX_surfxml_trace___connect_element = 0;
6174   surfxml_trace___connect_element_isset = 0;
6175   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6176   }
6177         YY_BREAK
6178
6179 case 85:
6180 /* rule 85 can match eol */
6181 case 86:
6182 /* rule 86 can match eol */
6183 YY_RULE_SETUP
6184 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6185         YY_BREAK
6186 case 87:
6187 /* rule 87 can match eol */
6188 case 88:
6189 /* rule 88 can match eol */
6190 YY_RULE_SETUP
6191 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6192         YY_BREAK
6193 case 89:
6194 /* rule 89 can match eol */
6195 case 90:
6196 /* rule 90 can match eol */
6197 YY_RULE_SETUP
6198 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6199         YY_BREAK
6200 case 91:
6201 /* rule 91 can match eol */
6202 case 92:
6203 /* rule 92 can match eol */
6204 YY_RULE_SETUP
6205 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6206         YY_BREAK
6207 case 93:
6208 /* rule 93 can match eol */
6209 case 94:
6210 /* rule 94 can match eol */
6211 YY_RULE_SETUP
6212 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6213         YY_BREAK
6214 case 95:
6215 /* rule 95 can match eol */
6216 YY_RULE_SETUP
6217 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);
6218         YY_BREAK
6219 case 96:
6220 /* rule 96 can match eol */
6221 YY_RULE_SETUP
6222 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);
6223         YY_BREAK
6224 case 97:
6225 /* rule 97 can match eol */
6226 YY_RULE_SETUP
6227 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);
6228         YY_BREAK
6229 case 98:
6230 /* rule 98 can match eol */
6231 YY_RULE_SETUP
6232 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);
6233         YY_BREAK
6234 case 99:
6235 YY_RULE_SETUP
6236 {
6237   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6238   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6239   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6240  }
6241         YY_BREAK
6242 case 100:
6243 YY_RULE_SETUP
6244 {
6245   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6246   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6247   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6248   switch (YY_START) {
6249    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6250    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6251    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6252    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;
6253    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6254    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6255    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6256   }
6257  }
6258         YY_BREAK
6259 case 101:
6260 YY_RULE_SETUP
6261 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6262         YY_BREAK
6263 case 102:
6264 YY_RULE_SETUP
6265 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6266         YY_BREAK
6267 case YY_STATE_EOF(AL_surfxml_trace___connect):
6268 FAIL("EOF in attribute list of `trace_connect' element.");
6269         YY_BREAK
6270
6271 case 103:
6272 /* rule 103 can match eol */
6273 YY_RULE_SETUP
6274 {
6275   LEAVE;
6276   ETag_surfxml_trace___connect();
6277   popbuffer(); /* attribute */
6278   switch (YY_START) {
6279    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6280    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6281    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6282    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;
6283    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6284    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6285    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6286   }
6287  }
6288         YY_BREAK
6289 case 104:
6290 /* rule 104 can match eol */
6291 YY_RULE_SETUP
6292 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6293         YY_BREAK
6294 case 105:
6295 YY_RULE_SETUP
6296 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6297         YY_BREAK
6298 case YY_STATE_EOF(E_surfxml_trace___connect):
6299 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6300         YY_BREAK
6301
6302 case 106:
6303 /* rule 106 can match eol */
6304 YY_RULE_SETUP
6305 FAIL("Starting tag <AS> is not allowed here.");
6306         YY_BREAK
6307 case 107:
6308 /* rule 107 can match eol */
6309 YY_RULE_SETUP
6310 {
6311   AX_surfxml_AS_id = 0;
6312   surfxml_AS_id_isset = 0;
6313   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6314   surfxml_AS_routing_isset = 0;
6315   ENTER(AL_surfxml_AS); pushbuffer(0);
6316   }
6317         YY_BREAK
6318
6319 case 108:
6320 /* rule 108 can match eol */
6321 YY_RULE_SETUP
6322 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);
6323         YY_BREAK
6324 case 109:
6325 /* rule 109 can match eol */
6326 YY_RULE_SETUP
6327 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);
6328         YY_BREAK
6329 case 110:
6330 /* rule 110 can match eol */
6331 case 111:
6332 /* rule 111 can match eol */
6333 YY_RULE_SETUP
6334 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6335         YY_BREAK
6336 case 112:
6337 /* rule 112 can match eol */
6338 case 113:
6339 /* rule 113 can match eol */
6340 YY_RULE_SETUP
6341 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6342         YY_BREAK
6343 case 114:
6344 /* rule 114 can match eol */
6345 case 115:
6346 /* rule 115 can match eol */
6347 YY_RULE_SETUP
6348 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6349         YY_BREAK
6350 case 116:
6351 /* rule 116 can match eol */
6352 case 117:
6353 /* rule 117 can match eol */
6354 YY_RULE_SETUP
6355 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6356         YY_BREAK
6357 case 118:
6358 /* rule 118 can match eol */
6359 case 119:
6360 /* rule 119 can match eol */
6361 YY_RULE_SETUP
6362 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6363         YY_BREAK
6364 case 120:
6365 /* rule 120 can match eol */
6366 case 121:
6367 /* rule 121 can match eol */
6368 YY_RULE_SETUP
6369 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6370         YY_BREAK
6371 case 122:
6372 /* rule 122 can match eol */
6373 case 123:
6374 /* rule 123 can match eol */
6375 YY_RULE_SETUP
6376 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6377         YY_BREAK
6378 case 124:
6379 YY_RULE_SETUP
6380 {
6381   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6382   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6383  }
6384         YY_BREAK
6385 case 125:
6386 YY_RULE_SETUP
6387 {
6388   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6389   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6390   switch (YY_START) {
6391    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;
6392    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;
6393    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6394   }
6395  }
6396         YY_BREAK
6397 case 126:
6398 YY_RULE_SETUP
6399 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6400         YY_BREAK
6401 case 127:
6402 YY_RULE_SETUP
6403 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6404         YY_BREAK
6405 case YY_STATE_EOF(AL_surfxml_AS):
6406 FAIL("EOF in attribute list of `AS' element.");
6407         YY_BREAK
6408
6409 case 128:
6410 /* rule 128 can match eol */
6411 YY_RULE_SETUP
6412 {
6413   LEAVE;
6414   ETag_surfxml_AS();
6415   popbuffer(); /* attribute */
6416   switch (YY_START) {
6417    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;
6418    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;
6419    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6420   }
6421  }
6422         YY_BREAK
6423 case 129:
6424 /* rule 129 can match eol */
6425 YY_RULE_SETUP
6426 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6427         YY_BREAK
6428 case 130:
6429 YY_RULE_SETUP
6430 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6431         YY_BREAK
6432 case YY_STATE_EOF(S_surfxml_AS_12):
6433 case YY_STATE_EOF(S_surfxml_AS_9):
6434 case YY_STATE_EOF(S_surfxml_AS_1):
6435 case YY_STATE_EOF(S_surfxml_AS_7):
6436 case YY_STATE_EOF(S_surfxml_AS_11):
6437 case YY_STATE_EOF(S_surfxml_AS_14):
6438 case YY_STATE_EOF(S_surfxml_AS_6):
6439 case YY_STATE_EOF(E_surfxml_AS):
6440 case YY_STATE_EOF(S_surfxml_AS_16):
6441 case YY_STATE_EOF(S_surfxml_AS_3):
6442 case YY_STATE_EOF(S_surfxml_AS):
6443 case YY_STATE_EOF(S_surfxml_AS_4):
6444 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6445         YY_BREAK
6446
6447 case 131:
6448 /* rule 131 can match eol */
6449 YY_RULE_SETUP
6450 FAIL("Starting tag <storage_type> is not allowed here.");
6451         YY_BREAK
6452 case 132:
6453 /* rule 132 can match eol */
6454 YY_RULE_SETUP
6455 {
6456   AX_surfxml_storage___type_id = 0;
6457   surfxml_storage___type_id_isset = 0;
6458   AX_surfxml_storage___type_model = 0;
6459   surfxml_storage___type_model_isset = 0;
6460   AX_surfxml_storage___type_size = 0;
6461   surfxml_storage___type_size_isset = 0;
6462   AX_surfxml_storage___type_content = 0;
6463   surfxml_storage___type_content_isset = 0;
6464   AX_surfxml_storage___type_content___type = 16;
6465   surfxml_storage___type_content___type_isset = 0;
6466   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6467   }
6468         YY_BREAK
6469
6470 case 133:
6471 /* rule 133 can match eol */
6472 YY_RULE_SETUP
6473 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);
6474         YY_BREAK
6475 case 134:
6476 /* rule 134 can match eol */
6477 YY_RULE_SETUP
6478 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);
6479         YY_BREAK
6480 case 135:
6481 /* rule 135 can match eol */
6482 YY_RULE_SETUP
6483 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);
6484         YY_BREAK
6485 case 136:
6486 /* rule 136 can match eol */
6487 YY_RULE_SETUP
6488 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);
6489         YY_BREAK
6490 case 137:
6491 /* rule 137 can match eol */
6492 YY_RULE_SETUP
6493 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);
6494         YY_BREAK
6495 case 138:
6496 /* rule 138 can match eol */
6497 YY_RULE_SETUP
6498 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);
6499         YY_BREAK
6500 case 139:
6501 /* rule 139 can match eol */
6502 YY_RULE_SETUP
6503 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);
6504         YY_BREAK
6505 case 140:
6506 /* rule 140 can match eol */
6507 YY_RULE_SETUP
6508 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);
6509         YY_BREAK
6510 case 141:
6511 /* rule 141 can match eol */
6512 YY_RULE_SETUP
6513 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
6514         YY_BREAK
6515 case 142:
6516 /* rule 142 can match eol */
6517 YY_RULE_SETUP
6518 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
6519         YY_BREAK
6520 case 143:
6521 YY_RULE_SETUP
6522 {
6523   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6524   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6525   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6526   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6527  }
6528         YY_BREAK
6529 case 144:
6530 YY_RULE_SETUP
6531 {
6532   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6533   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6534   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6535   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6536   switch (YY_START) {
6537    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6538    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6539   }
6540  }
6541         YY_BREAK
6542 case 145:
6543 YY_RULE_SETUP
6544 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6545         YY_BREAK
6546 case 146:
6547 YY_RULE_SETUP
6548 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6549         YY_BREAK
6550 case YY_STATE_EOF(AL_surfxml_storage___type):
6551 FAIL("EOF in attribute list of `storage_type' element.");
6552         YY_BREAK
6553
6554 case 147:
6555 /* rule 147 can match eol */
6556 YY_RULE_SETUP
6557 {
6558   LEAVE;
6559   ETag_surfxml_storage___type();
6560   popbuffer(); /* attribute */
6561   switch (YY_START) {
6562    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6563    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6564   }
6565  }
6566         YY_BREAK
6567 case 148:
6568 /* rule 148 can match eol */
6569 YY_RULE_SETUP
6570 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6571         YY_BREAK
6572 case 149:
6573 YY_RULE_SETUP
6574 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6575         YY_BREAK
6576 case YY_STATE_EOF(E_surfxml_storage___type):
6577 case YY_STATE_EOF(S_surfxml_storage___type):
6578 case YY_STATE_EOF(S_surfxml_storage___type_2):
6579 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6580         YY_BREAK
6581
6582 case 150:
6583 /* rule 150 can match eol */
6584 YY_RULE_SETUP
6585 FAIL("Starting tag <storage> is not allowed here.");
6586         YY_BREAK
6587 case 151:
6588 /* rule 151 can match eol */
6589 YY_RULE_SETUP
6590 {
6591   AX_surfxml_storage_id = 0;
6592   surfxml_storage_id_isset = 0;
6593   AX_surfxml_storage_typeId = 0;
6594   surfxml_storage_typeId_isset = 0;
6595   AX_surfxml_storage_content = 0;
6596   surfxml_storage_content_isset = 0;
6597   AX_surfxml_storage_content___type = 25;
6598   surfxml_storage_content___type_isset = 0;
6599   ENTER(AL_surfxml_storage); pushbuffer(0);
6600   }
6601         YY_BREAK
6602
6603 case 152:
6604 /* rule 152 can match eol */
6605 YY_RULE_SETUP
6606 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);
6607         YY_BREAK
6608 case 153:
6609 /* rule 153 can match eol */
6610 YY_RULE_SETUP
6611 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);
6612         YY_BREAK
6613 case 154:
6614 /* rule 154 can match eol */
6615 YY_RULE_SETUP
6616 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);
6617         YY_BREAK
6618 case 155:
6619 /* rule 155 can match eol */
6620 YY_RULE_SETUP
6621 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);
6622         YY_BREAK
6623 case 156:
6624 /* rule 156 can match eol */
6625 YY_RULE_SETUP
6626 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6627         YY_BREAK
6628 case 157:
6629 /* rule 157 can match eol */
6630 YY_RULE_SETUP
6631 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6632         YY_BREAK
6633 case 158:
6634 /* rule 158 can match eol */
6635 YY_RULE_SETUP
6636 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
6637         YY_BREAK
6638 case 159:
6639 /* rule 159 can match eol */
6640 YY_RULE_SETUP
6641 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
6642         YY_BREAK
6643 case 160:
6644 YY_RULE_SETUP
6645 {
6646   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6647   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6648   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6649  }
6650         YY_BREAK
6651 case 161:
6652 YY_RULE_SETUP
6653 {
6654   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6655   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6656   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6657   switch (YY_START) {
6658    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6659    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6660   }
6661  }
6662         YY_BREAK
6663 case 162:
6664 YY_RULE_SETUP
6665 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6666         YY_BREAK
6667 case 163:
6668 YY_RULE_SETUP
6669 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6670         YY_BREAK
6671 case YY_STATE_EOF(AL_surfxml_storage):
6672 FAIL("EOF in attribute list of `storage' element.");
6673         YY_BREAK
6674
6675 case 164:
6676 /* rule 164 can match eol */
6677 YY_RULE_SETUP
6678 {
6679   LEAVE;
6680   ETag_surfxml_storage();
6681   popbuffer(); /* attribute */
6682   switch (YY_START) {
6683    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6684    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6685   }
6686  }
6687         YY_BREAK
6688 case 165:
6689 /* rule 165 can match eol */
6690 YY_RULE_SETUP
6691 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6692         YY_BREAK
6693 case 166:
6694 YY_RULE_SETUP
6695 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6696         YY_BREAK
6697 case YY_STATE_EOF(E_surfxml_storage):
6698 case YY_STATE_EOF(S_surfxml_storage):
6699 case YY_STATE_EOF(S_surfxml_storage_2):
6700 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6701         YY_BREAK
6702
6703 case 167:
6704 /* rule 167 can match eol */
6705 YY_RULE_SETUP
6706 FAIL("Starting tag <mount> is not allowed here.");
6707         YY_BREAK
6708 case 168:
6709 /* rule 168 can match eol */
6710 YY_RULE_SETUP
6711 {
6712   AX_surfxml_mount_storageId = 0;
6713   surfxml_mount_storageId_isset = 0;
6714   AX_surfxml_mount_name = 0;
6715   surfxml_mount_name_isset = 0;
6716   ENTER(AL_surfxml_mount); pushbuffer(0);
6717   }
6718         YY_BREAK
6719
6720 case 169:
6721 /* rule 169 can match eol */
6722 YY_RULE_SETUP
6723 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
6724         YY_BREAK
6725 case 170:
6726 /* rule 170 can match eol */
6727 YY_RULE_SETUP
6728 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
6729         YY_BREAK
6730 case 171:
6731 /* rule 171 can match eol */
6732 YY_RULE_SETUP
6733 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);
6734         YY_BREAK
6735 case 172:
6736 /* rule 172 can match eol */
6737 YY_RULE_SETUP
6738 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);
6739         YY_BREAK
6740 case 173:
6741 YY_RULE_SETUP
6742 {
6743   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6744   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6745   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6746  }
6747         YY_BREAK
6748 case 174:
6749 YY_RULE_SETUP
6750 {
6751   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6752   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6753   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6754   switch (YY_START) {
6755    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6756   }
6757  }
6758         YY_BREAK
6759 case 175:
6760 YY_RULE_SETUP
6761 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6762         YY_BREAK
6763 case 176:
6764 YY_RULE_SETUP
6765 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6766         YY_BREAK
6767 case YY_STATE_EOF(AL_surfxml_mount):
6768 FAIL("EOF in attribute list of `mount' element.");
6769         YY_BREAK
6770
6771 case 177:
6772 /* rule 177 can match eol */
6773 YY_RULE_SETUP
6774 {
6775   LEAVE;
6776   ETag_surfxml_mount();
6777   popbuffer(); /* attribute */
6778   switch (YY_START) {
6779    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6780   }
6781  }
6782         YY_BREAK
6783 case 178:
6784 /* rule 178 can match eol */
6785 YY_RULE_SETUP
6786 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6787         YY_BREAK
6788 case 179:
6789 YY_RULE_SETUP
6790 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6791         YY_BREAK
6792 case YY_STATE_EOF(E_surfxml_mount):
6793 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6794         YY_BREAK
6795
6796 case 180:
6797 /* rule 180 can match eol */
6798 YY_RULE_SETUP
6799 FAIL("Starting tag <mstorage> is not allowed here.");
6800         YY_BREAK
6801 case 181:
6802 /* rule 181 can match eol */
6803 YY_RULE_SETUP
6804 {
6805   AX_surfxml_mstorage_typeId = 0;
6806   surfxml_mstorage_typeId_isset = 0;
6807   AX_surfxml_mstorage_name = 0;
6808   surfxml_mstorage_name_isset = 0;
6809   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6810   }
6811         YY_BREAK
6812
6813 case 182:
6814 /* rule 182 can match eol */
6815 YY_RULE_SETUP
6816 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);
6817         YY_BREAK
6818 case 183:
6819 /* rule 183 can match eol */
6820 YY_RULE_SETUP
6821 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);
6822         YY_BREAK
6823 case 184:
6824 /* rule 184 can match eol */
6825 YY_RULE_SETUP
6826 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);
6827         YY_BREAK
6828 case 185:
6829 /* rule 185 can match eol */
6830 YY_RULE_SETUP
6831 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);
6832         YY_BREAK
6833 case 186:
6834 YY_RULE_SETUP
6835 {
6836   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6837   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6838   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6839  }
6840         YY_BREAK
6841 case 187:
6842 YY_RULE_SETUP
6843 {
6844   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6845   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6846   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6847   switch (YY_START) {
6848    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6849   }
6850  }
6851         YY_BREAK
6852 case 188:
6853 YY_RULE_SETUP
6854 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6855         YY_BREAK
6856 case 189:
6857 YY_RULE_SETUP
6858 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6859         YY_BREAK
6860 case YY_STATE_EOF(AL_surfxml_mstorage):
6861 FAIL("EOF in attribute list of `mstorage' element.");
6862         YY_BREAK
6863
6864 case 190:
6865 /* rule 190 can match eol */
6866 YY_RULE_SETUP
6867 {
6868   LEAVE;
6869   ETag_surfxml_mstorage();
6870   popbuffer(); /* attribute */
6871   switch (YY_START) {
6872    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6873   }
6874  }
6875         YY_BREAK
6876 case 191:
6877 /* rule 191 can match eol */
6878 YY_RULE_SETUP
6879 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6880         YY_BREAK
6881 case 192:
6882 YY_RULE_SETUP
6883 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6884         YY_BREAK
6885 case YY_STATE_EOF(E_surfxml_mstorage):
6886 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6887         YY_BREAK
6888
6889 case 193:
6890 /* rule 193 can match eol */
6891 YY_RULE_SETUP
6892 FAIL("Starting tag <host> is not allowed here.");
6893         YY_BREAK
6894 case 194:
6895 /* rule 194 can match eol */
6896 YY_RULE_SETUP
6897 {
6898   AX_surfxml_host_id = 0;
6899   surfxml_host_id_isset = 0;
6900   AX_surfxml_host_power = 0;
6901   surfxml_host_power_isset = 0;
6902   AX_surfxml_host_core = 34;
6903   surfxml_host_core_isset = 0;
6904   AX_surfxml_host_availability = 36;
6905   surfxml_host_availability_isset = 0;
6906   AX_surfxml_host_availability___file = 0;
6907   surfxml_host_availability___file_isset = 0;
6908   AX_surfxml_host_state = A_surfxml_host_state_ON;
6909   surfxml_host_state_isset = 0;
6910   AX_surfxml_host_state___file = 0;
6911   surfxml_host_state___file_isset = 0;
6912   AX_surfxml_host_coordinates = 0;
6913   surfxml_host_coordinates_isset = 0;
6914   AX_surfxml_host_pstate = 40;
6915   surfxml_host_pstate_isset = 0;
6916   ENTER(AL_surfxml_host); pushbuffer(0);
6917   }
6918         YY_BREAK
6919
6920 case 195:
6921 /* rule 195 can match eol */
6922 YY_RULE_SETUP
6923 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);
6924         YY_BREAK
6925 case 196:
6926 /* rule 196 can match eol */
6927 YY_RULE_SETUP
6928 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);
6929         YY_BREAK
6930 case 197:
6931 /* rule 197 can match eol */
6932 YY_RULE_SETUP
6933 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);
6934         YY_BREAK
6935 case 198:
6936 /* rule 198 can match eol */
6937 YY_RULE_SETUP
6938 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);
6939         YY_BREAK
6940 case 199:
6941 /* rule 199 can match eol */
6942 YY_RULE_SETUP
6943 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);
6944         YY_BREAK
6945 case 200:
6946 /* rule 200 can match eol */
6947 YY_RULE_SETUP
6948 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);
6949         YY_BREAK
6950 case 201:
6951 /* rule 201 can match eol */
6952 YY_RULE_SETUP
6953 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);
6954         YY_BREAK
6955 case 202:
6956 /* rule 202 can match eol */
6957 YY_RULE_SETUP
6958 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);
6959         YY_BREAK
6960 case 203:
6961 /* rule 203 can match eol */
6962 YY_RULE_SETUP
6963 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);
6964         YY_BREAK
6965 case 204:
6966 /* rule 204 can match eol */
6967 YY_RULE_SETUP
6968 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);
6969         YY_BREAK
6970 case 205:
6971 /* rule 205 can match eol */
6972 case 206:
6973 /* rule 206 can match eol */
6974 YY_RULE_SETUP
6975 A_surfxml_host_state = A_surfxml_host_state_ON;
6976         YY_BREAK
6977 case 207:
6978 /* rule 207 can match eol */
6979 case 208:
6980 /* rule 208 can match eol */
6981 YY_RULE_SETUP
6982 A_surfxml_host_state = A_surfxml_host_state_OFF;
6983         YY_BREAK
6984 case 209:
6985 /* rule 209 can match eol */
6986 YY_RULE_SETUP
6987 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);
6988         YY_BREAK
6989 case 210:
6990 /* rule 210 can match eol */
6991 YY_RULE_SETUP
6992 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);
6993         YY_BREAK
6994 case 211:
6995 /* rule 211 can match eol */
6996 YY_RULE_SETUP
6997 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);
6998         YY_BREAK
6999 case 212:
7000 /* rule 212 can match eol */
7001 YY_RULE_SETUP
7002 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);
7003         YY_BREAK
7004 case 213:
7005 /* rule 213 can match eol */
7006 YY_RULE_SETUP
7007 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7008         YY_BREAK
7009 case 214:
7010 /* rule 214 can match eol */
7011 YY_RULE_SETUP
7012 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7013         YY_BREAK
7014 case 215:
7015 YY_RULE_SETUP
7016 {
7017   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7018   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7019   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7020  }
7021         YY_BREAK
7022 case 216:
7023 YY_RULE_SETUP
7024 {
7025   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7026   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7027   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7028   switch (YY_START) {
7029    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7030   }
7031  }
7032         YY_BREAK
7033 case 217:
7034 YY_RULE_SETUP
7035 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7036         YY_BREAK
7037 case 218:
7038 YY_RULE_SETUP
7039 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7040         YY_BREAK
7041 case YY_STATE_EOF(AL_surfxml_host):
7042 FAIL("EOF in attribute list of `host' element.");
7043         YY_BREAK
7044
7045 case 219:
7046 /* rule 219 can match eol */
7047 YY_RULE_SETUP
7048 {
7049   LEAVE;
7050   ETag_surfxml_host();
7051   popbuffer(); /* attribute */
7052   switch (YY_START) {
7053    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7054   }
7055  }
7056         YY_BREAK
7057 case 220:
7058 /* rule 220 can match eol */
7059 YY_RULE_SETUP
7060 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7061         YY_BREAK
7062 case 221:
7063 YY_RULE_SETUP
7064 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7065         YY_BREAK
7066 case YY_STATE_EOF(S_surfxml_host):
7067 case YY_STATE_EOF(E_surfxml_host):
7068 case YY_STATE_EOF(S_surfxml_host_2):
7069 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7070         YY_BREAK
7071
7072 case 222:
7073 /* rule 222 can match eol */
7074 YY_RULE_SETUP
7075 FAIL("Starting tag <gpu> is not allowed here.");
7076         YY_BREAK
7077 case 223:
7078 /* rule 223 can match eol */
7079 YY_RULE_SETUP
7080 {
7081   AX_surfxml_gpu_name = 0;
7082   surfxml_gpu_name_isset = 0;
7083   ENTER(AL_surfxml_gpu); pushbuffer(0);
7084   }
7085         YY_BREAK
7086
7087 case 224:
7088 /* rule 224 can match eol */
7089 YY_RULE_SETUP
7090 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7091         YY_BREAK
7092 case 225:
7093 /* rule 225 can match eol */
7094 YY_RULE_SETUP
7095 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7096         YY_BREAK
7097 case 226:
7098 YY_RULE_SETUP
7099 {
7100   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7101   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7102  }
7103         YY_BREAK
7104 case 227:
7105 YY_RULE_SETUP
7106 {
7107   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7108   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7109   switch (YY_START) {
7110    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7111   }
7112  }
7113         YY_BREAK
7114 case 228:
7115 YY_RULE_SETUP
7116 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7117         YY_BREAK
7118 case 229:
7119 YY_RULE_SETUP
7120 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7121         YY_BREAK
7122 case YY_STATE_EOF(AL_surfxml_gpu):
7123 FAIL("EOF in attribute list of `gpu' element.");
7124         YY_BREAK
7125
7126 case 230:
7127 /* rule 230 can match eol */
7128 YY_RULE_SETUP
7129 {
7130   LEAVE;
7131   ETag_surfxml_gpu();
7132   popbuffer(); /* attribute */
7133   switch (YY_START) {
7134    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7135   }
7136  }
7137         YY_BREAK
7138 case 231:
7139 /* rule 231 can match eol */
7140 YY_RULE_SETUP
7141 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7142         YY_BREAK
7143 case 232:
7144 YY_RULE_SETUP
7145 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7146         YY_BREAK
7147 case YY_STATE_EOF(E_surfxml_gpu):
7148 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7149         YY_BREAK
7150
7151 case 233:
7152 /* rule 233 can match eol */
7153 YY_RULE_SETUP
7154 FAIL("Starting tag <host_link> is not allowed here.");
7155         YY_BREAK
7156 case 234:
7157 /* rule 234 can match eol */
7158 YY_RULE_SETUP
7159 {
7160   AX_surfxml_host___link_id = 0;
7161   surfxml_host___link_id_isset = 0;
7162   AX_surfxml_host___link_up = 0;
7163   surfxml_host___link_up_isset = 0;
7164   AX_surfxml_host___link_down = 0;
7165   surfxml_host___link_down_isset = 0;
7166   ENTER(AL_surfxml_host___link); pushbuffer(0);
7167   }
7168         YY_BREAK
7169
7170 case 235:
7171 /* rule 235 can match eol */
7172 YY_RULE_SETUP
7173 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7174         YY_BREAK
7175 case 236:
7176 /* rule 236 can match eol */
7177 YY_RULE_SETUP
7178 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7179         YY_BREAK
7180 case 237:
7181 /* rule 237 can match eol */
7182 YY_RULE_SETUP
7183 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7184         YY_BREAK
7185 case 238:
7186 /* rule 238 can match eol */
7187 YY_RULE_SETUP
7188 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7189         YY_BREAK
7190 case 239:
7191 /* rule 239 can match eol */
7192 YY_RULE_SETUP
7193 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7194         YY_BREAK
7195 case 240:
7196 /* rule 240 can match eol */
7197 YY_RULE_SETUP
7198 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7199         YY_BREAK
7200 case 241:
7201 YY_RULE_SETUP
7202 {
7203   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7204   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7205   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7206   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7207  }
7208         YY_BREAK
7209 case 242:
7210 YY_RULE_SETUP
7211 {
7212   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7213   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7214   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7215   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7216   switch (YY_START) {
7217    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7218   }
7219  }
7220         YY_BREAK
7221 case 243:
7222 YY_RULE_SETUP
7223 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7224         YY_BREAK
7225 case 244:
7226 YY_RULE_SETUP
7227 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7228         YY_BREAK
7229 case YY_STATE_EOF(AL_surfxml_host___link):
7230 FAIL("EOF in attribute list of `host_link' element.");
7231         YY_BREAK
7232
7233 case 245:
7234 /* rule 245 can match eol */
7235 YY_RULE_SETUP
7236 {
7237   LEAVE;
7238   ETag_surfxml_host___link();
7239   popbuffer(); /* attribute */
7240   switch (YY_START) {
7241    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7242   }
7243  }
7244         YY_BREAK
7245 case 246:
7246 /* rule 246 can match eol */
7247 YY_RULE_SETUP
7248 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7249         YY_BREAK
7250 case 247:
7251 YY_RULE_SETUP
7252 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7253         YY_BREAK
7254 case YY_STATE_EOF(E_surfxml_host___link):
7255 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7256         YY_BREAK
7257
7258 case 248:
7259 /* rule 248 can match eol */
7260 YY_RULE_SETUP
7261 FAIL("Starting tag <cluster> is not allowed here.");
7262         YY_BREAK
7263 case 249:
7264 /* rule 249 can match eol */
7265 YY_RULE_SETUP
7266 {
7267   AX_surfxml_cluster_id = 0;
7268   surfxml_cluster_id_isset = 0;
7269   AX_surfxml_cluster_prefix = 0;
7270   surfxml_cluster_prefix_isset = 0;
7271   AX_surfxml_cluster_suffix = 0;
7272   surfxml_cluster_suffix_isset = 0;
7273   AX_surfxml_cluster_radical = 0;
7274   surfxml_cluster_radical_isset = 0;
7275   AX_surfxml_cluster_power = 0;
7276   surfxml_cluster_power_isset = 0;
7277   AX_surfxml_cluster_core = 44;
7278   surfxml_cluster_core_isset = 0;
7279   AX_surfxml_cluster_bw = 0;
7280   surfxml_cluster_bw_isset = 0;
7281   AX_surfxml_cluster_lat = 0;
7282   surfxml_cluster_lat_isset = 0;
7283   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7284   surfxml_cluster_sharing___policy_isset = 0;
7285   AX_surfxml_cluster_bb___bw = 0;
7286   surfxml_cluster_bb___bw_isset = 0;
7287   AX_surfxml_cluster_bb___lat = 0;
7288   surfxml_cluster_bb___lat_isset = 0;
7289   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7290   surfxml_cluster_bb___sharing___policy_isset = 0;
7291   AX_surfxml_cluster_availability___file = 0;
7292   surfxml_cluster_availability___file_isset = 0;
7293   AX_surfxml_cluster_state___file = 0;
7294   surfxml_cluster_state___file_isset = 0;
7295   AX_surfxml_cluster_router___id = 0;
7296   surfxml_cluster_router___id_isset = 0;
7297   AX_surfxml_cluster_limiter___link = 0;
7298   surfxml_cluster_limiter___link_isset = 0;
7299   AX_surfxml_cluster_loopback___bw = 0;
7300   surfxml_cluster_loopback___bw_isset = 0;
7301   AX_surfxml_cluster_loopback___lat = 0;
7302   surfxml_cluster_loopback___lat_isset = 0;
7303   ENTER(AL_surfxml_cluster); pushbuffer(0);
7304   }
7305         YY_BREAK
7306
7307 case 250:
7308 /* rule 250 can match eol */
7309 YY_RULE_SETUP
7310 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);
7311         YY_BREAK
7312 case 251:
7313 /* rule 251 can match eol */
7314 YY_RULE_SETUP
7315 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);
7316         YY_BREAK
7317 case 252:
7318 /* rule 252 can match eol */
7319 YY_RULE_SETUP
7320 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);
7321         YY_BREAK
7322 case 253:
7323 /* rule 253 can match eol */
7324 YY_RULE_SETUP
7325 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);
7326         YY_BREAK
7327 case 254:
7328 /* rule 254 can match eol */
7329 YY_RULE_SETUP
7330 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);
7331         YY_BREAK
7332 case 255:
7333 /* rule 255 can match eol */
7334 YY_RULE_SETUP
7335 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);
7336         YY_BREAK
7337 case 256:
7338 /* rule 256 can match eol */
7339 YY_RULE_SETUP
7340 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);
7341         YY_BREAK
7342 case 257:
7343 /* rule 257 can match eol */
7344 YY_RULE_SETUP
7345 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);
7346         YY_BREAK
7347 case 258:
7348 /* rule 258 can match eol */
7349 YY_RULE_SETUP
7350 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);
7351         YY_BREAK
7352 case 259:
7353 /* rule 259 can match eol */
7354 YY_RULE_SETUP
7355 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);
7356         YY_BREAK
7357 case 260:
7358 /* rule 260 can match eol */
7359 YY_RULE_SETUP
7360 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);
7361         YY_BREAK
7362 case 261:
7363 /* rule 261 can match eol */
7364 YY_RULE_SETUP
7365 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);
7366         YY_BREAK
7367 case 262:
7368 /* rule 262 can match eol */
7369 YY_RULE_SETUP
7370 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);
7371         YY_BREAK
7372 case 263:
7373 /* rule 263 can match eol */
7374 YY_RULE_SETUP
7375 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);
7376         YY_BREAK
7377 case 264:
7378 /* rule 264 can match eol */
7379 YY_RULE_SETUP
7380 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);
7381         YY_BREAK
7382 case 265:
7383 /* rule 265 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 266:
7388 /* rule 266 can match eol */
7389 case 267:
7390 /* rule 267 can match eol */
7391 YY_RULE_SETUP
7392 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7393         YY_BREAK
7394 case 268:
7395 /* rule 268 can match eol */
7396 case 269:
7397 /* rule 269 can match eol */
7398 YY_RULE_SETUP
7399 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7400         YY_BREAK
7401 case 270:
7402 /* rule 270 can match eol */
7403 case 271:
7404 /* rule 271 can match eol */
7405 YY_RULE_SETUP
7406 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7407         YY_BREAK
7408 case 272:
7409 /* rule 272 can match eol */
7410 YY_RULE_SETUP
7411 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);
7412         YY_BREAK
7413 case 273:
7414 /* rule 273 can match eol */
7415 YY_RULE_SETUP
7416 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);
7417         YY_BREAK
7418 case 274:
7419 /* rule 274 can match eol */
7420 YY_RULE_SETUP
7421 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);
7422         YY_BREAK
7423 case 275:
7424 /* rule 275 can match eol */
7425 YY_RULE_SETUP
7426 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);
7427         YY_BREAK
7428 case 276:
7429 /* rule 276 can match eol */
7430 case 277:
7431 /* rule 277 can match eol */
7432 YY_RULE_SETUP
7433 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7434         YY_BREAK
7435 case 278:
7436 /* rule 278 can match eol */
7437 case 279:
7438 /* rule 279 can match eol */
7439 YY_RULE_SETUP
7440 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7441         YY_BREAK
7442 case 280:
7443 /* rule 280 can match eol */
7444 YY_RULE_SETUP
7445 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);
7446         YY_BREAK
7447 case 281:
7448 /* rule 281 can match eol */
7449 YY_RULE_SETUP
7450 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);
7451         YY_BREAK
7452 case 282:
7453 /* rule 282 can match eol */
7454 YY_RULE_SETUP
7455 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);
7456         YY_BREAK
7457 case 283:
7458 /* rule 283 can match eol */
7459 YY_RULE_SETUP
7460 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);
7461         YY_BREAK
7462 case 284:
7463 /* rule 284 can match eol */
7464 YY_RULE_SETUP
7465 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);
7466         YY_BREAK
7467 case 285:
7468 /* rule 285 can match eol */
7469 YY_RULE_SETUP
7470 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);
7471         YY_BREAK
7472 case 286:
7473 /* rule 286 can match eol */
7474 YY_RULE_SETUP
7475 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7476         YY_BREAK
7477 case 287:
7478 /* rule 287 can match eol */
7479 YY_RULE_SETUP
7480 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7481         YY_BREAK
7482 case 288:
7483 /* rule 288 can match eol */
7484 YY_RULE_SETUP
7485 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7486         YY_BREAK
7487 case 289:
7488 /* rule 289 can match eol */
7489 YY_RULE_SETUP
7490 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7491         YY_BREAK
7492 case 290:
7493 /* rule 290 can match eol */
7494 YY_RULE_SETUP
7495 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7496         YY_BREAK
7497 case 291:
7498 /* rule 291 can match eol */
7499 YY_RULE_SETUP
7500 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7501         YY_BREAK
7502 case 292:
7503 YY_RULE_SETUP
7504 {
7505   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7506   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7507   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7508   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7509   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7510   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7511   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7512   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7513  }
7514         YY_BREAK
7515 case 293:
7516 YY_RULE_SETUP
7517 {
7518   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7519   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7520   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7521   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7522   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7523   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7524   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7525   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7526   switch (YY_START) {
7527    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;
7528    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;
7529    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7530   }
7531  }
7532         YY_BREAK
7533 case 294:
7534 YY_RULE_SETUP
7535 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7536         YY_BREAK
7537 case 295:
7538 YY_RULE_SETUP
7539 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7540         YY_BREAK
7541 case YY_STATE_EOF(AL_surfxml_cluster):
7542 FAIL("EOF in attribute list of `cluster' element.");
7543         YY_BREAK
7544
7545 case 296:
7546 /* rule 296 can match eol */
7547 YY_RULE_SETUP
7548 {
7549   LEAVE;
7550   ETag_surfxml_cluster();
7551   popbuffer(); /* attribute */
7552   switch (YY_START) {
7553    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;
7554    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;
7555    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7556   }
7557  }
7558         YY_BREAK
7559 case 297:
7560 /* rule 297 can match eol */
7561 YY_RULE_SETUP
7562 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7563         YY_BREAK
7564 case 298:
7565 YY_RULE_SETUP
7566 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7567         YY_BREAK
7568 case YY_STATE_EOF(S_surfxml_cluster_2):
7569 case YY_STATE_EOF(S_surfxml_cluster):
7570 case YY_STATE_EOF(E_surfxml_cluster):
7571 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7572         YY_BREAK
7573
7574 case 299:
7575 /* rule 299 can match eol */
7576 YY_RULE_SETUP
7577 FAIL("Starting tag <cabinet> is not allowed here.");
7578         YY_BREAK
7579 case 300:
7580 /* rule 300 can match eol */
7581 YY_RULE_SETUP
7582 {
7583   AX_surfxml_cabinet_id = 0;
7584   surfxml_cabinet_id_isset = 0;
7585   AX_surfxml_cabinet_prefix = 0;
7586   surfxml_cabinet_prefix_isset = 0;
7587   AX_surfxml_cabinet_suffix = 0;
7588   surfxml_cabinet_suffix_isset = 0;
7589   AX_surfxml_cabinet_radical = 0;
7590   surfxml_cabinet_radical_isset = 0;
7591   AX_surfxml_cabinet_power = 0;
7592   surfxml_cabinet_power_isset = 0;
7593   AX_surfxml_cabinet_bw = 0;
7594   surfxml_cabinet_bw_isset = 0;
7595   AX_surfxml_cabinet_lat = 0;
7596   surfxml_cabinet_lat_isset = 0;
7597   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7598   }
7599         YY_BREAK
7600
7601 case 301:
7602 /* rule 301 can match eol */
7603 YY_RULE_SETUP
7604 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7605         YY_BREAK
7606 case 302:
7607 /* rule 302 can match eol */
7608 YY_RULE_SETUP
7609 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7610         YY_BREAK
7611 case 303:
7612 /* rule 303 can match eol */
7613 YY_RULE_SETUP
7614 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7615         YY_BREAK
7616 case 304:
7617 /* rule 304 can match eol */
7618 YY_RULE_SETUP
7619 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7620         YY_BREAK
7621 case 305:
7622 /* rule 305 can match eol */
7623 YY_RULE_SETUP
7624 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7625         YY_BREAK
7626 case 306:
7627 /* rule 306 can match eol */
7628 YY_RULE_SETUP
7629 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7630         YY_BREAK
7631 case 307:
7632 /* rule 307 can match eol */
7633 YY_RULE_SETUP
7634 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7635         YY_BREAK
7636 case 308:
7637 /* rule 308 can match eol */
7638 YY_RULE_SETUP
7639 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7640         YY_BREAK
7641 case 309:
7642 /* rule 309 can match eol */
7643 YY_RULE_SETUP
7644 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7645         YY_BREAK
7646 case 310:
7647 /* rule 310 can match eol */
7648 YY_RULE_SETUP
7649 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7650         YY_BREAK
7651 case 311:
7652 /* rule 311 can match eol */
7653 YY_RULE_SETUP
7654 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7655         YY_BREAK
7656 case 312:
7657 /* rule 312 can match eol */
7658 YY_RULE_SETUP
7659 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7660         YY_BREAK
7661 case 313:
7662 /* rule 313 can match eol */
7663 YY_RULE_SETUP
7664 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7665         YY_BREAK
7666 case 314:
7667 /* rule 314 can match eol */
7668 YY_RULE_SETUP
7669 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7670         YY_BREAK
7671 case 315:
7672 YY_RULE_SETUP
7673 {
7674   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7675   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7676   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7677   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7678   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7679   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7680   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7681   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7682  }
7683         YY_BREAK
7684 case 316:
7685 YY_RULE_SETUP
7686 {
7687   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7688   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7689   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7690   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7691   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7692   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7693   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7694   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7695   switch (YY_START) {
7696    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7697    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;
7698    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7699    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7700   }
7701  }
7702         YY_BREAK
7703 case 317:
7704 YY_RULE_SETUP
7705 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7706         YY_BREAK
7707 case 318:
7708 YY_RULE_SETUP
7709 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7710         YY_BREAK
7711 case YY_STATE_EOF(AL_surfxml_cabinet):
7712 FAIL("EOF in attribute list of `cabinet' element.");
7713         YY_BREAK
7714
7715 case 319:
7716 /* rule 319 can match eol */
7717 YY_RULE_SETUP
7718 {
7719   LEAVE;
7720   ETag_surfxml_cabinet();
7721   popbuffer(); /* attribute */
7722   switch (YY_START) {
7723    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7724    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;
7725    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7726    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7727   }
7728  }
7729         YY_BREAK
7730 case 320:
7731 /* rule 320 can match eol */
7732 YY_RULE_SETUP
7733 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7734         YY_BREAK
7735 case 321:
7736 YY_RULE_SETUP
7737 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7738         YY_BREAK
7739 case YY_STATE_EOF(E_surfxml_cabinet):
7740 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7741         YY_BREAK
7742
7743 case 322:
7744 /* rule 322 can match eol */
7745 YY_RULE_SETUP
7746 FAIL("Starting tag <peer> is not allowed here.");
7747         YY_BREAK
7748 case 323:
7749 /* rule 323 can match eol */
7750 YY_RULE_SETUP
7751 {
7752   AX_surfxml_peer_id = 0;
7753   surfxml_peer_id_isset = 0;
7754   AX_surfxml_peer_power = 0;
7755   surfxml_peer_power_isset = 0;
7756   AX_surfxml_peer_bw___in = 0;
7757   surfxml_peer_bw___in_isset = 0;
7758   AX_surfxml_peer_bw___out = 0;
7759   surfxml_peer_bw___out_isset = 0;
7760   AX_surfxml_peer_lat = 0;
7761   surfxml_peer_lat_isset = 0;
7762   AX_surfxml_peer_coordinates = 0;
7763   surfxml_peer_coordinates_isset = 0;
7764   AX_surfxml_peer_availability___file = 0;
7765   surfxml_peer_availability___file_isset = 0;
7766   AX_surfxml_peer_state___file = 0;
7767   surfxml_peer_state___file_isset = 0;
7768   ENTER(AL_surfxml_peer); pushbuffer(0);
7769   }
7770         YY_BREAK
7771
7772 case 324:
7773 /* rule 324 can match eol */
7774 YY_RULE_SETUP
7775 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);
7776         YY_BREAK
7777 case 325:
7778 /* rule 325 can match eol */
7779 YY_RULE_SETUP
7780 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);
7781         YY_BREAK
7782 case 326:
7783 /* rule 326 can match eol */
7784 YY_RULE_SETUP
7785 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);
7786         YY_BREAK
7787 case 327:
7788 /* rule 327 can match eol */
7789 YY_RULE_SETUP
7790 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);
7791         YY_BREAK
7792 case 328:
7793 /* rule 328 can match eol */
7794 YY_RULE_SETUP
7795 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);
7796         YY_BREAK
7797 case 329:
7798 /* rule 329 can match eol */
7799 YY_RULE_SETUP
7800 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);
7801         YY_BREAK
7802 case 330:
7803 /* rule 330 can match eol */
7804 YY_RULE_SETUP
7805 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);
7806         YY_BREAK
7807 case 331:
7808 /* rule 331 can match eol */
7809 YY_RULE_SETUP
7810 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);
7811         YY_BREAK
7812 case 332:
7813 /* rule 332 can match eol */
7814 YY_RULE_SETUP
7815 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);
7816         YY_BREAK
7817 case 333:
7818 /* rule 333 can match eol */
7819 YY_RULE_SETUP
7820 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);
7821         YY_BREAK
7822 case 334:
7823 /* rule 334 can match eol */
7824 YY_RULE_SETUP
7825 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);
7826         YY_BREAK
7827 case 335:
7828 /* rule 335 can match eol */
7829 YY_RULE_SETUP
7830 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);
7831         YY_BREAK
7832 case 336:
7833 /* rule 336 can match eol */
7834 YY_RULE_SETUP
7835 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);
7836         YY_BREAK
7837 case 337:
7838 /* rule 337 can match eol */
7839 YY_RULE_SETUP
7840 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);
7841         YY_BREAK
7842 case 338:
7843 /* rule 338 can match eol */
7844 YY_RULE_SETUP
7845 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);
7846         YY_BREAK
7847 case 339:
7848 /* rule 339 can match eol */
7849 YY_RULE_SETUP
7850 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);
7851         YY_BREAK
7852 case 340:
7853 YY_RULE_SETUP
7854 {
7855   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7856   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7857   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7858   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7859   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7860   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7861  }
7862         YY_BREAK
7863 case 341:
7864 YY_RULE_SETUP
7865 {
7866   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7867   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7868   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7869   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7870   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7871   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7872   switch (YY_START) {
7873    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;
7874    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;
7875    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7876   }
7877  }
7878         YY_BREAK
7879 case 342:
7880 YY_RULE_SETUP
7881 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7882         YY_BREAK
7883 case 343:
7884 YY_RULE_SETUP
7885 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7886         YY_BREAK
7887 case YY_STATE_EOF(AL_surfxml_peer):
7888 FAIL("EOF in attribute list of `peer' element.");
7889         YY_BREAK
7890
7891 case 344:
7892 /* rule 344 can match eol */
7893 YY_RULE_SETUP
7894 {
7895   LEAVE;
7896   ETag_surfxml_peer();
7897   popbuffer(); /* attribute */
7898   switch (YY_START) {
7899    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;
7900    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;
7901    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7902   }
7903  }
7904         YY_BREAK
7905 case 345:
7906 /* rule 345 can match eol */
7907 YY_RULE_SETUP
7908 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7909         YY_BREAK
7910 case 346:
7911 YY_RULE_SETUP
7912 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7913         YY_BREAK
7914 case YY_STATE_EOF(E_surfxml_peer):
7915 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7916         YY_BREAK
7917
7918 case 347:
7919 /* rule 347 can match eol */
7920 YY_RULE_SETUP
7921 FAIL("Starting tag <router> is not allowed here.");
7922         YY_BREAK
7923 case 348:
7924 /* rule 348 can match eol */
7925 YY_RULE_SETUP
7926 {
7927   AX_surfxml_router_id = 0;
7928   surfxml_router_id_isset = 0;
7929   AX_surfxml_router_coordinates = 0;
7930   surfxml_router_coordinates_isset = 0;
7931   ENTER(AL_surfxml_router); pushbuffer(0);
7932   }
7933         YY_BREAK
7934
7935 case 349:
7936 /* rule 349 can match eol */
7937 YY_RULE_SETUP
7938 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);
7939         YY_BREAK
7940 case 350:
7941 /* rule 350 can match eol */
7942 YY_RULE_SETUP
7943 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);
7944         YY_BREAK
7945 case 351:
7946 /* rule 351 can match eol */
7947 YY_RULE_SETUP
7948 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);
7949         YY_BREAK
7950 case 352:
7951 /* rule 352 can match eol */
7952 YY_RULE_SETUP
7953 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);
7954         YY_BREAK
7955 case 353:
7956 YY_RULE_SETUP
7957 {
7958   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7959   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7960  }
7961         YY_BREAK
7962 case 354:
7963 YY_RULE_SETUP
7964 {
7965   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7966   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7967   switch (YY_START) {
7968    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7969   }
7970  }
7971         YY_BREAK
7972 case 355:
7973 YY_RULE_SETUP
7974 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7975         YY_BREAK
7976 case 356:
7977 YY_RULE_SETUP
7978 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7979         YY_BREAK
7980 case YY_STATE_EOF(AL_surfxml_router):
7981 FAIL("EOF in attribute list of `router' element.");
7982         YY_BREAK
7983
7984 case 357:
7985 /* rule 357 can match eol */
7986 YY_RULE_SETUP
7987 {
7988   LEAVE;
7989   ETag_surfxml_router();
7990   popbuffer(); /* attribute */
7991   switch (YY_START) {
7992    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7993   }
7994  }
7995         YY_BREAK
7996 case 358:
7997 /* rule 358 can match eol */
7998 YY_RULE_SETUP
7999 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8000         YY_BREAK
8001 case 359:
8002 YY_RULE_SETUP
8003 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8004         YY_BREAK
8005 case YY_STATE_EOF(E_surfxml_router):
8006 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8007         YY_BREAK
8008
8009 case 360:
8010 /* rule 360 can match eol */
8011 YY_RULE_SETUP
8012 FAIL("Starting tag <backbone> is not allowed here.");
8013         YY_BREAK
8014 case 361:
8015 /* rule 361 can match eol */
8016 YY_RULE_SETUP
8017 {
8018   AX_surfxml_backbone_id = 0;
8019   surfxml_backbone_id_isset = 0;
8020   AX_surfxml_backbone_bandwidth = 0;
8021   surfxml_backbone_bandwidth_isset = 0;
8022   AX_surfxml_backbone_latency = 0;
8023   surfxml_backbone_latency_isset = 0;
8024   ENTER(AL_surfxml_backbone); pushbuffer(0);
8025   }
8026         YY_BREAK
8027
8028 case 362:
8029 /* rule 362 can match eol */
8030 YY_RULE_SETUP
8031 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
8032         YY_BREAK
8033 case 363:
8034 /* rule 363 can match eol */
8035 YY_RULE_SETUP
8036 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
8037         YY_BREAK
8038 case 364:
8039 /* rule 364 can match eol */
8040 YY_RULE_SETUP
8041 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
8042         YY_BREAK
8043 case 365:
8044 /* rule 365 can match eol */
8045 YY_RULE_SETUP
8046 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
8047         YY_BREAK
8048 case 366:
8049 /* rule 366 can match eol */
8050 YY_RULE_SETUP
8051 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
8052         YY_BREAK
8053 case 367:
8054 /* rule 367 can match eol */
8055 YY_RULE_SETUP
8056 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
8057         YY_BREAK
8058 case 368:
8059 YY_RULE_SETUP
8060 {
8061   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8062   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8063   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8064   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8065  }
8066         YY_BREAK
8067 case 369:
8068 YY_RULE_SETUP
8069 {
8070   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8071   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8072   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8073   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8074   switch (YY_START) {
8075    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8076    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8077   }
8078  }
8079         YY_BREAK
8080 case 370:
8081 YY_RULE_SETUP
8082 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8083         YY_BREAK
8084 case 371:
8085 YY_RULE_SETUP
8086 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8087         YY_BREAK
8088 case YY_STATE_EOF(AL_surfxml_backbone):
8089 FAIL("EOF in attribute list of `backbone' element.");
8090         YY_BREAK
8091
8092 case 372:
8093 /* rule 372 can match eol */
8094 YY_RULE_SETUP
8095 {
8096   LEAVE;
8097   ETag_surfxml_backbone();
8098   popbuffer(); /* attribute */
8099   switch (YY_START) {
8100    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8101    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8102   }
8103  }
8104         YY_BREAK
8105 case 373:
8106 /* rule 373 can match eol */
8107 YY_RULE_SETUP
8108 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8109         YY_BREAK
8110 case 374:
8111 YY_RULE_SETUP
8112 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8113         YY_BREAK
8114 case YY_STATE_EOF(E_surfxml_backbone):
8115 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8116         YY_BREAK
8117
8118 case 375:
8119 /* rule 375 can match eol */
8120 YY_RULE_SETUP
8121 FAIL("Starting tag <link> is not allowed here.");
8122         YY_BREAK
8123 case 376:
8124 /* rule 376 can match eol */
8125 YY_RULE_SETUP
8126 {
8127   AX_surfxml_link_id = 0;
8128   surfxml_link_id_isset = 0;
8129   AX_surfxml_link_bandwidth = 0;
8130   surfxml_link_bandwidth_isset = 0;
8131   AX_surfxml_link_bandwidth___file = 0;
8132   surfxml_link_bandwidth___file_isset = 0;
8133   AX_surfxml_link_latency = 46;
8134   surfxml_link_latency_isset = 0;
8135   AX_surfxml_link_latency___file = 0;
8136   surfxml_link_latency___file_isset = 0;
8137   AX_surfxml_link_state = A_surfxml_link_state_ON;
8138   surfxml_link_state_isset = 0;
8139   AX_surfxml_link_state___file = 0;
8140   surfxml_link_state___file_isset = 0;
8141   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8142   surfxml_link_sharing___policy_isset = 0;
8143   ENTER(AL_surfxml_link); pushbuffer(0);
8144   }
8145         YY_BREAK
8146
8147 case 377:
8148 /* rule 377 can match eol */
8149 YY_RULE_SETUP
8150 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);
8151         YY_BREAK
8152 case 378:
8153 /* rule 378 can match eol */
8154 YY_RULE_SETUP
8155 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);
8156         YY_BREAK
8157 case 379:
8158 /* rule 379 can match eol */
8159 YY_RULE_SETUP
8160 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);
8161         YY_BREAK
8162 case 380:
8163 /* rule 380 can match eol */
8164 YY_RULE_SETUP
8165 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);
8166         YY_BREAK
8167 case 381:
8168 /* rule 381 can match eol */
8169 YY_RULE_SETUP
8170 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);
8171         YY_BREAK
8172 case 382:
8173 /* rule 382 can match eol */
8174 YY_RULE_SETUP
8175 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);
8176         YY_BREAK
8177 case 383:
8178 /* rule 383 can match eol */
8179 YY_RULE_SETUP
8180 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);
8181         YY_BREAK
8182 case 384:
8183 /* rule 384 can match eol */
8184 YY_RULE_SETUP
8185 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);
8186         YY_BREAK
8187 case 385:
8188 /* rule 385 can match eol */
8189 YY_RULE_SETUP
8190 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);
8191         YY_BREAK
8192 case 386:
8193 /* rule 386 can match eol */
8194 YY_RULE_SETUP
8195 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);
8196         YY_BREAK
8197 case 387:
8198 /* rule 387 can match eol */
8199 case 388:
8200 /* rule 388 can match eol */
8201 YY_RULE_SETUP
8202 A_surfxml_link_state = A_surfxml_link_state_ON;
8203         YY_BREAK
8204 case 389:
8205 /* rule 389 can match eol */
8206 case 390:
8207 /* rule 390 can match eol */
8208 YY_RULE_SETUP
8209 A_surfxml_link_state = A_surfxml_link_state_OFF;
8210         YY_BREAK
8211 case 391:
8212 /* rule 391 can match eol */
8213 YY_RULE_SETUP
8214 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);
8215         YY_BREAK
8216 case 392:
8217 /* rule 392 can match eol */
8218 YY_RULE_SETUP
8219 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);
8220         YY_BREAK
8221 case 393:
8222 /* rule 393 can match eol */
8223 case 394:
8224 /* rule 394 can match eol */
8225 YY_RULE_SETUP
8226 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8227         YY_BREAK
8228 case 395:
8229 /* rule 395 can match eol */
8230 case 396:
8231 /* rule 396 can match eol */
8232 YY_RULE_SETUP
8233 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8234         YY_BREAK
8235 case 397:
8236 /* rule 397 can match eol */
8237 case 398:
8238 /* rule 398 can match eol */
8239 YY_RULE_SETUP
8240 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8241         YY_BREAK
8242 case 399:
8243 YY_RULE_SETUP
8244 {
8245   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8246   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8247   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8248  }
8249         YY_BREAK
8250 case 400:
8251 YY_RULE_SETUP
8252 {
8253   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8254   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8255   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8256   switch (YY_START) {
8257    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8258    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8259   }
8260  }
8261         YY_BREAK
8262 case 401:
8263 YY_RULE_SETUP
8264 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8265         YY_BREAK
8266 case 402:
8267 YY_RULE_SETUP
8268 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8269         YY_BREAK
8270 case YY_STATE_EOF(AL_surfxml_link):
8271 FAIL("EOF in attribute list of `link' element.");
8272         YY_BREAK
8273
8274 case 403:
8275 /* rule 403 can match eol */
8276 YY_RULE_SETUP
8277 {
8278   LEAVE;
8279   ETag_surfxml_link();
8280   popbuffer(); /* attribute */
8281   switch (YY_START) {
8282    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8283    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8284   }
8285  }
8286         YY_BREAK
8287 case 404:
8288 /* rule 404 can match eol */
8289 YY_RULE_SETUP
8290 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8291         YY_BREAK
8292 case 405:
8293 YY_RULE_SETUP
8294 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8295         YY_BREAK
8296 case YY_STATE_EOF(E_surfxml_link):
8297 case YY_STATE_EOF(S_surfxml_link_2):
8298 case YY_STATE_EOF(S_surfxml_link):
8299 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8300         YY_BREAK
8301
8302 case 406:
8303 /* rule 406 can match eol */
8304 YY_RULE_SETUP
8305 FAIL("Starting tag <route> is not allowed here.");
8306         YY_BREAK
8307 case 407:
8308 /* rule 407 can match eol */
8309 YY_RULE_SETUP
8310 {
8311   AX_surfxml_route_src = 0;
8312   surfxml_route_src_isset = 0;
8313   AX_surfxml_route_dst = 0;
8314   surfxml_route_dst_isset = 0;
8315   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8316   surfxml_route_symmetrical_isset = 0;
8317   ENTER(AL_surfxml_route); pushbuffer(0);
8318   }
8319         YY_BREAK
8320
8321 case 408:
8322 /* rule 408 can match eol */
8323 YY_RULE_SETUP
8324 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);
8325         YY_BREAK
8326 case 409:
8327 /* rule 409 can match eol */
8328 YY_RULE_SETUP
8329 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);
8330         YY_BREAK
8331 case 410:
8332 /* rule 410 can match eol */
8333 YY_RULE_SETUP
8334 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);
8335         YY_BREAK
8336 case 411:
8337 /* rule 411 can match eol */
8338 YY_RULE_SETUP
8339 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);
8340         YY_BREAK
8341 case 412:
8342 /* rule 412 can match eol */
8343 case 413:
8344 /* rule 413 can match eol */
8345 YY_RULE_SETUP
8346 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8347         YY_BREAK
8348 case 414:
8349 /* rule 414 can match eol */
8350 case 415:
8351 /* rule 415 can match eol */
8352 YY_RULE_SETUP
8353 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8354         YY_BREAK
8355 case 416:
8356 YY_RULE_SETUP
8357 {
8358   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8359   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8360   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8361  }
8362         YY_BREAK
8363 case 417:
8364 YY_RULE_SETUP
8365 {
8366   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8367   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8368   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8369   switch (YY_START) {
8370    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8371   }
8372  }
8373         YY_BREAK
8374 case 418:
8375 YY_RULE_SETUP
8376 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8377         YY_BREAK
8378 case 419:
8379 YY_RULE_SETUP
8380 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8381         YY_BREAK
8382 case YY_STATE_EOF(AL_surfxml_route):
8383 FAIL("EOF in attribute list of `route' element.");
8384         YY_BREAK
8385
8386 case 420:
8387 /* rule 420 can match eol */
8388 YY_RULE_SETUP
8389 {
8390   LEAVE;
8391   ETag_surfxml_route();
8392   popbuffer(); /* attribute */
8393   switch (YY_START) {
8394    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8395   }
8396  }
8397         YY_BREAK
8398 case 421:
8399 /* rule 421 can match eol */
8400 YY_RULE_SETUP
8401 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8402         YY_BREAK
8403 case 422:
8404 YY_RULE_SETUP
8405 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8406         YY_BREAK
8407 case YY_STATE_EOF(S_surfxml_route):
8408 case YY_STATE_EOF(S_surfxml_route_2):
8409 case YY_STATE_EOF(E_surfxml_route):
8410 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8411         YY_BREAK
8412
8413 case 423:
8414 /* rule 423 can match eol */
8415 YY_RULE_SETUP
8416 FAIL("Starting tag <ASroute> is not allowed here.");
8417         YY_BREAK
8418 case 424:
8419 /* rule 424 can match eol */
8420 YY_RULE_SETUP
8421 {
8422   AX_surfxml_ASroute_src = 0;
8423   surfxml_ASroute_src_isset = 0;
8424   AX_surfxml_ASroute_dst = 0;
8425   surfxml_ASroute_dst_isset = 0;
8426   AX_surfxml_ASroute_gw___src = 0;
8427   surfxml_ASroute_gw___src_isset = 0;
8428   AX_surfxml_ASroute_gw___dst = 0;
8429   surfxml_ASroute_gw___dst_isset = 0;
8430   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8431   surfxml_ASroute_symmetrical_isset = 0;
8432   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8433   }
8434         YY_BREAK
8435
8436 case 425:
8437 /* rule 425 can match eol */
8438 YY_RULE_SETUP
8439 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);
8440         YY_BREAK
8441 case 426:
8442 /* rule 426 can match eol */
8443 YY_RULE_SETUP
8444 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);
8445         YY_BREAK
8446 case 427:
8447 /* rule 427 can match eol */
8448 YY_RULE_SETUP
8449 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);
8450         YY_BREAK
8451 case 428:
8452 /* rule 428 can match eol */
8453 YY_RULE_SETUP
8454 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);
8455         YY_BREAK
8456 case 429:
8457 /* rule 429 can match eol */
8458 YY_RULE_SETUP
8459 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);
8460         YY_BREAK
8461 case 430:
8462 /* rule 430 can match eol */
8463 YY_RULE_SETUP
8464 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);
8465         YY_BREAK
8466 case 431:
8467 /* rule 431 can match eol */
8468 YY_RULE_SETUP
8469 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);
8470         YY_BREAK
8471 case 432:
8472 /* rule 432 can match eol */
8473 YY_RULE_SETUP
8474 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);
8475         YY_BREAK
8476 case 433:
8477 /* rule 433 can match eol */
8478 case 434:
8479 /* rule 434 can match eol */
8480 YY_RULE_SETUP
8481 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8482         YY_BREAK
8483 case 435:
8484 /* rule 435 can match eol */
8485 case 436:
8486 /* rule 436 can match eol */
8487 YY_RULE_SETUP
8488 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8489         YY_BREAK
8490 case 437:
8491 YY_RULE_SETUP
8492 {
8493   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8494   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8495   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8496   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8497   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8498  }
8499         YY_BREAK
8500 case 438:
8501 YY_RULE_SETUP
8502 {
8503   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8504   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8505   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8506   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8507   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8508   switch (YY_START) {
8509    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8510   }
8511  }
8512         YY_BREAK
8513 case 439:
8514 YY_RULE_SETUP
8515 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8516         YY_BREAK
8517 case 440:
8518 YY_RULE_SETUP
8519 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8520         YY_BREAK
8521 case YY_STATE_EOF(AL_surfxml_ASroute):
8522 FAIL("EOF in attribute list of `ASroute' element.");
8523         YY_BREAK
8524
8525 case 441:
8526 /* rule 441 can match eol */
8527 YY_RULE_SETUP
8528 {
8529   LEAVE;
8530   ETag_surfxml_ASroute();
8531   popbuffer(); /* attribute */
8532   switch (YY_START) {
8533    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8534   }
8535  }
8536         YY_BREAK
8537 case 442:
8538 /* rule 442 can match eol */
8539 YY_RULE_SETUP
8540 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8541         YY_BREAK
8542 case 443:
8543 YY_RULE_SETUP
8544 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8545         YY_BREAK
8546 case YY_STATE_EOF(E_surfxml_ASroute):
8547 case YY_STATE_EOF(S_surfxml_ASroute):
8548 case YY_STATE_EOF(S_surfxml_ASroute_2):
8549 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8550         YY_BREAK
8551
8552 case 444:
8553 /* rule 444 can match eol */
8554 YY_RULE_SETUP
8555 FAIL("Starting tag <link_ctn> is not allowed here.");
8556         YY_BREAK
8557 case 445:
8558 /* rule 445 can match eol */
8559 YY_RULE_SETUP
8560 {
8561   AX_surfxml_link___ctn_id = 0;
8562   surfxml_link___ctn_id_isset = 0;
8563   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8564   surfxml_link___ctn_direction_isset = 0;
8565   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8566   }
8567         YY_BREAK
8568
8569 case 446:
8570 /* rule 446 can match eol */
8571 YY_RULE_SETUP
8572 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);
8573         YY_BREAK
8574 case 447:
8575 /* rule 447 can match eol */
8576 YY_RULE_SETUP
8577 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);
8578         YY_BREAK
8579 case 448:
8580 /* rule 448 can match eol */
8581 case 449:
8582 /* rule 449 can match eol */
8583 YY_RULE_SETUP
8584 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8585         YY_BREAK
8586 case 450:
8587 /* rule 450 can match eol */
8588 case 451:
8589 /* rule 451 can match eol */
8590 YY_RULE_SETUP
8591 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8592         YY_BREAK
8593 case 452:
8594 /* rule 452 can match eol */
8595 case 453:
8596 /* rule 453 can match eol */
8597 YY_RULE_SETUP
8598 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8599         YY_BREAK
8600 case 454:
8601 YY_RULE_SETUP
8602 {
8603   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8604   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8605  }
8606         YY_BREAK
8607 case 455:
8608 YY_RULE_SETUP
8609 {
8610   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8611   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8612   switch (YY_START) {
8613    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8614    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8615    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8616    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8617   }
8618  }
8619         YY_BREAK
8620 case 456:
8621 YY_RULE_SETUP
8622 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8623         YY_BREAK
8624 case 457:
8625 YY_RULE_SETUP
8626 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8627         YY_BREAK
8628 case YY_STATE_EOF(AL_surfxml_link___ctn):
8629 FAIL("EOF in attribute list of `link_ctn' element.");
8630         YY_BREAK
8631
8632 case 458:
8633 /* rule 458 can match eol */
8634 YY_RULE_SETUP
8635 {
8636   LEAVE;
8637   ETag_surfxml_link___ctn();
8638   popbuffer(); /* attribute */
8639   switch (YY_START) {
8640    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8641    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8642    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8643    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8644   }
8645  }
8646         YY_BREAK
8647 case 459:
8648 /* rule 459 can match eol */
8649 YY_RULE_SETUP
8650 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8651         YY_BREAK
8652 case 460:
8653 YY_RULE_SETUP
8654 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8655         YY_BREAK
8656 case YY_STATE_EOF(E_surfxml_link___ctn):
8657 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8658         YY_BREAK
8659
8660 case 461:
8661 /* rule 461 can match eol */
8662 YY_RULE_SETUP
8663 FAIL("Starting tag <bypassRoute> is not allowed here.");
8664         YY_BREAK
8665 case 462:
8666 /* rule 462 can match eol */
8667 YY_RULE_SETUP
8668 {
8669   AX_surfxml_bypassRoute_src = 0;
8670   surfxml_bypassRoute_src_isset = 0;
8671   AX_surfxml_bypassRoute_dst = 0;
8672   surfxml_bypassRoute_dst_isset = 0;
8673   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8674   }
8675         YY_BREAK
8676
8677 case 463:
8678 /* rule 463 can match eol */
8679 YY_RULE_SETUP
8680 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);
8681         YY_BREAK
8682 case 464:
8683 /* rule 464 can match eol */
8684 YY_RULE_SETUP
8685 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);
8686         YY_BREAK
8687 case 465:
8688 /* rule 465 can match eol */
8689 YY_RULE_SETUP
8690 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);
8691         YY_BREAK
8692 case 466:
8693 /* rule 466 can match eol */
8694 YY_RULE_SETUP
8695 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);
8696         YY_BREAK
8697 case 467:
8698 YY_RULE_SETUP
8699 {
8700   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8701   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8702   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8703  }
8704         YY_BREAK
8705 case 468:
8706 YY_RULE_SETUP
8707 {
8708   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8709   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8710   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8711   switch (YY_START) {
8712    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8713   }
8714  }
8715         YY_BREAK
8716 case 469:
8717 YY_RULE_SETUP
8718 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8719         YY_BREAK
8720 case 470:
8721 YY_RULE_SETUP
8722 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8723         YY_BREAK
8724 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8725 FAIL("EOF in attribute list of `bypassRoute' element.");
8726         YY_BREAK
8727
8728 case 471:
8729 /* rule 471 can match eol */
8730 YY_RULE_SETUP
8731 {
8732   LEAVE;
8733   ETag_surfxml_bypassRoute();
8734   popbuffer(); /* attribute */
8735   switch (YY_START) {
8736    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8737   }
8738  }
8739         YY_BREAK
8740 case 472:
8741 /* rule 472 can match eol */
8742 YY_RULE_SETUP
8743 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8744         YY_BREAK
8745 case 473:
8746 YY_RULE_SETUP
8747 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8748         YY_BREAK
8749 case YY_STATE_EOF(S_surfxml_bypassRoute):
8750 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8751 case YY_STATE_EOF(E_surfxml_bypassRoute):
8752 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8753         YY_BREAK
8754
8755 case 474:
8756 /* rule 474 can match eol */
8757 YY_RULE_SETUP
8758 FAIL("Starting tag <bypassASroute> is not allowed here.");
8759         YY_BREAK
8760 case 475:
8761 /* rule 475 can match eol */
8762 YY_RULE_SETUP
8763 {
8764   AX_surfxml_bypassASroute_src = 0;
8765   surfxml_bypassASroute_src_isset = 0;
8766   AX_surfxml_bypassASroute_dst = 0;
8767   surfxml_bypassASroute_dst_isset = 0;
8768   AX_surfxml_bypassASroute_gw___src = 0;
8769   surfxml_bypassASroute_gw___src_isset = 0;
8770   AX_surfxml_bypassASroute_gw___dst = 0;
8771   surfxml_bypassASroute_gw___dst_isset = 0;
8772   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8773   }
8774         YY_BREAK
8775
8776 case 476:
8777 /* rule 476 can match eol */
8778 YY_RULE_SETUP
8779 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);
8780         YY_BREAK
8781 case 477:
8782 /* rule 477 can match eol */
8783 YY_RULE_SETUP
8784 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);
8785         YY_BREAK
8786 case 478:
8787 /* rule 478 can match eol */
8788 YY_RULE_SETUP
8789 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);
8790         YY_BREAK
8791 case 479:
8792 /* rule 479 can match eol */
8793 YY_RULE_SETUP
8794 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);
8795         YY_BREAK
8796 case 480:
8797 /* rule 480 can match eol */
8798 YY_RULE_SETUP
8799 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);
8800         YY_BREAK
8801 case 481:
8802 /* rule 481 can match eol */
8803 YY_RULE_SETUP
8804 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);
8805         YY_BREAK
8806 case 482:
8807 /* rule 482 can match eol */
8808 YY_RULE_SETUP
8809 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);
8810         YY_BREAK
8811 case 483:
8812 /* rule 483 can match eol */
8813 YY_RULE_SETUP
8814 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);
8815         YY_BREAK
8816 case 484:
8817 YY_RULE_SETUP
8818 {
8819   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8820   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8821   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8822   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8823   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8824  }
8825         YY_BREAK
8826 case 485:
8827 YY_RULE_SETUP
8828 {
8829   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8830   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8831   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8832   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8833   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8834   switch (YY_START) {
8835    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8836   }
8837  }
8838         YY_BREAK
8839 case 486:
8840 YY_RULE_SETUP
8841 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8842         YY_BREAK
8843 case 487:
8844 YY_RULE_SETUP
8845 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8846         YY_BREAK
8847 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8848 FAIL("EOF in attribute list of `bypassASroute' element.");
8849         YY_BREAK
8850
8851 case 488:
8852 /* rule 488 can match eol */
8853 YY_RULE_SETUP
8854 {
8855   LEAVE;
8856   ETag_surfxml_bypassASroute();
8857   popbuffer(); /* attribute */
8858   switch (YY_START) {
8859    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8860   }
8861  }
8862         YY_BREAK
8863 case 489:
8864 /* rule 489 can match eol */
8865 YY_RULE_SETUP
8866 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8867         YY_BREAK
8868 case 490:
8869 YY_RULE_SETUP
8870 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8871         YY_BREAK
8872 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8873 case YY_STATE_EOF(E_surfxml_bypassASroute):
8874 case YY_STATE_EOF(S_surfxml_bypassASroute):
8875 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8876         YY_BREAK
8877
8878 case 491:
8879 /* rule 491 can match eol */
8880 YY_RULE_SETUP
8881 FAIL("Starting tag <process> is not allowed here.");
8882         YY_BREAK
8883 case 492:
8884 /* rule 492 can match eol */
8885 YY_RULE_SETUP
8886 {
8887   AX_surfxml_process_host = 0;
8888   surfxml_process_host_isset = 0;
8889   AX_surfxml_process_function = 0;
8890   surfxml_process_function_isset = 0;
8891   AX_surfxml_process_start___time = 50;
8892   surfxml_process_start___time_isset = 0;
8893   AX_surfxml_process_kill___time = 55;
8894   surfxml_process_kill___time_isset = 0;
8895   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8896   surfxml_process_on___failure_isset = 0;
8897   ENTER(AL_surfxml_process); pushbuffer(0);
8898   }
8899         YY_BREAK
8900
8901 case 493:
8902 /* rule 493 can match eol */
8903 YY_RULE_SETUP
8904 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);
8905         YY_BREAK
8906 case 494:
8907 /* rule 494 can match eol */
8908 YY_RULE_SETUP
8909 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);
8910         YY_BREAK
8911 case 495:
8912 /* rule 495 can match eol */
8913 YY_RULE_SETUP
8914 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);
8915         YY_BREAK
8916 case 496:
8917 /* rule 496 can match eol */
8918 YY_RULE_SETUP
8919 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);
8920         YY_BREAK
8921 case 497:
8922 /* rule 497 can match eol */
8923 YY_RULE_SETUP
8924 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);
8925         YY_BREAK
8926 case 498:
8927 /* rule 498 can match eol */
8928 YY_RULE_SETUP
8929 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);
8930         YY_BREAK
8931 case 499:
8932 /* rule 499 can match eol */
8933 YY_RULE_SETUP
8934 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);
8935         YY_BREAK
8936 case 500:
8937 /* rule 500 can match eol */
8938 YY_RULE_SETUP
8939 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);
8940         YY_BREAK
8941 case 501:
8942 /* rule 501 can match eol */
8943 case 502:
8944 /* rule 502 can match eol */
8945 YY_RULE_SETUP
8946 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8947         YY_BREAK
8948 case 503:
8949 /* rule 503 can match eol */
8950 case 504:
8951 /* rule 504 can match eol */
8952 YY_RULE_SETUP
8953 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8954         YY_BREAK
8955 case 505:
8956 YY_RULE_SETUP
8957 {
8958   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8959   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8960   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8961  }
8962         YY_BREAK
8963 case 506:
8964 YY_RULE_SETUP
8965 {
8966   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8967   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8968   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8969   switch (YY_START) {
8970    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;
8971   }
8972  }
8973         YY_BREAK
8974 case 507:
8975 YY_RULE_SETUP
8976 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8977         YY_BREAK
8978 case 508:
8979 YY_RULE_SETUP
8980 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8981         YY_BREAK
8982 case YY_STATE_EOF(AL_surfxml_process):
8983 FAIL("EOF in attribute list of `process' element.");
8984         YY_BREAK
8985
8986 case 509:
8987 /* rule 509 can match eol */
8988 YY_RULE_SETUP
8989 {
8990   LEAVE;
8991   ETag_surfxml_process();
8992   popbuffer(); /* attribute */
8993   switch (YY_START) {
8994    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;
8995   }
8996  }
8997         YY_BREAK
8998 case 510:
8999 /* rule 510 can match eol */
9000 YY_RULE_SETUP
9001 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9002         YY_BREAK
9003 case 511:
9004 YY_RULE_SETUP
9005 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9006         YY_BREAK
9007 case YY_STATE_EOF(E_surfxml_process):
9008 case YY_STATE_EOF(S_surfxml_process):
9009 case YY_STATE_EOF(S_surfxml_process_2):
9010 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9011         YY_BREAK
9012
9013 case 512:
9014 /* rule 512 can match eol */
9015 YY_RULE_SETUP
9016 FAIL("Starting tag <argument> is not allowed here.");
9017         YY_BREAK
9018 case 513:
9019 /* rule 513 can match eol */
9020 YY_RULE_SETUP
9021 {
9022   AX_surfxml_argument_value = 0;
9023   surfxml_argument_value_isset = 0;
9024   ENTER(AL_surfxml_argument); pushbuffer(0);
9025   }
9026         YY_BREAK
9027
9028 case 514:
9029 /* rule 514 can match eol */
9030 YY_RULE_SETUP
9031 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);
9032         YY_BREAK
9033 case 515:
9034 /* rule 515 can match eol */
9035 YY_RULE_SETUP
9036 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);
9037         YY_BREAK
9038 case 516:
9039 YY_RULE_SETUP
9040 {
9041   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9042   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9043  }
9044         YY_BREAK
9045 case 517:
9046 YY_RULE_SETUP
9047 {
9048   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9049   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9050   switch (YY_START) {
9051    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9052   }
9053  }
9054         YY_BREAK
9055 case 518:
9056 YY_RULE_SETUP
9057 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9058         YY_BREAK
9059 case 519:
9060 YY_RULE_SETUP
9061 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9062         YY_BREAK
9063 case YY_STATE_EOF(AL_surfxml_argument):
9064 FAIL("EOF in attribute list of `argument' element.");
9065         YY_BREAK
9066
9067 case 520:
9068 /* rule 520 can match eol */
9069 YY_RULE_SETUP
9070 {
9071   LEAVE;
9072   ETag_surfxml_argument();
9073   popbuffer(); /* attribute */
9074   switch (YY_START) {
9075    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9076   }
9077  }
9078         YY_BREAK
9079 case 521:
9080 /* rule 521 can match eol */
9081 YY_RULE_SETUP
9082 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9083         YY_BREAK
9084 case 522:
9085 YY_RULE_SETUP
9086 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9087         YY_BREAK
9088 case YY_STATE_EOF(E_surfxml_argument):
9089 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9090         YY_BREAK
9091
9092 case 523:
9093 /* rule 523 can match eol */
9094 YY_RULE_SETUP
9095 FAIL("Starting tag <config> is not allowed here.");
9096         YY_BREAK
9097 case 524:
9098 /* rule 524 can match eol */
9099 YY_RULE_SETUP
9100 {
9101   AX_surfxml_config_id = 0;
9102   surfxml_config_id_isset = 0;
9103   ENTER(AL_surfxml_config); pushbuffer(0);
9104   }
9105         YY_BREAK
9106
9107 case 525:
9108 /* rule 525 can match eol */
9109 YY_RULE_SETUP
9110 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);
9111         YY_BREAK
9112 case 526:
9113 /* rule 526 can match eol */
9114 YY_RULE_SETUP
9115 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);
9116         YY_BREAK
9117 case 527:
9118 YY_RULE_SETUP
9119 {
9120   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9121  }
9122         YY_BREAK
9123 case 528:
9124 YY_RULE_SETUP
9125 {
9126   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9127   switch (YY_START) {
9128    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9129   }
9130  }
9131         YY_BREAK
9132 case 529:
9133 YY_RULE_SETUP
9134 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9135         YY_BREAK
9136 case 530:
9137 YY_RULE_SETUP
9138 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9139         YY_BREAK
9140 case YY_STATE_EOF(AL_surfxml_config):
9141 FAIL("EOF in attribute list of `config' element.");
9142         YY_BREAK
9143
9144 case 531:
9145 /* rule 531 can match eol */
9146 YY_RULE_SETUP
9147 {
9148   LEAVE;
9149   ETag_surfxml_config();
9150   popbuffer(); /* attribute */
9151   switch (YY_START) {
9152    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9153   }
9154  }
9155         YY_BREAK
9156 case 532:
9157 /* rule 532 can match eol */
9158 YY_RULE_SETUP
9159 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9160         YY_BREAK
9161 case 533:
9162 YY_RULE_SETUP
9163 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9164         YY_BREAK
9165 case YY_STATE_EOF(S_surfxml_config):
9166 case YY_STATE_EOF(S_surfxml_config_2):
9167 case YY_STATE_EOF(E_surfxml_config):
9168 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9169         YY_BREAK
9170
9171 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9172   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9173 case 534:
9174 /* rule 534 can match eol */
9175 YY_RULE_SETUP
9176 FAIL("Starting tag <prop> is not allowed here.");
9177         YY_BREAK
9178 case 535:
9179 /* rule 535 can match eol */
9180 YY_RULE_SETUP
9181 {
9182   AX_surfxml_prop_id = 0;
9183   surfxml_prop_id_isset = 0;
9184   AX_surfxml_prop_value = 0;
9185   surfxml_prop_value_isset = 0;
9186   ENTER(AL_surfxml_prop); pushbuffer(0);
9187   }
9188         YY_BREAK
9189
9190 case 536:
9191 /* rule 536 can match eol */
9192 YY_RULE_SETUP
9193 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);
9194         YY_BREAK
9195 case 537:
9196 /* rule 537 can match eol */
9197 YY_RULE_SETUP
9198 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);
9199         YY_BREAK
9200 case 538:
9201 /* rule 538 can match eol */
9202 YY_RULE_SETUP
9203 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);
9204         YY_BREAK
9205 case 539:
9206 /* rule 539 can match eol */
9207 YY_RULE_SETUP
9208 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);
9209         YY_BREAK
9210 case 540:
9211 YY_RULE_SETUP
9212 {
9213   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9214   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9215   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9216  }
9217         YY_BREAK
9218 case 541:
9219 YY_RULE_SETUP
9220 {
9221   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9222   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9223   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9224   switch (YY_START) {
9225    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9226    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9227    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9228    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9229    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9230    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9231    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9232    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9233   }
9234  }
9235         YY_BREAK
9236 case 542:
9237 YY_RULE_SETUP
9238 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9239         YY_BREAK
9240 case 543:
9241 YY_RULE_SETUP
9242 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9243         YY_BREAK
9244 case YY_STATE_EOF(AL_surfxml_prop):
9245 FAIL("EOF in attribute list of `prop' element.");
9246         YY_BREAK
9247
9248 case 544:
9249 /* rule 544 can match eol */
9250 YY_RULE_SETUP
9251 {
9252   LEAVE;
9253   ETag_surfxml_prop();
9254   popbuffer(); /* attribute */
9255   switch (YY_START) {
9256    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9257    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9258    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9259    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9260    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9261    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9262    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9263    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9264   }
9265  }
9266         YY_BREAK
9267 case 545:
9268 /* rule 545 can match eol */
9269 YY_RULE_SETUP
9270 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9271         YY_BREAK
9272 case 546:
9273 YY_RULE_SETUP
9274 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9275         YY_BREAK
9276 case YY_STATE_EOF(E_surfxml_prop):
9277 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9278         YY_BREAK
9279
9280 /* EPILOG: after the root element. */
9281
9282 case 547:
9283 YY_RULE_SETUP
9284 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9285         YY_BREAK
9286 case YY_STATE_EOF(EPILOG):
9287 SUCCEED;
9288         YY_BREAK
9289
9290 /* CHARACTER DATA. */
9291
9292 /* Non-defined standard entities... */
9293 case 548:
9294 YY_RULE_SETUP
9295 BUFFERPUTC('&');
9296         YY_BREAK
9297 case 549:
9298 YY_RULE_SETUP
9299 BUFFERPUTC('<');
9300         YY_BREAK
9301 case 550:
9302 YY_RULE_SETUP
9303 BUFFERPUTC('>');
9304         YY_BREAK
9305 case 551:
9306 YY_RULE_SETUP
9307 BUFFERPUTC('\'');
9308         YY_BREAK
9309 case 552:
9310 YY_RULE_SETUP
9311 BUFFERPUTC('"');
9312         YY_BREAK
9313 /* Character entities. */
9314 case 553:
9315 YY_RULE_SETUP
9316 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9317         YY_BREAK
9318 case 554:
9319 YY_RULE_SETUP
9320 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9321         YY_BREAK
9322
9323 case 555:
9324 /* rule 555 can match eol */
9325 case 556:
9326 /* rule 556 can match eol */
9327 case 557:
9328 /* rule 557 can match eol */
9329 case 558:
9330 /* rule 558 can match eol */
9331 YY_RULE_SETUP
9332 BUFFERPUTC('\n');
9333         YY_BREAK
9334
9335 case 559:
9336 YY_RULE_SETUP
9337 ENTER(CDATA);
9338         YY_BREAK
9339 case 560:
9340 YY_RULE_SETUP
9341 FAIL("Unexpected `]""]>' in character data.");
9342         YY_BREAK
9343
9344 case 561:
9345 YY_RULE_SETUP
9346 BUFFERDONE; LEAVE;
9347         YY_BREAK
9348 case YY_STATE_EOF(VALUE1):
9349 FAIL("EOF in literal (\"'\" expected).");
9350         YY_BREAK
9351
9352 case 562:
9353 YY_RULE_SETUP
9354 BUFFERDONE; LEAVE;
9355         YY_BREAK
9356 case YY_STATE_EOF(VALUE2):
9357 FAIL("EOF in literal (`\"' expected).");
9358         YY_BREAK
9359
9360 case 563:
9361 /* rule 563 can match eol */
9362 YY_RULE_SETUP
9363 BUFFERPUTC(surf_parse_text[0]);
9364         YY_BREAK
9365 case 564:
9366 YY_RULE_SETUP
9367 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9368         YY_BREAK
9369
9370 case 565:
9371 YY_RULE_SETUP
9372 LEAVE;
9373         YY_BREAK
9374 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9375 case 566:
9376 YY_RULE_SETUP
9377 BUFFERPUTC(surf_parse_text[0]);
9378         YY_BREAK
9379 case YY_STATE_EOF(CDATA):
9380 FAIL("EOF in CDATA section.");
9381         YY_BREAK
9382
9383 /* Impossible rules to avoid warnings from flex(1). */
9384 /* Ideally, this should be replaced by code in flexml.pl that
9385     generates just the states not covered by other rules. */
9386
9387 case 567:
9388 /* rule 567 can match eol */
9389 YY_RULE_SETUP
9390 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9391         YY_BREAK
9392
9393 case 568:
9394 YY_RULE_SETUP
9395 ECHO;
9396         YY_BREAK
9397 case YY_STATE_EOF(INITIAL):
9398 case YY_STATE_EOF(ROOT_surfxml_platform):
9399 case YY_STATE_EOF(S_surfxml_platform_2):
9400 case YY_STATE_EOF(S_surfxml_platform_5):
9401 case YY_STATE_EOF(S_surfxml_platform_7):
9402 case YY_STATE_EOF(S_surfxml_include_1):
9403 case YY_STATE_EOF(S_surfxml_AS_2):
9404 case YY_STATE_EOF(S_surfxml_AS_5):
9405 case YY_STATE_EOF(S_surfxml_AS_8):
9406 case YY_STATE_EOF(S_surfxml_AS_10):
9407 case YY_STATE_EOF(S_surfxml_AS_13):
9408 case YY_STATE_EOF(S_surfxml_AS_15):
9409 case YY_STATE_EOF(S_surfxml_storage___type_1):
9410 case YY_STATE_EOF(S_surfxml_storage_1):
9411 case YY_STATE_EOF(S_surfxml_host_1):
9412 case YY_STATE_EOF(S_surfxml_cluster_1):
9413 case YY_STATE_EOF(S_surfxml_link_1):
9414 case YY_STATE_EOF(S_surfxml_route_1):
9415 case YY_STATE_EOF(S_surfxml_ASroute_1):
9416 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9417 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9418 case YY_STATE_EOF(S_surfxml_process_1):
9419 case YY_STATE_EOF(S_surfxml_config_1):
9420 case YY_STATE_EOF(IMPOSSIBLE):
9421         yyterminate();
9422
9423         case YY_END_OF_BUFFER:
9424                 {
9425                 /* Amount of text matched not including the EOB char. */
9426                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9427
9428                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9429                 *yy_cp = (yy_hold_char);
9430                 YY_RESTORE_YY_MORE_OFFSET
9431
9432                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9433                         {
9434                         /* We're scanning a new file or input source.  It's
9435                          * possible that this happened because the user
9436                          * just pointed surf_parse_in at a new source and called
9437                          * surf_parse_lex().  If so, then we have to assure
9438                          * consistency between YY_CURRENT_BUFFER and our
9439                          * globals.  Here is the right place to do so, because
9440                          * this is the first action (other than possibly a
9441                          * back-up) that will match for the new input source.
9442                          */
9443                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9444                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9445                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9446                         }
9447
9448                 /* Note that here we test for yy_c_buf_p "<=" to the position
9449                  * of the first EOB in the buffer, since yy_c_buf_p will
9450                  * already have been incremented past the NUL character
9451                  * (since all states make transitions on EOB to the
9452                  * end-of-buffer state).  Contrast this with the test
9453                  * in input().
9454                  */
9455                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9456                         { /* This was really a NUL. */
9457                         yy_state_type yy_next_state;
9458
9459                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9460
9461                         yy_current_state = yy_get_previous_state(  );
9462
9463                         /* Okay, we're now positioned to make the NUL
9464                          * transition.  We couldn't have
9465                          * yy_get_previous_state() go ahead and do it
9466                          * for us because it doesn't know how to deal
9467                          * with the possibility of jamming (and we don't
9468                          * want to build jamming into it because then it
9469                          * will run more slowly).
9470                          */
9471
9472                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9473
9474                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9475
9476                         if ( yy_next_state )
9477                                 {
9478                                 /* Consume the NUL. */
9479                                 yy_cp = ++(yy_c_buf_p);
9480                                 yy_current_state = yy_next_state;
9481                                 goto yy_match;
9482                                 }
9483
9484                         else
9485                                 {
9486                                 yy_cp = (yy_c_buf_p);
9487                                 goto yy_find_action;
9488                                 }
9489                         }
9490
9491                 else switch ( yy_get_next_buffer(  ) )
9492                         {
9493                         case EOB_ACT_END_OF_FILE:
9494                                 {
9495                                 (yy_did_buffer_switch_on_eof) = 0;
9496
9497                                 if ( surf_parse_wrap( ) )
9498                                         {
9499                                         /* Note: because we've taken care in
9500                                          * yy_get_next_buffer() to have set up
9501                                          * surf_parse_text, we can now set up
9502                                          * yy_c_buf_p so that if some total
9503                                          * hoser (like flex itself) wants to
9504                                          * call the scanner after we return the
9505                                          * YY_NULL, it'll still work - another
9506                                          * YY_NULL will get returned.
9507                                          */
9508                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9509
9510                                         yy_act = YY_STATE_EOF(YY_START);
9511                                         goto do_action;
9512                                         }
9513
9514                                 else
9515                                         {
9516                                         if ( ! (yy_did_buffer_switch_on_eof) )
9517                                                 YY_NEW_FILE;
9518                                         }
9519                                 break;
9520                                 }
9521
9522                         case EOB_ACT_CONTINUE_SCAN:
9523                                 (yy_c_buf_p) =
9524                                         (yytext_ptr) + yy_amount_of_matched_text;
9525
9526                                 yy_current_state = yy_get_previous_state(  );
9527
9528                                 yy_cp = (yy_c_buf_p);
9529                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9530                                 goto yy_match;
9531
9532                         case EOB_ACT_LAST_MATCH:
9533                                 (yy_c_buf_p) =
9534                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9535
9536                                 yy_current_state = yy_get_previous_state(  );
9537
9538                                 yy_cp = (yy_c_buf_p);
9539                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9540                                 goto yy_find_action;
9541                         }
9542                 break;
9543                 }
9544
9545         default:
9546                 YY_FATAL_ERROR(
9547                         "fatal flex scanner internal error--no action found" );
9548         } /* end of action switch */
9549                 } /* end of scanning one token */
9550 } /* end of surf_parse_lex */
9551
9552 /* yy_get_next_buffer - try to read in a new buffer
9553  *
9554  * Returns a code representing an action:
9555  *      EOB_ACT_LAST_MATCH -
9556  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9557  *      EOB_ACT_END_OF_FILE - end of file
9558  */
9559 static int yy_get_next_buffer (void)
9560 {
9561         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9562         register char *source = (yytext_ptr);
9563         register int number_to_move, i;
9564         int ret_val;
9565
9566         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9567                 YY_FATAL_ERROR(
9568                 "fatal flex scanner internal error--end of buffer missed" );
9569
9570         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9571                 { /* Don't try to fill the buffer, so this is an EOF. */
9572                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9573                         {
9574                         /* We matched a single character, the EOB, so
9575                          * treat this as a final EOF.
9576                          */
9577                         return EOB_ACT_END_OF_FILE;
9578                         }
9579
9580                 else
9581                         {
9582                         /* We matched some text prior to the EOB, first
9583                          * process it.
9584                          */
9585                         return EOB_ACT_LAST_MATCH;
9586                         }
9587                 }
9588
9589         /* Try to read more data. */
9590
9591         /* First move last chars to start of buffer. */
9592         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9593
9594         for ( i = 0; i < number_to_move; ++i )
9595                 *(dest++) = *(source++);
9596
9597         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9598                 /* don't do the read, it's not guaranteed to return an EOF,
9599                  * just force an EOF
9600                  */
9601                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9602
9603         else
9604                 {
9605                         int num_to_read =
9606                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9607
9608                 while ( num_to_read <= 0 )
9609                         { /* Not enough room in the buffer - grow it. */
9610
9611                         /* just a shorter name for the current buffer */
9612                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9613
9614                         int yy_c_buf_p_offset =
9615                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9616
9617                         if ( b->yy_is_our_buffer )
9618                                 {
9619                                 int new_size = b->yy_buf_size * 2;
9620
9621                                 if ( new_size <= 0 )
9622                                         b->yy_buf_size += b->yy_buf_size / 8;
9623                                 else
9624                                         b->yy_buf_size *= 2;
9625
9626                                 b->yy_ch_buf = (char *)
9627                                         /* Include room in for 2 EOB chars. */
9628                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9629                                 }
9630                         else
9631                                 /* Can't grow it, we don't own it. */
9632                                 b->yy_ch_buf = 0;
9633
9634                         if ( ! b->yy_ch_buf )
9635                                 YY_FATAL_ERROR(
9636                                 "fatal error - scanner input buffer overflow" );
9637
9638                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9639
9640                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9641                                                 number_to_move - 1;
9642
9643                         }
9644
9645                 if ( num_to_read > YY_READ_BUF_SIZE )
9646                         num_to_read = YY_READ_BUF_SIZE;
9647
9648                 /* Read in more data. */
9649                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9650                         (yy_n_chars), (size_t) num_to_read );
9651
9652                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9653                 }
9654
9655         if ( (yy_n_chars) == 0 )
9656                 {
9657                 if ( number_to_move == YY_MORE_ADJ )
9658                         {
9659                         ret_val = EOB_ACT_END_OF_FILE;
9660                         surf_parse_restart(surf_parse_in  );
9661                         }
9662
9663                 else
9664                         {
9665                         ret_val = EOB_ACT_LAST_MATCH;
9666                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9667                                 YY_BUFFER_EOF_PENDING;
9668                         }
9669                 }
9670
9671         else
9672                 ret_val = EOB_ACT_CONTINUE_SCAN;
9673
9674         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9675                 /* Extend the array by 50%, plus the number we really need. */
9676                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9677                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9678                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9679                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9680         }
9681
9682         (yy_n_chars) += number_to_move;
9683         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9684         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9685
9686         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9687
9688         return ret_val;
9689 }
9690
9691 /* yy_get_previous_state - get the state just before the EOB char was reached */
9692
9693     static yy_state_type yy_get_previous_state (void)
9694 {
9695         register yy_state_type yy_current_state;
9696         register char *yy_cp;
9697     
9698         yy_current_state = (yy_start);
9699
9700         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9701                 {
9702                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9703                 if ( yy_accept[yy_current_state] )
9704                         {
9705                         (yy_last_accepting_state) = yy_current_state;
9706                         (yy_last_accepting_cpos) = yy_cp;
9707                         }
9708                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9709                         {
9710                         yy_current_state = (int) yy_def[yy_current_state];
9711                         if ( yy_current_state >= 3323 )
9712                                 yy_c = yy_meta[(unsigned int) yy_c];
9713                         }
9714                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9715                 }
9716
9717         return yy_current_state;
9718 }
9719
9720 /* yy_try_NUL_trans - try to make a transition on the NUL character
9721  *
9722  * synopsis
9723  *      next_state = yy_try_NUL_trans( current_state );
9724  */
9725     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9726 {
9727         register int yy_is_jam;
9728         register char *yy_cp = (yy_c_buf_p);
9729
9730         register YY_CHAR yy_c = 1;
9731         if ( yy_accept[yy_current_state] )
9732                 {
9733                 (yy_last_accepting_state) = yy_current_state;
9734                 (yy_last_accepting_cpos) = yy_cp;
9735                 }
9736         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9737                 {
9738                 yy_current_state = (int) yy_def[yy_current_state];
9739                 if ( yy_current_state >= 3323 )
9740                         yy_c = yy_meta[(unsigned int) yy_c];
9741                 }
9742         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9743         yy_is_jam = (yy_current_state == 3322);
9744
9745         return yy_is_jam ? 0 : yy_current_state;
9746 }
9747
9748 #ifndef YY_NO_INPUT
9749 #ifdef __cplusplus
9750     static int yyinput (void)
9751 #else
9752     static int input  (void)
9753 #endif
9754
9755 {
9756         int c;
9757     
9758         *(yy_c_buf_p) = (yy_hold_char);
9759
9760         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9761                 {
9762                 /* yy_c_buf_p now points to the character we want to return.
9763                  * If this occurs *before* the EOB characters, then it's a
9764                  * valid NUL; if not, then we've hit the end of the buffer.
9765                  */
9766                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9767                         /* This was really a NUL. */
9768                         *(yy_c_buf_p) = '\0';
9769
9770                 else
9771                         { /* need more input */
9772                         int offset = (yy_c_buf_p) - (yytext_ptr);
9773                         ++(yy_c_buf_p);
9774
9775                         switch ( yy_get_next_buffer(  ) )
9776                                 {
9777                                 case EOB_ACT_LAST_MATCH:
9778                                         /* This happens because yy_g_n_b()
9779                                          * sees that we've accumulated a
9780                                          * token and flags that we need to
9781                                          * try matching the token before
9782                                          * proceeding.  But for input(),
9783                                          * there's no matching to consider.
9784                                          * So convert the EOB_ACT_LAST_MATCH
9785                                          * to EOB_ACT_END_OF_FILE.
9786                                          */
9787
9788                                         /* Reset buffer status. */
9789                                         surf_parse_restart(surf_parse_in );
9790
9791                                         /*FALLTHROUGH*/
9792
9793                                 case EOB_ACT_END_OF_FILE:
9794                                         {
9795                                         if ( surf_parse_wrap( ) )
9796                                                 return EOF;
9797
9798                                         if ( ! (yy_did_buffer_switch_on_eof) )
9799                                                 YY_NEW_FILE;
9800 #ifdef __cplusplus
9801                                         return yyinput();
9802 #else
9803                                         return input();
9804 #endif
9805                                         }
9806
9807                                 case EOB_ACT_CONTINUE_SCAN:
9808                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9809                                         break;
9810                                 }
9811                         }
9812                 }
9813
9814         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9815         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9816         (yy_hold_char) = *++(yy_c_buf_p);
9817
9818         if ( c == '\n' )
9819                    
9820     surf_parse_lineno++;
9821 ;
9822
9823         return c;
9824 }
9825 #endif  /* ifndef YY_NO_INPUT */
9826
9827 /** Immediately switch to a different input stream.
9828  * @param input_file A readable stream.
9829  * 
9830  * @note This function does not reset the start condition to @c INITIAL .
9831  */
9832     void surf_parse_restart  (FILE * input_file )
9833 {
9834     
9835         if ( ! YY_CURRENT_BUFFER ){
9836         surf_parse_ensure_buffer_stack ();
9837                 YY_CURRENT_BUFFER_LVALUE =
9838             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9839         }
9840
9841         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9842         surf_parse__load_buffer_state( );
9843 }
9844
9845 /** Switch to a different input buffer.
9846  * @param new_buffer The new input buffer.
9847  * 
9848  */
9849     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9850 {
9851     
9852         /* TODO. We should be able to replace this entire function body
9853          * with
9854          *              surf_parse_pop_buffer_state();
9855          *              surf_parse_push_buffer_state(new_buffer);
9856      */
9857         surf_parse_ensure_buffer_stack ();
9858         if ( YY_CURRENT_BUFFER == new_buffer )
9859                 return;
9860
9861         if ( YY_CURRENT_BUFFER )
9862                 {
9863                 /* Flush out information for old buffer. */
9864                 *(yy_c_buf_p) = (yy_hold_char);
9865                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9866                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9867                 }
9868
9869         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9870         surf_parse__load_buffer_state( );
9871
9872         /* We don't actually know whether we did this switch during
9873          * EOF (surf_parse_wrap()) processing, but the only time this flag
9874          * is looked at is after surf_parse_wrap() is called, so it's safe
9875          * to go ahead and always set it.
9876          */
9877         (yy_did_buffer_switch_on_eof) = 1;
9878 }
9879
9880 static void surf_parse__load_buffer_state  (void)
9881 {
9882         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9883         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9884         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9885         (yy_hold_char) = *(yy_c_buf_p);
9886 }
9887
9888 /** Allocate and initialize an input buffer state.
9889  * @param file A readable stream.
9890  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9891  * 
9892  * @return the allocated buffer state.
9893  */
9894     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9895 {
9896         YY_BUFFER_STATE b;
9897     
9898         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9899         if ( ! b )
9900                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9901
9902         b->yy_buf_size = size;
9903
9904         /* yy_ch_buf has to be 2 characters longer than the size given because
9905          * we need to put in 2 end-of-buffer characters.
9906          */
9907         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9908         if ( ! b->yy_ch_buf )
9909                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9910
9911         b->yy_is_our_buffer = 1;
9912
9913         surf_parse__init_buffer(b,file );
9914
9915         return b;
9916 }
9917
9918 /** Destroy the buffer.
9919  * @param b a buffer created with surf_parse__create_buffer()
9920  * 
9921  */
9922     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9923 {
9924     
9925         if ( ! b )
9926                 return;
9927
9928         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9929                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9930
9931         if ( b->yy_is_our_buffer )
9932                 surf_parse_free((void *) b->yy_ch_buf  );
9933
9934         surf_parse_free((void *) b  );
9935 }
9936
9937 #ifndef __cplusplus
9938 extern int isatty (int );
9939 #endif /* __cplusplus */
9940     
9941 /* Initializes or reinitializes a buffer.
9942  * This function is sometimes called more than once on the same buffer,
9943  * such as during a surf_parse_restart() or at EOF.
9944  */
9945     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9946
9947 {
9948         int oerrno = errno;
9949     
9950         surf_parse__flush_buffer(b );
9951
9952         b->yy_input_file = file;
9953         b->yy_fill_buffer = 1;
9954
9955     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9956      * called from surf_parse_restart() or through yy_get_next_buffer.
9957      * In that case, we don't want to reset the lineno or column.
9958      */
9959     if (b != YY_CURRENT_BUFFER){
9960         b->yy_bs_lineno = 1;
9961         b->yy_bs_column = 0;
9962     }
9963
9964         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9965     
9966         errno = oerrno;
9967 }
9968
9969 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9970  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9971  * 
9972  */
9973     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9974 {
9975         if ( ! b )
9976                 return;
9977
9978         b->yy_n_chars = 0;
9979
9980         /* We always need two end-of-buffer characters.  The first causes
9981          * a transition to the end-of-buffer state.  The second causes
9982          * a jam in that state.
9983          */
9984         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9985         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9986
9987         b->yy_buf_pos = &b->yy_ch_buf[0];
9988
9989         b->yy_at_bol = 1;
9990         b->yy_buffer_status = YY_BUFFER_NEW;
9991
9992         if ( b == YY_CURRENT_BUFFER )
9993                 surf_parse__load_buffer_state( );
9994 }
9995
9996 /** Pushes the new state onto the stack. The new state becomes
9997  *  the current state. This function will allocate the stack
9998  *  if necessary.
9999  *  @param new_buffer The new state.
10000  *  
10001  */
10002 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10003 {
10004         if (new_buffer == NULL)
10005                 return;
10006
10007         surf_parse_ensure_buffer_stack();
10008
10009         /* This block is copied from surf_parse__switch_to_buffer. */
10010         if ( YY_CURRENT_BUFFER )
10011                 {
10012                 /* Flush out information for old buffer. */
10013                 *(yy_c_buf_p) = (yy_hold_char);
10014                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10015                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10016                 }
10017
10018         /* Only push if top exists. Otherwise, replace top. */
10019         if (YY_CURRENT_BUFFER)
10020                 (yy_buffer_stack_top)++;
10021         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10022
10023         /* copied from surf_parse__switch_to_buffer. */
10024         surf_parse__load_buffer_state( );
10025         (yy_did_buffer_switch_on_eof) = 1;
10026 }
10027
10028 /** Removes and deletes the top of the stack, if present.
10029  *  The next element becomes the new top.
10030  *  
10031  */
10032 void surf_parse_pop_buffer_state (void)
10033 {
10034         if (!YY_CURRENT_BUFFER)
10035                 return;
10036
10037         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10038         YY_CURRENT_BUFFER_LVALUE = NULL;
10039         if ((yy_buffer_stack_top) > 0)
10040                 --(yy_buffer_stack_top);
10041
10042         if (YY_CURRENT_BUFFER) {
10043                 surf_parse__load_buffer_state( );
10044                 (yy_did_buffer_switch_on_eof) = 1;
10045         }
10046 }
10047
10048 /* Allocates the stack if it does not exist.
10049  *  Guarantees space for at least one push.
10050  */
10051 static void surf_parse_ensure_buffer_stack (void)
10052 {
10053         int num_to_alloc;
10054     
10055         if (!(yy_buffer_stack)) {
10056
10057                 /* First allocation is just for 2 elements, since we don't know if this
10058                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10059                  * immediate realloc on the next call.
10060          */
10061                 num_to_alloc = 1;
10062                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10063                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10064                                                                 );
10065                 if ( ! (yy_buffer_stack) )
10066                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10067                                                                   
10068                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10069                                 
10070                 (yy_buffer_stack_max) = num_to_alloc;
10071                 (yy_buffer_stack_top) = 0;
10072                 return;
10073         }
10074
10075         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10076
10077                 /* Increase the buffer to prepare for a possible push. */
10078                 int grow_size = 8 /* arbitrary grow size */;
10079
10080                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10081                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10082                                                                 ((yy_buffer_stack),
10083                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10084                                                                 );
10085                 if ( ! (yy_buffer_stack) )
10086                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10087
10088                 /* zero only the new slots.*/
10089                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10090                 (yy_buffer_stack_max) = num_to_alloc;
10091         }
10092 }
10093
10094 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10095  * @param base the character buffer
10096  * @param size the size in bytes of the character buffer
10097  * 
10098  * @return the newly allocated buffer state object. 
10099  */
10100 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10101 {
10102         YY_BUFFER_STATE b;
10103     
10104         if ( size < 2 ||
10105              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10106              base[size-1] != YY_END_OF_BUFFER_CHAR )
10107                 /* They forgot to leave room for the EOB's. */
10108                 return 0;
10109
10110         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10111         if ( ! b )
10112                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10113
10114         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10115         b->yy_buf_pos = b->yy_ch_buf = base;
10116         b->yy_is_our_buffer = 0;
10117         b->yy_input_file = 0;
10118         b->yy_n_chars = b->yy_buf_size;
10119         b->yy_is_interactive = 0;
10120         b->yy_at_bol = 1;
10121         b->yy_fill_buffer = 0;
10122         b->yy_buffer_status = YY_BUFFER_NEW;
10123
10124         surf_parse__switch_to_buffer(b  );
10125
10126         return b;
10127 }
10128
10129 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10130  * scan from a @e copy of @a str.
10131  * @param yystr a NUL-terminated string to scan
10132  * 
10133  * @return the newly allocated buffer state object.
10134  * @note If you want to scan bytes that may contain NUL values, then use
10135  *       surf_parse__scan_bytes() instead.
10136  */
10137 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10138 {
10139     
10140         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10141 }
10142
10143 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10144  * scan from a @e copy of @a bytes.
10145  * @param yybytes the byte buffer to scan
10146  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10147  * 
10148  * @return the newly allocated buffer state object.
10149  */
10150 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10151 {
10152         YY_BUFFER_STATE b;
10153         char *buf;
10154         yy_size_t n;
10155         int i;
10156     
10157         /* Get memory for full buffer, including space for trailing EOB's. */
10158         n = _yybytes_len + 2;
10159         buf = (char *) surf_parse_alloc(n  );
10160         if ( ! buf )
10161                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10162
10163         for ( i = 0; i < _yybytes_len; ++i )
10164                 buf[i] = yybytes[i];
10165
10166         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10167
10168         b = surf_parse__scan_buffer(buf,n );
10169         if ( ! b )
10170                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10171
10172         /* It's okay to grow etc. this buffer, and we should throw it
10173          * away when we're done.
10174          */
10175         b->yy_is_our_buffer = 1;
10176
10177         return b;
10178 }
10179
10180     static void yy_push_state (int  new_state )
10181 {
10182         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10183                 {
10184                 yy_size_t new_size;
10185
10186                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10187                 new_size = (yy_start_stack_depth) * sizeof( int );
10188
10189                 if ( ! (yy_start_stack) )
10190                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10191
10192                 else
10193                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10194
10195                 if ( ! (yy_start_stack) )
10196                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10197                 }
10198
10199         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10200
10201         BEGIN(new_state);
10202 }
10203
10204     static void yy_pop_state  (void)
10205 {
10206         if ( --(yy_start_stack_ptr) < 0 )
10207                 YY_FATAL_ERROR( "start-condition stack underflow" );
10208
10209         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10210 }
10211
10212 #ifndef YY_EXIT_FAILURE
10213 #define YY_EXIT_FAILURE 2
10214 #endif
10215
10216 static void yy_fatal_error (yyconst char* msg )
10217 {
10218         (void) fprintf( stderr, "%s\n", msg );
10219         exit( YY_EXIT_FAILURE );
10220 }
10221
10222 /* Redefine yyless() so it works in section 3 code. */
10223
10224 #undef yyless
10225 #define yyless(n) \
10226         do \
10227                 { \
10228                 /* Undo effects of setting up surf_parse_text. */ \
10229         int yyless_macro_arg = (n); \
10230         YY_LESS_LINENO(yyless_macro_arg);\
10231                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10232                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10233                 (yy_hold_char) = *(yy_c_buf_p); \
10234                 *(yy_c_buf_p) = '\0'; \
10235                 surf_parse_leng = yyless_macro_arg; \
10236                 } \
10237         while ( 0 )
10238
10239 /* Accessor  methods (get/set functions) to struct members. */
10240
10241 /** Get the current line number.
10242  * 
10243  */
10244 int surf_parse_get_lineno  (void)
10245 {
10246         
10247     return surf_parse_lineno;
10248 }
10249
10250 /** Get the input stream.
10251  * 
10252  */
10253 FILE *surf_parse_get_in  (void)
10254 {
10255         return surf_parse_in;
10256 }
10257
10258 /** Get the output stream.
10259  * 
10260  */
10261 FILE *surf_parse_get_out  (void)
10262 {
10263         return surf_parse_out;
10264 }
10265
10266 /** Get the length of the current token.
10267  * 
10268  */
10269 int surf_parse_get_leng  (void)
10270 {
10271         return surf_parse_leng;
10272 }
10273
10274 /** Get the current token.
10275  * 
10276  */
10277
10278 char *surf_parse_get_text  (void)
10279 {
10280         return surf_parse_text;
10281 }
10282
10283 /** Set the current line number.
10284  * @param line_number
10285  * 
10286  */
10287 void surf_parse_set_lineno (int  line_number )
10288 {
10289     
10290     surf_parse_lineno = line_number;
10291 }
10292
10293 /** Set the input stream. This does not discard the current
10294  * input buffer.
10295  * @param in_str A readable stream.
10296  * 
10297  * @see surf_parse__switch_to_buffer
10298  */
10299 void surf_parse_set_in (FILE *  in_str )
10300 {
10301         surf_parse_in = in_str ;
10302 }
10303
10304 void surf_parse_set_out (FILE *  out_str )
10305 {
10306         surf_parse_out = out_str ;
10307 }
10308
10309 int surf_parse_get_debug  (void)
10310 {
10311         return surf_parse__flex_debug;
10312 }
10313
10314 void surf_parse_set_debug (int  bdebug )
10315 {
10316         surf_parse__flex_debug = bdebug ;
10317 }
10318
10319 static int yy_init_globals (void)
10320 {
10321         /* Initialization is the same as for the non-reentrant scanner.
10322      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10323      */
10324
10325     /* We do not touch surf_parse_lineno unless the option is enabled. */
10326     surf_parse_lineno =  1;
10327     
10328     (yy_buffer_stack) = 0;
10329     (yy_buffer_stack_top) = 0;
10330     (yy_buffer_stack_max) = 0;
10331     (yy_c_buf_p) = (char *) 0;
10332     (yy_init) = 0;
10333     (yy_start) = 0;
10334
10335     (yy_start_stack_ptr) = 0;
10336     (yy_start_stack_depth) = 0;
10337     (yy_start_stack) =  NULL;
10338
10339 /* Defined in main.c */
10340 #ifdef YY_STDINIT
10341     surf_parse_in = stdin;
10342     surf_parse_out = stdout;
10343 #else
10344     surf_parse_in = (FILE *) 0;
10345     surf_parse_out = (FILE *) 0;
10346 #endif
10347
10348     /* For future reference: Set errno on error, since we are called by
10349      * surf_parse_lex_init()
10350      */
10351     return 0;
10352 }
10353
10354 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10355 int surf_parse_lex_destroy  (void)
10356 {
10357     
10358     /* Pop the buffer stack, destroying each element. */
10359         while(YY_CURRENT_BUFFER){
10360                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10361                 YY_CURRENT_BUFFER_LVALUE = NULL;
10362                 surf_parse_pop_buffer_state();
10363         }
10364
10365         /* Destroy the stack itself. */
10366         surf_parse_free((yy_buffer_stack) );
10367         (yy_buffer_stack) = NULL;
10368
10369     /* Destroy the start condition stack. */
10370         surf_parse_free((yy_start_stack)  );
10371         (yy_start_stack) = NULL;
10372
10373     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10374      * surf_parse_lex() is called, initialization will occur. */
10375     yy_init_globals( );
10376
10377     return 0;
10378 }
10379
10380 /*
10381  * Internal utility routines.
10382  */
10383
10384 #ifndef yytext_ptr
10385 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10386 {
10387         register int i;
10388         for ( i = 0; i < n; ++i )
10389                 s1[i] = s2[i];
10390 }
10391 #endif
10392
10393 #ifdef YY_NEED_STRLEN
10394 static int yy_flex_strlen (yyconst char * s )
10395 {
10396         register int n;
10397         for ( n = 0; s[n]; ++n )
10398                 ;
10399
10400         return n;
10401 }
10402 #endif
10403
10404 void *surf_parse_alloc (yy_size_t  size )
10405 {
10406         return (void *) malloc( size );
10407 }
10408
10409 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10410 {
10411         /* The cast to (char *) in the following accommodates both
10412          * implementations that use char* generic pointers, and those
10413          * that use void* generic pointers.  It works with the latter
10414          * because both ANSI C and C++ allow castless assignment from
10415          * any pointer type to void*, and deal with argument conversions
10416          * as though doing an assignment.
10417          */
10418         return (void *) realloc( (char *) ptr, size );
10419 }
10420
10421 void surf_parse_free (void * ptr )
10422 {
10423         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10424 }
10425
10426 #define YYTABLES_NAME "yytables"
10427
10428 /* Element context stack lookup. */
10429 int surfxml_element_context(int i)
10430 {
10431   return (0<i && i<yy_start_stack_depth
10432           ? yy_start_stack[yy_start_stack_ptr - i]
10433           : 0);
10434 }
10435
10436 #ifdef FLEX_DEBUG
10437 void print_yy_stack(char* fmt, ...)
10438 {
10439   int i = 0; va_list ap; va_start(ap, fmt);
10440   vfprintf(stderr, fmt, ap);
10441   if (surfxml_statenames) {
10442       for (i=1; i<yy_start_stack_ptr; i++) {
10443           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10444       }
10445       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10446   }
10447   va_end(ap);
10448 }
10449
10450 void print_surfxml_bufferstack()
10451 {
10452     int i;
10453     fputs("Buffer: ", stderr);
10454     for (i = 0; i < blimit; i++) {
10455        if ( surfxml_bufferstack[i] == '\377' ) break;
10456          putc(surfxml_bufferstack[i], stderr);
10457     }
10458     putc('\n', stderr);
10459 }
10460
10461 static void debug_enter(int state, const char* statename) {
10462   yy_push_state(state);
10463   if (surf_parse__flex_debug) {
10464        print_yy_stack("--ENTER(%s) : ",statename);
10465        print_surfxml_bufferstack();
10466   }
10467 }
10468
10469 static void debug_leave(void) {
10470     if (surf_parse__flex_debug) {
10471         print_yy_stack("--LEAVE : ");
10472         print_surfxml_bufferstack();
10473     }
10474   yy_pop_state();
10475 }
10476
10477 static void debug_set(int state, const char* statename) {
10478   BEGIN(state);
10479   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10480 }
10481 #endif
10482
10483 static void cleanup(void)
10484 {
10485     if (surfxml_statenames) {
10486         free(surfxml_statenames);
10487         surfxml_statenames = NULL;
10488     }
10489     free(surfxml_bufferstack);
10490     surfxml_bufferstack = NULL;
10491
10492     free(indexstack);
10493     indexstack = NULL;
10494 }
10495
10496 static int fail(const char* fmt, ...)
10497 {
10498     int chars_left, used;
10499     va_list ap; va_start(ap, fmt);
10500 #ifdef FLEXML_yylineno
10501     used = sprintf(flexml_err_msg,
10502                    "Invalid XML (XML input line %d, state %d): ",
10503                    surf_parse_lineno, YY_START);
10504 #else
10505     used = sprintf(flexml_err_msg,
10506                    "Invalid XML (state %d): ",
10507                    YY_START);
10508 #endif
10509     chars_left = flexml_max_err_msg_size - used - 1;
10510     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10511     va_end(ap);
10512
10513 #ifndef FLEXML_quiet_parser
10514     /* print directly to sdterr */
10515     fprintf(stderr, "%s\n", flexml_err_msg);
10516     flexml_err_msg[0] = '\0';
10517 #endif
10518
10519     cleanup();
10520
10521     return 1;
10522 }
10523