Coverage Report

Created: 2026-11-12 07:01

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/work/build/wiretap/ascend_scanner.c
Line
Count
Source
1
#line 2 "/work/build/wiretap/ascend_scanner.c"
2
/* Include this before everything else, for various large-file definitions */
3
#include "config.h"
4
#include <wireshark.h>
5
6
#line 7 "/work/build/wiretap/ascend_scanner.c"
7
8
#define  YY_INT_ALIGNED short int
9
10
/* A lexical scanner generated by flex */
11
12
/* %not-for-header */
13
/* %if-c-only */
14
/* %if-not-reentrant */
15
/* %endif */
16
/* %endif */
17
/* %ok-for-header */
18
19
#define FLEX_SCANNER
20
#define YY_FLEX_MAJOR_VERSION 2
21
#define YY_FLEX_MINOR_VERSION 6
22
#define YY_FLEX_SUBMINOR_VERSION 4
23
#if YY_FLEX_SUBMINOR_VERSION > 0
24
#define FLEX_BETA
25
#endif
26
27
/* %if-c++-only */
28
/* %endif */
29
30
/* %if-c-only */
31
#ifdef yy_create_buffer
32
#define ascend__create_buffer_ALREADY_DEFINED
33
#else
34
0
#define yy_create_buffer ascend__create_buffer
35
#endif
36
37
#ifdef yy_delete_buffer
38
#define ascend__delete_buffer_ALREADY_DEFINED
39
#else
40
0
#define yy_delete_buffer ascend__delete_buffer
41
#endif
42
43
#ifdef yy_scan_buffer
44
#define ascend__scan_buffer_ALREADY_DEFINED
45
#else
46
0
#define yy_scan_buffer ascend__scan_buffer
47
#endif
48
49
#ifdef yy_scan_string
50
#define ascend__scan_string_ALREADY_DEFINED
51
#else
52
#define yy_scan_string ascend__scan_string
53
#endif
54
55
#ifdef yy_scan_bytes
56
#define ascend__scan_bytes_ALREADY_DEFINED
57
#else
58
0
#define yy_scan_bytes ascend__scan_bytes
59
#endif
60
61
#ifdef yy_init_buffer
62
#define ascend__init_buffer_ALREADY_DEFINED
63
#else
64
0
#define yy_init_buffer ascend__init_buffer
65
#endif
66
67
#ifdef yy_flush_buffer
68
#define ascend__flush_buffer_ALREADY_DEFINED
69
#else
70
0
#define yy_flush_buffer ascend__flush_buffer
71
#endif
72
73
#ifdef yy_load_buffer_state
74
#define ascend__load_buffer_state_ALREADY_DEFINED
75
#else
76
0
#define yy_load_buffer_state ascend__load_buffer_state
77
#endif
78
79
#ifdef yy_switch_to_buffer
80
#define ascend__switch_to_buffer_ALREADY_DEFINED
81
#else
82
0
#define yy_switch_to_buffer ascend__switch_to_buffer
83
#endif
84
85
#ifdef yypush_buffer_state
86
#define ascend_push_buffer_state_ALREADY_DEFINED
87
#else
88
#define yypush_buffer_state ascend_push_buffer_state
89
#endif
90
91
#ifdef yypop_buffer_state
92
#define ascend_pop_buffer_state_ALREADY_DEFINED
93
#else
94
0
#define yypop_buffer_state ascend_pop_buffer_state
95
#endif
96
97
#ifdef yyensure_buffer_stack
98
#define ascend_ensure_buffer_stack_ALREADY_DEFINED
99
#else
100
0
#define yyensure_buffer_stack ascend_ensure_buffer_stack
101
#endif
102
103
#ifdef yylex
104
#define ascend_lex_ALREADY_DEFINED
105
#else
106
#define yylex ascend_lex
107
#endif
108
109
#ifdef yyrestart
110
#define ascend_restart_ALREADY_DEFINED
111
#else
112
0
#define yyrestart ascend_restart
113
#endif
114
115
#ifdef yylex_init
116
#define ascend_lex_init_ALREADY_DEFINED
117
#else
118
#define yylex_init ascend_lex_init
119
#endif
120
121
#ifdef yylex_init_extra
122
#define ascend_lex_init_extra_ALREADY_DEFINED
123
#else
124
#define yylex_init_extra ascend_lex_init_extra
125
#endif
126
127
#ifdef yylex_destroy
128
#define ascend_lex_destroy_ALREADY_DEFINED
129
#else
130
#define yylex_destroy ascend_lex_destroy
131
#endif
132
133
#ifdef yyget_debug
134
#define ascend_get_debug_ALREADY_DEFINED
135
#else
136
#define yyget_debug ascend_get_debug
137
#endif
138
139
#ifdef yyset_debug
140
#define ascend_set_debug_ALREADY_DEFINED
141
#else
142
#define yyset_debug ascend_set_debug
143
#endif
144
145
#ifdef yyget_extra
146
#define ascend_get_extra_ALREADY_DEFINED
147
#else
148
#define yyget_extra ascend_get_extra
149
#endif
150
151
#ifdef yyset_extra
152
#define ascend_set_extra_ALREADY_DEFINED
153
#else
154
0
#define yyset_extra ascend_set_extra
155
#endif
156
157
#ifdef yyget_in
158
#define ascend_get_in_ALREADY_DEFINED
159
#else
160
#define yyget_in ascend_get_in
161
#endif
162
163
#ifdef yyset_in
164
#define ascend_set_in_ALREADY_DEFINED
165
#else
166
#define yyset_in ascend_set_in
167
#endif
168
169
#ifdef yyget_out
170
#define ascend_get_out_ALREADY_DEFINED
171
#else
172
#define yyget_out ascend_get_out
173
#endif
174
175
#ifdef yyset_out
176
#define ascend_set_out_ALREADY_DEFINED
177
#else
178
#define yyset_out ascend_set_out
179
#endif
180
181
#ifdef yyget_leng
182
#define ascend_get_leng_ALREADY_DEFINED
183
#else
184
#define yyget_leng ascend_get_leng
185
#endif
186
187
#ifdef yyget_text
188
#define ascend_get_text_ALREADY_DEFINED
189
#else
190
#define yyget_text ascend_get_text
191
#endif
192
193
#ifdef yyget_lineno
194
#define ascend_get_lineno_ALREADY_DEFINED
195
#else
196
#define yyget_lineno ascend_get_lineno
197
#endif
198
199
#ifdef yyset_lineno
200
#define ascend_set_lineno_ALREADY_DEFINED
201
#else
202
#define yyset_lineno ascend_set_lineno
203
#endif
204
205
#ifdef yyget_column
206
#define ascend_get_column_ALREADY_DEFINED
207
#else
208
#define yyget_column ascend_get_column
209
#endif
210
211
#ifdef yyset_column
212
#define ascend_set_column_ALREADY_DEFINED
213
#else
214
#define yyset_column ascend_set_column
215
#endif
216
217
#ifdef yywrap
218
#define ascend_wrap_ALREADY_DEFINED
219
#else
220
0
#define yywrap ascend_wrap
221
#endif
222
223
/* %endif */
224
225
#ifdef yyalloc
226
#define ascend_alloc_ALREADY_DEFINED
227
#else
228
0
#define yyalloc ascend_alloc
229
#endif
230
231
#ifdef yyrealloc
232
#define ascend_realloc_ALREADY_DEFINED
233
#else
234
0
#define yyrealloc ascend_realloc
235
#endif
236
237
#ifdef yyfree
238
#define ascend_free_ALREADY_DEFINED
239
#else
240
0
#define yyfree ascend_free
241
#endif
242
243
/* %if-c-only */
244
245
/* %endif */
246
247
/* First, we deal with  platform-specific or compiler-specific issues. */
248
249
/* begin standard C headers. */
250
/* %if-c-only */
251
#include <stdio.h>
252
#include <string.h>
253
#include <errno.h>
254
#include <stdlib.h>
255
/* %endif */
256
257
/* %if-tables-serialization */
258
/* %endif */
259
/* end standard C headers. */
260
261
/* %if-c-or-c++ */
262
/* flex integer type definitions */
263
264
#ifndef FLEXINT_H
265
#define FLEXINT_H
266
267
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
268
269
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
270
271
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
272
 * if you want the limit (max/min) macros for int types. 
273
 */
274
#ifndef __STDC_LIMIT_MACROS
275
#define __STDC_LIMIT_MACROS 1
276
#endif
277
278
#include <inttypes.h>
279
typedef int8_t flex_int8_t;
280
typedef uint8_t flex_uint8_t;
281
typedef int16_t flex_int16_t;
282
typedef uint16_t flex_uint16_t;
283
typedef int32_t flex_int32_t;
284
typedef uint32_t flex_uint32_t;
285
#else
286
typedef signed char flex_int8_t;
287
typedef short int flex_int16_t;
288
typedef int flex_int32_t;
289
typedef unsigned char flex_uint8_t; 
290
typedef unsigned short int flex_uint16_t;
291
typedef unsigned int flex_uint32_t;
292
293
/* Limits of integral types. */
294
#ifndef INT8_MIN
295
#define INT8_MIN               (-128)
296
#endif
297
#ifndef INT16_MIN
298
#define INT16_MIN              (-32767-1)
299
#endif
300
#ifndef INT32_MIN
301
#define INT32_MIN              (-2147483647-1)
302
#endif
303
#ifndef INT8_MAX
304
#define INT8_MAX               (127)
305
#endif
306
#ifndef INT16_MAX
307
#define INT16_MAX              (32767)
308
#endif
309
#ifndef INT32_MAX
310
#define INT32_MAX              (2147483647)
311
#endif
312
#ifndef UINT8_MAX
313
#define UINT8_MAX              (255U)
314
#endif
315
#ifndef UINT16_MAX
316
#define UINT16_MAX             (65535U)
317
#endif
318
#ifndef UINT32_MAX
319
#define UINT32_MAX             (4294967295U)
320
#endif
321
322
#ifndef SIZE_MAX
323
#define SIZE_MAX               (~(size_t)0)
324
#endif
325
326
#endif /* ! C99 */
327
328
#endif /* ! FLEXINT_H */
329
330
/* %endif */
331
332
/* begin standard C++ headers. */
333
/* %if-c++-only */
334
/* %endif */
335
336
/* TODO: this is always defined, so inline it */
337
#define yyconst const
338
339
#if defined(__GNUC__) && __GNUC__ >= 3
340
#define yynoreturn __attribute__((__noreturn__))
341
#else
342
#define yynoreturn
343
#endif
344
345
/* %not-for-header */
346
/* Returned upon end-of-file. */
347
0
#define YY_NULL 0
348
/* %ok-for-header */
349
350
/* %not-for-header */
351
/* Promotes a possibly negative, possibly signed char to an
352
 *   integer in range [0..255] for use as an array index.
353
 */
354
0
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
355
/* %ok-for-header */
356
357
/* %if-reentrant */
358
359
/* An opaque pointer. */
360
#ifndef YY_TYPEDEF_YY_SCANNER_T
361
#define YY_TYPEDEF_YY_SCANNER_T
362
typedef void* yyscan_t;
363
#endif
364
365
/* For convenience, these vars (plus the bison vars far below)
366
   are macros in the reentrant scanner. */
367
0
#define yyin yyg->yyin_r
368
0
#define yyout yyg->yyout_r
369
0
#define yyextra yyg->yyextra_r
370
0
#define yyleng yyg->yyleng_r
371
0
#define yytext yyg->yytext_r
372
0
#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
373
0
#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
374
0
#define yy_flex_debug yyg->yy_flex_debug_r
375
376
/* %endif */
377
378
/* %if-not-reentrant */
379
/* %endif */
380
381
/* Enter a start condition.  This macro really ought to take a parameter,
382
 * but we do it the disgusting crufty way forced on us by the ()-less
383
 * definition of BEGIN.
384
 */
385
0
#define BEGIN yyg->yy_start = 1 + 2 *
386
/* Translate the current start state into a value that can be later handed
387
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
388
 * compatibility.
389
 */
390
#define YY_START ((yyg->yy_start - 1) / 2)
391
#define YYSTATE YY_START
392
/* Action number for EOF rule of a given start state. */
393
0
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
394
/* Special action meaning "start processing a new file". */
395
0
#define YY_NEW_FILE yyrestart( yyin , yyscanner )
396
0
#define YY_END_OF_BUFFER_CHAR 0
397
398
/* Size of default input buffer. */
399
#ifndef YY_BUF_SIZE
400
#ifdef __ia64__
401
/* On IA-64, the buffer size is 16k, not 8k.
402
 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
403
 * Ditto for the __ia64__ case accordingly.
404
 */
405
#define YY_BUF_SIZE 32768
406
#else
407
0
#define YY_BUF_SIZE 16384
408
#endif /* __ia64__ */
409
#endif
410
411
/* The state buf must be large enough to hold one state per character in the main buffer.
412
 */
413
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
414
415
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
416
#define YY_TYPEDEF_YY_BUFFER_STATE
417
typedef struct yy_buffer_state *YY_BUFFER_STATE;
418
#endif
419
420
#ifndef YY_TYPEDEF_YY_SIZE_T
421
#define YY_TYPEDEF_YY_SIZE_T
422
typedef size_t yy_size_t;
423
#endif
424
425
/* %if-not-reentrant */
426
/* %endif */
427
428
/* %if-c-only */
429
/* %if-not-reentrant */
430
/* %endif */
431
/* %endif */
432
433
0
#define EOB_ACT_CONTINUE_SCAN 0
434
0
#define EOB_ACT_END_OF_FILE 1
435
0
#define EOB_ACT_LAST_MATCH 2
436
    
437
    #define YY_LESS_LINENO(n)
438
    #define YY_LINENO_REWIND_TO(ptr)
439
    
440
/* Return all but the first "n" matched characters back to the input stream. */
441
#define yyless(n) \
442
  do \
443
    { \
444
    /* Undo effects of setting up yytext. */ \
445
        int yyless_macro_arg = (n); \
446
        YY_LESS_LINENO(yyless_macro_arg);\
447
    *yy_cp = yyg->yy_hold_char; \
448
    YY_RESTORE_YY_MORE_OFFSET \
449
    yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
450
    YY_DO_BEFORE_ACTION; /* set up yytext again */ \
451
    } \
452
  while ( 0 )
453
0
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
454
455
#ifndef YY_STRUCT_YY_BUFFER_STATE
456
#define YY_STRUCT_YY_BUFFER_STATE
457
struct yy_buffer_state
458
  {
459
/* %if-c-only */
460
  FILE *yy_input_file;
461
/* %endif */
462
463
/* %if-c++-only */
464
/* %endif */
465
466
  char *yy_ch_buf;    /* input buffer */
467
  char *yy_buf_pos;   /* current position in input buffer */
468
469
  /* Size of input buffer in bytes, not including room for EOB
470
   * characters.
471
   */
472
  int yy_buf_size;
473
474
  /* Number of characters read into yy_ch_buf, not including EOB
475
   * characters.
476
   */
477
  int yy_n_chars;
478
479
  /* Whether we "own" the buffer - i.e., we know we created it,
480
   * and can realloc() it to grow it, and should free() it to
481
   * delete it.
482
   */
483
  int yy_is_our_buffer;
484
485
  /* Whether this is an "interactive" input source; if so, and
486
   * if we're using stdio for input, then we want to use getc()
487
   * instead of fread(), to make sure we stop fetching input after
488
   * each newline.
489
   */
490
  int yy_is_interactive;
491
492
  /* Whether we're considered to be at the beginning of a line.
493
   * If so, '^' rules will be active on the next match, otherwise
494
   * not.
495
   */
496
  int yy_at_bol;
497
498
    int yy_bs_lineno; /**< The line count. */
499
    int yy_bs_column; /**< The column count. */
500
501
  /* Whether to try to fill the input buffer when we reach the
502
   * end of it.
503
   */
504
  int yy_fill_buffer;
505
506
  int yy_buffer_status;
507
508
0
#define YY_BUFFER_NEW 0
509
0
#define YY_BUFFER_NORMAL 1
510
  /* When an EOF's been seen but there's still some text to process
511
   * then we mark the buffer as YY_EOF_PENDING, to indicate that we
512
   * shouldn't try reading from the input source any more.  We might
513
   * still have a bunch of tokens to match, though, because of
514
   * possible backing-up.
515
   *
516
   * When we actually see the EOF, we change the status to "new"
517
   * (via yyrestart()), so that the user can continue scanning by
518
   * just pointing yyin at a new input file.
519
   */
520
0
#define YY_BUFFER_EOF_PENDING 2
521
522
  };
523
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
524
525
/* %if-c-only Standard (non-C++) definition */
526
/* %not-for-header */
527
/* %if-not-reentrant */
528
/* %endif */
529
/* %ok-for-header */
530
531
/* %endif */
532
533
/* We provide macros for accessing buffer states in case in the
534
 * future we want to put the buffer states in a more general
535
 * "scanner state".
536
 *
537
 * Returns the top of the stack, or NULL.
538
 */
539
0
#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
540
0
                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
541
0
                          : NULL)
542
/* Same as previous macro, but useful when we know that the buffer stack is not
543
 * NULL or when we need an lvalue. For internal use only.
544
 */
545
0
#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
546
547
/* %if-c-only Standard (non-C++) definition */
548
549
/* %if-not-reentrant */
550
/* %not-for-header */
551
/* %ok-for-header */
552
553
/* %endif */
554
555
void yyrestart ( FILE *input_file , yyscan_t yyscanner );
556
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
557
YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
558
void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
559
void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
560
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
561
void yypop_buffer_state ( yyscan_t yyscanner );
562
563
static void yyensure_buffer_stack ( yyscan_t yyscanner );
564
static void yy_load_buffer_state ( yyscan_t yyscanner );
565
static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
566
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
567
568
YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
569
YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
570
YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
571
572
/* %endif */
573
574
void *yyalloc ( yy_size_t , yyscan_t yyscanner );
575
void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
576
void yyfree ( void * , yyscan_t yyscanner );
577
578
#define yy_new_buffer yy_create_buffer
579
#define yy_set_interactive(is_interactive) \
580
  { \
581
  if ( ! YY_CURRENT_BUFFER ){ \
582
        yyensure_buffer_stack (yyscanner); \
583
    YY_CURRENT_BUFFER_LVALUE =    \
584
            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
585
  } \
586
  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
587
  }
588
#define yy_set_bol(at_bol) \
589
  { \
590
  if ( ! YY_CURRENT_BUFFER ){\
591
        yyensure_buffer_stack (yyscanner); \
592
    YY_CURRENT_BUFFER_LVALUE =    \
593
            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
594
  } \
595
  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
596
  }
597
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
598
599
/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
600
/* Begin user sect3 */
601
602
0
#define ascend_wrap(yyscanner) (/*CONSTCOND*/1)
603
#define YY_SKIP_YYWRAP
604
605
#define FLEX_DEBUG
606
typedef flex_uint8_t YY_CHAR;
607
608
typedef int yy_state_type;
609
610
0
#define yytext_ptr yytext_r
611
612
/* %% [1.5] DFA */
613
614
/* %if-c-only Standard (non-C++) definition */
615
616
static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
617
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
618
static int yy_get_next_buffer ( yyscan_t yyscanner );
619
static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
620
621
/* %endif */
622
623
/* Done after the current pattern has been matched and before the
624
 * corresponding action - sets up yytext.
625
 */
626
#define YY_DO_BEFORE_ACTION \
627
0
  yyg->yytext_ptr = yy_bp; \
628
0
/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
629
0
  yyleng = (int) (yy_cp - yy_bp); \
630
0
  yyg->yy_hold_char = *yy_cp; \
631
0
  *yy_cp = '\0'; \
632
0
/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
633
0
  yyg->yy_c_buf_p = yy_cp;
634
/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
635
#define YY_NUM_RULES 39
636
0
#define YY_END_OF_BUFFER 40
637
/* This struct is not used in this scanner,
638
   but its presence is necessary. */
639
struct yy_trans_info
640
  {
641
  flex_int32_t yy_verify;
642
  flex_int32_t yy_nxt;
643
  };
644
static const flex_int16_t yy_accept[878] =
645
    {   0,
646
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650
        0,    0,    0,    0,    0,    0,    0,    0,   40,   38,
651
       36,   36,   36,   36,   38,   38,   38,   38,   36,   38,
652
       38,   38,   38,   36,   36,   36,   14,   14,   15,   15,
653
       16,   16,   38,   38,   36,   36,   36,   36,   36,   38,
654
       36,   36,   36,   38,   38,   11,   11,   38,   36,   36,
655
       36,   36,   38,   36,   36,   38,   36,   36,   36,   31,
656
657
       31,   31,   31,   31,   31,   33,   33,   33,   38,   21,
658
       20,   21,   21,   21,   21,   21,    9,    9,    9,    9,
659
        9,    9,   38,   36,   36,   36,   38,   38,   36,    0,
660
       36,    0,    0,    0,    0,    0,    0,   37,    0,    0,
661
        0,    0,   35,   12,    0,   14,   15,   16,    0,    0,
662
       18,   18,   10,   10,   10,   10,   10,   10,   10,   11,
663
        0,   23,   36,    0,   27,    0,   29,   36,   31,   31,
664
       31,   31,   31,   31,   31,   33,    0,   21,   21,   21,
665
       21,   21,   21,   21,    9,    9,    9,    9,    9,    9,
666
        9,    8,    8,    8,    8,    8,    8,    8,   36,   36,
667
668
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669
        0,   13,   35,   12,   36,   14,   15,   16,    0,    0,
670
       10,   10,   10,   10,   10,   10,   11,    0,   36,    0,
671
        0,    0,   31,   31,   31,   31,   31,   31,   33,    0,
672
       21,   21,   21,   21,   21,   21,    9,    9,    9,    9,
673
        9,    9,    8,    8,    8,    8,    8,    8,   36,    0,
674
        0,    0,    0,    5,    0,    4,    0,   37,    0,    0,
675
       35,   12,   14,   15,   16,    0,   19,   10,   10,   10,
676
       10,   10,   10,   11,   24,   25,    0,   28,    0,   31,
677
       31,   31,   31,   31,   31,   33,    0,   21,   21,   21,
678
679
       21,   21,   21,    9,    9,    9,    9,    9,    9,    8,
680
        8,    8,    8,    8,    8,   36,   22,    1,    0,    0,
681
        0,    0,    5,    0,    4,    0,    0,   35,   12,   14,
682
       15,   16,    0,   10,   10,   10,   10,   11,   26,    0,
683
       31,   31,   31,   31,   31,   33,    0,   21,   21,   21,
684
       21,   21,    9,    9,    9,    9,    8,    8,    8,    8,
685
        8,   36,    7,    0,    0,    0,    5,    0,    4,    0,
686
       35,   12,   14,   15,   16,    0,   10,   10,   10,   10,
687
       11,    0,   31,   31,   31,   31,   33,   34,   21,   21,
688
       21,   21,    9,    9,    9,    9,    8,    8,    8,    8,
689
690
       36,    6,    0,    0,    5,    0,    4,    0,   35,   12,
691
       14,   16,   17,   10,   10,   10,   11,    0,   31,   31,
692
       31,   33,   34,   21,   21,   21,    9,    9,    9,    8,
693
        8,    8,   36,    3,    0,    5,    0,    4,    0,   35,
694
       12,   14,   16,   10,   10,   10,   11,    0,   31,   31,
695
       31,   33,   34,   21,   21,   21,    9,    9,    9,    8,
696
        8,    8,   36,    2,    0,    0,   35,   14,   16,   10,
697
       10,   10,   11,    0,   31,   31,   31,   34,   21,   21,
698
       21,    9,    9,    9,    8,    8,    8,   36,    0,    0,
699
       35,   14,   16,   10,   10,   10,   11,    0,   31,   31,
700
701
       31,   34,   21,   21,   21,    9,    9,    9,    8,    8,
702
        8,   36,    0,    0,   35,   10,   10,   10,    0,   31,
703
       31,   31,   34,   21,   21,   21,    9,    9,    9,    8,
704
        8,    8,   36,    0,    0,   10,   10,   10,    0,   31,
705
       31,   31,   34,   21,   21,   21,    9,    9,    9,    8,
706
        8,    8,   36,    0,    0,   10,   10,   10,    0,   31,
707
       31,   31,   34,   21,   21,   21,    9,    9,    9,    8,
708
        8,    8,   36,    0,    0,   10,   10,   10,    0,   31,
709
       31,   31,   34,   21,   21,   21,    9,    9,    9,    8,
710
        8,    8,   36,    0,    0,   10,   10,   10,    0,   31,
711
712
       31,   31,   34,   21,   21,   21,    9,    9,    9,    8,
713
        8,    8,   36,    0,    0,   10,   10,   10,    0,   31,
714
       31,   31,   34,   21,   21,   21,    9,    9,    9,    8,
715
        8,    8,    0,    0,   10,   10,    0,   31,   31,   34,
716
       21,   21,    9,    9,    8,    8,    0,    0,   10,   10,
717
        0,   31,   31,   34,   21,   21,    9,    9,    8,    8,
718
        0,    0,   10,    0,   31,   34,   21,    9,    8,    0,
719
        0,   10,    0,   31,   34,   21,    9,    8,    0,    0,
720
        0,   31,   34,   21,   32,    0,    0,   31,   34,   21,
721
        0,    0,   31,   34,   21,    0,    0,   31,   34,   21,
722
723
        0,    0,   31,   34,   21,    0,    0,   31,   34,   21,
724
        0,    0,   31,   34,   21,    0,    0,   31,   34,   21,
725
        0,    0,   31,   34,   21,    0,    0,   31,   34,   21,
726
        0,    0,   31,   34,   21,    0,    0,   31,   34,   21,
727
        0,    0,   31,   34,   21,    0,   30,   31,   34,   21,
728
        0,   31,   34,   21,    0,   31,   34,   21,    0,   31,
729
       34,   21,    0,   31,   34,   21,    0,   31,   34,   21,
730
        0,   31,   34,   21,    0,   31,   34,   21,    0,   31,
731
       34,   21,    0,   31,   34,   21,    0,   31,   34,   21,
732
        0,   31,   34,   21,    0,   31,   34,   21,    0,   31,
733
734
       34,   21,    0,   31,   34,   21,    0,   31,   34,   21,
735
        0,   31,   34,   21,    0,   31,   34,   21,    0,   31,
736
       34,   21,    0,   31,   34,   21,    0,   31,   34,   21,
737
        0,   31,   34,   21,    0,   31,   34,   21,    0,   31,
738
       34,   21,    0,   31,   34,   21,    0,   31,   34,   21,
739
        0,   31,   34,   21,    0,   31,   34,   21,    0,   31,
740
       34,   21,    0,   31,   34,   21,    0,   31,   34,   21,
741
        0,   34,   34,   34,   34,   34,    0
742
    } ;
743
744
static const YY_CHAR yy_ec[256] =
745
    {   0,
746
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
747
        1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
748
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
749
        1,    4,    1,    5,    1,    1,    1,    1,    1,    6,
750
        1,    1,    1,    1,    7,    1,    8,    9,   10,   10,
751
       10,   10,   10,   10,   10,   10,   10,   11,    1,    1,
752
        1,    1,    1,    1,   12,   13,   14,   15,   16,   13,
753
       17,   18,   19,   17,   17,   20,   21,   22,   23,   24,
754
       17,   25,   26,   27,   28,   29,   30,   31,   17,   17,
755
       32,    1,   33,    1,   34,    1,   35,   13,   36,   13,
756
757
       37,   13,   17,   38,   39,   17,   40,   41,   42,   43,
758
       44,   45,   17,   17,   46,   47,   48,   17,   17,   49,
759
       50,   17,    1,    1,    1,    1,    1,    1,    1,    1,
760
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
761
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
762
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
763
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
764
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
765
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
766
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
767
768
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
769
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
770
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
771
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
772
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
773
        1,    1,    1,    1,    1
774
    } ;
775
776
static const YY_CHAR yy_meta[51] =
777
    {   0,
778
        1,    2,    3,    4,    5,    6,    1,    7,    8,    8,
779
        9,    8,    8,    8,    8,    8,   10,   10,   10,   10,
780
       10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
781
       11,    1,    1,   10,    8,    8,    8,   10,   10,   10,
782
       10,   10,   10,   10,   10,   10,   10,   10,   11,   10
783
    } ;
784
785
static const flex_int16_t yy_base[1232] =
786
    {   0,
787
        0,   39,   82,    0,  121,  144,  167,  190,  213,  236,
788
        2,   41,  264,    0,  293,  332,  371,  394,   85,   97,
789
      417,  440,  463,  486,  108,  140,  509,  532,  178,  201,
790
      555,  578,  225,  267,  608,  654,  238,  295,  697,    0,
791
      308,  335,  732,  777,  819,  861,  903,  945,  860, 8859,
792
        9,   10,  824,  831,    4,  841,  838,  831,  804,  814,
793
        3,    0,   10,   12,   19,  802,   36,   12,   68,   70,
794
       72,   79,    0,  844,   53,   76,  812,  819,  798,    0,
795
      984,  109,  131,  808,   64,  132,  134,  138,  140,  163,
796
      175,  177,  804,  186,  201,  209,  224,  226,  807,    0,
797
798
     1025,  130,  239,  805,   69,  132,  193,  793,  277,    0,
799
     8859, 1066,  199,  240,  803,  255,    0, 1107,  216,  287,
800
      802,  278,    0, 1148,  226,  323,  801,  286,    0,    0,
801
      789,  808,  799,  803,  806,  785,  799, 8859,  770,  770,
802
      773,  806,  249,    0,    0,  275,  305,  343,    0,  806,
803
        0,  762,    0, 1189, 1218,    0,  761,  761,  764,  347,
804
      352,    0,  354,  763,    0,  364,    0,  756,    0, 1247,
805
     1276,    0,  756,  756,  759,    0,  755,    0, 1305, 1334,
806
        0,  752,  752,  755,    0, 1363, 1392,    0,  749,  749,
807
      752,    0, 1421, 1450,    0,  741,  739,  742,    0,    0,
808
809
      746,  766,  774,  771,  748,  760,  747,  736,  732,  734,
810
      765, 8859,  368,    0,    0,  374,  379,  381,    0,  762,
811
        0, 1479, 1508,  728,  724,  726,  383,  754,  388,  724,
812
      749,  713,    0, 1537, 1566,  721,  717,  719,    0,  718,
813
        0, 1595, 1624,  717,  713,  715,    0, 1653, 1682,  714,
814
      710,  712,    0, 1711, 1740,  706,  700,  702,    0,  727,
815
      712,  312,   89,    0,  717,  364,  684,  719,  718,  723,
816
      390,    0,  396,  398,  402,    0, 8859,    0, 1769, 1798,
817
      680,  715,  714,  404, 8859,    0,  713, 8859,  686,    0,
818
     1827, 1856,  675,  710,  709,    0,  715,    0, 1885, 1914,
819
820
      671,  706,  705,    0, 1943, 1972,  668,  703,  697,    0,
821
     2001, 2030,  657,  692,  689,    0, 8859, 8859,  677,  669,
822
      682,  674,  409,  682,  410,  647,  687,  413,    0,  419,
823
      421,  425,  655,    0, 2059, 2088,  641,  427, 8859,  682,
824
        0, 2117, 2146,  639,    0,    0,    0,    0, 2175, 2204,
825
      638,    0,    0, 2233, 2262,  637,    0, 2291, 2320,  636,
826
        0,    0, 8859,  654,  651,  660,  432,  658,  433,  672,
827
      436,    0,  442,    0,  444,  665,    0, 2349, 2378,    0,
828
      448,  640,    0, 2407, 2436,    0,    0,    0,    0, 2465,
829
     2494,    0,    0, 2523, 2552,    0,    0, 2581, 2610,    0,
830
831
        0, 8859,  667,  646,  452,  649,  455,  666,  451,    0,
832
      458,  465, 8859,    0, 2639, 2668,  467,  622,    0, 2697,
833
     2726,    0,    0,    0, 2755, 2784,    0, 2813, 2842,    0,
834
     2871, 2900,    0, 8859,  655, 8859,  633, 8859,  655,  471,
835
        0,  473,  475,    0, 2929, 2958,  480,  655,    0, 2987,
836
     3016,    0,    0,    0, 3045, 3074,    0, 3103, 3132,    0,
837
     3161, 3190,    0, 8859,  627,  648,  482,  488,  490,    0,
838
     3219, 3248,  494,  616,    0, 3277, 3306,    0,    0, 3335,
839
     3364,    0, 3393, 3422,    0, 3451, 3480,    0,  616,  644,
840
      496,    0,    0,    0, 3509, 3538,    0,  601,    0, 3567,
841
842
     3596,    0,    0, 3625, 3654,    0, 3683, 3712,    0, 3741,
843
     3770,    0,  632,  641, 8859,    0, 3799, 3828,  595,    0,
844
     3857, 3886,    0,    0, 3915, 3944,    0, 3973, 4002,    0,
845
     4031, 4060,    0,  622,  635,    0, 4089, 4118,  602,    0,
846
     4147, 4176,    0,    0, 4205, 4234,    0, 4263, 4292,    0,
847
     4321, 4350,    0,  612,  632,    0, 4379, 4408,  594,    0,
848
     4437, 4466,    0,    0, 4495, 4524,    0, 4553, 4582,    0,
849
     4611, 4640,    0,  611,  629,    0, 4669, 4698,  588,    0,
850
     4727, 4756,    0,    0, 4785, 4814,    0, 4843, 4872,    0,
851
     4901, 4930,    0,  621,  626,    0, 4959, 4988,  583,    0,
852
853
     5017, 5046,    0,    0, 5075, 5104,    0, 5133, 5162,    0,
854
     5191, 5220, 8859,  625,  623,    0,    0, 5249,  623,    0,
855
        0, 5278,    0,    0,    0, 5307,    0,    0, 5336,    0,
856
        0, 5365,  590,  620,    0, 5394,  572,    0, 5423,    0,
857
        0, 5452,    0, 5481,    0, 5510,  578,  610,    0,    0,
858
      570,    0,    0,    0,    0,    0,    0,    0,    0,    0,
859
      565,  602,    0,  602,    0,    0,    0,    0,    0,  562,
860
      599, 8859,  556,    0,    0,    0, 8859, 8859,  560,  594,
861
      557,    0,    0,    0, 8859,  592,  561,    0,    0,    0,
862
      590,  556,    0,    0,    0,  586,  553,    0,    0,    0,
863
864
      584,  580,    0,    0,    0,  578,  546,    0,    0,    0,
865
      576,  543,    0,    0,    0,  572,  535,    0,    0,    0,
866
      570,  533,    0,    0,    0,  568,  568,    0,    0,    0,
867
      564,  521,    0,    0,    0,  562,  522,    0,    0,    0,
868
      556,  556,    0,    0,    0,  554, 8859,    0,    0,    0,
869
      553,    0,    0,    0,  550,    0,    0,    0,  549,    0,
870
        0,    0,  548,    0,    0,    0,  547,    0,    0,    0,
871
      546,    0,    0,    0,  545,    0,    0,    0,  544,    0,
872
        0,    0,  541,    0,    0,    0,  540,    0,    0,    0,
873
      539,    0,    0,    0,  538,    0,    0,    0,  533,    0,
874
875
        0,    0,  532,    0,    0,    0,  531,    0,    0,    0,
876
      530,    0,    0,    0,  527,    0,    0,    0,  526,    0,
877
        0,    0,  525,    0,    0,    0,  524,    0,    0,    0,
878
      523,    0,    0,    0,  522,    0,    0,    0,  521,    0,
879
        0,    0,  518,    0,    0,    0,  517,    0,    0,    0,
880
      516,    0,    0,    0,  515,    0,    0,    0,  510,    0,
881
        0,    0,  509,    0,    0,    0,  508, 8859,    0, 8859,
882
      507,    0,    0,    0,    0, 8859, 8859, 5547, 5558, 5569,
883
     5580, 5591, 5602, 5606, 5614, 5618,  501, 5622, 5633, 5644,
884
     5648, 5659, 5670, 5681,  500,  499, 5689,  478,  461,  430,
885
886
     5700, 5711,  407, 5722, 5733, 5744,  386, 5752,  377,  350,
887
      341, 5763, 5774,  314, 5785, 5796, 5807,  287, 5815,  285,
888
      264, 5826, 5837,  256, 5848, 5859, 5870,  219, 5878,  205,
889
     5889, 5900,  199, 5911, 5922, 5933, 5944,  196, 5952,  193,
890
     5963, 5974,  182, 5985, 5996, 6007, 6018,  180, 6026,  158,
891
     6037, 6048,  149, 6059, 6070, 6081, 6092,  126, 6100, 6111,
892
     6122, 6133, 6144, 6155, 6166,  103, 6174, 6185, 6196, 6207,
893
     6218, 6229, 6240,   98, 6248, 6259, 6270, 6281, 6292, 6303,
894
     6314,   54, 6322, 6333, 6344, 6355, 6366, 6377, 6388,   52,
895
     6396, 6407, 6418, 6429, 6440, 6451, 6462,   31, 6470, 6481,
896
897
     6492, 6503, 6514, 6525, 6536,   15, 6544, 6555, 6566, 6577,
898
     6588, 6599, 6610,    0, 6618, 6629, 6640, 6651, 6662, 6673,
899
     6684, 6692, 6703, 6714, 6725, 6736, 6747, 6758, 6766, 6777,
900
     6788, 6799, 6810, 6821, 6832, 6840, 6851, 6862, 6873, 6884,
901
     6895, 6906, 6914, 6925, 6936, 6947, 6958, 6969, 6980, 6988,
902
     6999, 7010, 7021, 7029, 7040, 7051, 7062, 7070, 7081, 7092,
903
     7103, 7111, 7122, 7133, 7144, 7152, 7163, 7174, 7185, 7193,
904
     7204, 7215, 7226, 7234, 7245, 7256, 7267, 7275, 7286, 7297,
905
     7308, 7316, 7327, 7338, 7349, 7357, 7368, 7379, 7390, 7398,
906
     7409, 7420, 7431, 7439, 7450, 7461, 7472, 7480, 7491, 7502,
907
908
     7513, 7521, 7532, 7543, 7554, 7562, 7573, 7584, 7595, 7603,
909
     7614, 7625, 7636, 7644, 7655, 7666, 7677, 7685, 7696, 7707,
910
     7718, 7726, 7737, 7748, 7759, 7767, 7778, 7789, 7800, 7808,
911
     7819, 7830, 7841, 7849, 7860, 7871, 7882, 7890, 7901, 7912,
912
     7923, 7931, 7942, 7953, 7964, 7972, 7983, 7994, 8005, 8013,
913
     8024, 8035, 8046, 8054, 8065, 8076, 8087, 8095, 8106, 8117,
914
     8128, 8136, 8147, 8158, 8169, 8177, 8188, 8199, 8210, 8218,
915
     8229, 8240, 8251, 8259, 8270, 8281, 8292, 8300, 8311, 8322,
916
     8333, 8341, 8352, 8363, 8374, 8382, 8393, 8404, 8415, 8423,
917
     8434, 8445, 8456, 8464, 8475, 8486, 8497, 8505, 8516, 8527,
918
919
     8538, 8546, 8557, 8568, 8579, 8587, 8598, 8609, 8620, 8628,
920
     8639, 8650, 8661, 8669, 8680, 8691, 8702, 8710, 8721, 8732,
921
     8743, 8751, 8762, 8773, 8784, 8792, 8803, 8814, 8825, 8836,
922
     8847
923
    } ;
924
925
static const flex_int16_t yy_def[1232] =
926
    {   0,
927
      878,  878,  878,    3,    2,    2,    2,    2,    2,    2,
928
        2,    2,    2,   13,  879,  879,    2,    2,    2,    2,
929
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
930
        2,    2,    2,    2,  880,  880,    2,    2,    3,   39,
931
        2,    2,  881,  881,  882,  882,  883,  883,  877,  877,
932
      884,  884,   52,   52,  877,  877,  877,  877,   52,  877,
933
      877,  885,  877,  886,  886,   65,   52,   52,   67,   52,
934
       67,   52,  887,  877,  888,  888,   76,   76,   76,  889,
935
      889,   81,   81,  889,  889,   67,   52,  877,   67,   52,
936
       67,   52,  877,   67,   52,  877,   67,   52,   52,  890,
937
938
      890,  101,  101,  890,  890,  891,  891,  107,  877,  892,
939
      877,  892,  112,  112,  892,  892,  893,  893,  118,  118,
940
      893,  893,  894,  894,  124,  124,  894,  894,  895,  896,
941
      895,  877,  877,  877,  877,  877,  877,  877,  877,  877,
942
      877,  897,  877,  898,  899,  895,  895,  895,  900,  877,
943
      895,  895,  901,  901,  901,  901,  901,  901,  901,  895,
944
      877,  895,  895,  877,  895,  877,  895,  895,  902,  902,
945
      902,  902,  902,  902,  902,  903,  877,  904,  904,  904,
946
      904,  904,  904,  904,  905,  905,  905,  905,  905,  905,
947
      905,  906,  906,  906,  906,  906,  906,  906,  907,   52,
948
949
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
950
      908,  877,  877,  909,  910,  907,  907,  907,  911,  877,
951
      912,  912,  912,  912,  912,  912,  907,  877,  907,  877,
952
      877,  877,  913,  913,  913,  913,  913,  913,  914,  877,
953
      915,  915,  915,  915,  915,  915,  916,  916,  916,  916,
954
      916,  916,  917,  917,  917,  917,  917,  917,  918,  877,
955
      877,  877,  877,  877,  877,  877,  877,  877,  877,  919,
956
      877,  920,  918,  918,  918,  921,  877,  922,  922,  922,
957
      922,  922,  922,  918,  877,  918,  877,  877,  877,  923,
958
      923,  923,  923,  923,  923,  924,  877,  925,  925,  925,
959
960
      925,  925,  925,  926,  926,  926,  926,  926,  926,  927,
961
      927,  927,  927,  927,  927,  928,  877,  877,  877,  877,
962
      877,  877,  877,  877,  877,  877,  929,  877,  930,  928,
963
      928,  928,  877,  931,  931,  931,  931,  928,  877,  877,
964
      932,  932,  932,  932,  932,  933,  934,  935,  935,  935,
965
      935,  935,  936,  936,  936,  936,  937,  937,  937,  937,
966
      937,  938,  877,  877,  877,  877,  877,  877,  877,  939,
967
      877,  940,  938,  938,  938,  877,  941,  941,  941,  941,
968
      938,  877,  942,  942,  942,  942,  943,  944,  945,  945,
969
      945,  945,  946,  946,  946,  946,  947,  947,  947,  947,
970
971
      948,  877,  877,  877,  877,  877,  877,  949,  877,  950,
972
      948,  948,  877,  951,  951,  951,  948,  877,  952,  952,
973
      952,  953,  954,  955,  955,  955,  956,  956,  956,  957,
974
      957,  957,  958,  877,  877,  877,  877,  877,  959,  877,
975
      958,  958,  958,  960,  960,  960,  958,  877,  961,  961,
976
      961,  958,  962,  963,  963,  963,  964,  964,  964,  965,
977
      965,  965,  966,  877,  877,  967,  877,  966,  966,  968,
978
      968,  968,  966,  877,  969,  969,  969,  970,  971,  971,
979
      971,  972,  972,  972,  973,  973,  973,  974,  877,  975,
980
      877,  974,  974,  976,  976,  976,  974,  877,  977,  977,
981
982
      977,  978,  979,  979,  979,  980,  980,  980,  981,  981,
983
      981,  982,  877,  983,  877,  984,  984,  984,  877,  985,
984
      985,  985,  986,  987,  987,  987,  988,  988,  988,  989,
985
      989,  989,  990,  877,  991,  992,  992,  992,  877,  993,
986
      993,  993,  994,  995,  995,  995,  996,  996,  996,  997,
987
      997,  997,  998,  877,  999, 1000, 1000, 1000,  877, 1001,
988
     1001, 1001, 1002, 1003, 1003, 1003, 1004, 1004, 1004, 1005,
989
     1005, 1005, 1006,  877, 1007, 1008, 1008, 1008,  877, 1009,
990
     1009, 1009, 1010, 1011, 1011, 1011, 1012, 1012, 1012, 1013,
991
     1013, 1013, 1014,  877, 1015, 1016, 1016, 1016,  877, 1017,
992
993
     1017, 1017, 1018, 1019, 1019, 1019, 1020, 1020, 1020, 1021,
994
     1021, 1021,  877,  877, 1022, 1023, 1023, 1023,  877, 1024,
995
     1024, 1024, 1025, 1026, 1026, 1026, 1027, 1027, 1027, 1028,
996
     1028, 1028,  877, 1029, 1030, 1030,  877, 1031, 1031, 1032,
997
     1033, 1033, 1034, 1034, 1035, 1035,  877, 1036, 1037, 1037,
998
      877, 1038, 1038, 1039, 1040, 1040, 1041, 1041, 1042, 1042,
999
      877, 1043, 1044,  877, 1045, 1046, 1047, 1048, 1049,  877,
1000
     1050,  877,  877, 1051, 1052, 1053,  877,  877,  877, 1054,
1001
      877, 1055, 1056, 1057,  877, 1058,  877, 1059, 1060, 1061,
1002
     1062,  877, 1063, 1064, 1065, 1066,  877, 1067, 1068, 1069,
1003
1004
     1070,  877, 1071, 1072, 1073, 1074,  877, 1075, 1076, 1077,
1005
     1078,  877, 1079, 1080, 1081, 1082,  877, 1083, 1084, 1085,
1006
     1086,  877, 1087, 1088, 1089, 1090,  877, 1091, 1092, 1093,
1007
     1094,  877, 1095, 1096, 1097, 1098,  877, 1099, 1100, 1101,
1008
     1102,  877, 1103, 1104, 1105, 1106,  877, 1107, 1108, 1109,
1009
     1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1010
     1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129,
1011
     1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139,
1012
     1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149,
1013
     1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
1014
1015
     1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169,
1016
     1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
1017
     1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1018
     1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
1019
     1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1020
     1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1021
     1220, 1221, 1222, 1223, 1224, 1225, 1226,  877, 1227,  877,
1022
      877, 1228, 1229, 1230, 1231,  877,    0,  877,  877,  877,
1023
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1024
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1025
1026
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1027
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1028
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1029
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1030
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1031
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1032
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1033
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1034
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1035
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1036
1037
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1038
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1039
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1040
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1041
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1042
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1043
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1044
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1045
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1046
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1047
1048
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1049
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1050
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1051
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1052
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1053
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1054
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1055
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1056
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1057
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1058
1059
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1060
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1061
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1062
      877
1063
    } ;
1064
1065
static const flex_int16_t yy_nxt[8910] =
1066
    {   0,
1067
      877,  877,  877,  877,  877,  877,  323,  613,   51,   52,
1068
      323,   52,   52,   52,   53,   54,   52,   52,  143,  143,
1069
      146,  146,  593,   55,   56,   50,   50,  133,  134,   57,
1070
       58,   50,   50,   73,   59,   52,   52,  140,  573,  130,
1071
      877,  141,  145,   60,  146,  146,   61,   51,   52,  877,
1072
       52,   52,   52,   53,   54,   52,   52,  130,  877,  553,
1073
      145,  533,   55,   56,   50,   50,  130,  877,   57,   58,
1074
       50,   50,   73,   59,   52,   52,  147,  147,  147,  147,
1075
      148,  148,   60,  130,  130,   61,   62,  148,  148,   63,
1076
       64,   65,   88,   65,   65,   65,   65,   65,  158,   52,
1077
1078
       52,  130,  159,  174,   88,  512,  877,  175,   50,   50,
1079
      488,   52,   52,  321,   50,   50,   66,   65,   65,  322,
1080
       50,   50,   52,   52,  877,   60,   50,   50,   61,   67,
1081
       68,   50,   50,  463,   93,   52,   52,   50,   50,  153,
1082
      160,  160,  160,  160,   50,   50,  161,  161,  162,  162,
1083
       50,   50,   67,   68,   52,   52,  452,  153,   52,   52,
1084
      169,  153,  130,   50,   50,  441,   93,   50,   50,   50,
1085
       50,  162,  162,   50,   50,   69,   70,  156,  169,  153,
1086
      130,   52,   52,  163,  163,  163,  163,  433,   96,  422,
1087
       50,   50,   52,   52,  165,  165,   50,   50,   69,   70,
1088
1089
      410,   50,   50,  401,   52,   52,  387,   50,   50,  165,
1090
      165,   96,  372,   50,   50,   52,   52,  166,  166,   50,
1091
       50,   71,   72,  877,   50,   50,  362,   52,   52,  178,
1092
       50,   50,  167,  167,  167,  167,   50,   50,   99,   52,
1093
       52,  877,   50,   50,   71,   72,  185,  178,   50,   50,
1094
       52,   52,   52,   52,   50,   50,  192,  213,  213,   50,
1095
       50,   50,   50,  346,  185,   50,   50,   74,   50,  169,
1096
      178,  333,   75,   76,  192,   76,   76,   76,   77,   78,
1097
       99,   52,   52,  216,  216,  172,  181,  169,  178,  183,
1098
       50,   50,  329,  184,  316,   73,   50,   50,   79,   76,
1099
1100
       76,   81,   82,   50,   82,   82,   82,   82,   82,   52,
1101
       52,  140,  190,  217,  217,  141,  191,  185,   50,   50,
1102
      197,  296,   52,   52,  198,   50,  177,   83,   82,   82,
1103
      319,   50,   50,  188,  320,  185,   84,   50,   50,   85,
1104
       81,   82,   50,   82,   82,   82,   82,   82,  276,   52,
1105
       52,  218,  218,  192,  109,  227,  227,  144,   50,   50,
1106
      228,  228,  229,  229,   50,   50,   83,   82,   82,  195,
1107
      325,  192,  231,  231,  325,   84,  271,  271,   85,   86,
1108
       87,  109,  273,  273,  272,   52,   52,  274,  274,  275,
1109
      275,  284,  284,  259,   50,   50,  286,  286,  328,  328,
1110
1111
       50,   50,   86,   87,  330,  330,  331,  331,   52,   52,
1112
      332,  332,  338,  338,  239,  367,  369,   50,   50,  367,
1113
      369,  371,  371,   50,   50,   89,   90,  373,  373,  374,
1114
      374,   52,   52,  375,  375,  381,  381,  219,  405,  407,
1115
       50,   50,  405,  407,  409,  409,   50,   50,   89,   90,
1116
      411,  411,  412,  412,   52,   52,  417,  417,  436,  440,
1117
      440,  438,  436,   50,   50,  438,  442,  442,  215,   50,
1118
       50,   91,   92,  443,  443,  447,  447,   52,   52,  467,
1119
      467,  468,  468,  469,  469,  214,   50,   50,  473,  473,
1120
      491,  491,   50,   50,   91,   92,  492,  492,  493,  493,
1121
1122
       52,   52,  497,  497,  515,  515,  200,  199,  149,   50,
1123
       50,  212,  212,  212,  212,   50,   50,   94,   95,  212,
1124
      212,  212,  212,   52,   52,  212,  212,  212,  212,  212,
1125
      212,  212,   50,   50,  212,  212,  212,  212,   50,   50,
1126
       94,   95,  212,  212,  212,  212,   52,   52,  212,  212,
1127
      212,  212,  212,  212,  212,   50,   50,  212,  212,  747,
1128
      212,   50,   50,   97,   98,  742,  212,  737,  212,   52,
1129
       52,  732,  212,  727,  212,  722,  212,  717,   50,   50,
1130
      212,  712,  212,  707,   50,   50,   97,   98,  212,  702,
1131
      212,  697,   52,   52,  212,  692,  212,  687,  212,  685,
1132
1133
      681,   50,   50,  212,  679,  673,  212,   50,   50,   50,
1134
       50,   50,  670,  664,  212,  661,  101,  102,  651,  102,
1135
      102,  102,  102,  102,  212,  647,  637,  212,  633,  619,
1136
      212,  614,  599,  212,  594,  579,  212,  574,  559,  212,
1137
      554,  539,  103,  102,  102,  212,  534,  519,  212,  513,
1138
      498,  104,  212,  489,  105,   50,   50,   50,  474,  212,
1139
      465,  464,  101,  102,  448,  102,  102,  102,  102,  102,
1140
      212,  437,  435,  434,  418,  413,  212,  406,  404,  403,
1141
      402,  400,  396,  392,  386,  382,  380,  376,  103,  102,
1142
      102,  212,  138,  368,  366,  365,  364,  104,  363,  361,
1143
1144
      105,   50,  361,  360,   50,  106,  107,  138,  107,  107,
1145
      107,  107,  107,  138,  356,  352,  352,  351,  347,  345,
1146
      345,  344,  340,  339,  138,  138,  337,  212,  138,  138,
1147
      326,  108,  107,  107,  111,  324,  318,  317,  315,  314,
1148
      112,  113,  313,  113,  113,  113,  113,  113,  309,  308,
1149
      307,  303,  302,  301,  297,  295,  294,  293,  289,  288,
1150
      287,  285,  283,  282,  281,  277,  114,  113,  113,  212,
1151
      269,  268,  267,  266,  265,  115,  264,  263,  116,  111,
1152
      262,  261,  260,  258,  257,  112,  113,  256,  113,  113,
1153
      113,  113,  113,  252,  251,  250,  246,  245,  244,  240,
1154
1155
      238,  237,  236,  232,  230,  226,  225,  224,  201,  220,
1156
      212,  114,  113,  113,  210,  209,  208,  207,  206,  205,
1157
      115,  204,  203,  116,   50,  202,   50,  118,  119,   50,
1158
      119,  119,  119,  119,  119,  201,  196,  189,  182,  138,
1159
      173,  168,  164,  157,  138,  132,  152,  150,  138,  139,
1160
      138,  137,  136,  120,  119,  119,  135,  132,  131,  877,
1161
      877,  877,  121,  877,  877,  122,   50,  877,   50,  118,
1162
      119,   50,  119,  119,  119,  119,  119,  877,  877,  877,
1163
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1164
      877,  877,  877,  877,  877,  120,  119,  119,  877,  877,
1165
1166
      877,  877,  877,  877,  121,  877,  877,  122,   50,  877,
1167
      877,  124,  125,  877,  125,  125,  125,  125,  125,  877,
1168
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1169
      877,  877,  877,  877,  877,  877,  877,  126,  125,  125,
1170
      877,  877,  877,  877,  877,  877,  127,  877,  877,  128,
1171
       50,  877,  877,  124,  125,  877,  125,  125,  125,  125,
1172
      125,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1173
      877,  877,  877,  877,  877,  877,  877,  877,  877,  126,
1174
      125,  125,  877,  877,  877,  877,  877,  877,  127,  877,
1175
      877,  128,  154,  154,  877,  154,  154,  154,  154,  154,
1176
1177
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1178
      877,  877,  877,  877,  155,  877,  877,  877,  154,  154,
1179
      154,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1180
      877,  877,  155,  170,  170,  877,  170,  170,  170,  170,
1181
      170,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1182
      877,  877,  877,  877,  877,  171,  877,  877,  877,  170,
1183
      170,  170,  877,  877,  877,  877,  877,  877,  877,  877,
1184
      877,  877,  877,  171,  179,  179,  877,  179,  179,  179,
1185
      179,  179,  877,  877,  877,  877,  877,  877,  877,  877,
1186
      877,  877,  877,  877,  877,  877,  180,  877,  877,  877,
1187
1188
      179,  179,  179,  877,  877,  877,  877,  877,  877,  877,
1189
      877,  877,  877,  877,  180,  186,  186,  877,  186,  186,
1190
      186,  186,  186,  877,  877,  877,  877,  877,  877,  877,
1191
      877,  877,  877,  877,  877,  877,  877,  187,  877,  877,
1192
      877,  186,  186,  186,  877,  877,  877,  877,  877,  877,
1193
      877,  877,  877,  877,  877,  187,  193,  193,  877,  193,
1194
      193,  193,  193,  193,  877,  877,  877,  877,  877,  877,
1195
      877,  877,  877,  877,  877,  877,  877,  877,  194,  877,
1196
      877,  877,  193,  193,  193,  877,  877,  877,  877,  877,
1197
      877,  877,  877,  877,  877,  877,  194,  222,  222,  877,
1198
1199
      222,  222,  222,  222,  222,  877,  877,  877,  877,  877,
1200
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1201
      877,  877,  877,  222,  222,  222,  223,  223,  877,  223,
1202
      223,  223,  223,  223,  877,  877,  877,  877,  877,  877,
1203
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1204
      877,  877,  223,  223,  223,  234,  234,  877,  234,  234,
1205
      234,  234,  234,  877,  877,  877,  877,  877,  877,  877,
1206
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1207
      877,  234,  234,  234,  235,  235,  877,  235,  235,  235,
1208
      235,  235,  877,  877,  877,  877,  877,  877,  877,  877,
1209
1210
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1211
      235,  235,  235,  242,  242,  877,  242,  242,  242,  242,
1212
      242,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1213
      877,  877,  877,  877,  877,  877,  877,  877,  877,  242,
1214
      242,  242,  243,  243,  877,  243,  243,  243,  243,  243,
1215
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1216
      877,  877,  877,  877,  877,  877,  877,  877,  243,  243,
1217
      243,  248,  248,  877,  248,  248,  248,  248,  248,  877,
1218
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1219
      877,  877,  877,  877,  877,  877,  877,  248,  248,  248,
1220
1221
      249,  249,  877,  249,  249,  249,  249,  249,  877,  877,
1222
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1223
      877,  877,  877,  877,  877,  877,  249,  249,  249,  254,
1224
      254,  877,  254,  254,  254,  254,  254,  877,  877,  877,
1225
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1226
      877,  877,  877,  877,  877,  254,  254,  254,  255,  255,
1227
      877,  255,  255,  255,  255,  255,  877,  877,  877,  877,
1228
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1229
      877,  877,  877,  877,  255,  255,  255,  279,  279,  877,
1230
      279,  279,  279,  279,  279,  877,  877,  877,  877,  877,
1231
1232
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1233
      877,  877,  877,  279,  279,  279,  280,  280,  877,  280,
1234
      280,  280,  280,  280,  877,  877,  877,  877,  877,  877,
1235
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1236
      877,  877,  280,  280,  280,  291,  291,  877,  291,  291,
1237
      291,  291,  291,  877,  877,  877,  877,  877,  877,  877,
1238
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1239
      877,  291,  291,  291,  292,  292,  877,  292,  292,  292,
1240
      292,  292,  877,  877,  877,  877,  877,  877,  877,  877,
1241
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1242
1243
      292,  292,  292,  299,  299,  877,  299,  299,  299,  299,
1244
      299,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1245
      877,  877,  877,  877,  877,  877,  877,  877,  877,  299,
1246
      299,  299,  300,  300,  877,  300,  300,  300,  300,  300,
1247
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1248
      877,  877,  877,  877,  877,  877,  877,  877,  300,  300,
1249
      300,  305,  305,  877,  305,  305,  305,  305,  305,  877,
1250
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1251
      877,  877,  877,  877,  877,  877,  877,  305,  305,  305,
1252
      306,  306,  877,  306,  306,  306,  306,  306,  877,  877,
1253
1254
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1255
      877,  877,  877,  877,  877,  877,  306,  306,  306,  311,
1256
      311,  877,  311,  311,  311,  311,  311,  877,  877,  877,
1257
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1258
      877,  877,  877,  877,  877,  311,  311,  311,  312,  312,
1259
      877,  312,  312,  312,  312,  312,  877,  877,  877,  877,
1260
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1261
      877,  877,  877,  877,  312,  312,  312,  335,  335,  877,
1262
      335,  335,  335,  335,  335,  877,  877,  877,  877,  877,
1263
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1264
1265
      877,  877,  877,  335,  335,  335,  336,  336,  877,  336,
1266
      336,  336,  336,  336,  877,  877,  877,  877,  877,  877,
1267
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1268
      877,  877,  336,  336,  336,  342,  342,  877,  342,  342,
1269
      342,  342,  342,  877,  877,  877,  877,  877,  877,  877,
1270
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1271
      877,  342,  342,  342,  343,  343,  877,  343,  343,  343,
1272
      343,  343,  877,  877,  877,  877,  877,  877,  877,  877,
1273
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1274
      343,  343,  343,  349,  349,  877,  349,  349,  349,  349,
1275
1276
      349,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1277
      877,  877,  877,  877,  877,  877,  877,  877,  877,  349,
1278
      349,  349,  350,  350,  877,  350,  350,  350,  350,  350,
1279
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1280
      877,  877,  877,  877,  877,  877,  877,  877,  350,  350,
1281
      350,  354,  354,  877,  354,  354,  354,  354,  354,  877,
1282
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1283
      877,  877,  877,  877,  877,  877,  877,  354,  354,  354,
1284
      355,  355,  877,  355,  355,  355,  355,  355,  877,  877,
1285
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1286
1287
      877,  877,  877,  877,  877,  877,  355,  355,  355,  358,
1288
      358,  877,  358,  358,  358,  358,  358,  877,  877,  877,
1289
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1290
      877,  877,  877,  877,  877,  358,  358,  358,  359,  359,
1291
      877,  359,  359,  359,  359,  359,  877,  877,  877,  877,
1292
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1293
      877,  877,  877,  877,  359,  359,  359,  378,  378,  877,
1294
      378,  378,  378,  378,  378,  877,  877,  877,  877,  877,
1295
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1296
      877,  877,  877,  378,  378,  378,  379,  379,  877,  379,
1297
1298
      379,  379,  379,  379,  877,  877,  877,  877,  877,  877,
1299
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1300
      877,  877,  379,  379,  379,  384,  384,  877,  384,  384,
1301
      384,  384,  384,  877,  877,  877,  877,  877,  877,  877,
1302
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1303
      877,  384,  384,  384,  385,  385,  877,  385,  385,  385,
1304
      385,  385,  877,  877,  877,  877,  877,  877,  877,  877,
1305
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1306
      385,  385,  385,  390,  390,  877,  390,  390,  390,  390,
1307
      390,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1308
1309
      877,  877,  877,  877,  877,  877,  877,  877,  877,  390,
1310
      390,  390,  391,  391,  877,  391,  391,  391,  391,  391,
1311
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1312
      877,  877,  877,  877,  877,  877,  877,  877,  391,  391,
1313
      391,  394,  394,  877,  394,  394,  394,  394,  394,  877,
1314
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1315
      877,  877,  877,  877,  877,  877,  877,  394,  394,  394,
1316
      395,  395,  877,  395,  395,  395,  395,  395,  877,  877,
1317
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1318
      877,  877,  877,  877,  877,  877,  395,  395,  395,  398,
1319
1320
      398,  877,  398,  398,  398,  398,  398,  877,  877,  877,
1321
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1322
      877,  877,  877,  877,  877,  398,  398,  398,  399,  399,
1323
      877,  399,  399,  399,  399,  399,  877,  877,  877,  877,
1324
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1325
      877,  877,  877,  877,  399,  399,  399,  415,  415,  877,
1326
      415,  415,  415,  415,  415,  877,  877,  877,  877,  877,
1327
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1328
      877,  877,  877,  415,  415,  415,  416,  416,  877,  416,
1329
      416,  416,  416,  416,  877,  877,  877,  877,  877,  877,
1330
1331
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1332
      877,  877,  416,  416,  416,  420,  420,  877,  420,  420,
1333
      420,  420,  420,  877,  877,  877,  877,  877,  877,  877,
1334
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1335
      877,  420,  420,  420,  421,  421,  877,  421,  421,  421,
1336
      421,  421,  877,  877,  877,  877,  877,  877,  877,  877,
1337
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1338
      421,  421,  421,  425,  425,  877,  425,  425,  425,  425,
1339
      425,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1340
      877,  877,  877,  877,  877,  877,  877,  877,  877,  425,
1341
1342
      425,  425,  426,  426,  877,  426,  426,  426,  426,  426,
1343
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1344
      877,  877,  877,  877,  877,  877,  877,  877,  426,  426,
1345
      426,  428,  428,  877,  428,  428,  428,  428,  428,  877,
1346
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1347
      877,  877,  877,  877,  877,  877,  877,  428,  428,  428,
1348
      429,  429,  877,  429,  429,  429,  429,  429,  877,  877,
1349
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1350
      877,  877,  877,  877,  877,  877,  429,  429,  429,  431,
1351
      431,  877,  431,  431,  431,  431,  431,  877,  877,  877,
1352
1353
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1354
      877,  877,  877,  877,  877,  431,  431,  431,  432,  432,
1355
      877,  432,  432,  432,  432,  432,  877,  877,  877,  877,
1356
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1357
      877,  877,  877,  877,  432,  432,  432,  445,  445,  877,
1358
      445,  445,  445,  445,  445,  877,  877,  877,  877,  877,
1359
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1360
      877,  877,  877,  445,  445,  445,  446,  446,  877,  446,
1361
      446,  446,  446,  446,  877,  877,  877,  877,  877,  877,
1362
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1363
1364
      877,  877,  446,  446,  446,  450,  450,  877,  450,  450,
1365
      450,  450,  450,  877,  877,  877,  877,  877,  877,  877,
1366
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1367
      877,  450,  450,  450,  451,  451,  877,  451,  451,  451,
1368
      451,  451,  877,  877,  877,  877,  877,  877,  877,  877,
1369
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1370
      451,  451,  451,  455,  455,  877,  455,  455,  455,  455,
1371
      455,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1372
      877,  877,  877,  877,  877,  877,  877,  877,  877,  455,
1373
      455,  455,  456,  456,  877,  456,  456,  456,  456,  456,
1374
1375
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1376
      877,  877,  877,  877,  877,  877,  877,  877,  456,  456,
1377
      456,  458,  458,  877,  458,  458,  458,  458,  458,  877,
1378
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1379
      877,  877,  877,  877,  877,  877,  877,  458,  458,  458,
1380
      459,  459,  877,  459,  459,  459,  459,  459,  877,  877,
1381
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1382
      877,  877,  877,  877,  877,  877,  459,  459,  459,  461,
1383
      461,  877,  461,  461,  461,  461,  461,  877,  877,  877,
1384
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1385
1386
      877,  877,  877,  877,  877,  461,  461,  461,  462,  462,
1387
      877,  462,  462,  462,  462,  462,  877,  877,  877,  877,
1388
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1389
      877,  877,  877,  877,  462,  462,  462,  471,  471,  877,
1390
      471,  471,  471,  471,  471,  877,  877,  877,  877,  877,
1391
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1392
      877,  877,  877,  471,  471,  471,  472,  472,  877,  472,
1393
      472,  472,  472,  472,  877,  877,  877,  877,  877,  877,
1394
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1395
      877,  877,  472,  472,  472,  476,  476,  877,  476,  476,
1396
1397
      476,  476,  476,  877,  877,  877,  877,  877,  877,  877,
1398
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1399
      877,  476,  476,  476,  477,  477,  877,  477,  477,  477,
1400
      477,  477,  877,  877,  877,  877,  877,  877,  877,  877,
1401
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1402
      477,  477,  477,  480,  480,  877,  480,  480,  480,  480,
1403
      480,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1404
      877,  877,  877,  877,  877,  877,  877,  877,  877,  480,
1405
      480,  480,  481,  481,  877,  481,  481,  481,  481,  481,
1406
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1407
1408
      877,  877,  877,  877,  877,  877,  877,  877,  481,  481,
1409
      481,  483,  483,  877,  483,  483,  483,  483,  483,  877,
1410
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1411
      877,  877,  877,  877,  877,  877,  877,  483,  483,  483,
1412
      484,  484,  877,  484,  484,  484,  484,  484,  877,  877,
1413
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1414
      877,  877,  877,  877,  877,  877,  484,  484,  484,  486,
1415
      486,  877,  486,  486,  486,  486,  486,  877,  877,  877,
1416
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1417
      877,  877,  877,  877,  877,  486,  486,  486,  487,  487,
1418
1419
      877,  487,  487,  487,  487,  487,  877,  877,  877,  877,
1420
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1421
      877,  877,  877,  877,  487,  487,  487,  495,  495,  877,
1422
      495,  495,  495,  495,  495,  877,  877,  877,  877,  877,
1423
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1424
      877,  877,  877,  495,  495,  495,  496,  496,  877,  496,
1425
      496,  496,  496,  496,  877,  877,  877,  877,  877,  877,
1426
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1427
      877,  877,  496,  496,  496,  500,  500,  877,  500,  500,
1428
      500,  500,  500,  877,  877,  877,  877,  877,  877,  877,
1429
1430
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1431
      877,  500,  500,  500,  501,  501,  877,  501,  501,  501,
1432
      501,  501,  877,  877,  877,  877,  877,  877,  877,  877,
1433
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1434
      501,  501,  501,  504,  504,  877,  504,  504,  504,  504,
1435
      504,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1436
      877,  877,  877,  877,  877,  877,  877,  877,  877,  504,
1437
      504,  504,  505,  505,  877,  505,  505,  505,  505,  505,
1438
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1439
      877,  877,  877,  877,  877,  877,  877,  877,  505,  505,
1440
1441
      505,  507,  507,  877,  507,  507,  507,  507,  507,  877,
1442
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1443
      877,  877,  877,  877,  877,  877,  877,  507,  507,  507,
1444
      508,  508,  877,  508,  508,  508,  508,  508,  877,  877,
1445
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1446
      877,  877,  877,  877,  877,  877,  508,  508,  508,  510,
1447
      510,  877,  510,  510,  510,  510,  510,  877,  877,  877,
1448
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1449
      877,  877,  877,  877,  877,  510,  510,  510,  511,  511,
1450
      877,  511,  511,  511,  511,  511,  877,  877,  877,  877,
1451
1452
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1453
      877,  877,  877,  877,  511,  511,  511,  517,  517,  877,
1454
      517,  517,  517,  517,  517,  877,  877,  877,  877,  877,
1455
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1456
      877,  877,  877,  517,  517,  517,  518,  518,  877,  518,
1457
      518,  518,  518,  518,  877,  877,  877,  877,  877,  877,
1458
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1459
      877,  877,  518,  518,  518,  521,  521,  877,  521,  521,
1460
      521,  521,  521,  877,  877,  877,  877,  877,  877,  877,
1461
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1462
1463
      877,  521,  521,  521,  522,  522,  877,  522,  522,  522,
1464
      522,  522,  877,  877,  877,  877,  877,  877,  877,  877,
1465
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1466
      522,  522,  522,  525,  525,  877,  525,  525,  525,  525,
1467
      525,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1468
      877,  877,  877,  877,  877,  877,  877,  877,  877,  525,
1469
      525,  525,  526,  526,  877,  526,  526,  526,  526,  526,
1470
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1471
      877,  877,  877,  877,  877,  877,  877,  877,  526,  526,
1472
      526,  528,  528,  877,  528,  528,  528,  528,  528,  877,
1473
1474
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1475
      877,  877,  877,  877,  877,  877,  877,  528,  528,  528,
1476
      529,  529,  877,  529,  529,  529,  529,  529,  877,  877,
1477
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1478
      877,  877,  877,  877,  877,  877,  529,  529,  529,  531,
1479
      531,  877,  531,  531,  531,  531,  531,  877,  877,  877,
1480
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1481
      877,  877,  877,  877,  877,  531,  531,  531,  532,  532,
1482
      877,  532,  532,  532,  532,  532,  877,  877,  877,  877,
1483
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1484
1485
      877,  877,  877,  877,  532,  532,  532,  537,  537,  877,
1486
      537,  537,  537,  537,  537,  877,  877,  877,  877,  877,
1487
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1488
      877,  877,  877,  537,  537,  537,  538,  538,  877,  538,
1489
      538,  538,  538,  538,  877,  877,  877,  877,  877,  877,
1490
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1491
      877,  877,  538,  538,  538,  541,  541,  877,  541,  541,
1492
      541,  541,  541,  877,  877,  877,  877,  877,  877,  877,
1493
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1494
      877,  541,  541,  541,  542,  542,  877,  542,  542,  542,
1495
1496
      542,  542,  877,  877,  877,  877,  877,  877,  877,  877,
1497
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1498
      542,  542,  542,  545,  545,  877,  545,  545,  545,  545,
1499
      545,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1500
      877,  877,  877,  877,  877,  877,  877,  877,  877,  545,
1501
      545,  545,  546,  546,  877,  546,  546,  546,  546,  546,
1502
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1503
      877,  877,  877,  877,  877,  877,  877,  877,  546,  546,
1504
      546,  548,  548,  877,  548,  548,  548,  548,  548,  877,
1505
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1506
1507
      877,  877,  877,  877,  877,  877,  877,  548,  548,  548,
1508
      549,  549,  877,  549,  549,  549,  549,  549,  877,  877,
1509
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1510
      877,  877,  877,  877,  877,  877,  549,  549,  549,  551,
1511
      551,  877,  551,  551,  551,  551,  551,  877,  877,  877,
1512
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1513
      877,  877,  877,  877,  877,  551,  551,  551,  552,  552,
1514
      877,  552,  552,  552,  552,  552,  877,  877,  877,  877,
1515
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1516
      877,  877,  877,  877,  552,  552,  552,  557,  557,  877,
1517
1518
      557,  557,  557,  557,  557,  877,  877,  877,  877,  877,
1519
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1520
      877,  877,  877,  557,  557,  557,  558,  558,  877,  558,
1521
      558,  558,  558,  558,  877,  877,  877,  877,  877,  877,
1522
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1523
      877,  877,  558,  558,  558,  561,  561,  877,  561,  561,
1524
      561,  561,  561,  877,  877,  877,  877,  877,  877,  877,
1525
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1526
      877,  561,  561,  561,  562,  562,  877,  562,  562,  562,
1527
      562,  562,  877,  877,  877,  877,  877,  877,  877,  877,
1528
1529
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1530
      562,  562,  562,  565,  565,  877,  565,  565,  565,  565,
1531
      565,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1532
      877,  877,  877,  877,  877,  877,  877,  877,  877,  565,
1533
      565,  565,  566,  566,  877,  566,  566,  566,  566,  566,
1534
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1535
      877,  877,  877,  877,  877,  877,  877,  877,  566,  566,
1536
      566,  568,  568,  877,  568,  568,  568,  568,  568,  877,
1537
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1538
      877,  877,  877,  877,  877,  877,  877,  568,  568,  568,
1539
1540
      569,  569,  877,  569,  569,  569,  569,  569,  877,  877,
1541
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1542
      877,  877,  877,  877,  877,  877,  569,  569,  569,  571,
1543
      571,  877,  571,  571,  571,  571,  571,  877,  877,  877,
1544
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1545
      877,  877,  877,  877,  877,  571,  571,  571,  572,  572,
1546
      877,  572,  572,  572,  572,  572,  877,  877,  877,  877,
1547
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1548
      877,  877,  877,  877,  572,  572,  572,  577,  577,  877,
1549
      577,  577,  577,  577,  577,  877,  877,  877,  877,  877,
1550
1551
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1552
      877,  877,  877,  577,  577,  577,  578,  578,  877,  578,
1553
      578,  578,  578,  578,  877,  877,  877,  877,  877,  877,
1554
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1555
      877,  877,  578,  578,  578,  581,  581,  877,  581,  581,
1556
      581,  581,  581,  877,  877,  877,  877,  877,  877,  877,
1557
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1558
      877,  581,  581,  581,  582,  582,  877,  582,  582,  582,
1559
      582,  582,  877,  877,  877,  877,  877,  877,  877,  877,
1560
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1561
1562
      582,  582,  582,  585,  585,  877,  585,  585,  585,  585,
1563
      585,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1564
      877,  877,  877,  877,  877,  877,  877,  877,  877,  585,
1565
      585,  585,  586,  586,  877,  586,  586,  586,  586,  586,
1566
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1567
      877,  877,  877,  877,  877,  877,  877,  877,  586,  586,
1568
      586,  588,  588,  877,  588,  588,  588,  588,  588,  877,
1569
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1570
      877,  877,  877,  877,  877,  877,  877,  588,  588,  588,
1571
      589,  589,  877,  589,  589,  589,  589,  589,  877,  877,
1572
1573
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1574
      877,  877,  877,  877,  877,  877,  589,  589,  589,  591,
1575
      591,  877,  591,  591,  591,  591,  591,  877,  877,  877,
1576
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1577
      877,  877,  877,  877,  877,  591,  591,  591,  592,  592,
1578
      877,  592,  592,  592,  592,  592,  877,  877,  877,  877,
1579
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1580
      877,  877,  877,  877,  592,  592,  592,  597,  597,  877,
1581
      597,  597,  597,  597,  597,  877,  877,  877,  877,  877,
1582
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1583
1584
      877,  877,  877,  597,  597,  597,  598,  598,  877,  598,
1585
      598,  598,  598,  598,  877,  877,  877,  877,  877,  877,
1586
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1587
      877,  877,  598,  598,  598,  601,  601,  877,  601,  601,
1588
      601,  601,  601,  877,  877,  877,  877,  877,  877,  877,
1589
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1590
      877,  601,  601,  601,  602,  602,  877,  602,  602,  602,
1591
      602,  602,  877,  877,  877,  877,  877,  877,  877,  877,
1592
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1593
      602,  602,  602,  605,  605,  877,  605,  605,  605,  605,
1594
1595
      605,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1596
      877,  877,  877,  877,  877,  877,  877,  877,  877,  605,
1597
      605,  605,  606,  606,  877,  606,  606,  606,  606,  606,
1598
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1599
      877,  877,  877,  877,  877,  877,  877,  877,  606,  606,
1600
      606,  608,  608,  877,  608,  608,  608,  608,  608,  877,
1601
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1602
      877,  877,  877,  877,  877,  877,  877,  608,  608,  608,
1603
      609,  609,  877,  609,  609,  609,  609,  609,  877,  877,
1604
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1605
1606
      877,  877,  877,  877,  877,  877,  609,  609,  609,  611,
1607
      611,  877,  611,  611,  611,  611,  611,  877,  877,  877,
1608
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1609
      877,  877,  877,  877,  877,  611,  611,  611,  612,  612,
1610
      877,  612,  612,  612,  612,  612,  877,  877,  877,  877,
1611
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1612
      877,  877,  877,  877,  612,  612,  612,  617,  617,  877,
1613
      617,  617,  617,  617,  617,  877,  877,  877,  877,  877,
1614
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1615
      877,  877,  877,  617,  617,  617,  618,  618,  877,  618,
1616
1617
      618,  618,  618,  618,  877,  877,  877,  877,  877,  877,
1618
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1619
      877,  877,  618,  618,  618,  621,  621,  877,  621,  621,
1620
      621,  621,  621,  877,  877,  877,  877,  877,  877,  877,
1621
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1622
      877,  621,  621,  621,  622,  622,  877,  622,  622,  622,
1623
      622,  622,  877,  877,  877,  877,  877,  877,  877,  877,
1624
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1625
      622,  622,  622,  625,  625,  877,  625,  625,  625,  625,
1626
      625,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1627
1628
      877,  877,  877,  877,  877,  877,  877,  877,  877,  625,
1629
      625,  625,  626,  626,  877,  626,  626,  626,  626,  626,
1630
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1631
      877,  877,  877,  877,  877,  877,  877,  877,  626,  626,
1632
      626,  628,  628,  877,  628,  628,  628,  628,  628,  877,
1633
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1634
      877,  877,  877,  877,  877,  877,  877,  628,  628,  628,
1635
      629,  629,  877,  629,  629,  629,  629,  629,  877,  877,
1636
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1637
      877,  877,  877,  877,  877,  877,  629,  629,  629,  631,
1638
1639
      631,  877,  631,  631,  631,  631,  631,  877,  877,  877,
1640
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1641
      877,  877,  877,  877,  877,  631,  631,  631,  632,  632,
1642
      877,  632,  632,  632,  632,  632,  877,  877,  877,  877,
1643
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1644
      877,  877,  877,  877,  632,  632,  632,  636,  636,  877,
1645
      636,  636,  636,  636,  636,  877,  877,  877,  877,  877,
1646
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1647
      877,  877,  877,  636,  636,  636,  639,  639,  877,  639,
1648
      639,  639,  639,  639,  877,  877,  877,  877,  877,  877,
1649
1650
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1651
      877,  877,  639,  639,  639,  642,  642,  877,  642,  642,
1652
      642,  642,  642,  877,  877,  877,  877,  877,  877,  877,
1653
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1654
      877,  642,  642,  642,  644,  644,  877,  644,  644,  644,
1655
      644,  644,  877,  877,  877,  877,  877,  877,  877,  877,
1656
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1657
      644,  644,  644,  646,  646,  877,  646,  646,  646,  646,
1658
      646,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1659
      877,  877,  877,  877,  877,  877,  877,  877,  877,  646,
1660
1661
      646,  646,  650,  650,  877,  650,  650,  650,  650,  650,
1662
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1663
      877,  877,  877,  877,  877,  877,  877,  877,  650,  650,
1664
      650,  653,  653,  877,  653,  653,  653,  653,  653,  877,
1665
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1666
      877,  877,  877,  877,  877,  877,  877,  653,  653,  653,
1667
      656,  656,  877,  656,  656,  656,  656,  656,  877,  877,
1668
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1669
      877,  877,  877,  877,  877,  877,  656,  656,  656,  658,
1670
      658,  877,  658,  658,  658,  658,  658,  877,  877,  877,
1671
1672
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1673
      877,  877,  877,  877,  877,  658,  658,  658,  660,  660,
1674
      877,  660,  660,  660,  660,  660,  877,  877,  877,  877,
1675
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
1676
      877,  877,  877,  877,  660,  660,  660,   50,   50,   50,
1677
       50,   50,   50,   50,   50,   50,   50,   50,   80,   80,
1678
       80,   80,   80,   80,   80,   80,   80,   80,   80,  100,
1679
      100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
1680
      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
1681
      110,  117,  117,  117,  117,  117,  117,  117,  117,  117,
1682
1683
      117,  117,  123,  123,  123,  123,  123,  123,  123,  123,
1684
      123,  123,  123,  129,  877,  877,  129,  142,  877,  877,
1685
      877,  142,  877,  142,  142,  144,  877,  877,  144,  151,
1686
      877,  877,  151,  153,  153,  153,  153,  153,  153,  153,
1687
      153,  877,  153,  153,  169,  877,  877,  877,  169,  169,
1688
      169,  169,  169,  169,  169,  176,  877,  877,  176,  178,
1689
      178,  877,  178,  178,  178,  178,  178,  178,  178,  178,
1690
      185,  185,  185,  185,  185,  877,  877,  185,  877,  185,
1691
      185,  192,  192,  192,  192,  192,  877,  192,  192,  192,
1692
      192,  192,  211,  211,  877,  877,  211,  877,  211,  211,
1693
1694
      221,  221,  221,  221,  221,  221,  221,  221,  877,  221,
1695
      221,  233,  877,  877,  877,  233,  233,  233,  233,  233,
1696
      233,  233,  241,  241,  877,  241,  241,  241,  241,  241,
1697
      241,  241,  241,  247,  247,  247,  247,  247,  877,  877,
1698
      247,  877,  247,  247,  253,  253,  253,  253,  253,  877,
1699
      253,  253,  253,  253,  253,  270,  270,  877,  877,  270,
1700
      877,  270,  270,  278,  278,  278,  278,  278,  278,  278,
1701
      278,  877,  278,  278,  290,  877,  877,  877,  290,  290,
1702
      290,  290,  290,  290,  290,  298,  298,  877,  298,  298,
1703
      298,  298,  298,  298,  298,  298,  304,  304,  304,  304,
1704
1705
      304,  877,  877,  304,  877,  304,  304,  310,  310,  310,
1706
      310,  310,  877,  310,  310,  310,  310,  310,  327,  327,
1707
      877,  877,  327,  877,  327,  327,  334,  334,  334,  334,
1708
      334,  334,  334,  334,  877,  334,  334,  341,  877,  877,
1709
      877,  341,  341,  341,  341,  341,  341,  341,  348,  348,
1710
      877,  348,  348,  348,  348,  348,  348,  348,  348,  353,
1711
      353,  353,  353,  353,  877,  877,  353,  877,  353,  353,
1712
      357,  357,  357,  357,  357,  877,  357,  357,  357,  357,
1713
      357,  370,  370,  877,  877,  370,  877,  370,  370,  377,
1714
      377,  377,  377,  377,  377,  377,  377,  877,  377,  377,
1715
1716
      383,  877,  877,  877,  383,  383,  383,  383,  383,  383,
1717
      383,  388,  877,  877,  877,  388,  388,  388,  388,  388,
1718
      388,  388,  389,  389,  877,  389,  389,  389,  389,  389,
1719
      389,  389,  389,  393,  393,  393,  393,  393,  877,  877,
1720
      393,  877,  393,  393,  397,  397,  397,  397,  397,  877,
1721
      397,  397,  397,  397,  397,  408,  408,  877,  877,  408,
1722
      877,  408,  408,  414,  414,  414,  414,  414,  414,  414,
1723
      414,  877,  414,  414,  419,  877,  877,  877,  419,  419,
1724
      419,  419,  419,  419,  419,  423,  877,  877,  877,  423,
1725
      423,  423,  423,  423,  423,  423,  424,  424,  877,  424,
1726
1727
      424,  424,  424,  424,  424,  424,  424,  427,  427,  427,
1728
      427,  427,  877,  877,  427,  877,  427,  427,  430,  430,
1729
      430,  430,  430,  877,  430,  430,  430,  430,  430,  439,
1730
      439,  877,  877,  439,  877,  439,  439,  444,  444,  444,
1731
      444,  444,  444,  444,  444,  877,  444,  444,  449,  877,
1732
      877,  877,  449,  449,  449,  449,  449,  449,  449,  453,
1733
      877,  877,  877,  453,  453,  453,  453,  453,  453,  453,
1734
      454,  454,  877,  454,  454,  454,  454,  454,  454,  454,
1735
      454,  457,  457,  457,  457,  457,  877,  877,  457,  877,
1736
      457,  457,  460,  460,  460,  460,  460,  877,  460,  460,
1737
1738
      460,  460,  460,  466,  466,  877,  877,  466,  877,  466,
1739
      466,  470,  470,  470,  470,  470,  470,  470,  470,  877,
1740
      470,  470,  475,  877,  877,  877,  475,  475,  475,  475,
1741
      475,  475,  475,  478,  877,  877,  877,  478,  478,  478,
1742
      478,  478,  478,  478,  479,  479,  877,  479,  479,  479,
1743
      479,  479,  479,  479,  479,  482,  482,  482,  482,  482,
1744
      877,  877,  482,  877,  482,  482,  485,  485,  485,  485,
1745
      485,  877,  485,  485,  485,  485,  485,  490,  490,  877,
1746
      877,  490,  877,  490,  490,  494,  494,  494,  494,  494,
1747
      494,  494,  494,  877,  494,  494,  499,  877,  877,  877,
1748
1749
      499,  499,  499,  499,  499,  499,  499,  502,  877,  877,
1750
      877,  502,  502,  502,  502,  502,  502,  502,  503,  503,
1751
      877,  503,  503,  503,  503,  503,  503,  503,  503,  506,
1752
      506,  506,  506,  506,  877,  877,  506,  877,  506,  506,
1753
      509,  509,  509,  509,  509,  877,  509,  509,  509,  509,
1754
      509,  514,  514,  877,  877,  514,  877,  514,  514,  516,
1755
      516,  516,  516,  516,  516,  516,  516,  877,  516,  516,
1756
      520,  877,  877,  877,  520,  520,  520,  520,  520,  520,
1757
      520,  523,  877,  877,  877,  523,  523,  523,  523,  523,
1758
      523,  523,  524,  524,  877,  524,  524,  524,  524,  524,
1759
1760
      524,  524,  524,  527,  527,  527,  527,  527,  877,  877,
1761
      527,  877,  527,  527,  530,  530,  530,  530,  530,  877,
1762
      530,  530,  530,  530,  530,  535,  535,  877,  877,  535,
1763
      877,  535,  535,  536,  536,  536,  536,  536,  536,  536,
1764
      536,  877,  536,  536,  540,  877,  877,  877,  540,  540,
1765
      540,  540,  540,  540,  540,  543,  877,  877,  877,  543,
1766
      543,  543,  543,  543,  543,  543,  544,  544,  877,  544,
1767
      544,  544,  544,  544,  544,  544,  544,  547,  547,  547,
1768
      547,  547,  877,  877,  547,  877,  547,  547,  550,  550,
1769
      550,  550,  550,  877,  550,  550,  550,  550,  550,  555,
1770
1771
      555,  877,  877,  555,  877,  555,  555,  556,  556,  556,
1772
      556,  556,  556,  556,  556,  877,  556,  556,  560,  877,
1773
      877,  877,  560,  560,  560,  560,  560,  560,  560,  563,
1774
      877,  877,  877,  563,  563,  563,  563,  563,  563,  563,
1775
      564,  564,  877,  564,  564,  564,  564,  564,  564,  564,
1776
      564,  567,  567,  567,  567,  567,  877,  877,  567,  877,
1777
      567,  567,  570,  570,  570,  570,  570,  877,  570,  570,
1778
      570,  570,  570,  575,  575,  877,  877,  575,  877,  575,
1779
      575,  576,  576,  576,  576,  576,  576,  576,  576,  877,
1780
      576,  576,  580,  877,  877,  877,  580,  580,  580,  580,
1781
1782
      580,  580,  580,  583,  877,  877,  877,  583,  583,  583,
1783
      583,  583,  583,  583,  584,  584,  877,  584,  584,  584,
1784
      584,  584,  584,  584,  584,  587,  587,  587,  587,  587,
1785
      877,  877,  587,  877,  587,  587,  590,  590,  590,  590,
1786
      590,  877,  590,  590,  590,  590,  590,  595,  595,  877,
1787
      877,  595,  877,  595,  595,  596,  596,  596,  596,  596,
1788
      596,  596,  596,  877,  596,  596,  600,  877,  877,  877,
1789
      600,  600,  600,  600,  600,  600,  600,  603,  877,  877,
1790
      877,  603,  603,  603,  603,  603,  603,  603,  604,  604,
1791
      877,  604,  604,  604,  604,  604,  604,  604,  604,  607,
1792
1793
      607,  607,  607,  607,  877,  877,  607,  877,  607,  607,
1794
      610,  610,  610,  610,  610,  877,  610,  610,  610,  610,
1795
      610,  615,  615,  877,  877,  615,  877,  615,  615,  616,
1796
      616,  616,  616,  616,  616,  616,  616,  877,  616,  616,
1797
      620,  877,  877,  877,  620,  620,  620,  620,  620,  620,
1798
      620,  623,  877,  877,  877,  623,  623,  623,  623,  623,
1799
      623,  623,  624,  624,  877,  624,  624,  624,  624,  624,
1800
      624,  624,  624,  627,  627,  627,  627,  627,  877,  877,
1801
      627,  877,  627,  627,  630,  630,  630,  630,  630,  877,
1802
      630,  630,  630,  630,  630,  634,  634,  877,  877,  634,
1803
1804
      877,  634,  634,  635,  635,  635,  635,  635,  635,  635,
1805
      635,  877,  635,  635,  638,  877,  877,  877,  638,  638,
1806
      638,  638,  638,  638,  638,  640,  877,  877,  877,  640,
1807
      640,  640,  640,  640,  640,  640,  641,  641,  877,  641,
1808
      641,  641,  641,  641,  641,  641,  641,  643,  643,  643,
1809
      643,  643,  877,  877,  643,  877,  643,  643,  645,  645,
1810
      645,  645,  645,  877,  645,  645,  645,  645,  645,  648,
1811
      648,  877,  877,  648,  877,  648,  648,  649,  649,  649,
1812
      649,  649,  649,  649,  649,  877,  649,  649,  652,  877,
1813
      877,  877,  652,  652,  652,  652,  652,  652,  652,  654,
1814
1815
      877,  877,  877,  654,  654,  654,  654,  654,  654,  654,
1816
      655,  655,  877,  655,  655,  655,  655,  655,  655,  655,
1817
      655,  657,  657,  657,  657,  657,  877,  877,  657,  877,
1818
      657,  657,  659,  659,  659,  659,  659,  877,  659,  659,
1819
      659,  659,  659,  662,  662,  877,  877,  662,  877,  662,
1820
      662,  663,  663,  663,  663,  663,  663,  663,  663,  877,
1821
      663,  663,  665,  877,  877,  877,  665,  665,  665,  665,
1822
      665,  665,  665,  666,  877,  877,  877,  666,  666,  666,
1823
      666,  666,  666,  666,  667,  667,  877,  667,  667,  667,
1824
      667,  667,  667,  667,  667,  668,  668,  668,  668,  668,
1825
1826
      877,  877,  668,  877,  668,  668,  669,  669,  669,  669,
1827
      669,  877,  669,  669,  669,  669,  669,  671,  671,  877,
1828
      877,  671,  877,  671,  671,  672,  672,  672,  672,  672,
1829
      672,  672,  672,  877,  672,  672,  674,  877,  877,  877,
1830
      674,  674,  674,  674,  674,  674,  674,  675,  877,  877,
1831
      877,  675,  675,  675,  675,  675,  675,  675,  676,  676,
1832
      877,  676,  676,  676,  676,  676,  676,  676,  676,  677,
1833
      677,  677,  677,  677,  877,  877,  677,  877,  677,  677,
1834
      678,  678,  678,  678,  678,  877,  678,  678,  678,  678,
1835
      678,  680,  680,  877,  877,  680,  877,  680,  680,  682,
1836
1837
      877,  877,  877,  682,  682,  682,  682,  682,  682,  682,
1838
      683,  877,  877,  877,  683,  683,  683,  683,  683,  683,
1839
      683,  684,  684,  877,  684,  684,  684,  684,  684,  684,
1840
      684,  684,  686,  686,  877,  877,  686,  877,  686,  686,
1841
      688,  877,  877,  877,  688,  688,  688,  688,  688,  688,
1842
      688,  689,  877,  877,  877,  689,  689,  689,  689,  689,
1843
      689,  689,  690,  690,  877,  690,  690,  690,  690,  690,
1844
      690,  690,  690,  691,  691,  877,  877,  691,  877,  691,
1845
      691,  693,  877,  877,  877,  693,  693,  693,  693,  693,
1846
      693,  693,  694,  877,  877,  877,  694,  694,  694,  694,
1847
1848
      694,  694,  694,  695,  695,  877,  695,  695,  695,  695,
1849
      695,  695,  695,  695,  696,  696,  877,  877,  696,  877,
1850
      696,  696,  698,  877,  877,  877,  698,  698,  698,  698,
1851
      698,  698,  698,  699,  877,  877,  877,  699,  699,  699,
1852
      699,  699,  699,  699,  700,  700,  877,  700,  700,  700,
1853
      700,  700,  700,  700,  700,  701,  701,  877,  877,  701,
1854
      877,  701,  701,  703,  877,  877,  877,  703,  703,  703,
1855
      703,  703,  703,  703,  704,  877,  877,  877,  704,  704,
1856
      704,  704,  704,  704,  704,  705,  705,  877,  705,  705,
1857
      705,  705,  705,  705,  705,  705,  706,  706,  877,  877,
1858
1859
      706,  877,  706,  706,  708,  877,  877,  877,  708,  708,
1860
      708,  708,  708,  708,  708,  709,  877,  877,  877,  709,
1861
      709,  709,  709,  709,  709,  709,  710,  710,  877,  710,
1862
      710,  710,  710,  710,  710,  710,  710,  711,  711,  877,
1863
      877,  711,  877,  711,  711,  713,  877,  877,  877,  713,
1864
      713,  713,  713,  713,  713,  713,  714,  877,  877,  877,
1865
      714,  714,  714,  714,  714,  714,  714,  715,  715,  877,
1866
      715,  715,  715,  715,  715,  715,  715,  715,  716,  716,
1867
      877,  877,  716,  877,  716,  716,  718,  877,  877,  877,
1868
      718,  718,  718,  718,  718,  718,  718,  719,  877,  877,
1869
1870
      877,  719,  719,  719,  719,  719,  719,  719,  720,  720,
1871
      877,  720,  720,  720,  720,  720,  720,  720,  720,  721,
1872
      721,  877,  877,  721,  877,  721,  721,  723,  877,  877,
1873
      877,  723,  723,  723,  723,  723,  723,  723,  724,  877,
1874
      877,  877,  724,  724,  724,  724,  724,  724,  724,  725,
1875
      725,  877,  725,  725,  725,  725,  725,  725,  725,  725,
1876
      726,  726,  877,  877,  726,  877,  726,  726,  728,  877,
1877
      877,  877,  728,  728,  728,  728,  728,  728,  728,  729,
1878
      877,  877,  877,  729,  729,  729,  729,  729,  729,  729,
1879
      730,  730,  877,  730,  730,  730,  730,  730,  730,  730,
1880
1881
      730,  731,  731,  877,  877,  731,  877,  731,  731,  733,
1882
      877,  877,  877,  733,  733,  733,  733,  733,  733,  733,
1883
      734,  877,  877,  877,  734,  734,  734,  734,  734,  734,
1884
      734,  735,  735,  877,  735,  735,  735,  735,  735,  735,
1885
      735,  735,  736,  736,  877,  877,  736,  877,  736,  736,
1886
      738,  877,  877,  877,  738,  738,  738,  738,  738,  738,
1887
      738,  739,  877,  877,  877,  739,  739,  739,  739,  739,
1888
      739,  739,  740,  740,  877,  740,  740,  740,  740,  740,
1889
      740,  740,  740,  741,  741,  877,  877,  741,  877,  741,
1890
      741,  743,  877,  877,  877,  743,  743,  743,  743,  743,
1891
1892
      743,  743,  744,  877,  877,  877,  744,  744,  744,  744,
1893
      744,  744,  744,  745,  745,  877,  745,  745,  745,  745,
1894
      745,  745,  745,  745,  746,  746,  877,  877,  746,  877,
1895
      746,  746,  748,  877,  877,  877,  748,  748,  748,  748,
1896
      748,  748,  748,  749,  877,  877,  877,  749,  749,  749,
1897
      749,  749,  749,  749,  750,  750,  877,  750,  750,  750,
1898
      750,  750,  750,  750,  750,  751,  751,  877,  877,  751,
1899
      877,  751,  751,  752,  877,  877,  877,  752,  752,  752,
1900
      752,  752,  752,  752,  753,  877,  877,  877,  753,  753,
1901
      753,  753,  753,  753,  753,  754,  754,  877,  754,  754,
1902
1903
      754,  754,  754,  754,  754,  754,  755,  755,  877,  877,
1904
      755,  877,  755,  755,  756,  877,  877,  877,  756,  756,
1905
      756,  756,  756,  756,  756,  757,  877,  877,  877,  757,
1906
      757,  757,  757,  757,  757,  757,  758,  758,  877,  758,
1907
      758,  758,  758,  758,  758,  758,  758,  759,  759,  877,
1908
      877,  759,  877,  759,  759,  760,  877,  877,  877,  760,
1909
      760,  760,  760,  760,  760,  760,  761,  877,  877,  877,
1910
      761,  761,  761,  761,  761,  761,  761,  762,  762,  877,
1911
      762,  762,  762,  762,  762,  762,  762,  762,  763,  763,
1912
      877,  877,  763,  877,  763,  763,  764,  877,  877,  877,
1913
1914
      764,  764,  764,  764,  764,  764,  764,  765,  877,  877,
1915
      877,  765,  765,  765,  765,  765,  765,  765,  766,  766,
1916
      877,  766,  766,  766,  766,  766,  766,  766,  766,  767,
1917
      767,  877,  877,  767,  877,  767,  767,  768,  877,  877,
1918
      877,  768,  768,  768,  768,  768,  768,  768,  769,  877,
1919
      877,  877,  769,  769,  769,  769,  769,  769,  769,  770,
1920
      770,  877,  770,  770,  770,  770,  770,  770,  770,  770,
1921
      771,  771,  877,  877,  771,  877,  771,  771,  772,  877,
1922
      877,  877,  772,  772,  772,  772,  772,  772,  772,  773,
1923
      877,  877,  877,  773,  773,  773,  773,  773,  773,  773,
1924
1925
      774,  774,  877,  774,  774,  774,  774,  774,  774,  774,
1926
      774,  775,  775,  877,  877,  775,  877,  775,  775,  776,
1927
      877,  877,  877,  776,  776,  776,  776,  776,  776,  776,
1928
      777,  877,  877,  877,  777,  777,  777,  777,  777,  777,
1929
      777,  778,  778,  877,  778,  778,  778,  778,  778,  778,
1930
      778,  778,  779,  779,  877,  877,  779,  877,  779,  779,
1931
      780,  877,  877,  877,  780,  780,  780,  780,  780,  780,
1932
      780,  781,  877,  877,  877,  781,  781,  781,  781,  781,
1933
      781,  781,  782,  782,  877,  782,  782,  782,  782,  782,
1934
      782,  782,  782,  783,  783,  877,  877,  783,  877,  783,
1935
1936
      783,  784,  877,  877,  877,  784,  784,  784,  784,  784,
1937
      784,  784,  785,  877,  877,  877,  785,  785,  785,  785,
1938
      785,  785,  785,  786,  786,  877,  786,  786,  786,  786,
1939
      786,  786,  786,  786,  787,  787,  877,  877,  787,  877,
1940
      787,  787,  788,  877,  877,  877,  788,  788,  788,  788,
1941
      788,  788,  788,  789,  877,  877,  877,  789,  789,  789,
1942
      789,  789,  789,  789,  790,  790,  877,  790,  790,  790,
1943
      790,  790,  790,  790,  790,  791,  791,  877,  877,  791,
1944
      877,  791,  791,  792,  877,  877,  877,  792,  792,  792,
1945
      792,  792,  792,  792,  793,  877,  877,  877,  793,  793,
1946
1947
      793,  793,  793,  793,  793,  794,  794,  877,  794,  794,
1948
      794,  794,  794,  794,  794,  794,  795,  795,  877,  877,
1949
      795,  877,  795,  795,  796,  877,  877,  877,  796,  796,
1950
      796,  796,  796,  796,  796,  797,  877,  877,  877,  797,
1951
      797,  797,  797,  797,  797,  797,  798,  798,  877,  798,
1952
      798,  798,  798,  798,  798,  798,  798,  799,  799,  877,
1953
      877,  799,  877,  799,  799,  800,  877,  877,  877,  800,
1954
      800,  800,  800,  800,  800,  800,  801,  877,  877,  877,
1955
      801,  801,  801,  801,  801,  801,  801,  802,  802,  877,
1956
      802,  802,  802,  802,  802,  802,  802,  802,  803,  803,
1957
1958
      877,  877,  803,  877,  803,  803,  804,  877,  877,  877,
1959
      804,  804,  804,  804,  804,  804,  804,  805,  877,  877,
1960
      877,  805,  805,  805,  805,  805,  805,  805,  806,  806,
1961
      877,  806,  806,  806,  806,  806,  806,  806,  806,  807,
1962
      807,  877,  877,  807,  877,  807,  807,  808,  877,  877,
1963
      877,  808,  808,  808,  808,  808,  808,  808,  809,  877,
1964
      877,  877,  809,  809,  809,  809,  809,  809,  809,  810,
1965
      810,  877,  810,  810,  810,  810,  810,  810,  810,  810,
1966
      811,  811,  877,  877,  811,  877,  811,  811,  812,  877,
1967
      877,  877,  812,  812,  812,  812,  812,  812,  812,  813,
1968
1969
      877,  877,  877,  813,  813,  813,  813,  813,  813,  813,
1970
      814,  814,  877,  814,  814,  814,  814,  814,  814,  814,
1971
      814,  815,  815,  877,  877,  815,  877,  815,  815,  816,
1972
      877,  877,  877,  816,  816,  816,  816,  816,  816,  816,
1973
      817,  877,  877,  877,  817,  817,  817,  817,  817,  817,
1974
      817,  818,  818,  877,  818,  818,  818,  818,  818,  818,
1975
      818,  818,  819,  819,  877,  877,  819,  877,  819,  819,
1976
      820,  877,  877,  877,  820,  820,  820,  820,  820,  820,
1977
      820,  821,  877,  877,  877,  821,  821,  821,  821,  821,
1978
      821,  821,  822,  822,  877,  822,  822,  822,  822,  822,
1979
1980
      822,  822,  822,  823,  823,  877,  877,  823,  877,  823,
1981
      823,  824,  877,  877,  877,  824,  824,  824,  824,  824,
1982
      824,  824,  825,  877,  877,  877,  825,  825,  825,  825,
1983
      825,  825,  825,  826,  826,  877,  826,  826,  826,  826,
1984
      826,  826,  826,  826,  827,  827,  877,  877,  827,  877,
1985
      827,  827,  828,  877,  877,  877,  828,  828,  828,  828,
1986
      828,  828,  828,  829,  877,  877,  877,  829,  829,  829,
1987
      829,  829,  829,  829,  830,  830,  877,  830,  830,  830,
1988
      830,  830,  830,  830,  830,  831,  831,  877,  877,  831,
1989
      877,  831,  831,  832,  877,  877,  877,  832,  832,  832,
1990
1991
      832,  832,  832,  832,  833,  877,  877,  877,  833,  833,
1992
      833,  833,  833,  833,  833,  834,  834,  877,  834,  834,
1993
      834,  834,  834,  834,  834,  834,  835,  835,  877,  877,
1994
      835,  877,  835,  835,  836,  877,  877,  877,  836,  836,
1995
      836,  836,  836,  836,  836,  837,  877,  877,  877,  837,
1996
      837,  837,  837,  837,  837,  837,  838,  838,  877,  838,
1997
      838,  838,  838,  838,  838,  838,  838,  839,  839,  877,
1998
      877,  839,  877,  839,  839,  840,  877,  877,  877,  840,
1999
      840,  840,  840,  840,  840,  840,  841,  877,  877,  877,
2000
      841,  841,  841,  841,  841,  841,  841,  842,  842,  877,
2001
2002
      842,  842,  842,  842,  842,  842,  842,  842,  843,  843,
2003
      877,  877,  843,  877,  843,  843,  844,  877,  877,  877,
2004
      844,  844,  844,  844,  844,  844,  844,  845,  877,  877,
2005
      877,  845,  845,  845,  845,  845,  845,  845,  846,  846,
2006
      877,  846,  846,  846,  846,  846,  846,  846,  846,  847,
2007
      847,  877,  877,  847,  877,  847,  847,  848,  877,  877,
2008
      877,  848,  848,  848,  848,  848,  848,  848,  849,  877,
2009
      877,  877,  849,  849,  849,  849,  849,  849,  849,  850,
2010
      850,  877,  850,  850,  850,  850,  850,  850,  850,  850,
2011
      851,  851,  877,  877,  851,  877,  851,  851,  852,  877,
2012
2013
      877,  877,  852,  852,  852,  852,  852,  852,  852,  853,
2014
      877,  877,  877,  853,  853,  853,  853,  853,  853,  853,
2015
      854,  854,  877,  854,  854,  854,  854,  854,  854,  854,
2016
      854,  855,  855,  877,  877,  855,  877,  855,  855,  856,
2017
      877,  877,  877,  856,  856,  856,  856,  856,  856,  856,
2018
      857,  877,  877,  877,  857,  857,  857,  857,  857,  857,
2019
      857,  858,  858,  877,  858,  858,  858,  858,  858,  858,
2020
      858,  858,  859,  859,  877,  877,  859,  877,  859,  859,
2021
      860,  877,  877,  877,  860,  860,  860,  860,  860,  860,
2022
      860,  861,  877,  877,  877,  861,  861,  861,  861,  861,
2023
2024
      861,  861,  862,  862,  877,  862,  862,  862,  862,  862,
2025
      862,  862,  862,  863,  863,  877,  877,  863,  877,  863,
2026
      863,  864,  877,  877,  877,  864,  864,  864,  864,  864,
2027
      864,  864,  865,  877,  877,  877,  865,  865,  865,  865,
2028
      865,  865,  865,  866,  866,  877,  866,  866,  866,  866,
2029
      866,  866,  866,  866,  867,  867,  877,  877,  867,  877,
2030
      867,  867,  868,  877,  877,  877,  868,  868,  868,  868,
2031
      868,  868,  868,  869,  877,  877,  877,  869,  869,  869,
2032
      869,  869,  869,  869,  870,  870,  877,  870,  870,  870,
2033
      870,  870,  870,  870,  870,  871,  871,  877,  877,  871,
2034
2035
      877,  871,  871,  872,  877,  877,  877,  872,  872,  872,
2036
      872,  872,  872,  872,  873,  877,  877,  877,  873,  873,
2037
      873,  873,  873,  873,  873,  874,  877,  877,  877,  874,
2038
      874,  874,  874,  874,  874,  874,  875,  877,  877,  877,
2039
      875,  875,  875,  875,  875,  875,  875,  876,  877,  877,
2040
      877,  876,  876,  876,  876,  876,  876,  876,   49,  877,
2041
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
2042
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
2043
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
2044
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
2045
2046
      877,  877,  877,  877,  877,  877,  877,  877,  877
2047
    } ;
2048
2049
static const flex_int16_t yy_chk[8910] =
2050
    {   0,
2051
        0,    0,    0,    0,    0,    0,  264, 1014,    1,    1,
2052
      264,    1,    1,    1,    1,    1,   11,   11,   63,   63,
2053
       68,   68, 1006,    1,    1,   11,   11,   55,   55,    1,
2054
        1,   11,   11,   11,    1,    1,    1,   61,  998,   51,
2055
       52,   61,   64,    1,   67,   67,    1,    2,    2,   65,
2056
        2,    2,    2,    2,    2,   12,   12,   51,   52,  990,
2057
       64,  982,    2,    2,   12,   12,   67,   65,    2,    2,
2058
       12,   12,   12,    2,    2,    2,   69,   69,   70,   70,
2059
       71,   71,    2,   75,   67,    2,    3,   72,   72,    3,
2060
        3,    3,   19,    3,    3,    3,    3,    3,   85,   19,
2061
2062
       19,   75,   85,  105,   20,  974,   76,  105,   19,   19,
2063
      966,   20,   20,  263,   19,   19,    3,    3,    3,  263,
2064
       20,   20,   25,   25,   76,    3,   20,   20,    3,    5,
2065
        5,   25,   25,  958,   25,    5,    5,   25,   25,   82,
2066
       86,   86,   87,   87,    5,    5,   88,   88,   89,   89,
2067
        5,    5,    6,    6,   26,   26,  953,   82,    6,    6,
2068
      102,   83,  106,   26,   26,  950,   26,    6,    6,   26,
2069
       26,   90,   90,    6,    6,    7,    7,   83,  102,   83,
2070
      106,    7,    7,   91,   91,   92,   92,  948,   29,  943,
2071
        7,    7,   29,   29,   94,   94,    7,    7,    8,    8,
2072
2073
      940,   29,   29,  938,    8,    8,  933,   29,   29,   95,
2074
       95,   30,  930,    8,    8,   30,   30,   96,   96,    8,
2075
        8,    9,    9,  107,   30,   30,  928,    9,    9,  113,
2076
       30,   30,   97,   97,   98,   98,    9,    9,   33,   33,
2077
       33,  107,    9,    9,   10,   10,  119,  113,   33,   33,
2078
       10,   10,   37,   37,   33,   33,  125,  143,  143,   10,
2079
       10,   37,   37,  924,  119,   10,   10,   13,   37,  103,
2080
      114,  921,   13,   13,  125,   13,   13,   13,   13,   13,
2081
       34,   34,   34,  146,  146,  103,  114,  103,  114,  116,
2082
       34,   34,  920,  116,  918,   13,   34,   34,   13,   13,
2083
2084
       13,   15,   15,   15,   15,   15,   15,   15,   15,   38,
2085
       38,  109,  122,  147,  147,  109,  122,  120,   38,   38,
2086
      128,  914,   41,   41,  128,   38,  109,   15,   15,   15,
2087
      262,   41,   41,  120,  262,  120,   15,   41,   41,   15,
2088
       16,   16,   16,   16,   16,   16,   16,   16,  911,   42,
2089
       42,  148,  148,  126,   41,  160,  160,  910,   42,   42,
2090
      161,  161,  163,  163,   42,   42,   16,   16,   16,  126,
2091
      266,  126,  166,  166,  266,   16,  213,  213,   16,   17,
2092
       17,   42,  216,  216,  909,   17,   17,  217,  217,  218,
2093
      218,  227,  227,  907,   17,   17,  229,  229,  271,  271,
2094
2095
       17,   17,   18,   18,  273,  273,  274,  274,   18,   18,
2096
      275,  275,  284,  284,  903,  323,  325,   18,   18,  323,
2097
      325,  328,  328,   18,   18,   21,   21,  330,  330,  331,
2098
      331,   21,   21,  332,  332,  338,  338,  900,  367,  369,
2099
       21,   21,  367,  369,  371,  371,   21,   21,   22,   22,
2100
      373,  373,  375,  375,   22,   22,  381,  381,  405,  409,
2101
      409,  407,  405,   22,   22,  407,  411,  411,  899,   22,
2102
       22,   23,   23,  412,  412,  417,  417,   23,   23,  440,
2103
      440,  442,  442,  443,  443,  898,   23,   23,  447,  447,
2104
      467,  467,   23,   23,   24,   24,  468,  468,  469,  469,
2105
2106
       24,   24,  473,  473,  491,  491,  896,  895,  887,   24,
2107
       24,  871,  867,  863,  859,   24,   24,   27,   27,  855,
2108
      851,  847,  843,   27,   27,  839,  835,  831,  827,  823,
2109
      819,  815,   27,   27,  811,  807,  803,  799,   27,   27,
2110
       28,   28,  795,  791,  787,  783,   28,   28,  779,  775,
2111
      771,  767,  763,  759,  755,   28,   28,  751,  746,  742,
2112
      741,   28,   28,   31,   31,  737,  736,  732,  731,   31,
2113
       31,  727,  726,  722,  721,  717,  716,  712,   31,   31,
2114
      711,  707,  706,  702,   31,   31,   32,   32,  701,  697,
2115
      696,  692,   32,   32,  691,  687,  686,  681,  680,  679,
2116
2117
      673,   32,   32,  671,  670,  664,  662,   32,   32,   35,
2118
       35,   35,  661,  651,  648,  647,   35,   35,  637,   35,
2119
       35,   35,   35,   35,  634,  633,  619,  615,  614,  599,
2120
      595,  594,  579,  575,  574,  559,  555,  554,  539,  535,
2121
      534,  519,   35,   35,   35,  514,  513,  498,  490,  489,
2122
      474,   35,  466,  465,   35,   36,   36,   36,  448,  439,
2123
      437,  435,   36,   36,  418,   36,   36,   36,   36,   36,
2124
      408,  406,  404,  403,  382,  376,  370,  368,  366,  365,
2125
      364,  360,  356,  351,  344,  340,  337,  333,   36,   36,
2126
       36,  327,  326,  324,  322,  321,  320,   36,  319,  315,
2127
2128
       36,   39,  314,  313,   39,   39,   39,  309,   39,   39,
2129
       39,   39,   39,  308,  307,  303,  302,  301,  297,  295,
2130
      294,  293,  289,  287,  283,  282,  281,  270,  269,  268,
2131
      267,   39,   39,   39,   43,  265,  261,  260,  258,  257,
2132
       43,   43,  256,   43,   43,   43,   43,   43,  252,  251,
2133
      250,  246,  245,  244,  240,  238,  237,  236,  232,  231,
2134
      230,  228,  226,  225,  224,  220,   43,   43,   43,  211,
2135
      210,  209,  208,  207,  206,   43,  205,  204,   43,   44,
2136
      203,  202,  201,  198,  197,   44,   44,  196,   44,   44,
2137
       44,   44,   44,  191,  190,  189,  184,  183,  182,  177,
2138
2139
      175,  174,  173,  168,  164,  159,  158,  157,  152,  150,
2140
      142,   44,   44,   44,  141,  140,  139,  137,  136,  135,
2141
       44,  134,  133,   44,   45,  132,   45,   45,   45,   45,
2142
       45,   45,   45,   45,   45,  131,  127,  121,  115,  108,
2143
      104,   99,   93,   84,   79,   78,   77,   74,   66,   60,
2144
       59,   58,   57,   45,   45,   45,   56,   54,   53,   49,
2145
        0,    0,   45,    0,    0,   45,   46,    0,   46,   46,
2146
       46,   46,   46,   46,   46,   46,   46,    0,    0,    0,
2147
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2148
        0,    0,    0,    0,    0,   46,   46,   46,    0,    0,
2149
2150
        0,    0,    0,    0,   46,    0,    0,   46,   47,    0,
2151
        0,   47,   47,    0,   47,   47,   47,   47,   47,    0,
2152
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2153
        0,    0,    0,    0,    0,    0,    0,   47,   47,   47,
2154
        0,    0,    0,    0,    0,    0,   47,    0,    0,   47,
2155
       48,    0,    0,   48,   48,    0,   48,   48,   48,   48,
2156
       48,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2157
        0,    0,    0,    0,    0,    0,    0,    0,    0,   48,
2158
       48,   48,    0,    0,    0,    0,    0,    0,   48,    0,
2159
        0,   48,   81,   81,    0,   81,   81,   81,   81,   81,
2160
2161
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2162
        0,    0,    0,    0,   81,    0,    0,    0,   81,   81,
2163
       81,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2164
        0,    0,   81,  101,  101,    0,  101,  101,  101,  101,
2165
      101,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2166
        0,    0,    0,    0,    0,  101,    0,    0,    0,  101,
2167
      101,  101,    0,    0,    0,    0,    0,    0,    0,    0,
2168
        0,    0,    0,  101,  112,  112,    0,  112,  112,  112,
2169
      112,  112,    0,    0,    0,    0,    0,    0,    0,    0,
2170
        0,    0,    0,    0,    0,    0,  112,    0,    0,    0,
2171
2172
      112,  112,  112,    0,    0,    0,    0,    0,    0,    0,
2173
        0,    0,    0,    0,  112,  118,  118,    0,  118,  118,
2174
      118,  118,  118,    0,    0,    0,    0,    0,    0,    0,
2175
        0,    0,    0,    0,    0,    0,    0,  118,    0,    0,
2176
        0,  118,  118,  118,    0,    0,    0,    0,    0,    0,
2177
        0,    0,    0,    0,    0,  118,  124,  124,    0,  124,
2178
      124,  124,  124,  124,    0,    0,    0,    0,    0,    0,
2179
        0,    0,    0,    0,    0,    0,    0,    0,  124,    0,
2180
        0,    0,  124,  124,  124,    0,    0,    0,    0,    0,
2181
        0,    0,    0,    0,    0,    0,  124,  154,  154,    0,
2182
2183
      154,  154,  154,  154,  154,    0,    0,    0,    0,    0,
2184
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2185
        0,    0,    0,  154,  154,  154,  155,  155,    0,  155,
2186
      155,  155,  155,  155,    0,    0,    0,    0,    0,    0,
2187
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2188
        0,    0,  155,  155,  155,  170,  170,    0,  170,  170,
2189
      170,  170,  170,    0,    0,    0,    0,    0,    0,    0,
2190
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2191
        0,  170,  170,  170,  171,  171,    0,  171,  171,  171,
2192
      171,  171,    0,    0,    0,    0,    0,    0,    0,    0,
2193
2194
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2195
      171,  171,  171,  179,  179,    0,  179,  179,  179,  179,
2196
      179,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2197
        0,    0,    0,    0,    0,    0,    0,    0,    0,  179,
2198
      179,  179,  180,  180,    0,  180,  180,  180,  180,  180,
2199
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2200
        0,    0,    0,    0,    0,    0,    0,    0,  180,  180,
2201
      180,  186,  186,    0,  186,  186,  186,  186,  186,    0,
2202
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2203
        0,    0,    0,    0,    0,    0,    0,  186,  186,  186,
2204
2205
      187,  187,    0,  187,  187,  187,  187,  187,    0,    0,
2206
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2207
        0,    0,    0,    0,    0,    0,  187,  187,  187,  193,
2208
      193,    0,  193,  193,  193,  193,  193,    0,    0,    0,
2209
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2210
        0,    0,    0,    0,    0,  193,  193,  193,  194,  194,
2211
        0,  194,  194,  194,  194,  194,    0,    0,    0,    0,
2212
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2213
        0,    0,    0,    0,  194,  194,  194,  222,  222,    0,
2214
      222,  222,  222,  222,  222,    0,    0,    0,    0,    0,
2215
2216
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2217
        0,    0,    0,  222,  222,  222,  223,  223,    0,  223,
2218
      223,  223,  223,  223,    0,    0,    0,    0,    0,    0,
2219
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2220
        0,    0,  223,  223,  223,  234,  234,    0,  234,  234,
2221
      234,  234,  234,    0,    0,    0,    0,    0,    0,    0,
2222
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2223
        0,  234,  234,  234,  235,  235,    0,  235,  235,  235,
2224
      235,  235,    0,    0,    0,    0,    0,    0,    0,    0,
2225
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2226
2227
      235,  235,  235,  242,  242,    0,  242,  242,  242,  242,
2228
      242,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2229
        0,    0,    0,    0,    0,    0,    0,    0,    0,  242,
2230
      242,  242,  243,  243,    0,  243,  243,  243,  243,  243,
2231
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2232
        0,    0,    0,    0,    0,    0,    0,    0,  243,  243,
2233
      243,  248,  248,    0,  248,  248,  248,  248,  248,    0,
2234
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2235
        0,    0,    0,    0,    0,    0,    0,  248,  248,  248,
2236
      249,  249,    0,  249,  249,  249,  249,  249,    0,    0,
2237
2238
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2239
        0,    0,    0,    0,    0,    0,  249,  249,  249,  254,
2240
      254,    0,  254,  254,  254,  254,  254,    0,    0,    0,
2241
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2242
        0,    0,    0,    0,    0,  254,  254,  254,  255,  255,
2243
        0,  255,  255,  255,  255,  255,    0,    0,    0,    0,
2244
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2245
        0,    0,    0,    0,  255,  255,  255,  279,  279,    0,
2246
      279,  279,  279,  279,  279,    0,    0,    0,    0,    0,
2247
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2248
2249
        0,    0,    0,  279,  279,  279,  280,  280,    0,  280,
2250
      280,  280,  280,  280,    0,    0,    0,    0,    0,    0,
2251
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2252
        0,    0,  280,  280,  280,  291,  291,    0,  291,  291,
2253
      291,  291,  291,    0,    0,    0,    0,    0,    0,    0,
2254
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2255
        0,  291,  291,  291,  292,  292,    0,  292,  292,  292,
2256
      292,  292,    0,    0,    0,    0,    0,    0,    0,    0,
2257
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2258
      292,  292,  292,  299,  299,    0,  299,  299,  299,  299,
2259
2260
      299,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2261
        0,    0,    0,    0,    0,    0,    0,    0,    0,  299,
2262
      299,  299,  300,  300,    0,  300,  300,  300,  300,  300,
2263
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2264
        0,    0,    0,    0,    0,    0,    0,    0,  300,  300,
2265
      300,  305,  305,    0,  305,  305,  305,  305,  305,    0,
2266
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2267
        0,    0,    0,    0,    0,    0,    0,  305,  305,  305,
2268
      306,  306,    0,  306,  306,  306,  306,  306,    0,    0,
2269
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2270
2271
        0,    0,    0,    0,    0,    0,  306,  306,  306,  311,
2272
      311,    0,  311,  311,  311,  311,  311,    0,    0,    0,
2273
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2274
        0,    0,    0,    0,    0,  311,  311,  311,  312,  312,
2275
        0,  312,  312,  312,  312,  312,    0,    0,    0,    0,
2276
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2277
        0,    0,    0,    0,  312,  312,  312,  335,  335,    0,
2278
      335,  335,  335,  335,  335,    0,    0,    0,    0,    0,
2279
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2280
        0,    0,    0,  335,  335,  335,  336,  336,    0,  336,
2281
2282
      336,  336,  336,  336,    0,    0,    0,    0,    0,    0,
2283
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2284
        0,    0,  336,  336,  336,  342,  342,    0,  342,  342,
2285
      342,  342,  342,    0,    0,    0,    0,    0,    0,    0,
2286
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2287
        0,  342,  342,  342,  343,  343,    0,  343,  343,  343,
2288
      343,  343,    0,    0,    0,    0,    0,    0,    0,    0,
2289
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2290
      343,  343,  343,  349,  349,    0,  349,  349,  349,  349,
2291
      349,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2292
2293
        0,    0,    0,    0,    0,    0,    0,    0,    0,  349,
2294
      349,  349,  350,  350,    0,  350,  350,  350,  350,  350,
2295
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2296
        0,    0,    0,    0,    0,    0,    0,    0,  350,  350,
2297
      350,  354,  354,    0,  354,  354,  354,  354,  354,    0,
2298
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2299
        0,    0,    0,    0,    0,    0,    0,  354,  354,  354,
2300
      355,  355,    0,  355,  355,  355,  355,  355,    0,    0,
2301
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2302
        0,    0,    0,    0,    0,    0,  355,  355,  355,  358,
2303
2304
      358,    0,  358,  358,  358,  358,  358,    0,    0,    0,
2305
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2306
        0,    0,    0,    0,    0,  358,  358,  358,  359,  359,
2307
        0,  359,  359,  359,  359,  359,    0,    0,    0,    0,
2308
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2309
        0,    0,    0,    0,  359,  359,  359,  378,  378,    0,
2310
      378,  378,  378,  378,  378,    0,    0,    0,    0,    0,
2311
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2312
        0,    0,    0,  378,  378,  378,  379,  379,    0,  379,
2313
      379,  379,  379,  379,    0,    0,    0,    0,    0,    0,
2314
2315
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2316
        0,    0,  379,  379,  379,  384,  384,    0,  384,  384,
2317
      384,  384,  384,    0,    0,    0,    0,    0,    0,    0,
2318
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2319
        0,  384,  384,  384,  385,  385,    0,  385,  385,  385,
2320
      385,  385,    0,    0,    0,    0,    0,    0,    0,    0,
2321
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2322
      385,  385,  385,  390,  390,    0,  390,  390,  390,  390,
2323
      390,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2324
        0,    0,    0,    0,    0,    0,    0,    0,    0,  390,
2325
2326
      390,  390,  391,  391,    0,  391,  391,  391,  391,  391,
2327
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2328
        0,    0,    0,    0,    0,    0,    0,    0,  391,  391,
2329
      391,  394,  394,    0,  394,  394,  394,  394,  394,    0,
2330
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2331
        0,    0,    0,    0,    0,    0,    0,  394,  394,  394,
2332
      395,  395,    0,  395,  395,  395,  395,  395,    0,    0,
2333
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2334
        0,    0,    0,    0,    0,    0,  395,  395,  395,  398,
2335
      398,    0,  398,  398,  398,  398,  398,    0,    0,    0,
2336
2337
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2338
        0,    0,    0,    0,    0,  398,  398,  398,  399,  399,
2339
        0,  399,  399,  399,  399,  399,    0,    0,    0,    0,
2340
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2341
        0,    0,    0,    0,  399,  399,  399,  415,  415,    0,
2342
      415,  415,  415,  415,  415,    0,    0,    0,    0,    0,
2343
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2344
        0,    0,    0,  415,  415,  415,  416,  416,    0,  416,
2345
      416,  416,  416,  416,    0,    0,    0,    0,    0,    0,
2346
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2347
2348
        0,    0,  416,  416,  416,  420,  420,    0,  420,  420,
2349
      420,  420,  420,    0,    0,    0,    0,    0,    0,    0,
2350
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2351
        0,  420,  420,  420,  421,  421,    0,  421,  421,  421,
2352
      421,  421,    0,    0,    0,    0,    0,    0,    0,    0,
2353
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2354
      421,  421,  421,  425,  425,    0,  425,  425,  425,  425,
2355
      425,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2356
        0,    0,    0,    0,    0,    0,    0,    0,    0,  425,
2357
      425,  425,  426,  426,    0,  426,  426,  426,  426,  426,
2358
2359
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2360
        0,    0,    0,    0,    0,    0,    0,    0,  426,  426,
2361
      426,  428,  428,    0,  428,  428,  428,  428,  428,    0,
2362
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2363
        0,    0,    0,    0,    0,    0,    0,  428,  428,  428,
2364
      429,  429,    0,  429,  429,  429,  429,  429,    0,    0,
2365
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2366
        0,    0,    0,    0,    0,    0,  429,  429,  429,  431,
2367
      431,    0,  431,  431,  431,  431,  431,    0,    0,    0,
2368
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2369
2370
        0,    0,    0,    0,    0,  431,  431,  431,  432,  432,
2371
        0,  432,  432,  432,  432,  432,    0,    0,    0,    0,
2372
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2373
        0,    0,    0,    0,  432,  432,  432,  445,  445,    0,
2374
      445,  445,  445,  445,  445,    0,    0,    0,    0,    0,
2375
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2376
        0,    0,    0,  445,  445,  445,  446,  446,    0,  446,
2377
      446,  446,  446,  446,    0,    0,    0,    0,    0,    0,
2378
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2379
        0,    0,  446,  446,  446,  450,  450,    0,  450,  450,
2380
2381
      450,  450,  450,    0,    0,    0,    0,    0,    0,    0,
2382
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2383
        0,  450,  450,  450,  451,  451,    0,  451,  451,  451,
2384
      451,  451,    0,    0,    0,    0,    0,    0,    0,    0,
2385
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2386
      451,  451,  451,  455,  455,    0,  455,  455,  455,  455,
2387
      455,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2388
        0,    0,    0,    0,    0,    0,    0,    0,    0,  455,
2389
      455,  455,  456,  456,    0,  456,  456,  456,  456,  456,
2390
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2391
2392
        0,    0,    0,    0,    0,    0,    0,    0,  456,  456,
2393
      456,  458,  458,    0,  458,  458,  458,  458,  458,    0,
2394
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2395
        0,    0,    0,    0,    0,    0,    0,  458,  458,  458,
2396
      459,  459,    0,  459,  459,  459,  459,  459,    0,    0,
2397
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2398
        0,    0,    0,    0,    0,    0,  459,  459,  459,  461,
2399
      461,    0,  461,  461,  461,  461,  461,    0,    0,    0,
2400
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2401
        0,    0,    0,    0,    0,  461,  461,  461,  462,  462,
2402
2403
        0,  462,  462,  462,  462,  462,    0,    0,    0,    0,
2404
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2405
        0,    0,    0,    0,  462,  462,  462,  471,  471,    0,
2406
      471,  471,  471,  471,  471,    0,    0,    0,    0,    0,
2407
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2408
        0,    0,    0,  471,  471,  471,  472,  472,    0,  472,
2409
      472,  472,  472,  472,    0,    0,    0,    0,    0,    0,
2410
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2411
        0,    0,  472,  472,  472,  476,  476,    0,  476,  476,
2412
      476,  476,  476,    0,    0,    0,    0,    0,    0,    0,
2413
2414
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2415
        0,  476,  476,  476,  477,  477,    0,  477,  477,  477,
2416
      477,  477,    0,    0,    0,    0,    0,    0,    0,    0,
2417
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2418
      477,  477,  477,  480,  480,    0,  480,  480,  480,  480,
2419
      480,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2420
        0,    0,    0,    0,    0,    0,    0,    0,    0,  480,
2421
      480,  480,  481,  481,    0,  481,  481,  481,  481,  481,
2422
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2423
        0,    0,    0,    0,    0,    0,    0,    0,  481,  481,
2424
2425
      481,  483,  483,    0,  483,  483,  483,  483,  483,    0,
2426
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2427
        0,    0,    0,    0,    0,    0,    0,  483,  483,  483,
2428
      484,  484,    0,  484,  484,  484,  484,  484,    0,    0,
2429
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2430
        0,    0,    0,    0,    0,    0,  484,  484,  484,  486,
2431
      486,    0,  486,  486,  486,  486,  486,    0,    0,    0,
2432
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2433
        0,    0,    0,    0,    0,  486,  486,  486,  487,  487,
2434
        0,  487,  487,  487,  487,  487,    0,    0,    0,    0,
2435
2436
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2437
        0,    0,    0,    0,  487,  487,  487,  495,  495,    0,
2438
      495,  495,  495,  495,  495,    0,    0,    0,    0,    0,
2439
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2440
        0,    0,    0,  495,  495,  495,  496,  496,    0,  496,
2441
      496,  496,  496,  496,    0,    0,    0,    0,    0,    0,
2442
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2443
        0,    0,  496,  496,  496,  500,  500,    0,  500,  500,
2444
      500,  500,  500,    0,    0,    0,    0,    0,    0,    0,
2445
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2446
2447
        0,  500,  500,  500,  501,  501,    0,  501,  501,  501,
2448
      501,  501,    0,    0,    0,    0,    0,    0,    0,    0,
2449
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2450
      501,  501,  501,  504,  504,    0,  504,  504,  504,  504,
2451
      504,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2452
        0,    0,    0,    0,    0,    0,    0,    0,    0,  504,
2453
      504,  504,  505,  505,    0,  505,  505,  505,  505,  505,
2454
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2455
        0,    0,    0,    0,    0,    0,    0,    0,  505,  505,
2456
      505,  507,  507,    0,  507,  507,  507,  507,  507,    0,
2457
2458
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2459
        0,    0,    0,    0,    0,    0,    0,  507,  507,  507,
2460
      508,  508,    0,  508,  508,  508,  508,  508,    0,    0,
2461
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2462
        0,    0,    0,    0,    0,    0,  508,  508,  508,  510,
2463
      510,    0,  510,  510,  510,  510,  510,    0,    0,    0,
2464
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2465
        0,    0,    0,    0,    0,  510,  510,  510,  511,  511,
2466
        0,  511,  511,  511,  511,  511,    0,    0,    0,    0,
2467
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2468
2469
        0,    0,    0,    0,  511,  511,  511,  517,  517,    0,
2470
      517,  517,  517,  517,  517,    0,    0,    0,    0,    0,
2471
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2472
        0,    0,    0,  517,  517,  517,  518,  518,    0,  518,
2473
      518,  518,  518,  518,    0,    0,    0,    0,    0,    0,
2474
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2475
        0,    0,  518,  518,  518,  521,  521,    0,  521,  521,
2476
      521,  521,  521,    0,    0,    0,    0,    0,    0,    0,
2477
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2478
        0,  521,  521,  521,  522,  522,    0,  522,  522,  522,
2479
2480
      522,  522,    0,    0,    0,    0,    0,    0,    0,    0,
2481
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2482
      522,  522,  522,  525,  525,    0,  525,  525,  525,  525,
2483
      525,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2484
        0,    0,    0,    0,    0,    0,    0,    0,    0,  525,
2485
      525,  525,  526,  526,    0,  526,  526,  526,  526,  526,
2486
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2487
        0,    0,    0,    0,    0,    0,    0,    0,  526,  526,
2488
      526,  528,  528,    0,  528,  528,  528,  528,  528,    0,
2489
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2490
2491
        0,    0,    0,    0,    0,    0,    0,  528,  528,  528,
2492
      529,  529,    0,  529,  529,  529,  529,  529,    0,    0,
2493
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2494
        0,    0,    0,    0,    0,    0,  529,  529,  529,  531,
2495
      531,    0,  531,  531,  531,  531,  531,    0,    0,    0,
2496
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2497
        0,    0,    0,    0,    0,  531,  531,  531,  532,  532,
2498
        0,  532,  532,  532,  532,  532,    0,    0,    0,    0,
2499
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2500
        0,    0,    0,    0,  532,  532,  532,  537,  537,    0,
2501
2502
      537,  537,  537,  537,  537,    0,    0,    0,    0,    0,
2503
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2504
        0,    0,    0,  537,  537,  537,  538,  538,    0,  538,
2505
      538,  538,  538,  538,    0,    0,    0,    0,    0,    0,
2506
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2507
        0,    0,  538,  538,  538,  541,  541,    0,  541,  541,
2508
      541,  541,  541,    0,    0,    0,    0,    0,    0,    0,
2509
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2510
        0,  541,  541,  541,  542,  542,    0,  542,  542,  542,
2511
      542,  542,    0,    0,    0,    0,    0,    0,    0,    0,
2512
2513
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2514
      542,  542,  542,  545,  545,    0,  545,  545,  545,  545,
2515
      545,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2516
        0,    0,    0,    0,    0,    0,    0,    0,    0,  545,
2517
      545,  545,  546,  546,    0,  546,  546,  546,  546,  546,
2518
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2519
        0,    0,    0,    0,    0,    0,    0,    0,  546,  546,
2520
      546,  548,  548,    0,  548,  548,  548,  548,  548,    0,
2521
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2522
        0,    0,    0,    0,    0,    0,    0,  548,  548,  548,
2523
2524
      549,  549,    0,  549,  549,  549,  549,  549,    0,    0,
2525
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2526
        0,    0,    0,    0,    0,    0,  549,  549,  549,  551,
2527
      551,    0,  551,  551,  551,  551,  551,    0,    0,    0,
2528
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2529
        0,    0,    0,    0,    0,  551,  551,  551,  552,  552,
2530
        0,  552,  552,  552,  552,  552,    0,    0,    0,    0,
2531
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2532
        0,    0,    0,    0,  552,  552,  552,  557,  557,    0,
2533
      557,  557,  557,  557,  557,    0,    0,    0,    0,    0,
2534
2535
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2536
        0,    0,    0,  557,  557,  557,  558,  558,    0,  558,
2537
      558,  558,  558,  558,    0,    0,    0,    0,    0,    0,
2538
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2539
        0,    0,  558,  558,  558,  561,  561,    0,  561,  561,
2540
      561,  561,  561,    0,    0,    0,    0,    0,    0,    0,
2541
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2542
        0,  561,  561,  561,  562,  562,    0,  562,  562,  562,
2543
      562,  562,    0,    0,    0,    0,    0,    0,    0,    0,
2544
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2545
2546
      562,  562,  562,  565,  565,    0,  565,  565,  565,  565,
2547
      565,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2548
        0,    0,    0,    0,    0,    0,    0,    0,    0,  565,
2549
      565,  565,  566,  566,    0,  566,  566,  566,  566,  566,
2550
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2551
        0,    0,    0,    0,    0,    0,    0,    0,  566,  566,
2552
      566,  568,  568,    0,  568,  568,  568,  568,  568,    0,
2553
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2554
        0,    0,    0,    0,    0,    0,    0,  568,  568,  568,
2555
      569,  569,    0,  569,  569,  569,  569,  569,    0,    0,
2556
2557
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2558
        0,    0,    0,    0,    0,    0,  569,  569,  569,  571,
2559
      571,    0,  571,  571,  571,  571,  571,    0,    0,    0,
2560
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2561
        0,    0,    0,    0,    0,  571,  571,  571,  572,  572,
2562
        0,  572,  572,  572,  572,  572,    0,    0,    0,    0,
2563
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2564
        0,    0,    0,    0,  572,  572,  572,  577,  577,    0,
2565
      577,  577,  577,  577,  577,    0,    0,    0,    0,    0,
2566
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2567
2568
        0,    0,    0,  577,  577,  577,  578,  578,    0,  578,
2569
      578,  578,  578,  578,    0,    0,    0,    0,    0,    0,
2570
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2571
        0,    0,  578,  578,  578,  581,  581,    0,  581,  581,
2572
      581,  581,  581,    0,    0,    0,    0,    0,    0,    0,
2573
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2574
        0,  581,  581,  581,  582,  582,    0,  582,  582,  582,
2575
      582,  582,    0,    0,    0,    0,    0,    0,    0,    0,
2576
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2577
      582,  582,  582,  585,  585,    0,  585,  585,  585,  585,
2578
2579
      585,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2580
        0,    0,    0,    0,    0,    0,    0,    0,    0,  585,
2581
      585,  585,  586,  586,    0,  586,  586,  586,  586,  586,
2582
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2583
        0,    0,    0,    0,    0,    0,    0,    0,  586,  586,
2584
      586,  588,  588,    0,  588,  588,  588,  588,  588,    0,
2585
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2586
        0,    0,    0,    0,    0,    0,    0,  588,  588,  588,
2587
      589,  589,    0,  589,  589,  589,  589,  589,    0,    0,
2588
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2589
2590
        0,    0,    0,    0,    0,    0,  589,  589,  589,  591,
2591
      591,    0,  591,  591,  591,  591,  591,    0,    0,    0,
2592
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2593
        0,    0,    0,    0,    0,  591,  591,  591,  592,  592,
2594
        0,  592,  592,  592,  592,  592,    0,    0,    0,    0,
2595
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2596
        0,    0,    0,    0,  592,  592,  592,  597,  597,    0,
2597
      597,  597,  597,  597,  597,    0,    0,    0,    0,    0,
2598
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2599
        0,    0,    0,  597,  597,  597,  598,  598,    0,  598,
2600
2601
      598,  598,  598,  598,    0,    0,    0,    0,    0,    0,
2602
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2603
        0,    0,  598,  598,  598,  601,  601,    0,  601,  601,
2604
      601,  601,  601,    0,    0,    0,    0,    0,    0,    0,
2605
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2606
        0,  601,  601,  601,  602,  602,    0,  602,  602,  602,
2607
      602,  602,    0,    0,    0,    0,    0,    0,    0,    0,
2608
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2609
      602,  602,  602,  605,  605,    0,  605,  605,  605,  605,
2610
      605,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2611
2612
        0,    0,    0,    0,    0,    0,    0,    0,    0,  605,
2613
      605,  605,  606,  606,    0,  606,  606,  606,  606,  606,
2614
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2615
        0,    0,    0,    0,    0,    0,    0,    0,  606,  606,
2616
      606,  608,  608,    0,  608,  608,  608,  608,  608,    0,
2617
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2618
        0,    0,    0,    0,    0,    0,    0,  608,  608,  608,
2619
      609,  609,    0,  609,  609,  609,  609,  609,    0,    0,
2620
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2621
        0,    0,    0,    0,    0,    0,  609,  609,  609,  611,
2622
2623
      611,    0,  611,  611,  611,  611,  611,    0,    0,    0,
2624
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2625
        0,    0,    0,    0,    0,  611,  611,  611,  612,  612,
2626
        0,  612,  612,  612,  612,  612,    0,    0,    0,    0,
2627
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2628
        0,    0,    0,    0,  612,  612,  612,  618,  618,    0,
2629
      618,  618,  618,  618,  618,    0,    0,    0,    0,    0,
2630
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2631
        0,    0,    0,  618,  618,  618,  622,  622,    0,  622,
2632
      622,  622,  622,  622,    0,    0,    0,    0,    0,    0,
2633
2634
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2635
        0,    0,  622,  622,  622,  626,  626,    0,  626,  626,
2636
      626,  626,  626,    0,    0,    0,    0,    0,    0,    0,
2637
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2638
        0,  626,  626,  626,  629,  629,    0,  629,  629,  629,
2639
      629,  629,    0,    0,    0,    0,    0,    0,    0,    0,
2640
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2641
      629,  629,  629,  632,  632,    0,  632,  632,  632,  632,
2642
      632,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2643
        0,    0,    0,    0,    0,    0,    0,    0,    0,  632,
2644
2645
      632,  632,  636,  636,    0,  636,  636,  636,  636,  636,
2646
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2647
        0,    0,    0,    0,    0,    0,    0,    0,  636,  636,
2648
      636,  639,  639,    0,  639,  639,  639,  639,  639,    0,
2649
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2650
        0,    0,    0,    0,    0,    0,    0,  639,  639,  639,
2651
      642,  642,    0,  642,  642,  642,  642,  642,    0,    0,
2652
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2653
        0,    0,    0,    0,    0,    0,  642,  642,  642,  644,
2654
      644,    0,  644,  644,  644,  644,  644,    0,    0,    0,
2655
2656
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2657
        0,    0,    0,    0,    0,  644,  644,  644,  646,  646,
2658
        0,  646,  646,  646,  646,  646,    0,    0,    0,    0,
2659
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2660
        0,    0,    0,    0,  646,  646,  646,  878,  878,  878,
2661
      878,  878,  878,  878,  878,  878,  878,  878,  879,  879,
2662
      879,  879,  879,  879,  879,  879,  879,  879,  879,  880,
2663
      880,  880,  880,  880,  880,  880,  880,  880,  880,  880,
2664
      881,  881,  881,  881,  881,  881,  881,  881,  881,  881,
2665
      881,  882,  882,  882,  882,  882,  882,  882,  882,  882,
2666
2667
      882,  882,  883,  883,  883,  883,  883,  883,  883,  883,
2668
      883,  883,  883,  884,    0,    0,  884,  885,    0,    0,
2669
        0,  885,    0,  885,  885,  886,    0,    0,  886,  888,
2670
        0,    0,  888,  889,  889,  889,  889,  889,  889,  889,
2671
      889,    0,  889,  889,  890,    0,    0,    0,  890,  890,
2672
      890,  890,  890,  890,  890,  891,    0,    0,  891,  892,
2673
      892,    0,  892,  892,  892,  892,  892,  892,  892,  892,
2674
      893,  893,  893,  893,  893,    0,    0,  893,    0,  893,
2675
      893,  894,  894,  894,  894,  894,    0,  894,  894,  894,
2676
      894,  894,  897,  897,    0,    0,  897,    0,  897,  897,
2677
2678
      901,  901,  901,  901,  901,  901,  901,  901,    0,  901,
2679
      901,  902,    0,    0,    0,  902,  902,  902,  902,  902,
2680
      902,  902,  904,  904,    0,  904,  904,  904,  904,  904,
2681
      904,  904,  904,  905,  905,  905,  905,  905,    0,    0,
2682
      905,    0,  905,  905,  906,  906,  906,  906,  906,    0,
2683
      906,  906,  906,  906,  906,  908,  908,    0,    0,  908,
2684
        0,  908,  908,  912,  912,  912,  912,  912,  912,  912,
2685
      912,    0,  912,  912,  913,    0,    0,    0,  913,  913,
2686
      913,  913,  913,  913,  913,  915,  915,    0,  915,  915,
2687
      915,  915,  915,  915,  915,  915,  916,  916,  916,  916,
2688
2689
      916,    0,    0,  916,    0,  916,  916,  917,  917,  917,
2690
      917,  917,    0,  917,  917,  917,  917,  917,  919,  919,
2691
        0,    0,  919,    0,  919,  919,  922,  922,  922,  922,
2692
      922,  922,  922,  922,    0,  922,  922,  923,    0,    0,
2693
        0,  923,  923,  923,  923,  923,  923,  923,  925,  925,
2694
        0,  925,  925,  925,  925,  925,  925,  925,  925,  926,
2695
      926,  926,  926,  926,    0,    0,  926,    0,  926,  926,
2696
      927,  927,  927,  927,  927,    0,  927,  927,  927,  927,
2697
      927,  929,  929,    0,    0,  929,    0,  929,  929,  931,
2698
      931,  931,  931,  931,  931,  931,  931,    0,  931,  931,
2699
2700
      932,    0,    0,    0,  932,  932,  932,  932,  932,  932,
2701
      932,  934,    0,    0,    0,  934,  934,  934,  934,  934,
2702
      934,  934,  935,  935,    0,  935,  935,  935,  935,  935,
2703
      935,  935,  935,  936,  936,  936,  936,  936,    0,    0,
2704
      936,    0,  936,  936,  937,  937,  937,  937,  937,    0,
2705
      937,  937,  937,  937,  937,  939,  939,    0,    0,  939,
2706
        0,  939,  939,  941,  941,  941,  941,  941,  941,  941,
2707
      941,    0,  941,  941,  942,    0,    0,    0,  942,  942,
2708
      942,  942,  942,  942,  942,  944,    0,    0,    0,  944,
2709
      944,  944,  944,  944,  944,  944,  945,  945,    0,  945,
2710
2711
      945,  945,  945,  945,  945,  945,  945,  946,  946,  946,
2712
      946,  946,    0,    0,  946,    0,  946,  946,  947,  947,
2713
      947,  947,  947,    0,  947,  947,  947,  947,  947,  949,
2714
      949,    0,    0,  949,    0,  949,  949,  951,  951,  951,
2715
      951,  951,  951,  951,  951,    0,  951,  951,  952,    0,
2716
        0,    0,  952,  952,  952,  952,  952,  952,  952,  954,
2717
        0,    0,    0,  954,  954,  954,  954,  954,  954,  954,
2718
      955,  955,    0,  955,  955,  955,  955,  955,  955,  955,
2719
      955,  956,  956,  956,  956,  956,    0,    0,  956,    0,
2720
      956,  956,  957,  957,  957,  957,  957,    0,  957,  957,
2721
2722
      957,  957,  957,  959,  959,    0,    0,  959,    0,  959,
2723
      959,  960,  960,  960,  960,  960,  960,  960,  960,    0,
2724
      960,  960,  961,    0,    0,    0,  961,  961,  961,  961,
2725
      961,  961,  961,  962,    0,    0,    0,  962,  962,  962,
2726
      962,  962,  962,  962,  963,  963,    0,  963,  963,  963,
2727
      963,  963,  963,  963,  963,  964,  964,  964,  964,  964,
2728
        0,    0,  964,    0,  964,  964,  965,  965,  965,  965,
2729
      965,    0,  965,  965,  965,  965,  965,  967,  967,    0,
2730
        0,  967,    0,  967,  967,  968,  968,  968,  968,  968,
2731
      968,  968,  968,    0,  968,  968,  969,    0,    0,    0,
2732
2733
      969,  969,  969,  969,  969,  969,  969,  970,    0,    0,
2734
        0,  970,  970,  970,  970,  970,  970,  970,  971,  971,
2735
        0,  971,  971,  971,  971,  971,  971,  971,  971,  972,
2736
      972,  972,  972,  972,    0,    0,  972,    0,  972,  972,
2737
      973,  973,  973,  973,  973,    0,  973,  973,  973,  973,
2738
      973,  975,  975,    0,    0,  975,    0,  975,  975,  976,
2739
      976,  976,  976,  976,  976,  976,  976,    0,  976,  976,
2740
      977,    0,    0,    0,  977,  977,  977,  977,  977,  977,
2741
      977,  978,    0,    0,    0,  978,  978,  978,  978,  978,
2742
      978,  978,  979,  979,    0,  979,  979,  979,  979,  979,
2743
2744
      979,  979,  979,  980,  980,  980,  980,  980,    0,    0,
2745
      980,    0,  980,  980,  981,  981,  981,  981,  981,    0,
2746
      981,  981,  981,  981,  981,  983,  983,    0,    0,  983,
2747
        0,  983,  983,  984,  984,  984,  984,  984,  984,  984,
2748
      984,    0,  984,  984,  985,    0,    0,    0,  985,  985,
2749
      985,  985,  985,  985,  985,  986,    0,    0,    0,  986,
2750
      986,  986,  986,  986,  986,  986,  987,  987,    0,  987,
2751
      987,  987,  987,  987,  987,  987,  987,  988,  988,  988,
2752
      988,  988,    0,    0,  988,    0,  988,  988,  989,  989,
2753
      989,  989,  989,    0,  989,  989,  989,  989,  989,  991,
2754
2755
      991,    0,    0,  991,    0,  991,  991,  992,  992,  992,
2756
      992,  992,  992,  992,  992,    0,  992,  992,  993,    0,
2757
        0,    0,  993,  993,  993,  993,  993,  993,  993,  994,
2758
        0,    0,    0,  994,  994,  994,  994,  994,  994,  994,
2759
      995,  995,    0,  995,  995,  995,  995,  995,  995,  995,
2760
      995,  996,  996,  996,  996,  996,    0,    0,  996,    0,
2761
      996,  996,  997,  997,  997,  997,  997,    0,  997,  997,
2762
      997,  997,  997,  999,  999,    0,    0,  999,    0,  999,
2763
      999, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,    0,
2764
     1000, 1000, 1001,    0,    0,    0, 1001, 1001, 1001, 1001,
2765
2766
     1001, 1001, 1001, 1002,    0,    0,    0, 1002, 1002, 1002,
2767
     1002, 1002, 1002, 1002, 1003, 1003,    0, 1003, 1003, 1003,
2768
     1003, 1003, 1003, 1003, 1003, 1004, 1004, 1004, 1004, 1004,
2769
        0,    0, 1004,    0, 1004, 1004, 1005, 1005, 1005, 1005,
2770
     1005,    0, 1005, 1005, 1005, 1005, 1005, 1007, 1007,    0,
2771
        0, 1007,    0, 1007, 1007, 1008, 1008, 1008, 1008, 1008,
2772
     1008, 1008, 1008,    0, 1008, 1008, 1009,    0,    0,    0,
2773
     1009, 1009, 1009, 1009, 1009, 1009, 1009, 1010,    0,    0,
2774
        0, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1011,
2775
        0, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1012,
2776
2777
     1012, 1012, 1012, 1012,    0,    0, 1012,    0, 1012, 1012,
2778
     1013, 1013, 1013, 1013, 1013,    0, 1013, 1013, 1013, 1013,
2779
     1013, 1015, 1015,    0,    0, 1015,    0, 1015, 1015, 1016,
2780
     1016, 1016, 1016, 1016, 1016, 1016, 1016,    0, 1016, 1016,
2781
     1017,    0,    0,    0, 1017, 1017, 1017, 1017, 1017, 1017,
2782
     1017, 1018,    0,    0,    0, 1018, 1018, 1018, 1018, 1018,
2783
     1018, 1018, 1019, 1019,    0, 1019, 1019, 1019, 1019, 1019,
2784
     1019, 1019, 1019, 1020, 1020, 1020, 1020, 1020,    0,    0,
2785
     1020,    0, 1020, 1020, 1021, 1021, 1021, 1021, 1021,    0,
2786
     1021, 1021, 1021, 1021, 1021, 1022, 1022,    0,    0, 1022,
2787
2788
        0, 1022, 1022, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
2789
     1023,    0, 1023, 1023, 1024,    0,    0,    0, 1024, 1024,
2790
     1024, 1024, 1024, 1024, 1024, 1025,    0,    0,    0, 1025,
2791
     1025, 1025, 1025, 1025, 1025, 1025, 1026, 1026,    0, 1026,
2792
     1026, 1026, 1026, 1026, 1026, 1026, 1026, 1027, 1027, 1027,
2793
     1027, 1027,    0,    0, 1027,    0, 1027, 1027, 1028, 1028,
2794
     1028, 1028, 1028,    0, 1028, 1028, 1028, 1028, 1028, 1029,
2795
     1029,    0,    0, 1029,    0, 1029, 1029, 1030, 1030, 1030,
2796
     1030, 1030, 1030, 1030, 1030,    0, 1030, 1030, 1031,    0,
2797
        0,    0, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1032,
2798
2799
        0,    0,    0, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
2800
     1033, 1033,    0, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
2801
     1033, 1034, 1034, 1034, 1034, 1034,    0,    0, 1034,    0,
2802
     1034, 1034, 1035, 1035, 1035, 1035, 1035,    0, 1035, 1035,
2803
     1035, 1035, 1035, 1036, 1036,    0,    0, 1036,    0, 1036,
2804
     1036, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037,    0,
2805
     1037, 1037, 1038,    0,    0,    0, 1038, 1038, 1038, 1038,
2806
     1038, 1038, 1038, 1039,    0,    0,    0, 1039, 1039, 1039,
2807
     1039, 1039, 1039, 1039, 1040, 1040,    0, 1040, 1040, 1040,
2808
     1040, 1040, 1040, 1040, 1040, 1041, 1041, 1041, 1041, 1041,
2809
2810
        0,    0, 1041,    0, 1041, 1041, 1042, 1042, 1042, 1042,
2811
     1042,    0, 1042, 1042, 1042, 1042, 1042, 1043, 1043,    0,
2812
        0, 1043,    0, 1043, 1043, 1044, 1044, 1044, 1044, 1044,
2813
     1044, 1044, 1044,    0, 1044, 1044, 1045,    0,    0,    0,
2814
     1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046,    0,    0,
2815
        0, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1047, 1047,
2816
        0, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1048,
2817
     1048, 1048, 1048, 1048,    0,    0, 1048,    0, 1048, 1048,
2818
     1049, 1049, 1049, 1049, 1049,    0, 1049, 1049, 1049, 1049,
2819
     1049, 1050, 1050,    0,    0, 1050,    0, 1050, 1050, 1051,
2820
2821
        0,    0,    0, 1051, 1051, 1051, 1051, 1051, 1051, 1051,
2822
     1052,    0,    0,    0, 1052, 1052, 1052, 1052, 1052, 1052,
2823
     1052, 1053, 1053,    0, 1053, 1053, 1053, 1053, 1053, 1053,
2824
     1053, 1053, 1054, 1054,    0,    0, 1054,    0, 1054, 1054,
2825
     1055,    0,    0,    0, 1055, 1055, 1055, 1055, 1055, 1055,
2826
     1055, 1056,    0,    0,    0, 1056, 1056, 1056, 1056, 1056,
2827
     1056, 1056, 1057, 1057,    0, 1057, 1057, 1057, 1057, 1057,
2828
     1057, 1057, 1057, 1058, 1058,    0,    0, 1058,    0, 1058,
2829
     1058, 1059,    0,    0,    0, 1059, 1059, 1059, 1059, 1059,
2830
     1059, 1059, 1060,    0,    0,    0, 1060, 1060, 1060, 1060,
2831
2832
     1060, 1060, 1060, 1061, 1061,    0, 1061, 1061, 1061, 1061,
2833
     1061, 1061, 1061, 1061, 1062, 1062,    0,    0, 1062,    0,
2834
     1062, 1062, 1063,    0,    0,    0, 1063, 1063, 1063, 1063,
2835
     1063, 1063, 1063, 1064,    0,    0,    0, 1064, 1064, 1064,
2836
     1064, 1064, 1064, 1064, 1065, 1065,    0, 1065, 1065, 1065,
2837
     1065, 1065, 1065, 1065, 1065, 1066, 1066,    0,    0, 1066,
2838
        0, 1066, 1066, 1067,    0,    0,    0, 1067, 1067, 1067,
2839
     1067, 1067, 1067, 1067, 1068,    0,    0,    0, 1068, 1068,
2840
     1068, 1068, 1068, 1068, 1068, 1069, 1069,    0, 1069, 1069,
2841
     1069, 1069, 1069, 1069, 1069, 1069, 1070, 1070,    0,    0,
2842
2843
     1070,    0, 1070, 1070, 1071,    0,    0,    0, 1071, 1071,
2844
     1071, 1071, 1071, 1071, 1071, 1072,    0,    0,    0, 1072,
2845
     1072, 1072, 1072, 1072, 1072, 1072, 1073, 1073,    0, 1073,
2846
     1073, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1074,    0,
2847
        0, 1074,    0, 1074, 1074, 1075,    0,    0,    0, 1075,
2848
     1075, 1075, 1075, 1075, 1075, 1075, 1076,    0,    0,    0,
2849
     1076, 1076, 1076, 1076, 1076, 1076, 1076, 1077, 1077,    0,
2850
     1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1078, 1078,
2851
        0,    0, 1078,    0, 1078, 1078, 1079,    0,    0,    0,
2852
     1079, 1079, 1079, 1079, 1079, 1079, 1079, 1080,    0,    0,
2853
2854
        0, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081, 1081,
2855
        0, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1082,
2856
     1082,    0,    0, 1082,    0, 1082, 1082, 1083,    0,    0,
2857
        0, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1084,    0,
2858
        0,    0, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085,
2859
     1085,    0, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085,
2860
     1086, 1086,    0,    0, 1086,    0, 1086, 1086, 1087,    0,
2861
        0,    0, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1088,
2862
        0,    0,    0, 1088, 1088, 1088, 1088, 1088, 1088, 1088,
2863
     1089, 1089,    0, 1089, 1089, 1089, 1089, 1089, 1089, 1089,
2864
2865
     1089, 1090, 1090,    0,    0, 1090,    0, 1090, 1090, 1091,
2866
        0,    0,    0, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
2867
     1092,    0,    0,    0, 1092, 1092, 1092, 1092, 1092, 1092,
2868
     1092, 1093, 1093,    0, 1093, 1093, 1093, 1093, 1093, 1093,
2869
     1093, 1093, 1094, 1094,    0,    0, 1094,    0, 1094, 1094,
2870
     1095,    0,    0,    0, 1095, 1095, 1095, 1095, 1095, 1095,
2871
     1095, 1096,    0,    0,    0, 1096, 1096, 1096, 1096, 1096,
2872
     1096, 1096, 1097, 1097,    0, 1097, 1097, 1097, 1097, 1097,
2873
     1097, 1097, 1097, 1098, 1098,    0,    0, 1098,    0, 1098,
2874
     1098, 1099,    0,    0,    0, 1099, 1099, 1099, 1099, 1099,
2875
2876
     1099, 1099, 1100,    0,    0,    0, 1100, 1100, 1100, 1100,
2877
     1100, 1100, 1100, 1101, 1101,    0, 1101, 1101, 1101, 1101,
2878
     1101, 1101, 1101, 1101, 1102, 1102,    0,    0, 1102,    0,
2879
     1102, 1102, 1103,    0,    0,    0, 1103, 1103, 1103, 1103,
2880
     1103, 1103, 1103, 1104,    0,    0,    0, 1104, 1104, 1104,
2881
     1104, 1104, 1104, 1104, 1105, 1105,    0, 1105, 1105, 1105,
2882
     1105, 1105, 1105, 1105, 1105, 1106, 1106,    0,    0, 1106,
2883
        0, 1106, 1106, 1107,    0,    0,    0, 1107, 1107, 1107,
2884
     1107, 1107, 1107, 1107, 1108,    0,    0,    0, 1108, 1108,
2885
     1108, 1108, 1108, 1108, 1108, 1109, 1109,    0, 1109, 1109,
2886
2887
     1109, 1109, 1109, 1109, 1109, 1109, 1110, 1110,    0,    0,
2888
     1110,    0, 1110, 1110, 1111,    0,    0,    0, 1111, 1111,
2889
     1111, 1111, 1111, 1111, 1111, 1112,    0,    0,    0, 1112,
2890
     1112, 1112, 1112, 1112, 1112, 1112, 1113, 1113,    0, 1113,
2891
     1113, 1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114,    0,
2892
        0, 1114,    0, 1114, 1114, 1115,    0,    0,    0, 1115,
2893
     1115, 1115, 1115, 1115, 1115, 1115, 1116,    0,    0,    0,
2894
     1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117,    0,
2895
     1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118,
2896
        0,    0, 1118,    0, 1118, 1118, 1119,    0,    0,    0,
2897
2898
     1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,    0,    0,
2899
        0, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121,
2900
        0, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122,
2901
     1122,    0,    0, 1122,    0, 1122, 1122, 1123,    0,    0,
2902
        0, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1124,    0,
2903
        0,    0, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125,
2904
     1125,    0, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
2905
     1126, 1126,    0,    0, 1126,    0, 1126, 1126, 1127,    0,
2906
        0,    0, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128,
2907
        0,    0,    0, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
2908
2909
     1129, 1129,    0, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
2910
     1129, 1130, 1130,    0,    0, 1130,    0, 1130, 1130, 1131,
2911
        0,    0,    0, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
2912
     1132,    0,    0,    0, 1132, 1132, 1132, 1132, 1132, 1132,
2913
     1132, 1133, 1133,    0, 1133, 1133, 1133, 1133, 1133, 1133,
2914
     1133, 1133, 1134, 1134,    0,    0, 1134,    0, 1134, 1134,
2915
     1135,    0,    0,    0, 1135, 1135, 1135, 1135, 1135, 1135,
2916
     1135, 1136,    0,    0,    0, 1136, 1136, 1136, 1136, 1136,
2917
     1136, 1136, 1137, 1137,    0, 1137, 1137, 1137, 1137, 1137,
2918
     1137, 1137, 1137, 1138, 1138,    0,    0, 1138,    0, 1138,
2919
2920
     1138, 1139,    0,    0,    0, 1139, 1139, 1139, 1139, 1139,
2921
     1139, 1139, 1140,    0,    0,    0, 1140, 1140, 1140, 1140,
2922
     1140, 1140, 1140, 1141, 1141,    0, 1141, 1141, 1141, 1141,
2923
     1141, 1141, 1141, 1141, 1142, 1142,    0,    0, 1142,    0,
2924
     1142, 1142, 1143,    0,    0,    0, 1143, 1143, 1143, 1143,
2925
     1143, 1143, 1143, 1144,    0,    0,    0, 1144, 1144, 1144,
2926
     1144, 1144, 1144, 1144, 1145, 1145,    0, 1145, 1145, 1145,
2927
     1145, 1145, 1145, 1145, 1145, 1146, 1146,    0,    0, 1146,
2928
        0, 1146, 1146, 1147,    0,    0,    0, 1147, 1147, 1147,
2929
     1147, 1147, 1147, 1147, 1148,    0,    0,    0, 1148, 1148,
2930
2931
     1148, 1148, 1148, 1148, 1148, 1149, 1149,    0, 1149, 1149,
2932
     1149, 1149, 1149, 1149, 1149, 1149, 1150, 1150,    0,    0,
2933
     1150,    0, 1150, 1150, 1151,    0,    0,    0, 1151, 1151,
2934
     1151, 1151, 1151, 1151, 1151, 1152,    0,    0,    0, 1152,
2935
     1152, 1152, 1152, 1152, 1152, 1152, 1153, 1153,    0, 1153,
2936
     1153, 1153, 1153, 1153, 1153, 1153, 1153, 1154, 1154,    0,
2937
        0, 1154,    0, 1154, 1154, 1155,    0,    0,    0, 1155,
2938
     1155, 1155, 1155, 1155, 1155, 1155, 1156,    0,    0,    0,
2939
     1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157,    0,
2940
     1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1158, 1158,
2941
2942
        0,    0, 1158,    0, 1158, 1158, 1159,    0,    0,    0,
2943
     1159, 1159, 1159, 1159, 1159, 1159, 1159, 1160,    0,    0,
2944
        0, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1161, 1161,
2945
        0, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1162,
2946
     1162,    0,    0, 1162,    0, 1162, 1162, 1163,    0,    0,
2947
        0, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164,    0,
2948
        0,    0, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165,
2949
     1165,    0, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
2950
     1166, 1166,    0,    0, 1166,    0, 1166, 1166, 1167,    0,
2951
        0,    0, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1168,
2952
2953
        0,    0,    0, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
2954
     1169, 1169,    0, 1169, 1169, 1169, 1169, 1169, 1169, 1169,
2955
     1169, 1170, 1170,    0,    0, 1170,    0, 1170, 1170, 1171,
2956
        0,    0,    0, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
2957
     1172,    0,    0,    0, 1172, 1172, 1172, 1172, 1172, 1172,
2958
     1172, 1173, 1173,    0, 1173, 1173, 1173, 1173, 1173, 1173,
2959
     1173, 1173, 1174, 1174,    0,    0, 1174,    0, 1174, 1174,
2960
     1175,    0,    0,    0, 1175, 1175, 1175, 1175, 1175, 1175,
2961
     1175, 1176,    0,    0,    0, 1176, 1176, 1176, 1176, 1176,
2962
     1176, 1176, 1177, 1177,    0, 1177, 1177, 1177, 1177, 1177,
2963
2964
     1177, 1177, 1177, 1178, 1178,    0,    0, 1178,    0, 1178,
2965
     1178, 1179,    0,    0,    0, 1179, 1179, 1179, 1179, 1179,
2966
     1179, 1179, 1180,    0,    0,    0, 1180, 1180, 1180, 1180,
2967
     1180, 1180, 1180, 1181, 1181,    0, 1181, 1181, 1181, 1181,
2968
     1181, 1181, 1181, 1181, 1182, 1182,    0,    0, 1182,    0,
2969
     1182, 1182, 1183,    0,    0,    0, 1183, 1183, 1183, 1183,
2970
     1183, 1183, 1183, 1184,    0,    0,    0, 1184, 1184, 1184,
2971
     1184, 1184, 1184, 1184, 1185, 1185,    0, 1185, 1185, 1185,
2972
     1185, 1185, 1185, 1185, 1185, 1186, 1186,    0,    0, 1186,
2973
        0, 1186, 1186, 1187,    0,    0,    0, 1187, 1187, 1187,
2974
2975
     1187, 1187, 1187, 1187, 1188,    0,    0,    0, 1188, 1188,
2976
     1188, 1188, 1188, 1188, 1188, 1189, 1189,    0, 1189, 1189,
2977
     1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190,    0,    0,
2978
     1190,    0, 1190, 1190, 1191,    0,    0,    0, 1191, 1191,
2979
     1191, 1191, 1191, 1191, 1191, 1192,    0,    0,    0, 1192,
2980
     1192, 1192, 1192, 1192, 1192, 1192, 1193, 1193,    0, 1193,
2981
     1193, 1193, 1193, 1193, 1193, 1193, 1193, 1194, 1194,    0,
2982
        0, 1194,    0, 1194, 1194, 1195,    0,    0,    0, 1195,
2983
     1195, 1195, 1195, 1195, 1195, 1195, 1196,    0,    0,    0,
2984
     1196, 1196, 1196, 1196, 1196, 1196, 1196, 1197, 1197,    0,
2985
2986
     1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198,
2987
        0,    0, 1198,    0, 1198, 1198, 1199,    0,    0,    0,
2988
     1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200,    0,    0,
2989
        0, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 1201,
2990
        0, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1202,
2991
     1202,    0,    0, 1202,    0, 1202, 1202, 1203,    0,    0,
2992
        0, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1204,    0,
2993
        0,    0, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1205,
2994
     1205,    0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2995
     1206, 1206,    0,    0, 1206,    0, 1206, 1206, 1207,    0,
2996
2997
        0,    0, 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1208,
2998
        0,    0,    0, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
2999
     1209, 1209,    0, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
3000
     1209, 1210, 1210,    0,    0, 1210,    0, 1210, 1210, 1211,
3001
        0,    0,    0, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
3002
     1212,    0,    0,    0, 1212, 1212, 1212, 1212, 1212, 1212,
3003
     1212, 1213, 1213,    0, 1213, 1213, 1213, 1213, 1213, 1213,
3004
     1213, 1213, 1214, 1214,    0,    0, 1214,    0, 1214, 1214,
3005
     1215,    0,    0,    0, 1215, 1215, 1215, 1215, 1215, 1215,
3006
     1215, 1216,    0,    0,    0, 1216, 1216, 1216, 1216, 1216,
3007
3008
     1216, 1216, 1217, 1217,    0, 1217, 1217, 1217, 1217, 1217,
3009
     1217, 1217, 1217, 1218, 1218,    0,    0, 1218,    0, 1218,
3010
     1218, 1219,    0,    0,    0, 1219, 1219, 1219, 1219, 1219,
3011
     1219, 1219, 1220,    0,    0,    0, 1220, 1220, 1220, 1220,
3012
     1220, 1220, 1220, 1221, 1221,    0, 1221, 1221, 1221, 1221,
3013
     1221, 1221, 1221, 1221, 1222, 1222,    0,    0, 1222,    0,
3014
     1222, 1222, 1223,    0,    0,    0, 1223, 1223, 1223, 1223,
3015
     1223, 1223, 1223, 1224,    0,    0,    0, 1224, 1224, 1224,
3016
     1224, 1224, 1224, 1224, 1225, 1225,    0, 1225, 1225, 1225,
3017
     1225, 1225, 1225, 1225, 1225, 1226, 1226,    0,    0, 1226,
3018
3019
        0, 1226, 1226, 1227,    0,    0,    0, 1227, 1227, 1227,
3020
     1227, 1227, 1227, 1227, 1228,    0,    0,    0, 1228, 1228,
3021
     1228, 1228, 1228, 1228, 1228, 1229,    0,    0,    0, 1229,
3022
     1229, 1229, 1229, 1229, 1229, 1229, 1230,    0,    0,    0,
3023
     1230, 1230, 1230, 1230, 1230, 1230, 1230, 1231,    0,    0,
3024
        0, 1231, 1231, 1231, 1231, 1231, 1231, 1231,  877,  877,
3025
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
3026
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
3027
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
3028
      877,  877,  877,  877,  877,  877,  877,  877,  877,  877,
3029
3030
      877,  877,  877,  877,  877,  877,  877,  877,  877
3031
    } ;
3032
3033
static const flex_int16_t yy_rule_linenum[39] =
3034
    {   0,
3035
      180,  186,  192,  198,  204,  210,  216,  231,  243,  248,
3036
      275,  281,  287,  291,  297,  308,  314,  319,  324,  328,
3037
      332,  334,  343,  349,  355,  361,  369,  375,  381,  387,
3038
      392,  398,  403,  409,  414,  418,  420,  424
3039
    } ;
3040
3041
/* The intent behind this definition is that it'll catch
3042
 * any uses of REJECT which flex missed.
3043
 */
3044
#define REJECT reject_used_but_not_detected
3045
#define yymore() yymore_used_but_not_detected
3046
0
#define YY_MORE_ADJ 0
3047
#define YY_RESTORE_YY_MORE_OFFSET
3048
#line 1 "/src/wireshark/wiretap/ascend_scanner.l"
3049
3050
/*
3051
 * We want a reentrant scanner.
3052
 */
3053
/*
3054
 * We don't read interactively from the terminal.
3055
 */
3056
/*
3057
 * We want to stop processing when we get to the end of the input.
3058
 */
3059
/*
3060
 * The type for the state we keep for the scanner (and parser).
3061
 */
3062
/*
3063
 * Prefix scanner routines with "ascend_" rather than "yy", so this scanner
3064
 * can coexist with other scanners.
3065
 */
3066
/*
3067
 * We have to override the memory allocators so that we don't get
3068
 * "unused argument" warnings from the yyscanner argument (which
3069
 * we don't use, as we have a global memory allocator).
3070
 *
3071
 * We provide, as macros, our own versions of the routines generated by Flex,
3072
 * which just call malloc()/realloc()/free() (as the Flex versions do),
3073
 * discarding the extra argument.
3074
 */
3075
#line 47 "/src/wireshark/wiretap/ascend_scanner.l"
3076
/* ascend_scanner.l
3077
 *
3078
 * Wiretap Library
3079
 * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu>
3080
 *
3081
 * SPDX-License-Identifier: GPL-2.0-or-later
3082
 */
3083
3084
#include <stdlib.h>
3085
#include <string.h>
3086
3087
#include "wtap_module.h"
3088
#include "ascendtext.h"
3089
#include "ascend-int.h"
3090
#include "ascend_parser.h"
3091
#include "file_wrappers.h"
3092
3093
/*
3094
 * Disable diagnostics in the code generated by Flex.
3095
 */
3096
DIAG_OFF_FLEX()
3097
3098
// The generated scanner is recursive if yywrap is enabled, but we disable it above.
3099
// NOLINTBEGIN(misc-no-recursion)
3100
3101
0
static int ascend_yyinput(void *buf, ascend_state_t *parser_state) {
3102
0
    int c = file_getc(parser_state->fh);
3103
0
    if (c == EOF) {
3104
0
        parser_state->err = file_error(parser_state->fh,
3105
0
            &parser_state->err_info);
3106
0
        if (parser_state->err == 0)
3107
0
        parser_state->err = WTAP_ERR_SHORT_READ;
3108
0
        return YY_NULL;
3109
0
    }
3110
0
    if (c == '\n') {
3111
0
        parser_state->line_len = 0;
3112
0
    } else if (++parser_state->line_len > ASCEND_MAX_LINE_LEN) {
3113
        /* No valid line is anywhere near this long. */
3114
0
        parser_state->err = WTAP_ERR_BAD_FILE;
3115
0
        parser_state->err_info = ws_strdup_printf("ascend: line longer than %u characters",
3116
0
            ASCEND_MAX_LINE_LEN);
3117
0
        return YY_NULL;
3118
0
    }
3119
0
    *(char *) buf = c;
3120
0
    return 1;
3121
0
}
3122
3123
#define YY_INPUT(buf, result, max_size) \
3124
0
  do { (result) = ascend_yyinput((buf), yyextra); } while (0)
3125
3126
3127
/* Count bytes read. This is required in order to rewind the file
3128
 * to the beginning of the next packet, since flex reads more bytes
3129
 * before executing the action that does yyterminate(). */
3130
0
#define YY_USER_ACTION do { yyextra->token.length = yyleng; } while (0);
3131
3132
0
#define NO_USER "<none>"
3133
3134
#ifndef HAVE_UNISTD_H
3135
#define YY_NO_UNISTD_H
3136
#endif
3137
3138
/*
3139
 * Sleazy hack to suppress compiler warnings in yy_fatal_error().
3140
 */
3141
0
#define YY_EXIT_FAILURE ((void)yyscanner, 2)
3142
3143
/*
3144
 * Macros for the allocators, to discard the extra argument.
3145
 */
3146
0
#define ascend_alloc(size, yyscanner)   (void *)malloc(size)
3147
0
#define ascend_realloc(ptr, size, yyscanner)  (void *)realloc((char *)(ptr), (size))
3148
0
#define ascend_free(ptr, yyscanner)   free((char *)ptr)
3149
3150
#line 3151 "/work/build/wiretap/ascend_scanner.c"
3151
#line 124 "/src/wireshark/wiretap/ascend_scanner.l"
3152
 /*
3153
  * Every pattern must have a bounded length. YY_INPUT supplies one byte
3154
  * at a time, and each time Flex refills its buffer it copies the partial
3155
  * token to the start of the buffer, so scanning an unbounded token is
3156
  * quadratic in its length. (A file with a few hundred kilobytes of hex
3157
  * digits took minutes to read.)
3158
  */
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
#line 3183 "/work/build/wiretap/ascend_scanner.c"
3183
3184
#define INITIAL 0
3185
0
#define sc_gen_task 1
3186
0
#define sc_gen_time_s 2
3187
0
#define sc_gen_time_u 3
3188
0
#define sc_gen_octets 4
3189
0
#define sc_gen_counter 5
3190
0
#define sc_gen_byte 6
3191
0
#define sc_wds_user 7
3192
0
#define sc_wds_sess 8
3193
0
#define sc_wdd_date_d 9
3194
0
#define sc_wdd_date_m 10
3195
0
#define sc_wdd_date_y 11
3196
0
#define sc_wdd_time 12
3197
0
#define sc_wdd_time_h 13
3198
0
#define sc_wdd_time_m 14
3199
0
#define sc_wdd_time_s 15
3200
0
#define sc_wdd_cause 16
3201
0
#define sc_wdd_callnum 17
3202
0
#define sc_wdd_chunk 18
3203
0
#define sc_wdd_chunknum 19
3204
0
#define sc_wdd_type 20
3205
0
#define sc_chardisp 21
3206
0
#define sc_isdn_call 22
3207
0
#define sc_ether_direction 23
3208
3209
#ifndef YY_NO_UNISTD_H
3210
/* Special case for "unistd.h", since it is non-ANSI. We include it way
3211
 * down here because we want the user's section 1 to have been scanned first.
3212
 * The user has a chance to override it with an option.
3213
 */
3214
/* %if-c-only */
3215
#include <unistd.h>
3216
/* %endif */
3217
/* %if-c++-only */
3218
/* %endif */
3219
#endif
3220
3221
#define YY_EXTRA_TYPE ascend_state_t *
3222
3223
/* %if-c-only Reentrant structure and macros (non-C++). */
3224
/* %if-reentrant */
3225
3226
/* Holds the entire state of the reentrant scanner. */
3227
struct yyguts_t
3228
    {
3229
3230
    /* User-defined. Not touched by flex. */
3231
    YY_EXTRA_TYPE yyextra_r;
3232
3233
    /* The rest are the same as the globals declared in the non-reentrant scanner. */
3234
    FILE *yyin_r, *yyout_r;
3235
    size_t yy_buffer_stack_top; /**< index of top of stack. */
3236
    size_t yy_buffer_stack_max; /**< capacity of stack. */
3237
    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
3238
    char yy_hold_char;
3239
    int yy_n_chars;
3240
    int yyleng_r;
3241
    char *yy_c_buf_p;
3242
    int yy_init;
3243
    int yy_start;
3244
    int yy_did_buffer_switch_on_eof;
3245
    int yy_start_stack_ptr;
3246
    int yy_start_stack_depth;
3247
    int *yy_start_stack;
3248
    yy_state_type yy_last_accepting_state;
3249
    char* yy_last_accepting_cpos;
3250
3251
    int yylineno_r;
3252
    int yy_flex_debug_r;
3253
3254
    char *yytext_r;
3255
    int yy_more_flag;
3256
    int yy_more_len;
3257
3258
    }; /* end struct yyguts_t */
3259
3260
/* %if-c-only */
3261
3262
static int yy_init_globals ( yyscan_t yyscanner );
3263
3264
/* %endif */
3265
3266
/* %if-reentrant */
3267
3268
int yylex_init (yyscan_t* scanner);
3269
3270
int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
3271
3272
/* %endif */
3273
3274
/* %endif End reentrant structures and macros. */
3275
3276
/* Accessor methods to globals.
3277
   These are made visible to non-reentrant scanners for convenience. */
3278
3279
int yylex_destroy ( yyscan_t yyscanner );
3280
3281
int yyget_debug ( yyscan_t yyscanner );
3282
3283
void yyset_debug ( int debug_flag , yyscan_t yyscanner );
3284
3285
YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
3286
3287
void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
3288
3289
FILE *yyget_in ( yyscan_t yyscanner );
3290
3291
void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
3292
3293
FILE *yyget_out ( yyscan_t yyscanner );
3294
3295
void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
3296
3297
      int yyget_leng ( yyscan_t yyscanner );
3298
3299
char *yyget_text ( yyscan_t yyscanner );
3300
3301
int yyget_lineno ( yyscan_t yyscanner );
3302
3303
void yyset_lineno ( int _line_number , yyscan_t yyscanner );
3304
3305
int yyget_column  ( yyscan_t yyscanner );
3306
3307
void yyset_column ( int _column_no , yyscan_t yyscanner );
3308
3309
/* %if-bison-bridge */
3310
/* %endif */
3311
3312
/* Macros after this point can all be overridden by user definitions in
3313
 * section 1.
3314
 */
3315
3316
#ifndef YY_SKIP_YYWRAP
3317
#ifdef __cplusplus
3318
extern "C" int yywrap ( yyscan_t yyscanner );
3319
#else
3320
extern int yywrap ( yyscan_t yyscanner );
3321
#endif
3322
#endif
3323
3324
/* %not-for-header */
3325
#ifndef YY_NO_UNPUT
3326
    
3327
    static void yyunput ( int c, char *buf_ptr  , yyscan_t yyscanner);
3328
    
3329
#endif
3330
/* %ok-for-header */
3331
3332
/* %endif */
3333
3334
#ifndef yytext_ptr
3335
static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
3336
#endif
3337
3338
#ifdef YY_NEED_STRLEN
3339
static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
3340
#endif
3341
3342
#ifndef YY_NO_INPUT
3343
/* %if-c-only Standard (non-C++) definition */
3344
/* %not-for-header */
3345
#ifdef __cplusplus
3346
static int yyinput ( yyscan_t yyscanner );
3347
#else
3348
static int input ( yyscan_t yyscanner );
3349
#endif
3350
/* %ok-for-header */
3351
3352
/* %endif */
3353
#endif
3354
3355
/* %if-c-only */
3356
3357
/* %endif */
3358
3359
/* Amount of stuff to slurp up with each read. */
3360
#ifndef YY_READ_BUF_SIZE
3361
#ifdef __ia64__
3362
/* On IA-64, the buffer size is 16k, not 8k */
3363
#define YY_READ_BUF_SIZE 16384
3364
#else
3365
0
#define YY_READ_BUF_SIZE 8192
3366
#endif /* __ia64__ */
3367
#endif
3368
3369
/* Copy whatever the last rule matched to the standard output. */
3370
#ifndef ECHO
3371
/* %if-c-only Standard (non-C++) definition */
3372
/* This used to be an fputs(), but since the string might contain NUL's,
3373
 * we now use fwrite().
3374
 */
3375
0
#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
3376
/* %endif */
3377
/* %if-c++-only C++ definition */
3378
/* %endif */
3379
#endif
3380
3381
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3382
 * is returned in "result".
3383
 */
3384
#ifndef YY_INPUT
3385
#define YY_INPUT(buf,result,max_size) \
3386
/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
3387
  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3388
    { \
3389
    int c = '*'; \
3390
    int n; \
3391
    for ( n = 0; n < max_size && \
3392
           (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3393
      buf[n] = (char) c; \
3394
    if ( c == '\n' ) \
3395
      buf[n++] = (char) c; \
3396
    if ( c == EOF && ferror( yyin ) ) \
3397
      YY_FATAL_ERROR( "input in flex scanner failed" ); \
3398
    result = n; \
3399
    } \
3400
  else \
3401
    { \
3402
    errno=0; \
3403
    while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
3404
      { \
3405
      if( errno != EINTR) \
3406
        { \
3407
        YY_FATAL_ERROR( "input in flex scanner failed" ); \
3408
        break; \
3409
        } \
3410
      errno=0; \
3411
      clearerr(yyin); \
3412
      } \
3413
    }\
3414
\
3415
/* %if-c++-only C++ definition \ */\
3416
/* %endif */
3417
3418
#endif
3419
3420
/* No semi-colon after return; correct usage is to write "yyterminate();" -
3421
 * we don't want an extra ';' after the "return" because that will cause
3422
 * some compilers to complain about unreachable statements.
3423
 */
3424
#ifndef yyterminate
3425
0
#define yyterminate() return YY_NULL
3426
#endif
3427
3428
/* Number of entries by which start-condition stack grows. */
3429
#ifndef YY_START_STACK_INCR
3430
#define YY_START_STACK_INCR 25
3431
#endif
3432
3433
/* Report a fatal error. */
3434
#ifndef YY_FATAL_ERROR
3435
/* %if-c-only */
3436
0
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3437
/* %endif */
3438
/* %if-c++-only */
3439
/* %endif */
3440
#endif
3441
3442
/* %if-tables-serialization structures and prototypes */
3443
/* %not-for-header */
3444
/* %ok-for-header */
3445
3446
/* %not-for-header */
3447
/* %tables-yydmap generated elements */
3448
/* %endif */
3449
/* end tables serialization structures and prototypes */
3450
3451
/* %ok-for-header */
3452
3453
/* Default declaration of generated scanner - a define so the user can
3454
 * easily add parameters.
3455
 */
3456
#ifndef YY_DECL
3457
#define YY_DECL_IS_OURS 1
3458
/* %if-c-only Standard (non-C++) definition */
3459
3460
extern int yylex (yyscan_t yyscanner);
3461
3462
#define YY_DECL int yylex (yyscan_t yyscanner)
3463
/* %endif */
3464
/* %if-c++-only C++ definition */
3465
/* %endif */
3466
#endif /* !YY_DECL */
3467
3468
/* Code executed at the beginning of each rule, after yytext and yyleng
3469
 * have been set up.
3470
 */
3471
#ifndef YY_USER_ACTION
3472
#define YY_USER_ACTION
3473
#endif
3474
3475
/* Code executed at the end of each rule. */
3476
#ifndef YY_BREAK
3477
0
#define YY_BREAK /*LINTED*/break;
3478
#endif
3479
3480
/* %% [6.0] YY_RULE_SETUP definition goes here */
3481
#define YY_RULE_SETUP \
3482
0
  YY_USER_ACTION
3483
3484
/* %not-for-header */
3485
/** The main scanner function which does all the work.
3486
 */
3487
YY_DECL
3488
0
{
3489
0
  yy_state_type yy_current_state;
3490
0
  char *yy_cp, *yy_bp;
3491
0
  int yy_act;
3492
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3493
3494
0
  if ( !yyg->yy_init )
3495
0
    {
3496
0
    yyg->yy_init = 1;
3497
3498
#ifdef YY_USER_INIT
3499
    YY_USER_INIT;
3500
#endif
3501
3502
0
    if ( ! yyg->yy_start )
3503
0
      yyg->yy_start = 1; /* first start state */
3504
3505
0
    if ( ! yyin )
3506
/* %if-c-only */
3507
0
      yyin = stdin;
3508
/* %endif */
3509
/* %if-c++-only */
3510
/* %endif */
3511
3512
0
    if ( ! yyout )
3513
/* %if-c-only */
3514
0
      yyout = stdout;
3515
/* %endif */
3516
/* %if-c++-only */
3517
/* %endif */
3518
3519
0
    if ( ! YY_CURRENT_BUFFER ) {
3520
0
      yyensure_buffer_stack (yyscanner);
3521
0
      YY_CURRENT_BUFFER_LVALUE =
3522
0
        yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
3523
0
    }
3524
3525
0
    yy_load_buffer_state( yyscanner );
3526
0
    }
3527
3528
0
  {
3529
/* %% [7.0] user's declarations go here */
3530
0
#line 178 "/src/wireshark/wiretap/ascend_scanner.l"
3531
3532
3533
0
#line 3534 "/work/build/wiretap/ascend_scanner.c"
3534
3535
0
  while ( /*CONSTCOND*/1 )    /* loops until end-of-file is reached */
3536
0
    {
3537
/* %% [8.0] yymore()-related code goes here */
3538
0
    yy_cp = yyg->yy_c_buf_p;
3539
3540
    /* Support of yytext. */
3541
0
    *yy_cp = yyg->yy_hold_char;
3542
3543
    /* yy_bp points to the position in yy_ch_buf of the start of
3544
     * the current run.
3545
     */
3546
0
    yy_bp = yy_cp;
3547
3548
/* %% [9.0] code to set up and find next match goes here */
3549
0
    yy_current_state = yyg->yy_start;
3550
0
yy_match:
3551
0
    do
3552
0
      {
3553
0
      YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3554
0
      if ( yy_accept[yy_current_state] )
3555
0
        {
3556
0
        yyg->yy_last_accepting_state = yy_current_state;
3557
0
        yyg->yy_last_accepting_cpos = yy_cp;
3558
0
        }
3559
0
      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3560
0
        {
3561
0
        yy_current_state = (int) yy_def[yy_current_state];
3562
0
        if ( yy_current_state >= 878 )
3563
0
          yy_c = yy_meta[yy_c];
3564
0
        }
3565
0
      yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
3566
0
      ++yy_cp;
3567
0
      }
3568
0
    while ( yy_current_state != 877 );
3569
0
    yy_cp = yyg->yy_last_accepting_cpos;
3570
0
    yy_current_state = yyg->yy_last_accepting_state;
3571
3572
0
yy_find_action:
3573
/* %% [10.0] code to find the action number goes here */
3574
0
    yy_act = yy_accept[yy_current_state];
3575
3576
0
    YY_DO_BEFORE_ACTION;
3577
3578
/* %% [11.0] code for yylineno update goes here */
3579
3580
0
do_action:  /* This label is used only to access EOF actions. */
3581
3582
/* %% [12.0] debug code goes here */
3583
0
    if ( yy_flex_debug )
3584
0
      {
3585
0
      if ( yy_act == 0 )
3586
0
        fprintf( stderr, "--scanner backing up\n" );
3587
0
      else if ( yy_act < 39 )
3588
0
        fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
3589
0
                 (long)yy_rule_linenum[yy_act], yytext );
3590
0
      else if ( yy_act == 39 )
3591
0
        fprintf( stderr, "--accepting default rule (\"%s\")\n",
3592
0
                 yytext );
3593
0
      else if ( yy_act == 40 )
3594
0
        fprintf( stderr, "--(end of buffer or a NUL)\n" );
3595
0
      else
3596
0
        fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
3597
0
      }
3598
3599
0
    switch ( yy_act )
3600
0
  { /* beginning of action switch */
3601
/* %% [13.0] actions go here */
3602
0
      case 0: /* must back up */
3603
      /* undo the effects of YY_DO_BEFORE_ACTION */
3604
0
      *yy_cp = yyg->yy_hold_char;
3605
0
      yy_cp = yyg->yy_last_accepting_cpos;
3606
0
      yy_current_state = yyg->yy_last_accepting_state;
3607
0
      goto yy_find_action;
3608
3609
0
case 1:
3610
0
YY_RULE_SETUP
3611
0
#line 180 "/src/wireshark/wiretap/ascend_scanner.l"
3612
0
{
3613
0
    BEGIN(sc_ether_direction);
3614
0
    yyextra->token.u16_val = ASCEND_PFX_ETHER;
3615
0
    return ETHER_PREFIX;
3616
0
}
3617
0
  YY_BREAK
3618
0
case 2:
3619
0
YY_RULE_SETUP
3620
0
#line 186 "/src/wireshark/wiretap/ascend_scanner.l"
3621
0
{
3622
0
    BEGIN(sc_isdn_call);
3623
0
    yyextra->token.u16_val = ASCEND_PFX_ISDN_X;
3624
0
    return ISDN_PREFIX;
3625
0
}
3626
0
  YY_BREAK
3627
0
case 3:
3628
0
YY_RULE_SETUP
3629
0
#line 192 "/src/wireshark/wiretap/ascend_scanner.l"
3630
0
{
3631
0
    BEGIN(sc_isdn_call);
3632
0
    yyextra->token.u16_val = ASCEND_PFX_ISDN_R;
3633
0
    return ISDN_PREFIX;
3634
0
}
3635
0
  YY_BREAK
3636
0
case 4:
3637
0
YY_RULE_SETUP
3638
0
#line 198 "/src/wireshark/wiretap/ascend_scanner.l"
3639
0
{
3640
0
    BEGIN(sc_wds_user);
3641
0
    yyextra->token.u16_val = ASCEND_PFX_WDS_X;
3642
0
    return WDS_PREFIX;
3643
0
}
3644
0
  YY_BREAK
3645
0
case 5:
3646
0
YY_RULE_SETUP
3647
0
#line 204 "/src/wireshark/wiretap/ascend_scanner.l"
3648
0
{
3649
0
    BEGIN(sc_wds_user);
3650
0
    yyextra->token.u16_val = ASCEND_PFX_WDS_R;
3651
0
    return WDS_PREFIX;
3652
0
}
3653
0
  YY_BREAK
3654
0
case 6:
3655
0
YY_RULE_SETUP
3656
0
#line 210 "/src/wireshark/wiretap/ascend_scanner.l"
3657
0
{
3658
0
    BEGIN(sc_wds_user);
3659
0
    yyextra->token.u16_val = ASCEND_PFX_WDS_X;
3660
0
    return WDS_PREFIX;
3661
0
}
3662
0
  YY_BREAK
3663
0
case 7:
3664
0
YY_RULE_SETUP
3665
0
#line 216 "/src/wireshark/wiretap/ascend_scanner.l"
3666
0
{
3667
0
    BEGIN(sc_wds_user);
3668
0
    yyextra->token.u16_val = ASCEND_PFX_WDS_R;
3669
0
    return WDS_PREFIX;
3670
0
}
3671
0
  YY_BREAK
3672
/*
3673
  * If we allow an arbitrary non-zero number of non-left-parentheses after
3674
  * "ETHER", that means that some file that has ETHER followed by a lot of
3675
  * text (see, for example, tpncp/tpncp.dat in the source tree) can cause
3676
  * either an infinite loop or a loop that take forever to finish, as the
3677
  * scanner keeps swallowing characters.  Limit it to 20 characters.
3678
  *
3679
  * XXX - any reason to require at least two of them?
3680
  */
3681
0
case 8:
3682
/* rule 8 can match eol */
3683
0
YY_RULE_SETUP
3684
0
#line 231 "/src/wireshark/wiretap/ascend_scanner.l"
3685
0
{
3686
0
    BEGIN(sc_gen_task);
3687
0
    return STRING;
3688
0
}
3689
0
  YY_BREAK
3690
/*
3691
  * If we allow an arbitrary non-zero number of non-slash, non-left-parentheses,
3692
  * non-colon characters after "PRI-XMIT", that means that some file that has
3693
  * PRI-XMIT= followed by a lot of text can cause either an infinite loop or
3694
  * a loop that take forever to finish, as the scanner keeps swallowing
3695
  * characters.  Limit it to 20 characters.
3696
  */
3697
0
case 9:
3698
/* rule 9 can match eol */
3699
0
YY_RULE_SETUP
3700
0
#line 243 "/src/wireshark/wiretap/ascend_scanner.l"
3701
0
{
3702
0
    BEGIN(sc_gen_task);
3703
0
    return DECNUM;
3704
0
}
3705
0
  YY_BREAK
3706
0
case 10:
3707
/* rule 10 can match eol */
3708
0
YY_RULE_SETUP
3709
0
#line 248 "/src/wireshark/wiretap/ascend_scanner.l"
3710
0
{
3711
0
    char *atcopy = g_strdup(yytext);
3712
0
    char colon = input(yyscanner);
3713
0
    char after = input(yyscanner);
3714
0
    int retval = STRING;
3715
3716
0
    unput(after); unput(colon);
3717
3718
0
    if (after != '(' && after != ' ') {
3719
0
        BEGIN(sc_wds_sess);
3720
0
        if (yyextra->pseudo_header != NULL && yyextra->pseudo_header->user[0] == '\0') {
3721
0
        (void) g_strlcpy(yyextra->pseudo_header->user, atcopy, ASCEND_MAX_STR_LEN);
3722
0
        }
3723
0
    } else { /* We have a version 7 file */
3724
0
        BEGIN(sc_gen_task);
3725
0
        if (yyextra->pseudo_header != NULL && yyextra->pseudo_header->user[0] == '\0') {
3726
0
        (void) g_strlcpy(yyextra->pseudo_header->user, NO_USER, ASCEND_MAX_STR_LEN);
3727
0
        }
3728
        /* Are valid values ever > 2^32? If so we need to adjust YYSTYPE and a lot of */
3729
        /* upstream code accordingly. */
3730
0
        yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3731
0
        retval = DECNUM;
3732
0
    }
3733
0
    g_free (atcopy);
3734
0
    return retval;
3735
0
}
3736
0
  YY_BREAK
3737
0
case 11:
3738
0
YY_RULE_SETUP
3739
0
#line 275 "/src/wireshark/wiretap/ascend_scanner.l"
3740
0
{
3741
0
    BEGIN(sc_gen_task);
3742
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3743
0
    return DECNUM;
3744
0
}
3745
0
  YY_BREAK
3746
0
case 12:
3747
0
YY_RULE_SETUP
3748
0
#line 281 "/src/wireshark/wiretap/ascend_scanner.l"
3749
0
{
3750
0
    BEGIN(sc_gen_time_s);
3751
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 16);
3752
0
    return HEXNUM;
3753
0
}
3754
0
  YY_BREAK
3755
0
case 13:
3756
0
YY_RULE_SETUP
3757
0
#line 287 "/src/wireshark/wiretap/ascend_scanner.l"
3758
0
{
3759
0
    return STRING;
3760
0
}
3761
0
  YY_BREAK
3762
0
case 14:
3763
0
YY_RULE_SETUP
3764
0
#line 291 "/src/wireshark/wiretap/ascend_scanner.l"
3765
0
{
3766
0
    BEGIN(sc_gen_time_u);
3767
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3768
0
    return DECNUM;
3769
0
}
3770
0
  YY_BREAK
3771
0
case 15:
3772
0
YY_RULE_SETUP
3773
0
#line 297 "/src/wireshark/wiretap/ascend_scanner.l"
3774
0
{
3775
0
    char *atcopy = g_strdup(yytext);
3776
0
    BEGIN(sc_gen_octets);
3777
    /* only want the most significant 2 digits. convert to usecs */
3778
0
    if (strlen(atcopy) > 2)
3779
0
        atcopy[2] = '\0';
3780
0
    yyextra->token.u32_val = (uint32_t) strtoul(atcopy, NULL, 10) * 10000;
3781
0
    g_free(atcopy);
3782
0
    return DECNUM;
3783
0
}
3784
0
  YY_BREAK
3785
0
case 16:
3786
0
YY_RULE_SETUP
3787
0
#line 308 "/src/wireshark/wiretap/ascend_scanner.l"
3788
0
{
3789
0
    BEGIN(sc_gen_counter);
3790
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3791
0
    return DECNUM;
3792
0
}
3793
0
  YY_BREAK
3794
0
case 17:
3795
0
YY_RULE_SETUP
3796
0
#line 314 "/src/wireshark/wiretap/ascend_scanner.l"
3797
0
{
3798
0
    BEGIN(sc_gen_byte);
3799
0
    return COUNTER;
3800
0
}
3801
0
  YY_BREAK
3802
0
case 18:
3803
0
YY_RULE_SETUP
3804
0
#line 319 "/src/wireshark/wiretap/ascend_scanner.l"
3805
0
{
3806
0
    yyextra->token.u8_val = (uint8_t) strtoul(yytext, NULL, 16);
3807
0
    return HEXBYTE;
3808
0
}
3809
0
  YY_BREAK
3810
0
case 19:
3811
0
YY_RULE_SETUP
3812
0
#line 324 "/src/wireshark/wiretap/ascend_scanner.l"
3813
0
{
3814
0
    BEGIN(sc_chardisp);
3815
0
}
3816
0
  YY_BREAK
3817
0
case 20:
3818
/* rule 20 can match eol */
3819
0
YY_RULE_SETUP
3820
0
#line 328 "/src/wireshark/wiretap/ascend_scanner.l"
3821
0
{
3822
0
    BEGIN(sc_gen_byte);
3823
0
}
3824
0
  YY_BREAK
3825
0
case 21:
3826
0
YY_RULE_SETUP
3827
0
#line 332 "/src/wireshark/wiretap/ascend_scanner.l"
3828
0
;
3829
0
  YY_BREAK
3830
0
case 22:
3831
0
YY_RULE_SETUP
3832
0
#line 334 "/src/wireshark/wiretap/ascend_scanner.l"
3833
0
{
3834
0
    BEGIN(sc_wdd_date_m);
3835
0
    return WDD_DATE;
3836
0
}
3837
0
  YY_BREAK
3838
/*
3839
  * Scan m/d/y as three separate m, /d/, and y tokens.
3840
  * We could alternately treat m/d/y as a single token.
3841
  */
3842
0
case 23:
3843
0
YY_RULE_SETUP
3844
0
#line 343 "/src/wireshark/wiretap/ascend_scanner.l"
3845
0
{
3846
0
    BEGIN(sc_wdd_date_d);
3847
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3848
0
    return WDD_DECNUM;
3849
0
}
3850
0
  YY_BREAK
3851
0
case 24:
3852
0
YY_RULE_SETUP
3853
0
#line 349 "/src/wireshark/wiretap/ascend_scanner.l"
3854
0
{
3855
0
    BEGIN(sc_wdd_date_y);
3856
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext+1, NULL, 10);
3857
0
    return WDD_DECNUM;
3858
0
}
3859
0
  YY_BREAK
3860
0
case 25:
3861
0
YY_RULE_SETUP
3862
0
#line 355 "/src/wireshark/wiretap/ascend_scanner.l"
3863
0
{
3864
0
    BEGIN(sc_wdd_time);
3865
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3866
0
    return WDD_DECNUM;
3867
0
}
3868
0
  YY_BREAK
3869
0
case 26:
3870
0
YY_RULE_SETUP
3871
0
#line 361 "/src/wireshark/wiretap/ascend_scanner.l"
3872
0
{
3873
0
    BEGIN(sc_wdd_time_h);
3874
0
    return WDD_TIME;
3875
0
}
3876
0
  YY_BREAK
3877
/*
3878
  * Scan h:m:s as three separate h, :m:, and s tokens similar to above.
3879
  */
3880
0
case 27:
3881
0
YY_RULE_SETUP
3882
0
#line 369 "/src/wireshark/wiretap/ascend_scanner.l"
3883
0
{
3884
0
    BEGIN(sc_wdd_time_m);
3885
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3886
0
    return WDD_DECNUM;
3887
0
}
3888
0
  YY_BREAK
3889
0
case 28:
3890
0
YY_RULE_SETUP
3891
0
#line 375 "/src/wireshark/wiretap/ascend_scanner.l"
3892
0
{
3893
0
    BEGIN(sc_wdd_time_s);
3894
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext+1, NULL, 10);
3895
0
    return WDD_DECNUM;
3896
0
}
3897
0
  YY_BREAK
3898
0
case 29:
3899
0
YY_RULE_SETUP
3900
0
#line 381 "/src/wireshark/wiretap/ascend_scanner.l"
3901
0
{
3902
0
    BEGIN(sc_wdd_cause);
3903
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 10);
3904
0
    return WDD_DECNUM;
3905
0
}
3906
0
  YY_BREAK
3907
0
case 30:
3908
0
YY_RULE_SETUP
3909
0
#line 387 "/src/wireshark/wiretap/ascend_scanner.l"
3910
0
{
3911
0
    BEGIN(sc_wdd_callnum);
3912
0
    return WDD_CAUSE;
3913
0
}
3914
0
  YY_BREAK
3915
0
case 31:
3916
0
YY_RULE_SETUP
3917
0
#line 392 "/src/wireshark/wiretap/ascend_scanner.l"
3918
0
{
3919
0
    BEGIN(sc_wdd_chunk);
3920
0
    (void) g_strlcpy(yyextra->token.str_val, yytext, ASCEND_MAX_STR_LEN);
3921
0
    return WDD_CALLNUM;
3922
0
}
3923
0
  YY_BREAK
3924
0
case 32:
3925
0
YY_RULE_SETUP
3926
0
#line 398 "/src/wireshark/wiretap/ascend_scanner.l"
3927
0
{
3928
0
    BEGIN(sc_wdd_chunknum);
3929
0
    return WDD_CHUNK;
3930
0
}
3931
0
  YY_BREAK
3932
0
case 33:
3933
0
YY_RULE_SETUP
3934
0
#line 403 "/src/wireshark/wiretap/ascend_scanner.l"
3935
0
{
3936
0
    BEGIN(sc_wdd_type);
3937
0
    yyextra->token.u32_val = (uint32_t) strtoul(yytext, NULL, 16);
3938
0
    return HEXNUM;
3939
0
}
3940
0
  YY_BREAK
3941
0
case 34:
3942
0
YY_RULE_SETUP
3943
0
#line 409 "/src/wireshark/wiretap/ascend_scanner.l"
3944
0
{
3945
0
    BEGIN(sc_gen_task);
3946
0
    return KEYWORD;
3947
0
}
3948
0
  YY_BREAK
3949
0
case 35:
3950
0
YY_RULE_SETUP
3951
0
#line 414 "/src/wireshark/wiretap/ascend_scanner.l"
3952
0
{
3953
0
    return SLASH_SUFFIX;
3954
0
}
3955
0
  YY_BREAK
3956
0
case 36:
3957
0
YY_RULE_SETUP
3958
0
#line 418 "/src/wireshark/wiretap/ascend_scanner.l"
3959
0
{ return HEXNUM; }
3960
0
  YY_BREAK
3961
0
case 37:
3962
0
YY_RULE_SETUP
3963
0
#line 420 "/src/wireshark/wiretap/ascend_scanner.l"
3964
0
{ return KEYWORD; }
3965
0
  YY_BREAK
3966
0
case YY_STATE_EOF(INITIAL):
3967
0
case YY_STATE_EOF(sc_gen_task):
3968
0
case YY_STATE_EOF(sc_gen_time_s):
3969
0
case YY_STATE_EOF(sc_gen_time_u):
3970
0
case YY_STATE_EOF(sc_gen_octets):
3971
0
case YY_STATE_EOF(sc_gen_counter):
3972
0
case YY_STATE_EOF(sc_gen_byte):
3973
0
case YY_STATE_EOF(sc_wds_user):
3974
0
case YY_STATE_EOF(sc_wds_sess):
3975
0
case YY_STATE_EOF(sc_wdd_date_d):
3976
0
case YY_STATE_EOF(sc_wdd_date_m):
3977
0
case YY_STATE_EOF(sc_wdd_date_y):
3978
0
case YY_STATE_EOF(sc_wdd_time):
3979
0
case YY_STATE_EOF(sc_wdd_time_h):
3980
0
case YY_STATE_EOF(sc_wdd_time_m):
3981
0
case YY_STATE_EOF(sc_wdd_time_s):
3982
0
case YY_STATE_EOF(sc_wdd_cause):
3983
0
case YY_STATE_EOF(sc_wdd_callnum):
3984
0
case YY_STATE_EOF(sc_wdd_chunk):
3985
0
case YY_STATE_EOF(sc_wdd_chunknum):
3986
0
case YY_STATE_EOF(sc_wdd_type):
3987
0
case YY_STATE_EOF(sc_chardisp):
3988
0
case YY_STATE_EOF(sc_isdn_call):
3989
0
case YY_STATE_EOF(sc_ether_direction):
3990
0
#line 422 "/src/wireshark/wiretap/ascend_scanner.l"
3991
0
{ yyterminate(); }
3992
0
  YY_BREAK
3993
0
case 38:
3994
/* rule 38 can match eol */
3995
0
YY_RULE_SETUP
3996
0
#line 424 "/src/wireshark/wiretap/ascend_scanner.l"
3997
0
;
3998
0
  YY_BREAK
3999
0
case 39:
4000
0
YY_RULE_SETUP
4001
0
#line 426 "/src/wireshark/wiretap/ascend_scanner.l"
4002
0
ECHO;
4003
0
  YY_BREAK
4004
0
#line 4005 "/work/build/wiretap/ascend_scanner.c"
4005
4006
0
  case YY_END_OF_BUFFER:
4007
0
    {
4008
    /* Amount of text matched not including the EOB char. */
4009
0
    int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
4010
4011
    /* Undo the effects of YY_DO_BEFORE_ACTION. */
4012
0
    *yy_cp = yyg->yy_hold_char;
4013
0
    YY_RESTORE_YY_MORE_OFFSET
4014
4015
0
    if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4016
0
      {
4017
      /* We're scanning a new file or input source.  It's
4018
       * possible that this happened because the user
4019
       * just pointed yyin at a new source and called
4020
       * yylex().  If so, then we have to assure
4021
       * consistency between YY_CURRENT_BUFFER and our
4022
       * globals.  Here is the right place to do so, because
4023
       * this is the first action (other than possibly a
4024
       * back-up) that will match for the new input source.
4025
       */
4026
0
      yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4027
/* %if-c-only */
4028
0
      YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4029
/* %endif */
4030
/* %if-c++-only */
4031
/* %endif */
4032
0
      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4033
0
      }
4034
4035
    /* Note that here we test for yy_c_buf_p "<=" to the position
4036
     * of the first EOB in the buffer, since yy_c_buf_p will
4037
     * already have been incremented past the NUL character
4038
     * (since all states make transitions on EOB to the
4039
     * end-of-buffer state).  Contrast this with the test
4040
     * in input().
4041
     */
4042
0
    if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4043
0
      { /* This was really a NUL. */
4044
0
      yy_state_type yy_next_state;
4045
4046
0
      yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
4047
4048
0
      yy_current_state = yy_get_previous_state( yyscanner );
4049
4050
      /* Okay, we're now positioned to make the NUL
4051
       * transition.  We couldn't have
4052
       * yy_get_previous_state() go ahead and do it
4053
       * for us because it doesn't know how to deal
4054
       * with the possibility of jamming (and we don't
4055
       * want to build jamming into it because then it
4056
       * will run more slowly).
4057
       */
4058
4059
0
      yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
4060
4061
0
      yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4062
4063
0
      if ( yy_next_state )
4064
0
        {
4065
        /* Consume the NUL. */
4066
0
        yy_cp = ++yyg->yy_c_buf_p;
4067
0
        yy_current_state = yy_next_state;
4068
0
        goto yy_match;
4069
0
        }
4070
4071
0
      else
4072
0
        {
4073
/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
4074
0
        yy_cp = yyg->yy_last_accepting_cpos;
4075
0
        yy_current_state = yyg->yy_last_accepting_state;
4076
0
        goto yy_find_action;
4077
0
        }
4078
0
      }
4079
4080
0
    else switch ( yy_get_next_buffer( yyscanner ) )
4081
0
      {
4082
0
      case EOB_ACT_END_OF_FILE:
4083
0
        {
4084
0
        yyg->yy_did_buffer_switch_on_eof = 0;
4085
4086
0
        if ( yywrap( yyscanner ) )
4087
0
          {
4088
          /* Note: because we've taken care in
4089
           * yy_get_next_buffer() to have set up
4090
           * yytext, we can now set up
4091
           * yy_c_buf_p so that if some total
4092
           * hoser (like flex itself) wants to
4093
           * call the scanner after we return the
4094
           * YY_NULL, it'll still work - another
4095
           * YY_NULL will get returned.
4096
           */
4097
0
          yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
4098
4099
0
          yy_act = YY_STATE_EOF(YY_START);
4100
0
          goto do_action;
4101
0
          }
4102
4103
0
        else
4104
0
          {
4105
0
          if ( ! yyg->yy_did_buffer_switch_on_eof )
4106
0
            YY_NEW_FILE;
4107
0
          }
4108
0
        break;
4109
0
        }
4110
4111
0
      case EOB_ACT_CONTINUE_SCAN:
4112
0
        yyg->yy_c_buf_p =
4113
0
          yyg->yytext_ptr + yy_amount_of_matched_text;
4114
4115
0
        yy_current_state = yy_get_previous_state( yyscanner );
4116
4117
0
        yy_cp = yyg->yy_c_buf_p;
4118
0
        yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4119
0
        goto yy_match;
4120
4121
0
      case EOB_ACT_LAST_MATCH:
4122
0
        yyg->yy_c_buf_p =
4123
0
        &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
4124
4125
0
        yy_current_state = yy_get_previous_state( yyscanner );
4126
4127
0
        yy_cp = yyg->yy_c_buf_p;
4128
0
        yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4129
0
        goto yy_find_action;
4130
0
      }
4131
0
    break;
4132
0
    }
4133
4134
0
  default:
4135
0
    YY_FATAL_ERROR(
4136
0
      "fatal flex scanner internal error--no action found" );
4137
0
  } /* end of action switch */
4138
0
    } /* end of scanning one token */
4139
0
  } /* end of user's declarations */
4140
0
} /* end of yylex */
4141
/* %ok-for-header */
4142
4143
/* %if-c++-only */
4144
/* %not-for-header */
4145
/* %ok-for-header */
4146
4147
/* %endif */
4148
4149
/* yy_get_next_buffer - try to read in a new buffer
4150
 *
4151
 * Returns a code representing an action:
4152
 *  EOB_ACT_LAST_MATCH -
4153
 *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4154
 *  EOB_ACT_END_OF_FILE - end of file
4155
 */
4156
/* %if-c-only */
4157
static int yy_get_next_buffer (yyscan_t yyscanner)
4158
/* %endif */
4159
/* %if-c++-only */
4160
/* %endif */
4161
0
{
4162
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4163
0
  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4164
0
  char *source = yyg->yytext_ptr;
4165
0
  int number_to_move, i;
4166
0
  int ret_val;
4167
4168
0
  if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
4169
0
    YY_FATAL_ERROR(
4170
0
    "fatal flex scanner internal error--end of buffer missed" );
4171
4172
0
  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4173
0
    { /* Don't try to fill the buffer, so this is an EOF. */
4174
0
    if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
4175
0
      {
4176
      /* We matched a single character, the EOB, so
4177
       * treat this as a final EOF.
4178
       */
4179
0
      return EOB_ACT_END_OF_FILE;
4180
0
      }
4181
4182
0
    else
4183
0
      {
4184
      /* We matched some text prior to the EOB, first
4185
       * process it.
4186
       */
4187
0
      return EOB_ACT_LAST_MATCH;
4188
0
      }
4189
0
    }
4190
4191
  /* Try to read more data. */
4192
4193
  /* First move last chars to start of buffer. */
4194
0
  number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
4195
4196
0
  for ( i = 0; i < number_to_move; ++i )
4197
0
    *(dest++) = *(source++);
4198
4199
0
  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4200
    /* don't do the read, it's not guaranteed to return an EOF,
4201
     * just force an EOF
4202
     */
4203
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
4204
4205
0
  else
4206
0
    {
4207
0
      int num_to_read =
4208
0
      YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4209
4210
0
    while ( num_to_read <= 0 )
4211
0
      { /* Not enough room in the buffer - grow it. */
4212
4213
      /* just a shorter name for the current buffer */
4214
0
      YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4215
4216
0
      int yy_c_buf_p_offset =
4217
0
        (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
4218
4219
0
      if ( b->yy_is_our_buffer )
4220
0
        {
4221
0
        int new_size = b->yy_buf_size * 2;
4222
4223
0
        if ( new_size <= 0 )
4224
0
          b->yy_buf_size += b->yy_buf_size / 8;
4225
0
        else
4226
0
          b->yy_buf_size *= 2;
4227
4228
0
        b->yy_ch_buf = (char *)
4229
          /* Include room in for 2 EOB chars. */
4230
0
          yyrealloc( (void *) b->yy_ch_buf,
4231
0
               (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4232
0
        }
4233
0
      else
4234
        /* Can't grow it, we don't own it. */
4235
0
        b->yy_ch_buf = NULL;
4236
4237
0
      if ( ! b->yy_ch_buf )
4238
0
        YY_FATAL_ERROR(
4239
0
        "fatal error - scanner input buffer overflow" );
4240
4241
0
      yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4242
4243
0
      num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4244
0
            number_to_move - 1;
4245
4246
0
      }
4247
4248
0
    if ( num_to_read > YY_READ_BUF_SIZE )
4249
0
      num_to_read = YY_READ_BUF_SIZE;
4250
4251
    /* Read in more data. */
4252
0
    YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4253
0
      yyg->yy_n_chars, num_to_read );
4254
4255
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4256
0
    }
4257
4258
0
  if ( yyg->yy_n_chars == 0 )
4259
0
    {
4260
0
    if ( number_to_move == YY_MORE_ADJ )
4261
0
      {
4262
0
      ret_val = EOB_ACT_END_OF_FILE;
4263
0
      yyrestart( yyin  , yyscanner);
4264
0
      }
4265
4266
0
    else
4267
0
      {
4268
0
      ret_val = EOB_ACT_LAST_MATCH;
4269
0
      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4270
0
        YY_BUFFER_EOF_PENDING;
4271
0
      }
4272
0
    }
4273
4274
0
  else
4275
0
    ret_val = EOB_ACT_CONTINUE_SCAN;
4276
4277
0
  if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4278
    /* Extend the array by 50%, plus the number we really need. */
4279
0
    int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
4280
0
    YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4281
0
      (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
4282
0
    if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4283
0
      YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4284
    /* "- 2" to take care of EOB's */
4285
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4286
0
  }
4287
4288
0
  yyg->yy_n_chars += number_to_move;
4289
0
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4290
0
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4291
4292
0
  yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4293
4294
0
  return ret_val;
4295
0
}
4296
4297
/* yy_get_previous_state - get the state just before the EOB char was reached */
4298
4299
/* %if-c-only */
4300
/* %not-for-header */
4301
    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
4302
/* %endif */
4303
/* %if-c++-only */
4304
/* %endif */
4305
0
{
4306
0
  yy_state_type yy_current_state;
4307
0
  char *yy_cp;
4308
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4309
4310
/* %% [15.0] code to get the start state into yy_current_state goes here */
4311
0
  yy_current_state = yyg->yy_start;
4312
4313
0
  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
4314
0
    {
4315
/* %% [16.0] code to find the next state goes here */
4316
0
    YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4317
0
    if ( yy_accept[yy_current_state] )
4318
0
      {
4319
0
      yyg->yy_last_accepting_state = yy_current_state;
4320
0
      yyg->yy_last_accepting_cpos = yy_cp;
4321
0
      }
4322
0
    while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4323
0
      {
4324
0
      yy_current_state = (int) yy_def[yy_current_state];
4325
0
      if ( yy_current_state >= 878 )
4326
0
        yy_c = yy_meta[yy_c];
4327
0
      }
4328
0
    yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4329
0
    }
4330
4331
0
  return yy_current_state;
4332
0
}
4333
4334
/* yy_try_NUL_trans - try to make a transition on the NUL character
4335
 *
4336
 * synopsis
4337
 *  next_state = yy_try_NUL_trans( current_state );
4338
 */
4339
/* %if-c-only */
4340
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
4341
/* %endif */
4342
/* %if-c++-only */
4343
/* %endif */
4344
0
{
4345
0
  int yy_is_jam;
4346
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
4347
/* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
4348
0
  char *yy_cp = yyg->yy_c_buf_p;
4349
4350
0
  YY_CHAR yy_c = 1;
4351
0
  if ( yy_accept[yy_current_state] )
4352
0
    {
4353
0
    yyg->yy_last_accepting_state = yy_current_state;
4354
0
    yyg->yy_last_accepting_cpos = yy_cp;
4355
0
    }
4356
0
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4357
0
    {
4358
0
    yy_current_state = (int) yy_def[yy_current_state];
4359
0
    if ( yy_current_state >= 878 )
4360
0
      yy_c = yy_meta[yy_c];
4361
0
    }
4362
0
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4363
0
  yy_is_jam = (yy_current_state == 877);
4364
4365
0
  (void)yyg;
4366
0
  return yy_is_jam ? 0 : yy_current_state;
4367
0
}
4368
4369
#ifndef YY_NO_UNPUT
4370
/* %if-c-only */
4371
4372
    static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
4373
/* %endif */
4374
/* %if-c++-only */
4375
/* %endif */
4376
0
{
4377
0
  char *yy_cp;
4378
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4379
4380
0
    yy_cp = yyg->yy_c_buf_p;
4381
4382
  /* undo effects of setting up yytext */
4383
0
  *yy_cp = yyg->yy_hold_char;
4384
4385
0
  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4386
0
    { /* need to shift things up to make room */
4387
    /* +2 for EOB chars. */
4388
0
    int number_to_move = yyg->yy_n_chars + 2;
4389
0
    char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4390
0
          YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4391
0
    char *source =
4392
0
        &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4393
4394
0
    while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4395
0
      *--dest = *--source;
4396
4397
0
    yy_cp += (int) (dest - source);
4398
0
    yy_bp += (int) (dest - source);
4399
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4400
0
      yyg->yy_n_chars = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4401
4402
0
    if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4403
0
      YY_FATAL_ERROR( "flex scanner push-back overflow" );
4404
0
    }
4405
4406
0
  *--yy_cp = (char) c;
4407
4408
/* %% [18.0] update yylineno here */
4409
4410
0
  yyg->yytext_ptr = yy_bp;
4411
0
  yyg->yy_hold_char = *yy_cp;
4412
0
  yyg->yy_c_buf_p = yy_cp;
4413
0
}
4414
/* %if-c-only */
4415
4416
/* %endif */
4417
#endif
4418
4419
/* %if-c-only */
4420
#ifndef YY_NO_INPUT
4421
#ifdef __cplusplus
4422
    static int yyinput (yyscan_t yyscanner)
4423
#else
4424
    static int input  (yyscan_t yyscanner)
4425
#endif
4426
4427
/* %endif */
4428
/* %if-c++-only */
4429
/* %endif */
4430
0
{
4431
0
  int c;
4432
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4433
4434
0
  *yyg->yy_c_buf_p = yyg->yy_hold_char;
4435
4436
0
  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4437
0
    {
4438
    /* yy_c_buf_p now points to the character we want to return.
4439
     * If this occurs *before* the EOB characters, then it's a
4440
     * valid NUL; if not, then we've hit the end of the buffer.
4441
     */
4442
0
    if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4443
      /* This was really a NUL. */
4444
0
      *yyg->yy_c_buf_p = '\0';
4445
4446
0
    else
4447
0
      { /* need more input */
4448
0
      int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
4449
0
      ++yyg->yy_c_buf_p;
4450
4451
0
      switch ( yy_get_next_buffer( yyscanner ) )
4452
0
        {
4453
0
        case EOB_ACT_LAST_MATCH:
4454
          /* This happens because yy_g_n_b()
4455
           * sees that we've accumulated a
4456
           * token and flags that we need to
4457
           * try matching the token before
4458
           * proceeding.  But for input(),
4459
           * there's no matching to consider.
4460
           * So convert the EOB_ACT_LAST_MATCH
4461
           * to EOB_ACT_END_OF_FILE.
4462
           */
4463
4464
          /* Reset buffer status. */
4465
0
          yyrestart( yyin , yyscanner);
4466
4467
          /*FALLTHROUGH*/
4468
4469
0
        case EOB_ACT_END_OF_FILE:
4470
0
          {
4471
0
          if ( yywrap( yyscanner ) )
4472
0
            return 0;
4473
4474
0
          if ( ! yyg->yy_did_buffer_switch_on_eof )
4475
0
            YY_NEW_FILE;
4476
#ifdef __cplusplus
4477
          return yyinput(yyscanner);
4478
#else
4479
0
          return input(yyscanner);
4480
0
#endif
4481
0
          }
4482
4483
0
        case EOB_ACT_CONTINUE_SCAN:
4484
0
          yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
4485
0
          break;
4486
0
        }
4487
0
      }
4488
0
    }
4489
4490
0
  c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
4491
0
  *yyg->yy_c_buf_p = '\0';  /* preserve yytext */
4492
0
  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
4493
4494
/* %% [19.0] update BOL and yylineno */
4495
4496
0
  return c;
4497
0
}
4498
/* %if-c-only */
4499
#endif  /* ifndef YY_NO_INPUT */
4500
/* %endif */
4501
4502
/** Immediately switch to a different input stream.
4503
 * @param input_file A readable stream.
4504
 * @param yyscanner The scanner object.
4505
 * @note This function does not reset the start condition to @c INITIAL .
4506
 */
4507
/* %if-c-only */
4508
    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
4509
/* %endif */
4510
/* %if-c++-only */
4511
/* %endif */
4512
0
{
4513
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4514
4515
0
  if ( ! YY_CURRENT_BUFFER ){
4516
0
        yyensure_buffer_stack (yyscanner);
4517
0
    YY_CURRENT_BUFFER_LVALUE =
4518
0
            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
4519
0
  }
4520
4521
0
  yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
4522
0
  yy_load_buffer_state( yyscanner );
4523
0
}
4524
4525
/* %if-c++-only */
4526
/* %endif */
4527
4528
/** Switch to a different input buffer.
4529
 * @param new_buffer The new input buffer.
4530
 * @param yyscanner The scanner object.
4531
 */
4532
/* %if-c-only */
4533
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
4534
/* %endif */
4535
/* %if-c++-only */
4536
/* %endif */
4537
0
{
4538
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4539
4540
  /* TODO. We should be able to replace this entire function body
4541
   * with
4542
   *    yypop_buffer_state();
4543
   *    yypush_buffer_state(new_buffer);
4544
     */
4545
0
  yyensure_buffer_stack (yyscanner);
4546
0
  if ( YY_CURRENT_BUFFER == new_buffer )
4547
0
    return;
4548
4549
0
  if ( YY_CURRENT_BUFFER )
4550
0
    {
4551
    /* Flush out information for old buffer. */
4552
0
    *yyg->yy_c_buf_p = yyg->yy_hold_char;
4553
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4554
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4555
0
    }
4556
4557
0
  YY_CURRENT_BUFFER_LVALUE = new_buffer;
4558
0
  yy_load_buffer_state( yyscanner );
4559
4560
  /* We don't actually know whether we did this switch during
4561
   * EOF (yywrap()) processing, but the only time this flag
4562
   * is looked at is after yywrap() is called, so it's safe
4563
   * to go ahead and always set it.
4564
   */
4565
0
  yyg->yy_did_buffer_switch_on_eof = 1;
4566
0
}
4567
4568
/* %if-c-only */
4569
static void yy_load_buffer_state  (yyscan_t yyscanner)
4570
/* %endif */
4571
/* %if-c++-only */
4572
/* %endif */
4573
0
{
4574
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4575
0
  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4576
0
  yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4577
/* %if-c-only */
4578
0
  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4579
/* %endif */
4580
/* %if-c++-only */
4581
/* %endif */
4582
0
  yyg->yy_hold_char = *yyg->yy_c_buf_p;
4583
0
}
4584
4585
/** Allocate and initialize an input buffer state.
4586
 * @param file A readable stream.
4587
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4588
 * @param yyscanner The scanner object.
4589
 * @return the allocated buffer state.
4590
 */
4591
/* %if-c-only */
4592
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
4593
/* %endif */
4594
/* %if-c++-only */
4595
/* %endif */
4596
0
{
4597
0
  YY_BUFFER_STATE b;
4598
    
4599
0
  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
4600
0
  if ( ! b )
4601
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4602
4603
0
  b->yy_buf_size = size;
4604
4605
  /* yy_ch_buf has to be 2 characters longer than the size given because
4606
   * we need to put in 2 end-of-buffer characters.
4607
   */
4608
0
  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4609
0
  if ( ! b->yy_ch_buf )
4610
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4611
4612
0
  b->yy_is_our_buffer = 1;
4613
4614
0
  yy_init_buffer( b, file , yyscanner);
4615
4616
0
  return b;
4617
0
}
4618
4619
/* %if-c++-only */
4620
/* %endif */
4621
4622
/** Destroy the buffer.
4623
 * @param b a buffer created with yy_create_buffer()
4624
 * @param yyscanner The scanner object.
4625
 */
4626
/* %if-c-only */
4627
    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4628
/* %endif */
4629
/* %if-c++-only */
4630
/* %endif */
4631
0
{
4632
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4633
4634
0
  if ( ! b )
4635
0
    return;
4636
4637
0
  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4638
0
    YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4639
4640
0
  if ( b->yy_is_our_buffer )
4641
0
    yyfree( (void *) b->yy_ch_buf , yyscanner );
4642
4643
0
  yyfree( (void *) b , yyscanner );
4644
0
}
4645
4646
/* Initializes or reinitializes a buffer.
4647
 * This function is sometimes called more than once on the same buffer,
4648
 * such as during a yyrestart() or at EOF.
4649
 */
4650
/* %if-c-only */
4651
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
4652
/* %endif */
4653
/* %if-c++-only */
4654
/* %endif */
4655
4656
0
{
4657
0
  int oerrno = errno;
4658
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4659
4660
0
  yy_flush_buffer( b , yyscanner);
4661
4662
/* %if-c-only */
4663
0
  b->yy_input_file = file;
4664
/* %endif */
4665
/* %if-c++-only */
4666
/* %endif */
4667
0
  b->yy_fill_buffer = 1;
4668
4669
    /* If b is the current buffer, then yy_init_buffer was _probably_
4670
     * called from yyrestart() or through yy_get_next_buffer.
4671
     * In that case, we don't want to reset the lineno or column.
4672
     */
4673
0
    if (b != YY_CURRENT_BUFFER){
4674
0
        b->yy_bs_lineno = 1;
4675
0
        b->yy_bs_column = 0;
4676
0
    }
4677
4678
/* %if-c-only */
4679
4680
0
        b->yy_is_interactive = 0;
4681
    
4682
/* %endif */
4683
/* %if-c++-only */
4684
/* %endif */
4685
0
  errno = oerrno;
4686
0
}
4687
4688
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4689
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4690
 * @param yyscanner The scanner object.
4691
 */
4692
/* %if-c-only */
4693
    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4694
/* %endif */
4695
/* %if-c++-only */
4696
/* %endif */
4697
0
{
4698
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4699
0
  if ( ! b )
4700
0
    return;
4701
4702
0
  b->yy_n_chars = 0;
4703
4704
  /* We always need two end-of-buffer characters.  The first causes
4705
   * a transition to the end-of-buffer state.  The second causes
4706
   * a jam in that state.
4707
   */
4708
0
  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4709
0
  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4710
4711
0
  b->yy_buf_pos = &b->yy_ch_buf[0];
4712
4713
0
  b->yy_at_bol = 1;
4714
0
  b->yy_buffer_status = YY_BUFFER_NEW;
4715
4716
0
  if ( b == YY_CURRENT_BUFFER )
4717
0
    yy_load_buffer_state( yyscanner );
4718
0
}
4719
4720
/* %if-c-or-c++ */
4721
/** Pushes the new state onto the stack. The new state becomes
4722
 *  the current state. This function will allocate the stack
4723
 *  if necessary.
4724
 *  @param new_buffer The new state.
4725
 *  @param yyscanner The scanner object.
4726
 */
4727
/* %if-c-only */
4728
void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
4729
/* %endif */
4730
/* %if-c++-only */
4731
/* %endif */
4732
0
{
4733
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4734
0
  if (new_buffer == NULL)
4735
0
    return;
4736
4737
0
  yyensure_buffer_stack(yyscanner);
4738
4739
  /* This block is copied from yy_switch_to_buffer. */
4740
0
  if ( YY_CURRENT_BUFFER )
4741
0
    {
4742
    /* Flush out information for old buffer. */
4743
0
    *yyg->yy_c_buf_p = yyg->yy_hold_char;
4744
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4745
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4746
0
    }
4747
4748
  /* Only push if top exists. Otherwise, replace top. */
4749
0
  if (YY_CURRENT_BUFFER)
4750
0
    yyg->yy_buffer_stack_top++;
4751
0
  YY_CURRENT_BUFFER_LVALUE = new_buffer;
4752
4753
  /* copied from yy_switch_to_buffer. */
4754
0
  yy_load_buffer_state( yyscanner );
4755
0
  yyg->yy_did_buffer_switch_on_eof = 1;
4756
0
}
4757
/* %endif */
4758
4759
/* %if-c-or-c++ */
4760
/** Removes and deletes the top of the stack, if present.
4761
 *  The next element becomes the new top.
4762
 *  @param yyscanner The scanner object.
4763
 */
4764
/* %if-c-only */
4765
void yypop_buffer_state (yyscan_t yyscanner)
4766
/* %endif */
4767
/* %if-c++-only */
4768
/* %endif */
4769
0
{
4770
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4771
0
  if (!YY_CURRENT_BUFFER)
4772
0
    return;
4773
4774
0
  yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
4775
0
  YY_CURRENT_BUFFER_LVALUE = NULL;
4776
0
  if (yyg->yy_buffer_stack_top > 0)
4777
0
    --yyg->yy_buffer_stack_top;
4778
4779
0
  if (YY_CURRENT_BUFFER) {
4780
0
    yy_load_buffer_state( yyscanner );
4781
0
    yyg->yy_did_buffer_switch_on_eof = 1;
4782
0
  }
4783
0
}
4784
/* %endif */
4785
4786
/* %if-c-or-c++ */
4787
/* Allocates the stack if it does not exist.
4788
 *  Guarantees space for at least one push.
4789
 */
4790
/* %if-c-only */
4791
static void yyensure_buffer_stack (yyscan_t yyscanner)
4792
/* %endif */
4793
/* %if-c++-only */
4794
/* %endif */
4795
0
{
4796
0
  yy_size_t num_to_alloc;
4797
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4798
4799
0
  if (!yyg->yy_buffer_stack) {
4800
4801
    /* First allocation is just for 2 elements, since we don't know if this
4802
     * scanner will even need a stack. We use 2 instead of 1 to avoid an
4803
     * immediate realloc on the next call.
4804
         */
4805
0
      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
4806
0
    yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
4807
0
                (num_to_alloc * sizeof(struct yy_buffer_state*)
4808
0
                , yyscanner);
4809
0
    if ( ! yyg->yy_buffer_stack )
4810
0
      YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4811
4812
0
    memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4813
4814
0
    yyg->yy_buffer_stack_max = num_to_alloc;
4815
0
    yyg->yy_buffer_stack_top = 0;
4816
0
    return;
4817
0
  }
4818
4819
0
  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
4820
4821
    /* Increase the buffer to prepare for a possible push. */
4822
0
    yy_size_t grow_size = 8 /* arbitrary grow size */;
4823
4824
0
    num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
4825
0
    yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
4826
0
                (yyg->yy_buffer_stack,
4827
0
                num_to_alloc * sizeof(struct yy_buffer_state*)
4828
0
                , yyscanner);
4829
0
    if ( ! yyg->yy_buffer_stack )
4830
0
      YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4831
4832
    /* zero only the new slots.*/
4833
0
    memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
4834
0
    yyg->yy_buffer_stack_max = num_to_alloc;
4835
0
  }
4836
0
}
4837
/* %endif */
4838
4839
/* %if-c-only */
4840
/** Setup the input buffer state to scan directly from a user-specified character buffer.
4841
 * @param base the character buffer
4842
 * @param size the size in bytes of the character buffer
4843
 * @param yyscanner The scanner object.
4844
 * @return the newly allocated buffer state object.
4845
 */
4846
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
4847
0
{
4848
0
  YY_BUFFER_STATE b;
4849
    
4850
0
  if ( size < 2 ||
4851
0
       base[size-2] != YY_END_OF_BUFFER_CHAR ||
4852
0
       base[size-1] != YY_END_OF_BUFFER_CHAR )
4853
    /* They forgot to leave room for the EOB's. */
4854
0
    return NULL;
4855
4856
0
  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
4857
0
  if ( ! b )
4858
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
4859
4860
0
  b->yy_buf_size = (int) (size - 2);  /* "- 2" to take care of EOB's */
4861
0
  b->yy_buf_pos = b->yy_ch_buf = base;
4862
0
  b->yy_is_our_buffer = 0;
4863
0
  b->yy_input_file = NULL;
4864
0
  b->yy_n_chars = b->yy_buf_size;
4865
0
  b->yy_is_interactive = 0;
4866
0
  b->yy_at_bol = 1;
4867
0
  b->yy_fill_buffer = 0;
4868
0
  b->yy_buffer_status = YY_BUFFER_NEW;
4869
4870
0
  yy_switch_to_buffer( b , yyscanner );
4871
4872
0
  return b;
4873
0
}
4874
/* %endif */
4875
4876
/* %if-c-only */
4877
/** Setup the input buffer state to scan a string. The next call to yylex() will
4878
 * scan from a @e copy of @a str.
4879
 * @param yystr a NUL-terminated string to scan
4880
 * @param yyscanner The scanner object.
4881
 * @return the newly allocated buffer state object.
4882
 * @note If you want to scan bytes that may contain NUL values, then use
4883
 *       yy_scan_bytes() instead.
4884
 */
4885
YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
4886
0
{
4887
    
4888
0
  return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
4889
0
}
4890
/* %endif */
4891
4892
/* %if-c-only */
4893
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
4894
 * scan from a @e copy of @a bytes.
4895
 * @param yybytes the byte buffer to scan
4896
 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
4897
 * @param yyscanner The scanner object.
4898
 * @return the newly allocated buffer state object.
4899
 */
4900
YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
4901
0
{
4902
0
  YY_BUFFER_STATE b;
4903
0
  char *buf;
4904
0
  yy_size_t n;
4905
0
  int i;
4906
    
4907
  /* Get memory for full buffer, including space for trailing EOB's. */
4908
0
  n = (yy_size_t) (_yybytes_len + 2);
4909
0
  buf = (char *) yyalloc( n , yyscanner );
4910
0
  if ( ! buf )
4911
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
4912
4913
0
  for ( i = 0; i < _yybytes_len; ++i )
4914
0
    buf[i] = yybytes[i];
4915
4916
0
  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4917
4918
0
  b = yy_scan_buffer( buf, n , yyscanner);
4919
0
  if ( ! b )
4920
0
    YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
4921
4922
  /* It's okay to grow etc. this buffer, and we should throw it
4923
   * away when we're done.
4924
   */
4925
0
  b->yy_is_our_buffer = 1;
4926
4927
0
  return b;
4928
0
}
4929
/* %endif */
4930
4931
#ifndef YY_EXIT_FAILURE
4932
#define YY_EXIT_FAILURE 2
4933
#endif
4934
4935
/* %if-c-only */
4936
static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
4937
0
{
4938
0
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4939
0
  (void)yyg;
4940
0
  fprintf( stderr, "%s\n", msg );
4941
0
  exit( YY_EXIT_FAILURE );
4942
0
}
4943
/* %endif */
4944
/* %if-c++-only */
4945
/* %endif */
4946
4947
/* Redefine yyless() so it works in section 3 code. */
4948
4949
#undef yyless
4950
#define yyless(n) \
4951
  do \
4952
    { \
4953
    /* Undo effects of setting up yytext. */ \
4954
        int yyless_macro_arg = (n); \
4955
        YY_LESS_LINENO(yyless_macro_arg);\
4956
    yytext[yyleng] = yyg->yy_hold_char; \
4957
    yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
4958
    yyg->yy_hold_char = *yyg->yy_c_buf_p; \
4959
    *yyg->yy_c_buf_p = '\0'; \
4960
    yyleng = yyless_macro_arg; \
4961
    } \
4962
  while ( 0 )
4963
4964
/* Accessor  methods (get/set functions) to struct members. */
4965
4966
/* %if-c-only */
4967
/* %if-reentrant */
4968
4969
/** Get the user-defined data for this scanner.
4970
 * @param yyscanner The scanner object.
4971
 */
4972
YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
4973
0
{
4974
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4975
0
    return yyextra;
4976
0
}
4977
4978
/* %endif */
4979
4980
/** Get the current line number.
4981
 * @param yyscanner The scanner object.
4982
 */
4983
int yyget_lineno  (yyscan_t yyscanner)
4984
0
{
4985
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4986
4987
0
        if (! YY_CURRENT_BUFFER)
4988
0
            return 0;
4989
    
4990
0
    return yylineno;
4991
0
}
4992
4993
/** Get the current column number.
4994
 * @param yyscanner The scanner object.
4995
 */
4996
int yyget_column  (yyscan_t yyscanner)
4997
0
{
4998
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4999
5000
0
        if (! YY_CURRENT_BUFFER)
5001
0
            return 0;
5002
    
5003
0
    return yycolumn;
5004
0
}
5005
5006
/** Get the input stream.
5007
 * @param yyscanner The scanner object.
5008
 */
5009
FILE *yyget_in  (yyscan_t yyscanner)
5010
0
{
5011
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5012
0
    return yyin;
5013
0
}
5014
5015
/** Get the output stream.
5016
 * @param yyscanner The scanner object.
5017
 */
5018
FILE *yyget_out  (yyscan_t yyscanner)
5019
0
{
5020
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5021
0
    return yyout;
5022
0
}
5023
5024
/** Get the length of the current token.
5025
 * @param yyscanner The scanner object.
5026
 */
5027
int yyget_leng  (yyscan_t yyscanner)
5028
0
{
5029
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5030
0
    return yyleng;
5031
0
}
5032
5033
/** Get the current token.
5034
 * @param yyscanner The scanner object.
5035
 */
5036
5037
char *yyget_text  (yyscan_t yyscanner)
5038
0
{
5039
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5040
0
    return yytext;
5041
0
}
5042
5043
/* %if-reentrant */
5044
5045
/** Set the user-defined data. This data is never touched by the scanner.
5046
 * @param user_defined The data to be associated with this scanner.
5047
 * @param yyscanner The scanner object.
5048
 */
5049
void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
5050
0
{
5051
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5052
0
    yyextra = user_defined ;
5053
0
}
5054
5055
/* %endif */
5056
5057
/** Set the current line number.
5058
 * @param _line_number line number
5059
 * @param yyscanner The scanner object.
5060
 */
5061
void yyset_lineno (int  _line_number , yyscan_t yyscanner)
5062
0
{
5063
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5064
5065
        /* lineno is only valid if an input buffer exists. */
5066
0
        if (! YY_CURRENT_BUFFER )
5067
0
           YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
5068
    
5069
0
    yylineno = _line_number;
5070
0
}
5071
5072
/** Set the current column.
5073
 * @param _column_no column number
5074
 * @param yyscanner The scanner object.
5075
 */
5076
void yyset_column (int  _column_no , yyscan_t yyscanner)
5077
0
{
5078
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5079
5080
        /* column is only valid if an input buffer exists. */
5081
0
        if (! YY_CURRENT_BUFFER )
5082
0
           YY_FATAL_ERROR( "yyset_column called with no buffer" );
5083
    
5084
0
    yycolumn = _column_no;
5085
0
}
5086
5087
/** Set the input stream. This does not discard the current
5088
 * input buffer.
5089
 * @param _in_str A readable stream.
5090
 * @param yyscanner The scanner object.
5091
 * @see yy_switch_to_buffer
5092
 */
5093
void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
5094
0
{
5095
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5096
0
    yyin = _in_str ;
5097
0
}
5098
5099
void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
5100
0
{
5101
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5102
0
    yyout = _out_str ;
5103
0
}
5104
5105
int yyget_debug  (yyscan_t yyscanner)
5106
0
{
5107
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5108
0
    return yy_flex_debug;
5109
0
}
5110
5111
void yyset_debug (int  _bdebug , yyscan_t yyscanner)
5112
0
{
5113
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5114
0
    yy_flex_debug = _bdebug ;
5115
0
}
5116
5117
/* %endif */
5118
5119
/* %if-reentrant */
5120
/* Accessor methods for yylval and yylloc */
5121
5122
/* %if-bison-bridge */
5123
/* %endif */
5124
5125
/* User-visible API */
5126
5127
/* yylex_init is special because it creates the scanner itself, so it is
5128
 * the ONLY reentrant function that doesn't take the scanner as the last argument.
5129
 * That's why we explicitly handle the declaration, instead of using our macros.
5130
 */
5131
int yylex_init(yyscan_t* ptr_yy_globals)
5132
0
{
5133
0
    if (ptr_yy_globals == NULL){
5134
0
        errno = EINVAL;
5135
0
        return 1;
5136
0
    }
5137
5138
0
    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
5139
5140
0
    if (*ptr_yy_globals == NULL){
5141
0
        errno = ENOMEM;
5142
0
        return 1;
5143
0
    }
5144
5145
    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5146
0
    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5147
5148
0
    return yy_init_globals ( *ptr_yy_globals );
5149
0
}
5150
5151
/* yylex_init_extra has the same functionality as yylex_init, but follows the
5152
 * convention of taking the scanner as the last argument. Note however, that
5153
 * this is a *pointer* to a scanner, as it will be allocated by this call (and
5154
 * is the reason, too, why this function also must handle its own declaration).
5155
 * The user defined value in the first argument will be available to yyalloc in
5156
 * the yyextra field.
5157
 */
5158
int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
5159
0
{
5160
0
    struct yyguts_t dummy_yyguts;
5161
5162
0
    yyset_extra (yy_user_defined, &dummy_yyguts);
5163
5164
0
    if (ptr_yy_globals == NULL){
5165
0
        errno = EINVAL;
5166
0
        return 1;
5167
0
    }
5168
5169
0
    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
5170
5171
0
    if (*ptr_yy_globals == NULL){
5172
0
        errno = ENOMEM;
5173
0
        return 1;
5174
0
    }
5175
5176
    /* By setting to 0xAA, we expose bugs in
5177
    yy_init_globals. Leave at 0x00 for releases. */
5178
0
    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5179
5180
0
    yyset_extra (yy_user_defined, *ptr_yy_globals);
5181
5182
0
    return yy_init_globals ( *ptr_yy_globals );
5183
0
}
5184
5185
/* %endif if-c-only */
5186
5187
/* %if-c-only */
5188
static int yy_init_globals (yyscan_t yyscanner)
5189
0
{
5190
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5191
    /* Initialization is the same as for the non-reentrant scanner.
5192
     * This function is called from yylex_destroy(), so don't allocate here.
5193
     */
5194
5195
0
    yyg->yy_buffer_stack = NULL;
5196
0
    yyg->yy_buffer_stack_top = 0;
5197
0
    yyg->yy_buffer_stack_max = 0;
5198
0
    yyg->yy_c_buf_p = NULL;
5199
0
    yyg->yy_init = 0;
5200
0
    yyg->yy_start = 0;
5201
5202
0
    yyg->yy_start_stack_ptr = 0;
5203
0
    yyg->yy_start_stack_depth = 0;
5204
0
    yyg->yy_start_stack =  NULL;
5205
5206
/* Defined in main.c */
5207
#ifdef YY_STDINIT
5208
    yyin = stdin;
5209
    yyout = stdout;
5210
#else
5211
0
    yyin = NULL;
5212
0
    yyout = NULL;
5213
0
#endif
5214
5215
    /* For future reference: Set errno on error, since we are called by
5216
     * yylex_init()
5217
     */
5218
0
    return 0;
5219
0
}
5220
/* %endif */
5221
5222
/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
5223
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
5224
int yylex_destroy  (yyscan_t yyscanner)
5225
0
{
5226
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5227
5228
    /* Pop the buffer stack, destroying each element. */
5229
0
  while(YY_CURRENT_BUFFER){
5230
0
    yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
5231
0
    YY_CURRENT_BUFFER_LVALUE = NULL;
5232
0
    yypop_buffer_state(yyscanner);
5233
0
  }
5234
5235
  /* Destroy the stack itself. */
5236
0
  yyfree(yyg->yy_buffer_stack , yyscanner);
5237
0
  yyg->yy_buffer_stack = NULL;
5238
5239
    /* Destroy the start condition stack. */
5240
0
        yyfree( yyg->yy_start_stack , yyscanner );
5241
0
        yyg->yy_start_stack = NULL;
5242
5243
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
5244
     * yylex() is called, initialization will occur. */
5245
0
    yy_init_globals( yyscanner);
5246
5247
/* %if-reentrant */
5248
    /* Destroy the main struct (reentrant only). */
5249
0
    yyfree ( yyscanner , yyscanner );
5250
0
    yyscanner = NULL;
5251
/* %endif */
5252
0
    return 0;
5253
0
}
5254
/* %endif */
5255
5256
/*
5257
 * Internal utility routines.
5258
 */
5259
5260
#ifndef yytext_ptr
5261
static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
5262
{
5263
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5264
  (void)yyg;
5265
5266
  int i;
5267
  for ( i = 0; i < n; ++i )
5268
    s1[i] = s2[i];
5269
}
5270
#endif
5271
5272
#ifdef YY_NEED_STRLEN
5273
static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
5274
{
5275
  int n;
5276
  for ( n = 0; s[n]; ++n )
5277
    ;
5278
5279
  return n;
5280
}
5281
#endif
5282
5283
/* %if-tables-serialization definitions */
5284
/* %define-yytables   The name for this specific scanner's tables. */
5285
#define YYTABLES_NAME "yytables"
5286
/* %endif */
5287
5288
/* %ok-for-header */
5289
5290
#line 426 "/src/wireshark/wiretap/ascend_scanner.l"
5291
5292
5293
// NOLINTEND(misc-no-recursion)
5294
5295
/*
5296
 * Turn diagnostics back on, so we check the code that we've written.
5297
 */
5298
DIAG_ON_FLEX()
5299