Coverage Report

Created: 2025-10-13 06:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/sql-parser/src/parser/flex_lexer.cpp
Line
Count
Source
1
#line 1 "flex_lexer.cpp"
2
3
#line 3 "flex_lexer.cpp"
4
5
#define  YY_INT_ALIGNED short int
6
7
/* A lexical scanner generated by flex */
8
9
#define FLEX_SCANNER
10
#define YY_FLEX_MAJOR_VERSION 2
11
#define YY_FLEX_MINOR_VERSION 6
12
#define YY_FLEX_SUBMINOR_VERSION 4
13
#if YY_FLEX_SUBMINOR_VERSION > 0
14
#define FLEX_BETA
15
#endif
16
17
#ifdef yy_create_buffer
18
#define hsql__create_buffer_ALREADY_DEFINED
19
#else
20
0
#define yy_create_buffer hsql__create_buffer
21
#endif
22
23
#ifdef yy_delete_buffer
24
#define hsql__delete_buffer_ALREADY_DEFINED
25
#else
26
0
#define yy_delete_buffer hsql__delete_buffer
27
#endif
28
29
#ifdef yy_scan_buffer
30
#define hsql__scan_buffer_ALREADY_DEFINED
31
#else
32
5.23k
#define yy_scan_buffer hsql__scan_buffer
33
#endif
34
35
#ifdef yy_scan_string
36
#define hsql__scan_string_ALREADY_DEFINED
37
#else
38
#define yy_scan_string hsql__scan_string
39
#endif
40
41
#ifdef yy_scan_bytes
42
#define hsql__scan_bytes_ALREADY_DEFINED
43
#else
44
5.23k
#define yy_scan_bytes hsql__scan_bytes
45
#endif
46
47
#ifdef yy_init_buffer
48
#define hsql__init_buffer_ALREADY_DEFINED
49
#else
50
0
#define yy_init_buffer hsql__init_buffer
51
#endif
52
53
#ifdef yy_flush_buffer
54
#define hsql__flush_buffer_ALREADY_DEFINED
55
#else
56
0
#define yy_flush_buffer hsql__flush_buffer
57
#endif
58
59
#ifdef yy_load_buffer_state
60
#define hsql__load_buffer_state_ALREADY_DEFINED
61
#else
62
10.4k
#define yy_load_buffer_state hsql__load_buffer_state
63
#endif
64
65
#ifdef yy_switch_to_buffer
66
#define hsql__switch_to_buffer_ALREADY_DEFINED
67
#else
68
5.23k
#define yy_switch_to_buffer hsql__switch_to_buffer
69
#endif
70
71
#ifdef yypush_buffer_state
72
#define hsql_push_buffer_state_ALREADY_DEFINED
73
#else
74
#define yypush_buffer_state hsql_push_buffer_state
75
#endif
76
77
#ifdef yypop_buffer_state
78
#define hsql_pop_buffer_state_ALREADY_DEFINED
79
#else
80
0
#define yypop_buffer_state hsql_pop_buffer_state
81
#endif
82
83
#ifdef yyensure_buffer_stack
84
#define hsql_ensure_buffer_stack_ALREADY_DEFINED
85
#else
86
5.23k
#define yyensure_buffer_stack hsql_ensure_buffer_stack
87
#endif
88
89
#ifdef yylex
90
#define hsql_lex_ALREADY_DEFINED
91
#else
92
#define yylex hsql_lex
93
#endif
94
95
#ifdef yyrestart
96
#define hsql_restart_ALREADY_DEFINED
97
#else
98
0
#define yyrestart hsql_restart
99
#endif
100
101
#ifdef yylex_init
102
#define hsql_lex_init_ALREADY_DEFINED
103
#else
104
#define yylex_init hsql_lex_init
105
#endif
106
107
#ifdef yylex_init_extra
108
#define hsql_lex_init_extra_ALREADY_DEFINED
109
#else
110
#define yylex_init_extra hsql_lex_init_extra
111
#endif
112
113
#ifdef yylex_destroy
114
#define hsql_lex_destroy_ALREADY_DEFINED
115
#else
116
#define yylex_destroy hsql_lex_destroy
117
#endif
118
119
#ifdef yyget_debug
120
#define hsql_get_debug_ALREADY_DEFINED
121
#else
122
#define yyget_debug hsql_get_debug
123
#endif
124
125
#ifdef yyset_debug
126
#define hsql_set_debug_ALREADY_DEFINED
127
#else
128
#define yyset_debug hsql_set_debug
129
#endif
130
131
#ifdef yyget_extra
132
#define hsql_get_extra_ALREADY_DEFINED
133
#else
134
#define yyget_extra hsql_get_extra
135
#endif
136
137
#ifdef yyset_extra
138
#define hsql_set_extra_ALREADY_DEFINED
139
#else
140
0
#define yyset_extra hsql_set_extra
141
#endif
142
143
#ifdef yyget_in
144
#define hsql_get_in_ALREADY_DEFINED
145
#else
146
#define yyget_in hsql_get_in
147
#endif
148
149
#ifdef yyset_in
150
#define hsql_set_in_ALREADY_DEFINED
151
#else
152
#define yyset_in hsql_set_in
153
#endif
154
155
#ifdef yyget_out
156
#define hsql_get_out_ALREADY_DEFINED
157
#else
158
#define yyget_out hsql_get_out
159
#endif
160
161
#ifdef yyset_out
162
#define hsql_set_out_ALREADY_DEFINED
163
#else
164
#define yyset_out hsql_set_out
165
#endif
166
167
#ifdef yyget_leng
168
#define hsql_get_leng_ALREADY_DEFINED
169
#else
170
#define yyget_leng hsql_get_leng
171
#endif
172
173
#ifdef yyget_text
174
#define hsql_get_text_ALREADY_DEFINED
175
#else
176
#define yyget_text hsql_get_text
177
#endif
178
179
#ifdef yyget_lineno
180
#define hsql_get_lineno_ALREADY_DEFINED
181
#else
182
#define yyget_lineno hsql_get_lineno
183
#endif
184
185
#ifdef yyset_lineno
186
#define hsql_set_lineno_ALREADY_DEFINED
187
#else
188
#define yyset_lineno hsql_set_lineno
189
#endif
190
191
#ifdef yyget_column
192
#define hsql_get_column_ALREADY_DEFINED
193
#else
194
#define yyget_column hsql_get_column
195
#endif
196
197
#ifdef yyset_column
198
#define hsql_set_column_ALREADY_DEFINED
199
#else
200
#define yyset_column hsql_set_column
201
#endif
202
203
#ifdef yywrap
204
#define hsql_wrap_ALREADY_DEFINED
205
#else
206
2.69k
#define yywrap hsql_wrap
207
#endif
208
209
#ifdef yyget_lval
210
#define hsql_get_lval_ALREADY_DEFINED
211
#else
212
#define yyget_lval hsql_get_lval
213
#endif
214
215
#ifdef yyset_lval
216
#define hsql_set_lval_ALREADY_DEFINED
217
#else
218
#define yyset_lval hsql_set_lval
219
#endif
220
221
#ifdef yyget_lloc
222
#define hsql_get_lloc_ALREADY_DEFINED
223
#else
224
#define yyget_lloc hsql_get_lloc
225
#endif
226
227
#ifdef yyset_lloc
228
#define hsql_set_lloc_ALREADY_DEFINED
229
#else
230
#define yyset_lloc hsql_set_lloc
231
#endif
232
233
#ifdef yyalloc
234
#define hsql_alloc_ALREADY_DEFINED
235
#else
236
20.9k
#define yyalloc hsql_alloc
237
#endif
238
239
#ifdef yyrealloc
240
#define hsql_realloc_ALREADY_DEFINED
241
#else
242
0
#define yyrealloc hsql_realloc
243
#endif
244
245
#ifdef yyfree
246
#define hsql_free_ALREADY_DEFINED
247
#else
248
26.1k
#define yyfree hsql_free
249
#endif
250
251
/* First, we deal with  platform-specific or compiler-specific issues. */
252
253
/* begin standard C headers. */
254
#include <stdio.h>
255
#include <string.h>
256
#include <errno.h>
257
#include <stdlib.h>
258
259
/* end standard C headers. */
260
261
/* flex integer type definitions */
262
263
#ifndef FLEXINT_H
264
#define FLEXINT_H
265
266
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
267
268
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
269
270
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
271
 * if you want the limit (max/min) macros for int types. 
272
 */
273
#ifndef __STDC_LIMIT_MACROS
274
#define __STDC_LIMIT_MACROS 1
275
#endif
276
277
#include <inttypes.h>
278
typedef int8_t flex_int8_t;
279
typedef uint8_t flex_uint8_t;
280
typedef int16_t flex_int16_t;
281
typedef uint16_t flex_uint16_t;
282
typedef int32_t flex_int32_t;
283
typedef uint32_t flex_uint32_t;
284
#else
285
typedef signed char flex_int8_t;
286
typedef short int flex_int16_t;
287
typedef int flex_int32_t;
288
typedef unsigned char flex_uint8_t; 
289
typedef unsigned short int flex_uint16_t;
290
typedef unsigned int flex_uint32_t;
291
292
/* Limits of integral types. */
293
#ifndef INT8_MIN
294
#define INT8_MIN               (-128)
295
#endif
296
#ifndef INT16_MIN
297
#define INT16_MIN              (-32767-1)
298
#endif
299
#ifndef INT32_MIN
300
#define INT32_MIN              (-2147483647-1)
301
#endif
302
#ifndef INT8_MAX
303
#define INT8_MAX               (127)
304
#endif
305
#ifndef INT16_MAX
306
#define INT16_MAX              (32767)
307
#endif
308
#ifndef INT32_MAX
309
#define INT32_MAX              (2147483647)
310
#endif
311
#ifndef UINT8_MAX
312
#define UINT8_MAX              (255U)
313
#endif
314
#ifndef UINT16_MAX
315
#define UINT16_MAX             (65535U)
316
#endif
317
#ifndef UINT32_MAX
318
#define UINT32_MAX             (4294967295U)
319
#endif
320
321
#ifndef SIZE_MAX
322
#define SIZE_MAX               (~(size_t)0)
323
#endif
324
325
#endif /* ! C99 */
326
327
#endif /* ! FLEXINT_H */
328
329
/* begin standard C++ headers. */
330
331
/* TODO: this is always defined, so inline it */
332
#define yyconst const
333
334
#if defined(__GNUC__) && __GNUC__ >= 3
335
#define yynoreturn __attribute__((__noreturn__))
336
#else
337
#define yynoreturn
338
#endif
339
340
/* Returned upon end-of-file. */
341
2.57k
#define YY_NULL 0
342
343
/* Promotes a possibly negative, possibly signed char to an
344
 *   integer in range [0..255] for use as an array index.
345
 */
346
25.5M
#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
347
348
/* An opaque pointer. */
349
#ifndef YY_TYPEDEF_YY_SCANNER_T
350
#define YY_TYPEDEF_YY_SCANNER_T
351
typedef void* yyscan_t;
352
#endif
353
354
/* For convenience, these vars (plus the bison vars far below)
355
   are macros in the reentrant scanner. */
356
35.5k
#define yyin yyg->yyin_r
357
20.9k
#define yyout yyg->yyout_r
358
0
#define yyextra yyg->yyextra_r
359
4.16M
#define yyleng yyg->yyleng_r
360
42.9M
#define yytext yyg->yytext_r
361
0
#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
362
0
#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
363
0
#define yy_flex_debug yyg->yy_flex_debug_r
364
365
/* Enter a start condition.  This macro really ought to take a parameter,
366
 * but we do it the disgusting crufty way forced on us by the ()-less
367
 * definition of BEGIN.
368
 */
369
54.7k
#define BEGIN yyg->yy_start = 1 + 2 *
370
/* Translate the current start state into a value that can be later handed
371
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
372
 * compatibility.
373
 */
374
#define YY_START ((yyg->yy_start - 1) / 2)
375
#define YYSTATE YY_START
376
/* Action number for EOF rule of a given start state. */
377
7.90k
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
378
/* Special action meaning "start processing a new file". */
379
0
#define YY_NEW_FILE yyrestart( yyin , yyscanner )
380
20.9k
#define YY_END_OF_BUFFER_CHAR 0
381
382
/* Size of default input buffer. */
383
#ifndef YY_BUF_SIZE
384
#ifdef __ia64__
385
/* On IA-64, the buffer size is 16k, not 8k.
386
 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
387
 * Ditto for the __ia64__ case accordingly.
388
 */
389
#define YY_BUF_SIZE 32768
390
#else
391
0
#define YY_BUF_SIZE 16384
392
#endif /* __ia64__ */
393
#endif
394
395
/* The state buf must be large enough to hold one state per character in the main buffer.
396
 */
397
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
398
399
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
400
#define YY_TYPEDEF_YY_BUFFER_STATE
401
typedef struct yy_buffer_state *YY_BUFFER_STATE;
402
#endif
403
404
#ifndef YY_TYPEDEF_YY_SIZE_T
405
#define YY_TYPEDEF_YY_SIZE_T
406
typedef size_t yy_size_t;
407
#endif
408
409
0
#define EOB_ACT_CONTINUE_SCAN 0
410
5.39k
#define EOB_ACT_END_OF_FILE 1
411
8.34k
#define EOB_ACT_LAST_MATCH 2
412
    
413
    #define YY_LESS_LINENO(n)
414
    #define YY_LINENO_REWIND_TO(ptr)
415
    
416
/* Return all but the first "n" matched characters back to the input stream. */
417
#define yyless(n) \
418
  do \
419
    { \
420
    /* Undo effects of setting up yytext. */ \
421
        int yyless_macro_arg = (n); \
422
        YY_LESS_LINENO(yyless_macro_arg);\
423
    *yy_cp = yyg->yy_hold_char; \
424
    YY_RESTORE_YY_MORE_OFFSET \
425
    yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
426
    YY_DO_BEFORE_ACTION; /* set up yytext again */ \
427
    } \
428
  while ( 0 )
429
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
430
431
#ifndef YY_STRUCT_YY_BUFFER_STATE
432
#define YY_STRUCT_YY_BUFFER_STATE
433
struct yy_buffer_state
434
  {
435
  FILE *yy_input_file;
436
437
  char *yy_ch_buf;    /* input buffer */
438
  char *yy_buf_pos;   /* current position in input buffer */
439
440
  /* Size of input buffer in bytes, not including room for EOB
441
   * characters.
442
   */
443
  int yy_buf_size;
444
445
  /* Number of characters read into yy_ch_buf, not including EOB
446
   * characters.
447
   */
448
  int yy_n_chars;
449
450
  /* Whether we "own" the buffer - i.e., we know we created it,
451
   * and can realloc() it to grow it, and should free() it to
452
   * delete it.
453
   */
454
  int yy_is_our_buffer;
455
456
  /* Whether this is an "interactive" input source; if so, and
457
   * if we're using stdio for input, then we want to use getc()
458
   * instead of fread(), to make sure we stop fetching input after
459
   * each newline.
460
   */
461
  int yy_is_interactive;
462
463
  /* Whether we're considered to be at the beginning of a line.
464
   * If so, '^' rules will be active on the next match, otherwise
465
   * not.
466
   */
467
  int yy_at_bol;
468
469
    int yy_bs_lineno; /**< The line count. */
470
    int yy_bs_column; /**< The column count. */
471
472
  /* Whether to try to fill the input buffer when we reach the
473
   * end of it.
474
   */
475
  int yy_fill_buffer;
476
477
  int yy_buffer_status;
478
479
12.1k
#define YY_BUFFER_NEW 0
480
4.16k
#define YY_BUFFER_NORMAL 1
481
  /* When an EOF's been seen but there's still some text to process
482
   * then we mark the buffer as YY_EOF_PENDING, to indicate that we
483
   * shouldn't try reading from the input source any more.  We might
484
   * still have a bunch of tokens to match, though, because of
485
   * possible backing-up.
486
   *
487
   * When we actually see the EOF, we change the status to "new"
488
   * (via yyrestart()), so that the user can continue scanning by
489
   * just pointing yyin at a new input file.
490
   */
491
0
#define YY_BUFFER_EOF_PENDING 2
492
493
  };
494
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
495
496
/* We provide macros for accessing buffer states in case in the
497
 * future we want to put the buffer states in a more general
498
 * "scanner state".
499
 *
500
 * Returns the top of the stack, or NULL.
501
 */
502
26.1k
#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
503
26.1k
                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
504
26.1k
                          : NULL)
505
/* Same as previous macro, but useful when we know that the buffer stack is not
506
 * NULL or when we need an lvalue. For internal use only.
507
 */
508
92.9k
#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
509
510
void yyrestart ( FILE *input_file , yyscan_t yyscanner );
511
void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
512
YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
513
void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
514
void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
515
void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
516
void yypop_buffer_state ( yyscan_t yyscanner );
517
518
static void yyensure_buffer_stack ( yyscan_t yyscanner );
519
static void yy_load_buffer_state ( yyscan_t yyscanner );
520
static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
521
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
522
523
YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
524
YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
525
YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
526
527
void *yyalloc ( yy_size_t , yyscan_t yyscanner );
528
void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
529
void yyfree ( void * , yyscan_t yyscanner );
530
531
#define yy_new_buffer yy_create_buffer
532
#define yy_set_interactive(is_interactive) \
533
  { \
534
  if ( ! YY_CURRENT_BUFFER ){ \
535
        yyensure_buffer_stack (yyscanner); \
536
    YY_CURRENT_BUFFER_LVALUE =    \
537
            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
538
  } \
539
  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
540
  }
541
#define yy_set_bol(at_bol) \
542
  { \
543
  if ( ! YY_CURRENT_BUFFER ){\
544
        yyensure_buffer_stack (yyscanner); \
545
    YY_CURRENT_BUFFER_LVALUE =    \
546
            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
547
  } \
548
  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
549
  }
550
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
551
552
/* Begin user sect3 */
553
554
2.69k
#define hsql_wrap(yyscanner) (/*CONSTCOND*/1)
555
#define YY_SKIP_YYWRAP
556
typedef flex_uint8_t YY_CHAR;
557
558
typedef int yy_state_type;
559
560
4.20M
#define yytext_ptr yytext_r
561
562
static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
563
static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
564
static int yy_get_next_buffer ( yyscan_t yyscanner );
565
static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
566
567
/* Done after the current pattern has been matched and before the
568
 * corresponding action - sets up yytext.
569
 */
570
#define YY_DO_BEFORE_ACTION \
571
4.16M
  yyg->yytext_ptr = yy_bp; \
572
4.16M
  yyleng = (int) (yy_cp - yy_bp); \
573
4.16M
  yyg->yy_hold_char = *yy_cp; \
574
4.16M
  *yy_cp = '\0'; \
575
4.16M
  yyg->yy_c_buf_p = yy_cp;
576
#define YY_NUM_RULES 189
577
14.7k
#define YY_END_OF_BUFFER 190
578
/* This struct is not used in this scanner,
579
   but its presence is necessary. */
580
struct yy_trans_info
581
  {
582
  flex_int32_t yy_verify;
583
  flex_int32_t yy_nxt;
584
  };
585
static const flex_int16_t yy_accept[1368] =
586
    {   0,
587
        0,    0,  186,  186,    2,    2,  190,  188,    4,    4,
588
      188,  188,  177,  184,  177,  177,  181,  177,  177,  177,
589
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
590
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
591
      183,  183,  183,  183,  177,  186,  187,    2,    2,    3,
592
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
593
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
594
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
595
        2,    2,    2,    2,    2,    4,  172,    0,    1,    0,
596
      179,  178,  181,  174,  173,  171,  175,  183,  183,  183,
597
598
      183,  183,  183,   12,  183,  183,  183,   19,  183,  183,
599
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
600
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
601
      183,  183,  183,   73,  183,  183,   76,   85,  183,  183,
602
      183,  183,  183,  183,  183,  183,  183,  103,  183,  183,
603
      108,  111,  112,  183,  183,  183,  183,  183,  183,  183,
604
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
605
      183,  183,  183,  149,  183,  183,  183,  183,  183,  183,
606
      183,  183,  183,  176,  186,  185,    2,    2,    2,    2,
607
        1,    2,    2,    2,    2,    2,    2,    2,    2,    2,
608
609
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
610
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
611
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
612
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
613
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
614
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
615
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
616
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
617
        2,    2,    2,    2,    2,    2,  182,    0,  178,    5,
618
      183,    7,  183,  183,   10,  183,   13,  183,  183,  183,
619
620
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
621
      183,  183,  183,   34,  183,  183,  183,  183,  183,  183,
622
      183,  183,  183,  183,  183,   49,  183,  183,  183,  183,
623
      183,  183,  183,  183,  183,  183,   60,  183,  183,  183,
624
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
625
       80,  183,  183,   88,  183,  183,  183,  183,  183,  183,
626
      183,  183,  183,  183,  104,  183,  183,  183,  109,  183,
627
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
628
      183,  183,  183,  183,  183,  183,  183,  135,  183,  183,
629
      183,  183,  183,  183,  183,  183,  183,  183,  183,  150,
630
631
      183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
632
      183,  183,  183,  183,    2,    2,    2,    2,    2,    2,
633
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
634
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
635
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
636
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
637
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
638
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
639
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
640
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
641
642
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
643
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
644
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
645
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
646
        2,    2,    0,  183,  183,  183,  183,  183,  183,  183,
647
      183,  183,   20,  183,   22,   23,   24,  183,  183,  183,
648
       29,  183,  183,  183,   32,   35,  183,  183,  183,  183,
649
      183,   41,  183,  183,  183,   46,   47,  183,  183,  183,
650
      183,  183,  183,  183,  183,   57,  183,  183,  183,  183,
651
       63,   64,  183,  183,   68,  183,   70,   71,  183,  183,
652
653
      183,  183,  183,  183,   84,  183,   87,   89,   90,  183,
654
       92,  183,  183,   95,  183,  183,  183,  183,  183,  106,
655
      183,  183,  183,  183,  115,  183,  183,  118,  183,  183,
656
      183,  183,  123,  183,  183,  183,  183,  183,  129,  183,
657
      183,  183,  183,  137,  138,  183,  183,  183,  183,  183,
658
      145,  146,  147,  183,  152,  183,  183,  183,  183,  183,
659
      183,  183,  183,  183,  162,  183,  164,  183,  166,  167,
660
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
661
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
662
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
663
664
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
665
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
666
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
667
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
668
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
669
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
670
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
671
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
672
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
673
        2,    2,    2,    2,    2,    2,    2,    2,    0,    6,
674
675
        8,  183,   11,  183,   15,  183,  183,  183,  183,  183,
676
      183,  183,  183,  183,   31,  183,  183,  183,  183,  183,
677
      183,   40,  183,  183,  183,  183,  183,  183,  183,  183,
678
      183,  183,  183,   56,   58,  183,  183,  183,  183,   66,
679
      183,   72,   74,  183,   77,   78,  183,  183,  183,  183,
680
       91,   93,  183,   96,   97,  183,  100,  183,  183,  183,
681
      183,  113,  114,  183,  183,  183,  183,  183,  122,  183,
682
      183,  183,  127,  183,  183,  183,  183,  136,  183,  183,
683
      183,  142,  183,  183,  183,  183,  183,  155,  183,  183,
684
      183,  159,  183,  183,  183,  165,  168,    2,    2,    2,
685
686
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
687
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
688
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
689
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
690
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
691
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
692
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
693
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
694
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
695
        2,    2,    2,    2,    2,    2,    0,  183,   14,  183,
696
697
       17,  183,  183,  183,   25,   27,  183,   30,  183,  183,
698
      183,  183,  183,   39,  183,   43,  183,   45,  183,   50,
699
       51,  183,   53,  183,  183,  183,  183,   62,   65,   67,
700
       69,   75,   79,  183,  183,  183,   86,   94,   98,  101,
701
      183,  105,  183,  110,  183,  183,  183,  183,  183,  183,
702
      125,  183,  183,  130,  132,  134,  183,  140,  183,  143,
703
      183,  183,  183,  183,  183,  156,  157,  158,  160,  183,
704
      183,    2,    2,    2,    2,    2,    2,    2,    2,    2,
705
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
706
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
707
708
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
709
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
710
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
711
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
712
        2,    2,    2,    2,    2,    2,    0,    9,   16,   18,
713
       21,  183,   26,   28,  183,  183,  183,   37,   38,  183,
714
      183,  183,   52,   54,   55,  183,   61,   81,  183,  183,
715
       99,  102,  183,  183,  183,  183,  120,  121,  183,  183,
716
      183,  131,  133,  183,  141,  183,  183,  183,  183,  183,
717
      161,  163,    2,    2,    2,    2,    2,    2,    2,    2,
718
719
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
720
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
721
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
722
        2,    2,    2,    2,    2,    2,    2,    2,    0,  183,
723
        0,   33,  183,   42,   44,   48,  183,  183,   83,  107,
724
      183,  183,  183,  183,  126,  128,  139,  183,  183,  183,
725
      153,  183,    2,    2,    2,    2,    2,    2,    2,    2,
726
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
727
        2,    2,    2,    2,    2,    2,    0,  183,    0,  183,
728
       59,   82,  183,  117,  119,  183,  144,  148,  183,  154,
729
730
        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
731
        2,    2,    2,    2,    0,    0,    0,   36,  116,  124,
732
      183,    2,    2,    2,    2,    2,    2,    2,    0,    0,
733
      169,  151,    2,    2,    2,    2,    0,    0,    2,    2,
734
        0,    0,    2,    2,    0,    0,    2,    2,    0,    0,
735
        2,    2,    0,    0,    2,    2,    0,  170,    2,    2,
736
        0,    2,    0,    2,  180,    2,    0
737
    } ;
738
739
static const YY_CHAR yy_ec[256] =
740
    {   0,
741
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
742
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
743
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744
        1,    2,    4,    5,    1,    1,    6,    1,    7,    6,
745
        6,    6,    6,    6,    8,    9,    6,   10,   11,   12,
746
       13,   14,   15,   16,   17,   18,   19,    6,    6,   20,
747
       21,   22,    6,    1,   23,   24,   25,   26,   27,   28,
748
       29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
749
       39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
750
        6,    1,    6,    6,   49,    1,   50,   51,   52,   53,
751
752
       54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
753
       64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
754
       74,   75,    6,   76,    6,    1,    1,    1,    1,    1,
755
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
756
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
757
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
758
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
759
        1,    1,    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
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
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
768
        1,    1,    1,    1,    1
769
    } ;
770
771
static const YY_CHAR yy_meta[77] =
772
    {   0,
773
        1,    1,    2,    1,    3,    1,    4,    1,    1,    5,
774
        5,    5,    5,    5,    5,    5,    5,    5,    5,    1,
775
        1,    1,    5,    5,    5,    5,    5,    5,    5,    5,
776
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
777
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
778
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
779
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
780
        5,    5,    5,    5,    5,    1
781
    } ;
782
783
static const flex_int16_t yy_base[1375] =
784
    {   0,
785
        0,    0,  852,  842,   76,    0,  842, 8955,  151,  153,
786
      786,    0, 8955, 8955,  149,  148,  160,  159,  778,  775,
787
      156,  156,  165,  210,  202,  255,  151,  163,  265,  152,
788
      171,  215,  218,  244,  295,  257,    0,  309,  349,  392,
789
      163,  279,  226,  180,  676,    0,  741,    0,  237,  251,
790
      696,  702,    0,    0,  243,  378,  451,  237,  682,  680,
791
      470,  546,  600,  652,  700,  752,  384,  458,  795,  466,
792
      532,  533,  534,  846,  895,  944,  547,  602,  990, 1042,
793
      307,  650,  587,  651,  596,  301, 8955,  666, 8955,  636,
794
     1107, 1117, 1128, 8955, 8955, 8955, 8955,    0,  218,  243,
795
796
      300,  328,  250,  305,  379,  315,  319,    0,  376,  354,
797
      694,  389,  345,  440,  710,  387,  388,  436,  439,  476,
798
      463,  763,  460,  465,  480,  542,  481,  501,  521,  535,
799
      591,  539,  546,    0,  584,  581,  627,  592,  607,  637,
800
      657,  658,  717,  646,  658,  686,  681,  734,  705,  720,
801
      717,    0,  751,  739,  757,  745,  764,  766,  755,  810,
802
      769,  792,  770,  810,  811,  808,  817,  803,  822,  823,
803
      842,  827,  820,  842,  871,  861,  858,  862,  866,  897,
804
      872,  859,  879, 8955,    0, 8955,    0,  396,    0,  631,
805
        0,  614, 1138, 1148, 1159,    0,    0,    0,    0,  942,
806
807
      945, 1029,  990, 1156, 1034, 1155, 1202,  934, 1030, 1168,
808
     1199, 1218, 1258, 1251, 1270, 1285, 1337, 1334, 1345, 1372,
809
     1272, 1422, 1391, 1471, 1399, 1443, 1397, 1481, 1483, 1492,
810
     1519, 1531, 1535, 1546, 1577, 1576, 1594, 1624, 1673, 1623,
811
     1629, 1648, 1673, 1721, 1773, 1677, 1719, 1765, 1774, 1814,
812
     1817, 1838, 1861, 1830, 1874, 1897, 1712, 1909, 1941, 1730,
813
     1916, 1993, 1946, 1972, 1990, 2042, 2015, 2033, 2059, 2081,
814
     2093, 2095, 2127, 2123, 2145, 2147, 2183, 2230, 2191, 2177,
815
     2222, 2239, 2265, 2274, 2287,    0, 8955,  601, 2352,    0,
816
      882,    0,  903,  900,    0,  933,    0,  940,  954,  941,
817
818
      960,  988, 1001, 1156, 1038, 1038, 1050, 1044, 1137, 1162,
819
     1145, 1147, 1166, 1153, 1166, 1203, 1216, 1260, 1221, 1220,
820
     1207, 1226, 1215, 1229, 1247,    0, 1280, 1309, 1317, 1309,
821
     1321, 1317, 1317, 1339, 1344, 1356, 1369, 1376, 1378, 1390,
822
     1379, 1412, 1422, 1423, 1426, 1437, 1436, 1449, 1451, 1480,
823
     1537, 1469, 1488,    0, 1490, 1516, 1530, 1537, 1593, 1538,
824
     1543, 1532, 1555, 1557,    0, 1592, 1602, 1606, 1613, 1638,
825
     1640, 1630, 1682, 1672, 1753, 1727, 1734, 1739, 1770, 1779,
826
     1761, 1782, 1779, 1776, 1795, 1790, 1838,    0, 1827, 1824,
827
     1867, 1880, 1875, 1876, 1887, 1888, 1886, 1918, 1932,    0,
828
829
     1933, 1974, 1934, 1993, 1948, 1999, 1987, 1998, 2046, 2027,
830
     2032, 2064, 2045, 2074,    0,  600, 2362, 2355, 2356, 2357,
831
     2358, 2281, 2392, 2400, 2401, 2412, 2440, 2448, 2453, 2455,
832
     2469, 2518, 2494, 2519, 2532, 2568, 2544, 2580, 2578, 2609,
833
     2621, 2623, 2637, 2662, 2680, 2677, 2712, 2721, 2730, 2756,
834
     2771, 2769, 2774, 2810, 2819, 2824, 2854, 2826, 2829, 2869,
835
     2880, 2880, 2902, 2921, 2934, 2943, 2968, 2979, 2992, 3015,
836
     3017, 3032, 3058, 3066, 3080, 3092, 3104, 3106, 3118, 3130,
837
     3145, 3149, 3173, 3174, 3193, 3218, 3270, 3196, 3232, 3267,
838
     3231, 3292, 3295, 3320, 3327, 3341, 3355, 3366, 3380, 3395,
839
840
     3447, 3395, 3497, 3430, 3473, 3414, 3493, 3532, 3541, 3544,
841
     3551, 3575, 3576, 3595, 3598, 3600, 3630, 3644, 3649, 3605,
842
     3659, 3683, 3697, 3701, 3737, 3741, 3749, 3754, 3781, 3797,
843
     3798, 3830, 3844, 3856, 3844, 3885, 3888, 3891, 3926, 3935,
844
     3944, 3970,  582, 2085, 2089, 2090, 2091, 2104, 2130, 2148,
845
     2147, 2171,    0, 2192,    0,    0, 2193, 2197, 2215, 2208,
846
        0, 2218, 2230, 2245, 2238,    0, 2248, 2273, 2277, 2283,
847
     2303, 2290, 2306, 2302, 2356,    0,    0, 2365, 2359, 2360,
848
     2357, 2403, 2428, 2431, 2429,    0, 2440, 2455, 2466, 2476,
849
        0,    0, 2485, 2475,    0, 2511,    0, 2510, 2526, 2517,
850
851
     2555, 2564, 2569, 2600,    0, 2586,    0,    0,    0, 2591,
852
        0, 2601, 2626,    0, 2634, 2660, 2633, 2625, 2663,    0,
853
     2681, 2686, 2675, 2678,    0, 2688, 2716,    0, 2728, 2739,
854
     2740, 2738,    0, 2757, 2777, 2773, 2775, 2798,    0, 2791,
855
     2795, 2834, 2868,    0,    0, 2862, 2877, 2882, 2892, 2883,
856
        0,    0, 2883, 2904,    0, 2925, 2915, 2923, 2921, 2945,
857
     2931, 2950, 2956, 2982,    0, 2973,    0, 2992,    0, 2982,
858
      544, 3979, 3988, 4017, 4026, 4039, 4026, 4051, 4076, 4077,
859
     4089, 4111, 4119, 4133, 4145, 4159, 4171, 4197, 4185, 4199,
860
     4206, 4223, 4249, 4235, 4249, 4270, 4293, 4306, 4336, 4344,
861
862
     4362, 4261, 4385, 4386, 4404, 4430, 4444, 4458, 4472, 4486,
863
     4502, 4528, 4519, 4545, 4553, 4567, 4579, 4597, 4605, 4619,
864
     4631, 4649, 4657, 4656, 4684, 4692, 4685, 4727, 4700, 4736,
865
     4752, 4797, 4766, 4794, 4808, 4827, 4838, 4841, 4857, 4871,
866
     4896, 4904, 4909, 4911, 4925, 4951, 4963, 4968, 4976, 4998,
867
     5017, 5036, 5051, 5077, 5080, 5089, 5115, 5133, 5134, 5159,
868
     5168, 5187, 5209, 5212, 5238, 5250, 5241, 5263, 4970, 5294,
869
     5289, 5302, 5307, 5024, 5321, 5343, 5346, 5351, 5365, 5387,
870
     5392, 5396, 5422, 5441, 5438, 5464, 5483, 5497, 5494, 5525,
871
     5449, 5542, 5537, 5576, 5577, 5578, 5590, 5592,  543,    0,
872
873
        0, 3009,    0, 3040,    0, 3046, 3035, 3059, 3061, 3090,
874
     3085, 3094, 3110, 3142,    0, 3135, 3144, 3152, 3176, 3195,
875
     3210,    0, 3208, 3211, 3239, 3254, 3253, 3264, 3267, 3271,
876
     3286, 3302, 3313,    0,    0, 3300, 3323, 3316, 3337, 3342,
877
     3363,    0,    0, 3364,    0,    0, 3370, 3398, 3442, 3411,
878
        0,    0, 3420,    0,    0, 3434, 3438, 3458, 3443, 3460,
879
     3454,    0,    0, 3472, 3458, 3489, 3478, 3485,    0, 3510,
880
     3512, 3519,    0, 3530, 3550, 3567, 3575,    0, 3597, 3607,
881
     3640, 3624, 3639, 3640, 3660, 3662, 3663,    0, 3694, 3704,
882
     3707,    0, 3695, 3717, 3718,    0,    0,  536, 5622, 5625,
883
884
     5633, 5636, 5676, 5684, 5685, 5710, 5738, 5729, 5764, 5763,
885
     5764, 5792, 5814, 5816, 5808, 5828, 5846, 5864, 5862, 5882,
886
     5890, 5912, 5920, 5919, 5944, 5946, 5968, 5970, 5994, 5999,
887
     6019, 6022, 6024, 6048, 6060, 6063, 6089, 6067, 6105, 6116,
888
     6108, 6146, 6149, 6152, 6160, 6190, 6203, 6201, 6232, 6245,
889
     6246, 6276, 6287, 6290, 6315, 6320, 6334, 6358, 6376, 6367,
890
     6407, 6411, 6419, 6434, 6459, 6460, 6488, 6489, 6513, 6514,
891
     6527, 6539, 6542, 6567, 6581, 6568, 6593, 6596, 6622, 6635,
892
     6627, 6667, 6670, 6691, 6719, 6683, 6727, 6739, 6752, 6744,
893
     6780, 6778, 6799, 6825, 6822, 6843,  526, 3718,    0, 3748,
894
895
        0, 3753, 3765, 3751, 3753,    0, 3765,    0, 3790, 3801,
896
     3812, 3805, 3799,    0, 3822,    0, 3822,    0, 3819,    0,
897
        0, 3862,    0, 3875, 3873, 3892, 3903,    0,    0,    0,
898
        0,    0,    0, 3903, 3930, 3942,    0,    0, 3932,    0,
899
     3948,    0, 3968,    0, 3972, 3992, 4001, 4031, 4018, 4032,
900
        0, 4044, 4049, 4061, 4077,    0, 4091,    0, 4094,    0,
901
     4107, 4109, 4115, 4110, 4136,    0,    0,    0,    0, 4134,
902
     4144,  525, 6860, 6865, 6867, 6881, 6897, 6910, 6919, 6935,
903
     6944, 6953, 6977, 6986, 6995, 7026, 7030, 7039, 7070, 7081,
904
     7084, 7112, 7125, 7126, 7156, 7167, 7169, 7178, 7203, 7212,
905
906
     7214, 7221, 7256, 7257, 7265, 7298, 7301, 7307, 7342, 7350,
907
     7369, 7364, 7394, 7396, 7410, 7419, 7438, 7452, 7471, 7480,
908
     7500, 7509, 7524, 7538, 7516, 7559, 7565, 7589, 7603, 7612,
909
     7631, 7645, 7654, 7673, 7687, 7701, 7720, 7743, 7744, 7774,
910
     7785, 7788, 7804, 7818, 7834, 7837,  529,    0,    0,    0,
911
        0, 4157,    0,    0,  436, 4161, 4177,    0,    0, 4177,
912
     4196, 4219,    0,    0,    0, 4258,    0,    0, 4276, 4280,
913
        0,    0, 4284, 4299, 4293, 4301,    0,    0, 4319, 4304,
914
     4316,    0,    0, 4320,    0, 4325, 4333, 4341, 4361, 4364,
915
        0,    0,  527, 7848, 7872, 7878, 7881, 7901, 7916, 7925,
916
917
     7955, 7940, 7970, 7969, 7984, 7999, 8008, 8038, 8033, 8052,
918
     8074, 8013, 8054, 8084, 8108, 8095, 8131, 8139, 8150, 8151,
919
     8156, 8185, 8188, 8199, 8218, 8232, 8251, 8262, 8281, 8292,
920
     8295, 8311, 8335, 8341, 8358, 8380, 8388, 8393,  526, 4361,
921
     4434,    0, 4360,    0,    0,    0, 4377, 4374,    0,    0,
922
     4384, 4398, 4412, 4415,    0,    0,    0, 4405, 4419, 4429,
923
        0, 4436,  524, 8418, 4781, 8406, 8432, 8444, 8446, 8468,
924
     8480, 8498, 8506, 8524, 8546, 8551, 8555, 8568, 8590, 8598,
925
     8603, 8612, 8642, 8644, 8647, 8656,  514,  438, 4433, 4446,
926
        0,    0, 4434,    0,    0, 4469,    0,    0, 4477,    0,
927
928
      506, 8710, 4493, 8688, 8696, 8697, 8731, 8739, 8742, 8745,
929
     8775, 8783, 8795, 8800,  470, 4558, 4499,    0,    0,    0,
930
     4522,  468, 4698, 4536, 8803, 8808, 8844, 8842,  465, 4563,
931
     8955,    0,  418, 4565,    0, 8851,  418, 4572,  390, 4578,
932
      388, 4583,  386, 4591,  347, 4609,  343, 4617,  338, 4628,
933
      335, 4636,  334, 4653,  332, 4679,  303, 8955,  293,    0,
934
      299,  286,  248,  243, 8955,    0, 8955, 8924, 8929,  201,
935
     8934, 8939, 8944, 8949
936
    } ;
937
938
static const flex_int16_t yy_def[1375] =
939
    {   0,
940
     1367,    1, 1368, 1368, 1367,    5, 1367, 1367, 1367, 1367,
941
     1367, 1369, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
942
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
943
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
944
     1370, 1370, 1370, 1370, 1367, 1371, 1367, 1372, 1372, 1367,
945
     1372, 1373, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
946
     1374, 1374,   62,   62,   62,   63,   65,   62,   65,   62,
947
       62,   62,   62,   63,   63,   63,   62,   62,   62,   62,
948
       65,   62,   62,   62, 1372, 1367, 1367, 1369, 1367, 1367,
949
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1370, 1370, 1370,
950
951
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
952
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
953
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
954
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
955
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
956
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
957
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
958
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
959
     1370, 1370, 1370, 1367, 1371, 1367, 1372, 1372, 1372, 1373,
960
     1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,   62,
961
962
       62,   62,   65,   65,   65,   65,   65,   65,   62,   62,
963
       65,   65,   65,   62,   62,   62,   65,   65,   65,   62,
964
       65,   65,   65,   62,   65,   65,   62,   65,   62,   65,
965
       62,   62,   65,   65,   65,   65,   62,   62,   65,   65,
966
       62,   62,   62,   62,   65,   65,   65,   65,   65,   65,
967
       65,   65,   65,   65,   65,   65,   62,   62,   62,   62,
968
       65,   65,   65,   65,   65,   65,   62,   62,   62,   62,
969
       62,   62,   65,   62,   62,   62,   63,   62,   62,   62,
970
       65,   62,   62,   62,   62, 1372, 1367, 1367, 1367, 1370,
971
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
972
973
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
974
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
975
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
976
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
977
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
978
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
979
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
980
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
981
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
982
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
983
984
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
985
     1370, 1370, 1370, 1370, 1372, 1372, 1372,   62,   62,   62,
986
       62,   65,   65,   65,   65,   62,   62,   62,   62,   65,
987
       65,   62,   62,   62,   62,   62,   62,   62,   65,   65,
988
       62,   65,   65,   62,   62,   62,   62,   62,   62,   62,
989
       62,   62,   62,   62,   62,   62,   62,   65,   65,   65,
990
       65,   62,   62,   65,   62,   62,   65,   65,   65,   65,
991
       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
992
       65,   65,   65,   62,   62,   62,   62,   62,   62,   62,
993
       62,   62,   62,   62,   65,   65,   65,   62,   62,   62,
994
995
       62,   65,   65,   65,   65,   65,   62,   62,   62,   62,
996
       65,   65,   62,   62,   62,   62,   62,   62,   62,   65,
997
       65,   65,   65,   65,   65,   65,   62,   62,   65,   65,
998
       62,   62,   62,   62,   65,   65,   65,   65,   65,   65,
999
       65,   65, 1367, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1000
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1001
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1002
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1003
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1004
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1005
1006
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1007
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1008
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1009
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1010
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1011
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1012
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1013
     1372,   65,   65,   62,   62,   62,   65,   62,   65,   62,
1014
       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
1015
       65,   62,   62,   62,   65,   65,   65,   65,   65,   65,
1016
1017
       65,   62,   65,   65,   65,   65,   65,   65,   65,   65,
1018
       65,   65,   62,   62,   62,   62,   62,   62,   62,   62,
1019
       62,   62,   62,   65,   65,   65,   62,   62,   65,   65,
1020
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
1021
       62,   62,   62,   65,   65,   65,   62,   62,   62,   62,
1022
       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
1023
       62,   62,   62,   62,   62,   62,   62,   62,   65,   65,
1024
       62,   62,   62,   65,   62,   62,   62,   62,   62,   62,
1025
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
1026
       62,   62,   62,   62,   62,   62,   62,   65, 1367, 1370,
1027
1028
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1029
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1030
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1031
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1032
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1033
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1034
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1035
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1036
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1037
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1372,   65,   65,
1038
1039
       65,   65,   62,   62,   62,   62,   62,   62,   62,   65,
1040
       65,   62,   62,   62,   65,   62,   62,   62,   65,   62,
1041
       62,   62,   62,   65,   62,   62,   62,   62,   62,   65,
1042
       62,   62,   62,   62,   62,   62,   62,   65,   65,   65,
1043
       65,   65,   65,   65,   65,   65,   62,   65,   65,   65,
1044
       65,   65,   65,   65,   62,   65,   65,   65,   65,   65,
1045
       65,   65,   62,   62,   62,   62,   62,   62,   62,   62,
1046
       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
1047
       65,   65,   65,   65,   65,   65,   65,   62,   62,   62,
1048
       62,   65,   65,   65,   65,   65, 1367, 1370, 1370, 1370,
1049
1050
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1051
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1052
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1053
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1054
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1055
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1056
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1057
     1370, 1372,   62,   62,   65,   65,   65,   62,   62,   65,
1058
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
1059
       65,   65,   65,   65,   65,   65,   62,   62,   65,   65,
1060
1061
       62,   65,   65,   65,   65,   65,   65,   65,   65,   62,
1062
       62,   62,   62,   65,   65,   65,   65,   65,   65,   65,
1063
       62,   62,   62,   62,   65,   65,   65,   65,   65,   65,
1064
       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
1065
       65,   65,   65,   65,   65,   65, 1367, 1370, 1370, 1370,
1066
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1067
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1068
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1069
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1070
     1370, 1370, 1372,   65,   65,   65,   65,   62,   62,   62,
1071
1072
       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
1073
       62,   65,   65,   65,   65,   65,   65,   65,   65,   62,
1074
       62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
1075
       65,   65,   65,   65,   62,   62,   62,   62, 1367, 1370,
1076
     1367, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1077
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1078
     1370, 1370, 1372,   62, 1372,   62,   62,   62,   62,   62,
1079
       62,   62,   62,   62,   62,   65,   65,   62,   62,   62,
1080
       62,   62,   62,   62,   62,   62, 1367, 1370, 1367, 1370,
1081
     1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
1082
1083
     1372,   62, 1372,   62,   62,   62,   65,   65,   65,   65,
1084
       65,   65,   62,   62, 1367, 1367, 1367, 1370, 1370, 1370,
1085
     1370, 1372, 1372, 1372,   62,   62,   62,   65, 1367, 1367,
1086
     1367, 1370, 1372, 1372, 1372,   65, 1367, 1367, 1372, 1372,
1087
     1367, 1367, 1372, 1372, 1367, 1367, 1372, 1372, 1367, 1367,
1088
     1372, 1372, 1367, 1367, 1372, 1372, 1367, 1367, 1372, 1372,
1089
     1367, 1372, 1367, 1372, 1367, 1372,    0, 1367, 1367, 1367,
1090
     1367, 1367, 1367, 1367
1091
    } ;
1092
1093
static const flex_int16_t yy_nxt[9032] =
1094
    {   0,
1095
        8,    9,   10,   11,   12,   13,   14,   15,   16,   17,
1096
       17,   17,   17,   17,   17,   17,   17,   17,   17,   18,
1097
       19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
1098
       29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
1099
       39,   40,   41,   42,   43,   37,   44,   37,    8,   21,
1100
       22,   23,   24,   25,   26,   27,   28,   29,   30,   31,
1101
       32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
1102
       42,   43,   37,   44,   37,   45,   48,   49,   50,   51,
1103
       52,   53,   54,   55,   56,   57,   57,   57,   57,   57,
1104
       57,   57,   57,   57,   57,   58,   59,   60,   61,   62,
1105
1106
       63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
1107
       73,   74,   75,   76,   77,   78,   79,   80,   81,   82,
1108
       83,   77,   84,   77,   48,   61,   62,   63,   64,   65,
1109
       66,   67,   68,   69,   70,   71,   72,   73,   74,   75,
1110
       76,   77,   78,   79,   80,   81,   82,   83,   77,   84,
1111
       77,   85,   86,   86,   86,   86,   89,   91,   91,   91,
1112
       91,   91,   91,   91,   91,   91,   91,   90,   92,   93,
1113
       93,   93,   93,   93,   93,   93,   93,   93,   93,   94,
1114
       95,   99,  105,  100,  129,  131,  106,  109,  139,  101,
1115
      130,  102,  107,  132,  110,  103,  104,  140,  176,  133,
1116
1117
      177,  111,  108,  178,  112,   98,  183,  113,   99,  105,
1118
      100,  129,  131,  106,  109,  139,  101,  130,  102,  107,
1119
      132,  110,  103,  104,  140,  176,  133,  177,  111,  108,
1120
      178,  112,  114,  183,  113,  119,  115,  120,  188,   86,
1121
      116,  141,  121,  290,  144,  142,  117,  122,  145,  118,
1122
      191,  143,   86,   86,  146,  181,  182,  196,  197,  114,
1123
     1366,  192,  119,  115,  120, 1365,  147,  116,  141,  121,
1124
      290,  144,  142,  117,  122,  145,  118,  123,  143,  156,
1125
      148,  146,  181,  182,  291,  124,  149,  150,  125,  296,
1126
      157,  126,  134,  147,  127, 1364,  158,  128,  135,  136,
1127
1128
      137,  179,   86,   86,  123,  138,  156,  148, 1363,  180,
1129
     1362,  291,  124,  149,  150,  125,  296,  157,  126,  134,
1130
     1361,  127,  151,  158,  128,  135,  136,  137,  179,  297,
1131
      152,  159,  138,  292,  153,  160,  180,  154,  155,  161,
1132
      200,  293,  278,  301,  279,  162, 1359,  280, 1357,  151,
1133
      294, 1355,  200,  295, 1353,  302,  297,  152,  159, 1351,
1134
      292,  153,  160, 1349,  154,  155,  161,  200,  293,  278,
1135
      301,  279,  162,  163,  280,  164,  305,  294,  165,  200,
1136
      295,  166,  302,  167,  312,  168,  169,  193,  193,  193,
1137
      193,  193,  193,  193,  193,  193,  193,  188,   86, 1347,
1138
1139
      163, 1345,  164,  305, 1343,  165,  298,  299,  166,  303,
1140
      167,  312,  168,  169,  170,  310,  304,  231,  171,  200,
1141
      300,  172,  173,  232,  200,  311,  320,  321,  174,  200,
1142
      322,  175, 1341,  298,  299, 1339,  303, 1241, 1241, 1316,
1143
     1316,  170,  310,  304,  231,  171,  200,  300,  172,  173,
1144
      232,  200,  311,  320,  321,  174,  200,  322,  175,  194,
1145
      195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
1146
      187,  187,  323,  187,  187,  187,  187,  187,  187,  324,
1147
      233,  313, 1337, 1333,  200, 1329,  314,  327,  234,  187,
1148
      187,  187,  200,  333,  235,  201,  200,  202,  334,  323,
1149
1150
      325,  326,  241,  203,  200,  204,  324,  233,  313,  205,
1151
      206,  200,  200,  314,  327,  234,  335,  338, 1322,  200,
1152
      333,  235,  201,  200,  202,  334, 1315,  325,  326,  241,
1153
      203,  200,  204, 1301,  339, 1287,  205,  206, 1263,  200,
1154
     1239, 1193, 1147,  335,  338,  187,  187,  187, 1072,  187,
1155
      187,  187,  187,  187,  187,  997,  898,  340,  242,  243,
1156
      246,  339,  200,  244,  247,  187,  187,  187,  200,  245,
1157
      248,  341,  207,  200,  344,  336,  208,  200,  200,  200,
1158
      200,  337,  209,  200,  340,  242,  243,  246,  345,  200,
1159
      244,  247,  210,  200,  799,  200,  245,  248,  341,  207,
1160
1161
      200,  344,  336,  208,  200,  200,  200,  200,  337,  209,
1162
      200,  671,  543,  200,  346,  345,  283,  284,  347,  210,
1163
      200,  187,  211,  200,  261,  416,  200,  352,  262,  212,
1164
      200,  342,  263,  200,  343,  415,  213,  353,  264,  214,
1165
      200,  346,  215,  283,  284,  347,  200,  288,  200,  211,
1166
      200,  261,  348,  200,  352,  262,  212,  200,  342,  263,
1167
      200,  343,  349,  213,  353,  264,  214,  350,  351,  215,
1168
      287,  286,  281,  200,  216,  200,  200,  285,  217,  348,
1169
      282,  200,  218,  354,  355,  361,  200,  200,  219,  349,
1170
      356,  220,  357,  362,  350,  351,  200,  200,  200,  281,
1171
1172
      199,  216,  198,  200,  285,  217,  187,  282,  200,  218,
1173
      354,  355,  361,  200,  200,  219,  189,  356,  220,  357,
1174
      362,  363,  364,  200,  200,  200,  200,  306,  307,  308,
1175
      200,  309,  315,  221,  316,  222,  200,  317,  367,  358,
1176
      223,  359,  368,  318,  369,  224,  200,  186,  363,  364,
1177
      319,  184,  360,  200,  306,  307,  308,  200,  309,  315,
1178
      221,  316,  222,  200,  317,  367,  358,  223,  359,  368,
1179
      318,  369,  224,  200,  225,  365,  370,  319,  366,  360,
1180
      371,  200,  226,  372,  373,  227,  374,  328,  228,  329,
1181
      377,  229,  375,  330,  230,   97,  376,  382,   96,  385,
1182
1183
      331,  225,  365,  370,  332,  366,   87,  371,  200,  226,
1184
      372,  373,  227,  374,  328,  228,  329,  377,  229,  375,
1185
      330,  230,  236,  376,  382,  383,  385,  331,  237,  238,
1186
      239,  332,  378,  389,  386,  240,  384,  379,  391,  392,
1187
      200, 1367,  393,  387,  394,  380,  395,  390,   47,  236,
1188
      381,  388,  383,  398,  399,  237,  238,  239,   47,  378,
1189
      389,  386,  240,  384,  379,  391,  392,  200,  249,  393,
1190
      387,  394,  380,  395,  390,  200,  396,  381,  388,  400,
1191
      398,  399,  250,  406,  403,  200, 1367,  397,  251,  252,
1192
     1367,  404,  407,  401,  405,  249, 1367, 1367,  412,  408,
1193
1194
      413,  414,  200,  396, 1367,  409,  400, 1367,  544,  250,
1195
      406,  403,  200,  402,  397,  251,  252,  200,  404,  407,
1196
      401,  405,  253,  410,  200,  412,  408,  413,  414,  545,
1197
      254,  200,  409,  546,  255,  544,  411,  256,  257, 1367,
1198
      402, 1367, 1367, 1367,  200, 1367, 1367, 1367, 1367,  253,
1199
      410,  200, 1367, 1367, 1367,  547,  545,  254,  200, 1367,
1200
      546,  255,  429,  411,  256,  257,  258,  200,  200,  200,
1201
      418,  200,  200,  200,  200,  200,  548,  259,  200,  200,
1202
      200,  200,  547,  260,  549,  550,  200, 1367,  200,  429,
1203
      551,  200, 1367,  258,  200,  200,  200,  418,  200,  200,
1204
1205
      200,  200,  200,  548,  259,  200,  200,  200,  200, 1367,
1206
      260,  549,  550,  200,  265,  200,  266,  551,  200,  267,
1207
      200,  552,  268,  420,  269,  200,  270,  271, 1367, 1367,
1208
      200,  421, 1367, 1367,  553,  200,  200, 1367, 1367, 1367,
1209
     1367,  265, 1367,  266, 1367, 1367,  267,  200,  552,  268,
1210
      420,  269,  200,  270,  271,  200,  200,  200,  421,  200,
1211
      200,  553,  200,  200,  272,  200,  430,  200,  273,  200,
1212
      419,  274,  275,  424,  200,  200,  200,  557,  276,  200,
1213
      558,  277,  200,  200,  559,  560,  200,  200,  200, 1367,
1214
     1367,  272,  200,  430,  200,  273,  200,  419,  274,  275,
1215
1216
      424,  200,  200,  200,  557,  276,  200,  558,  277, 1367,
1217
     1367,  559,  560, 1367, 1367,  200,   91,   91,   91,   91,
1218
       91,   91,   91,   91,   91,   91,  289,  289,  289,  289,
1219
      289,  289,  289,  289,  289,  289,   92,   93,   93,   93,
1220
       93,   93,   93,   93,   93,   93,   93,  193,  193,  193,
1221
      193,  193,  193,  193,  193,  193,  193,  417,  417,  417,
1222
      417,  417,  417,  417,  417,  417,  417,  194,  195,  195,
1223
      195,  195,  195,  195,  195,  195,  195,  195,  422,  425,
1224
      554,  423,  555,  561,  562,  563,  564, 1367,  200,  200,
1225
      200,  200,  565,  566,  200,  200,  200,  556,  200,  567,
1226
1227
      200,  200, 1367, 1367,  200,  422,  425,  554,  423,  555,
1228
      561,  562,  563,  564,  200,  200,  200,  200,  200,  565,
1229
      566,  200,  200,  200,  556,  200,  567,  200,  200,  426,
1230
      427,  200,  431,  568,  200,  200, 1367,  200,  569,  432,
1231
      433,  200,  200,  428,  200,  572,  573,  200,  574,  575,
1232
     1367,  200,  576,  200, 1367,  577,  426,  427,  200,  431,
1233
      568,  200,  200,  200,  200,  569,  432,  433, 1367,  200,
1234
      428,  200,  572,  573,  200,  574,  575,  438,  200,  576,
1235
      200,  200,  577,  578, 1367,  200,  570,  439, 1367, 1367,
1236
      200,  434,  435,  436, 1367,  437,  200,  200,  200, 1367,
1237
1238
      200,  571,  579,  200,  438,  200,  200,  200,  200,  440,
1239
      578,  200,  452,  570,  439,  200,  200,  200,  434,  435,
1240
      436,  200,  437,  200,  200,  200,  441,  200,  571,  579,
1241
      200,  442,  200,  200,  200,  580,  440, 1367,  200,  452,
1242
     1367,  581,  200,  200,  200, 1367, 1367, 1367,  200,  582,
1243
     1367, 1367, 1367,  441,  583, 1367,  584,  585,  442,  443,
1244
     1367,  444,  580, 1367,  445,  586,  587,  200,  581,  200,
1245
      446, 1367,  200,  448,  449, 1367,  582,  447,  200,  200,
1246
      200,  583,  200,  584,  585,  200,  443,  450,  444,  588,
1247
      200,  445,  586,  587,  200,  589,  200,  446,  200,  200,
1248
1249
      448,  449,  200,  590,  447,  200,  200,  200,  451,  200,
1250
      591,  592,  200,  593,  450,  455,  588,  200,  200, 1367,
1251
     1367,  594,  589,  200,  200,  200,  200,  200, 1367,  200,
1252
      590,  200,  461,  463,  200,  451,  200,  591,  592,  200,
1253
      593,  595,  455,  200,  200,  200,  453,  454,  594, 1367,
1254
      200,  200,  596,  200,  200,  200, 1367,  200,  200,  461,
1255
      463,  200,  200,  200,  597,  598,  200,  200,  595,  599,
1256
      200,  200,  600,  453,  454,  601,  462,  602,  200,  596,
1257
     1367, 1367,  200,  200,  200, 1367, 1367, 1367,  200,  200,
1258
     1367,  597,  598, 1367,  200,  456,  599,  457, 1367,  600,
1259
1260
     1367,  458,  601,  462,  602,  200,  603,  200,  459,  200,
1261
      200,  606,  460,  200,  464,  200,  200,  200, 1367,  466,
1262
      465,  200,  456,  607,  457,  467,  200,  200,  458,  200,
1263
     1367,  608,  200,  603,  200,  459,  200,  200,  606,  460,
1264
      200,  464,  609,  200,  200,  200,  466,  465,  200,  200,
1265
      607, 1367,  467,  200,  200,  468,  200,  200,  608,  200,
1266
      610,  200,  611,  604,  200,  200,  614,  469,  200,  609,
1267
      200,  615,  200,  605,  616,  470,  200,  200,  471,  200,
1268
      200,  472,  468, 1367,  200, 1367,  200,  610,  200,  611,
1269
      604,  200,  200,  614,  469,  200,  617,  200,  615,  618,
1270
1271
      605,  616,  470, 1367,  200,  471,  200,  200,  472,  200,
1272
      200,  200,  200,  200,  619,  612,  200,  200,  200,  473,
1273
      200,  200,  200,  617,  474,  613,  618, 1367, 1367, 1367,
1274
      200, 1367, 1367, 1367, 1367,  620,  200,  200,  200,  200,
1275
      200,  619,  612,  200,  200,  621,  473,  200,  200,  200,
1276
      200,  474,  613,  622,  200,  200,  200,  200,  480,  481,
1277
      200,  475,  620,  200,  623,  200,  624,  200,  200,  625,
1278
      200, 1367,  621, 1367,  200,  200, 1367,  200,  200, 1367,
1279
      622,  200,  200,  200,  200,  480,  481,  200,  475, 1367,
1280
      200,  623,  200,  624,  482,  200,  625,  200,  476,  200,
1281
1282
      483,  200,  200,  200,  626,  200,  200,  628,  477,  200,
1283
      200,  200,  200,  478,  479, 1367,  489,  200,  200,  200,
1284
     1367,  482,  200,  627, 1367,  476,  200,  483, 1367, 1367,
1285
      200,  626, 1367,  200,  628,  477,  200,  200,  500,  200,
1286
      478,  479,  200,  489,  200,  200,  200,  200,  200,  200,
1287
      627,  200,  200,  484,  490,  485,  503,  200,  200,  200,
1288
      504,  631,  632, 1367,  200,  500,  200,  200, 1367,  200,
1289
     1367, 1367,  633, 1367,  200,  200,  200,  629,  200,  200,
1290
      484,  490,  485,  503,  200,  200,  200,  504,  631,  632,
1291
      630,  200, 1367,  200,  200,  486,  634,  487,  200,  633,
1292
1293
      491,  635,  636,  200,  629,  200,  200,  200,  488,  200,
1294
      200,  637,  638,  200,  200,  492,  639,  630,  200,  200,
1295
     1367,  640,  486,  634,  487,  200,  641,  491,  635,  636,
1296
     1367, 1367,  200,  200,  200,  488,  200,  200,  637,  638,
1297
      200,  200,  492,  639, 1367,  200,  200,  200,  640,  200,
1298
      495, 1367,  200,  641,  200,  493, 1367,  200,  494,  200,
1299
      496, 1367,  200,  200,  642,  200,  643, 1367,  644, 1367,
1300
      200,  200, 1367,  200,  200,  200,  200,  495,  200,  200,
1301
     1367,  200,  493,  200,  200,  494,  200,  496,  497,  200,
1302
      200,  642,  200,  643,  200,  644,  200,  200,  200,  498,
1303
1304
      200,  200,  200, 1367,  645,  200,  200,  200, 1367,  200,
1305
      200, 1367, 1367,  646,  200,  497,  647,  648, 1367,  200,
1306
      649,  200, 1367,  200, 1367,  650,  498,  651,  200, 1367,
1307
      200,  645,  200,  200,  200,  200,  200,  200,  499,  200,
1308
      646,  200,  200,  647,  648,  200,  200,  649,  501,  200,
1309
     1367,  505,  650,  652,  651,  200,  200,  200,  653,  200,
1310
     1367,  200,  200,  502,  200,  499,  200,  200,  654,  200,
1311
      657,  200,  200, 1367,  510,  501,  200,  200,  505,  200,
1312
      652,  200,  200,  200,  660,  653,  200,  200,  200, 1367,
1313
      502,  200, 1367, 1367,  200,  654, 1367,  657,  200, 1367,
1314
1315
      655,  510, 1367, 1367,  200,  511,  200,  200,  200,  656,
1316
     1367,  660,  200,  200,  200,  506,  512,  200,  200,  513,
1317
      507,  661,  662,  200, 1367,  200,  200,  655,  508,  658,
1318
      200,  659,  511,  509,  200,  200,  656,  517,  200,  200,
1319
      663,  200,  506,  512,  200,  200,  513,  507,  661,  662,
1320
      200,  518,  200,  200, 1367,  508,  658,  200,  659,  200,
1321
      509,  200,  200,  519,  517,  200,  514,  663,  200,  200,
1322
      664,  665,  200,  666,  669,  515, 1367,  200,  518,  200,
1323
     1367,  520,  200,  516, 1367,  200,  200,  200,  200,  200,
1324
      519, 1367, 1367,  514, 1367,  200,  200,  664,  665,  667,
1325
1326
      666,  669,  515,  668,  200,  200,  200,  200,  520,  200,
1327
      516,  200,  200,  670,  200,  522,  200,  200,  523,  200,
1328
      521,  200,  200,  200,  800,  200,  667,  200,  801,  200,
1329
      668,  200,  200, 1367,  200, 1367,  802,  803,  200,  200,
1330
      670,  200,  522,  804,  200,  523,  200,  521,  200,  526,
1331
      200,  800,  200,  200,  200,  801,  200, 1367,  200,  200,
1332
      200,  524,  200,  802,  803,  805,  200,  200,  200,  200,
1333
      804,  200,  525,  200,  806,  200,  526,  200, 1367,  527,
1334
      200,  200,  807,  200,  528, 1367,  200,  200,  524,  200,
1335
     1367,  200,  805,  200,  200, 1367,  200,  808,  200,  525,
1336
1337
      200,  806,  200,  200,  200,  529,  527,  535,  200,  807,
1338
      200,  528,  200,  200,  809,  810,  534,  200,  200,  200,
1339
      200,  200,  200,  200,  808,  530, 1367,  200, 1367, 1367,
1340
      200,  811,  529, 1367,  535, 1367, 1367,  200, 1367,  200,
1341
      200,  809,  810,  534,  200,  812,  200,  813,  200,  200,
1342
      200, 1367,  530,  531,  200,  536,  200,  200,  811,  814,
1343
      532,  537,  200,  533,  200,  538,  200,  200, 1367,  200,
1344
      815,  816,  812, 1367,  813,  200,  200, 1367,  539,  817,
1345
      531,  818,  536,  200,  200,  200,  814,  532,  537,  200,
1346
      533,  540,  538,  200,  200,  200,  200,  815,  816, 1367,
1347
1348
      200,  200,  200,  200,  200,  539,  817,  819,  818,  542,
1349
      200,  200,  200,  200,  674,  541,  200,  200,  540,  820,
1350
      200,  200,  200,  200,  821,  822,  200,  200,  200,  823,
1351
      824,  200,  825,  200,  819, 1367,  542,  200,  200, 1367,
1352
      200,  674,  541,  200,  200, 1367,  820,  200,  200, 1367,
1353
      200,  821,  822,  200, 1367, 1367,  823,  824, 1367,  825,
1354
      200,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1355
      289,  417,  417,  417,  417,  417,  417,  417,  417,  417,
1356
      417,  200,  672,  200,  673,  200,  200,  200,  200,  826,
1357
      827,  200,  200,  200,  200, 1367,  828,  829, 1367,  830,
1358
1359
     1367,  200,  200,  200,  200, 1367, 1367, 1367,  200,  672,
1360
      200,  673,  200,  200,  200,  200,  826,  827,  200,  200,
1361
      200,  200,  675,  828,  829,  200,  830,  200,  200,  200,
1362
      200,  200,  200,  200,  200,  200,  200,  200,  200, 1367,
1363
      200,  200,  200, 1367,  831,  200,  200, 1367,  676,  675,
1364
      832, 1367,  200,  833,  200,  834, 1367, 1367,  200,  200,
1365
      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
1366
      677,  831,  200,  200,  200,  676,  200,  832,  200,  200,
1367
      833,  835,  834,  679,  200,  200,  200, 1367,  680,  200,
1368
      200,  836,  678,  200,  200,  200,  837,  677,  838,  200,
1369
1370
      200,  200,  681,  200,  200,  200,  200,  839,  835,  200,
1371
      679,  200,  840,  200,  200,  680,  200,  200,  836,  678,
1372
      200,  200,  200,  837,  200,  838,  200,  200, 1367,  681,
1373
      200,  200, 1367,  685,  839, 1367,  200, 1367, 1367,  840,
1374
      200,  200,  682, 1367,  683,  200,  841,  200,  200,  200,
1375
      842,  200,  843, 1367,  200,  200,  844,  200,  200,  684,
1376
      685,  686,  200, 1367,  200,  200,  687,  200,  200,  682,
1377
      200,  683,  200,  841,  200,  200,  200,  842,  200,  843,
1378
      200,  200,  200,  844, 1367,  200,  684, 1367,  686,  200,
1379
      689,  200,  200,  687,  200,  200, 1367,  200,  200, 1367,
1380
1381
      845,  200,  690,  846,  200,  200,  200,  200,  847,  688,
1382
      200,  200, 1367,  200,  200, 1367,  200,  689,  691,  850,
1383
     1367,  200, 1367,  200, 1367,  200,  200,  845,  848,  690,
1384
      846,  200,  851,  200,  852,  847,  688,  200,  200,  849,
1385
      200,  200,  200,  200,  200,  691,  850,  693,  692,  200,
1386
      200,  200,  853,  200,  200,  848,  200,  200,  200,  851,
1387
      854,  852,  857,  694,  858, 1367,  849,  200,  200,  200,
1388
      695,  200,  200, 1367,  693,  692,  200,  200,  200,  853,
1389
     1367,  200,  200,  200,  200,  200, 1367,  854,  200,  857,
1390
      694,  858,  696,  859,  200,  200, 1367,  695,  200,  200,
1391
1392
      855,  856,  697,  698,  200,  860,  200,  200,  200,  200,
1393
      200, 1367,  861,  200,  862,  200,  200,  863,  699,  696,
1394
      859, 1367,  864,  200, 1367,  200,  200,  855,  856,  697,
1395
      698, 1367,  860,  200,  200,  200,  700,  200,  200,  861,
1396
      200,  862,  200,  200,  863,  699,  865,  701,  200,  864,
1397
      200,  200, 1367,  200,  866, 1367,  200,  200,  200, 1367,
1398
      200,  867,  868,  700,  869,  200,  200,  200, 1367,  200,
1399
     1367,  702, 1367,  865,  701,  200,  200, 1367,  200,  703,
1400
     1367,  866,  200,  200,  200,  200,  200,  200,  867,  868,
1401
     1367,  869,  200,  200,  200,  705,  870,  200,  702,  200,
1402
1403
      200,  200,  200,  200,  200,  200,  703,  200,  704,  200,
1404
      706,  871,  872,  200, 1367,  200,  873,  200, 1367,  200,
1405
      200,  874,  705,  870,  200,  875,  200,  200,  200,  200,
1406
      876,  200,  200, 1367,  200,  704,  200,  706,  871,  872,
1407
      200,  707,  200,  873,  200,  200,  200,  200,  874,  200,
1408
      708, 1367,  875, 1367,  200,  200,  200,  876,  877,  200,
1409
      200,  200,  711,  200,  200,  200,  710,  200,  707,  200,
1410
      200,  200,  200,  200,  200, 1367,  200,  708,  709, 1367,
1411
      200,  200,  200,  200,  200,  877,  200,  200,  200,  711,
1412
      200,  200,  200,  710,  878,  879,  200,  200,  200, 1367,
1413
1414
      200,  200,  200,  880,  200,  709,  714,  200,  712,  200,
1415
      200,  200,  881,  200,  200,  200,  200,  200,  882,  883,
1416
      713,  878,  879,  884,  715,  200,  200,  200,  200,  200,
1417
      880,  200,  200,  714, 1367,  712,  200,  200,  200,  881,
1418
      200,  200,  200,  200,  885,  882,  883,  713,  200,  886,
1419
      884,  715,  200,  200,  716,  200,  200,  887,  888,  200,
1420
      717,  200, 1367,  889,  200,  200,  200,  890,  718,  200,
1421
      200,  885,  891,  200, 1367,  200,  886,  719,  892,  200,
1422
      200,  716,  893,  200,  887,  888, 1367,  717,  200,  200,
1423
      889,  200, 1367,  200,  890,  718,  200,  200, 1367,  891,
1424
1425
      200,  720,  721,  200,  719,  892,  200,  200,  200,  893,
1426
     1367,  894,  200,  200,  200,  895,  200, 1367,  896,  200,
1427
     1367, 1367,  897, 1367,  200,  200, 1367,  200,  720,  721,
1428
      200, 1367,  200, 1367,  722,  200, 1367,  200,  894,  200,
1429
      200,  200,  895,  200,  723,  896,  200,  724,  200,  897,
1430
      200,  200,  200,  200,  200,  200,  998, 1367,  200,  200,
1431
      200,  722,  200,  200,  200, 1367,  999, 1367,  200, 1367,
1432
      200,  723, 1000,  725,  724,  200, 1001,  200,  200, 1367,
1433
      200, 1002,  200,  998,  200,  200, 1003,  200,  200,  200,
1434
      200, 1367,  200,  999,  200,  200,  200,  726,  727, 1000,
1435
1436
      725, 1367,  200, 1001,  200,  200,  200, 1367, 1002, 1367,
1437
      200,  200,  200, 1003, 1004,  200,  728, 1367,  729,  200,
1438
     1005,  200,  200,  200,  726,  727,  200, 1367,  200,  200,
1439
      730,  200,  731,  200,  200, 1006,  200,  200,  200,  200,
1440
      200, 1004,  200,  728,  732,  729, 1007, 1005,  200,  200,
1441
      200, 1367,  200,  200,  733,  200,  200,  730, 1367,  731,
1442
      200,  200, 1006,  200,  200,  200,  200,  200, 1008,  200,
1443
     1009,  732,  734, 1007, 1010,  200,  200,  200,  200,  200,
1444
      735,  733,  200,  200,  200,  200, 1367,  200, 1011,  200,
1445
      200,  200, 1367,  200,  200, 1008, 1367, 1009, 1012,  734,
1446
1447
      737, 1010, 1367,  200,  200,  200,  200,  735,  200,  200,
1448
      200,  200,  200,  200,  736, 1011,  200,  200,  200,  200,
1449
      200,  200,  200,  738,  742, 1012,  200,  737, 1013,  200,
1450
     1367,  200,  200,  200, 1367,  200, 1014,  200, 1015,  200,
1451
      200,  736,  200,  739,  200,  200,  200,  200,  200,  200,
1452
      738,  742, 1016,  200,  200, 1013,  200,  200,  200,  200,
1453
      743,  200,  200, 1014,  200, 1015,  200,  200,  200,  200,
1454
      739,  200,  745, 1367, 1017,  200, 1367,  200,  200, 1016,
1455
     1018,  200, 1367, 1019,  200,  200, 1367,  743,  200,  200,
1456
     1020,  200,  740,  200,  200,  200,  200,  200, 1367,  745,
1457
1458
      200, 1017,  741,  200,  200,  200,  200, 1018, 1021,  744,
1459
     1019, 1367, 1022,  200, 1367, 1367,  200, 1020,  200,  740,
1460
      200,  200,  200,  200,  200,  200, 1023,  200,  200,  741,
1461
      200,  200, 1024,  200,  746, 1021,  744, 1025,  200, 1022,
1462
      200,  200,  747,  200, 1026,  200,  200, 1367,  200,  200,
1463
      200, 1027,  200, 1023, 1367,  200,  200, 1028,  200, 1024,
1464
      748,  746,  200, 1367, 1025,  200,  200,  200,  200,  747,
1465
     1029, 1026,  200,  200,  200, 1367,  200,  200, 1027, 1367,
1466
      749,  200, 1030,  200, 1028, 1367,  200,  748,  200,  200,
1467
      200, 1031,  751,  200,  200,  750,  200, 1029, 1367,  200,
1468
1469
      200,  200,  200,  200, 1367, 1032,  752,  749,  200, 1030,
1470
      200, 1033,  200,  200, 1367,  200,  200,  200, 1031,  751,
1471
     1367,  200,  750,  200, 1034,  200,  200,  200,  200,  200,
1472
      756,  200, 1032,  752,  753,  200, 1367,  200, 1033,  200,
1473
      200,  200, 1367,  200, 1037, 1038, 1367,  761,  200,  200,
1474
     1367, 1034,  200,  200,  200,  200, 1367,  756,  200,  200,
1475
     1039,  753,  200,  200,  759,  200, 1367,  200,  200,  754,
1476
      200, 1037, 1038,  200,  761,  200,  200,  200, 1040, 1367,
1477
     1041,  200, 1035,  200, 1042, 1036,  200, 1039,  755, 1043,
1478
      200,  759,  200,  200, 1367, 1044,  754,  200, 1045, 1046,
1479
1480
      200,  760,  200, 1367,  200, 1040,  200, 1041,  200, 1035,
1481
      200, 1042, 1036,  200, 1047,  755, 1043, 1048,  200,  762,
1482
      200,  757, 1044,  200, 1049, 1045, 1046, 1367,  760,  200,
1483
      200, 1367,  200,  200,  758,  200, 1050,  200, 1051,  200,
1484
      200, 1047,  200, 1367, 1048,  200,  762, 1367,  757, 1052,
1485
      200, 1049, 1053, 1367,  763, 1367,  200,  200,  200,  200,
1486
     1367,  758,  200, 1050,  200, 1051,  200,  200,  200,  200,
1487
      200,  200, 1054,  765,  200, 1367, 1052,  200,  200, 1053,
1488
      200,  763,  764, 1367,  766,  200,  200,  200, 1367,  200,
1489
      200,  200, 1055, 1367,  200,  200,  200,  200,  200, 1054,
1490
1491
      765,  200,  768, 1367,  200,  200,  200,  200,  200,  764,
1492
      200,  766,  200,  200,  200,  767, 1056,  200,  200, 1055,
1493
      200,  200,  200,  200,  770,  200,  200, 1057,  200,  768,
1494
      200,  769, 1058,  200,  200,  200,  200,  200,  774,  200,
1495
      200,  200,  767, 1056,  200,  200,  200,  200,  200,  200,
1496
      200,  770,  200,  200, 1057,  200,  200,  200,  769, 1058,
1497
      200,  200, 1059,  200, 1060,  774,  200,  200,  200,  771,
1498
      200,  200,  200,  200,  200,  200,  200,  200, 1061,  200,
1499
      200, 1062, 1063,  200, 1064,  200,  773,  200,  772, 1059,
1500
      200, 1060,  200,  200,  200,  200,  771,  200, 1065,  200,
1501
1502
      775,  200,  200,  200,  200, 1061,  200,  200, 1062, 1063,
1503
     1367, 1064,  200,  773, 1367,  772,  200,  200,  200,  200,
1504
     1066,  200,  200,  200,  776, 1065,  200,  775,  200, 1067,
1505
      777,  200,  200, 1068,  200, 1069,  200,  200,  778, 1070,
1506
     1071,  200,  200,  200, 1148,  200,  200, 1066, 1367, 1367,
1507
      200,  776, 1367, 1367, 1367,  200, 1067,  777, 1367,  200,
1508
     1068,  200, 1069,  200,  200,  778, 1070, 1071,  200,  200,
1509
      200, 1148,  200,  200,  200,  781,  780,  200,  779,  200,
1510
      200,  200,  200, 1149,  200,  200,  200, 1367, 1150, 1367,
1511
      200, 1151, 1152, 1153, 1367,  200, 1367,  200, 1154,  200,
1512
1513
      200,  200,  781,  780,  200,  779,  200,  200,  200,  200,
1514
     1149,  200,  200,  200,  200, 1150,  782,  200, 1151, 1152,
1515
     1153,  200,  200,  783,  200, 1154,  200,  200,  200, 1367,
1516
      200, 1155,  784, 1367,  785, 1156, 1157,  200, 1158, 1367,
1517
     1159,  200,  200,  782,  200, 1160, 1161, 1367,  200, 1367,
1518
      783,  200, 1367,  200, 1162,  200,  200,  200, 1155,  784,
1519
      200,  785, 1156, 1157,  200, 1158,  786, 1159,  787,  200,
1520
      200,  200, 1160, 1161,  200, 1367,  200,  200,  789,  790,
1521
      788, 1162,  200,  200,  200, 1367,  200,  200, 1163,  200,
1522
      200, 1367,  200,  786, 1367,  787, 1367,  200, 1367, 1367,
1523
1524
     1367,  200,  200,  200,  200,  789,  790,  788, 1367,  200,
1525
     1164,  200,  792,  200, 1165, 1163,  200,  200,  200,  200,
1526
      200,  200, 1166,  200,  200,  200,  200,  791,  200,  200,
1527
      200,  200, 1367,  200, 1367,  793,  200, 1164, 1167,  792,
1528
     1367, 1165, 1168, 1367, 1367,  200, 1367,  200,  200, 1166,
1529
      200,  200,  200,  200,  791,  200, 1169,  200,  200,  200,
1530
      200,  200,  793,  200, 1170, 1167,  200,  794,  200, 1168,
1531
      795,  200, 1171,  797,  796,  200, 1367,  200, 1367,  200,
1532
      200, 1172, 1367, 1169,  200, 1367,  200, 1367,  200,  200,
1533
     1173, 1170, 1367,  200,  794,  200, 1367,  795,  200, 1171,
1534
1535
      797,  796,  200,  200,  200,  200,  200,  200, 1172,  798,
1536
      200,  200,  200, 1174,  200,  200,  200, 1173,  899,  200,
1537
     1367,  200, 1175,  200,  200, 1367, 1367,  900,  200, 1367,
1538
      200, 1176,  200,  200, 1367, 1367,  798,  200, 1367,  200,
1539
     1174,  200,  200,  200, 1367,  899,  200,  200,  200, 1175,
1540
      200,  200,  200,  200,  900,  200,  200, 1177, 1176,  200,
1541
      200,  904,  200,  901, 1178,  200,  200, 1179, 1180,  200,
1542
      200,  200,  902, 1181,  200,  200, 1367,  905,  903,  200,
1543
      200,  200, 1367,  200, 1177,  200,  200,  200,  904,  200,
1544
      901, 1178,  200,  200, 1179, 1180,  200,  200,  200,  902,
1545
1546
     1181, 1182,  200,  907,  905,  903, 1367,  200,  200,  200,
1547
     1367,  906,  200,  200,  200,  200,  200, 1183, 1367,  200,
1548
     1367,  200, 1367,  200,  200,  200, 1184, 1185, 1182, 1186,
1549
      907, 1187, 1367,  908,  200,  200,  200,  200,  906, 1188,
1550
      200,  200,  200,  200, 1183,  200,  200,  200,  200,  200,
1551
      200, 1189,  200, 1184, 1185,  200, 1186,  200, 1187,  200,
1552
      908, 1190,  200,  200,  200,  200, 1188,  909,  200,  200,
1553
     1367,  200,  200, 1191,  200,  200,  200, 1192, 1189,  200,
1554
     1367,  200,  200, 1240,  200,  200,  200, 1242, 1190,  200,
1555
      200,  200,  200,  910,  909,  200,  200,  200,  200, 1243,
1556
1557
     1191,  911,  200, 1244, 1192,  200,  200,  200,  200, 1367,
1558
     1240,  200,  200, 1367, 1242,  200,  200,  200,  200, 1367,
1559
      910,  200,  200,  200,  200,  200, 1243,  200,  911,  200,
1560
     1244,  200,  200,  200,  200,  200,  912, 1245,  200,  200,
1561
      913,  200,  200,  200,  200,  200,  914, 1246,  200,  915,
1562
      200,  200,  200,  200,  200, 1367,  200, 1367,  200,  200,
1563
      200,  200,  200,  912, 1245,  200,  200,  913,  200,  200,
1564
      200,  200,  200,  914, 1246,  200,  915, 1367,  200,  200,
1565
      200,  200,  917, 1367,  200,  200,  200,  200,  200,  200,
1566
      916,  924,  200, 1247,  200,  200,  200,  200,  200, 1367,
1567
1568
     1248, 1367,  200,  200,  918,  200,  200,  200,  200,  917,
1569
      200,  200,  200, 1249,  200,  200,  200,  916,  924, 1367,
1570
     1247,  200,  200, 1250,  200, 1251,  200, 1248,  200, 1252,
1571
      200,  918,  200,  200,  200,  919, 1253,  200,  200,  200,
1572
     1249,  200,  200, 1254, 1367, 1255,  200,  920, 1256, 1367,
1573
     1250,  200, 1251,  200, 1367,  200, 1252, 1367,  921, 1367,
1574
      200, 1257,  919, 1253, 1258,  200,  200, 1259,  200,  200,
1575
     1254,  200, 1255,  200,  920, 1256,  200,  200,  200,  200,
1576
     1367,  200, 1260,  922,  200,  921,  923, 1261, 1257,  200,
1577
     1262, 1258, 1367, 1367, 1259,  200,  200,  200,  200, 1367,
1578
1579
     1288, 1290,  200,  200,  200, 1291,  200,  200,  200, 1260,
1580
      922,  200, 1367,  923, 1261, 1292,  200, 1262,  925,  200,
1581
      200,  200,  200, 1293,  200,  200,  200, 1288, 1290,  200,
1582
      200,  200, 1291, 1294,  200, 1241, 1241,  200, 1367,  200,
1583
     1295, 1296, 1292, 1367,  200,  925,  200,  200,  200,  200,
1584
     1293, 1297,  200,  200, 1367,  926, 1298,  200,  200, 1299,
1585
     1294, 1300, 1367,  200,  200,  200,  200, 1295, 1296, 1317,
1586
      200,  200, 1318, 1289, 1319,  200,  200,  200, 1297,  200,
1587
     1367,  927,  926, 1298,  200, 1367, 1299, 1367, 1300,  200,
1588
      200,  200,  200,  200, 1367,  928, 1317,  200,  200, 1318,
1589
1590
     1289, 1319,  200,  200,  200,  200,  200,  200,  927, 1320,
1591
     1367,  200,  200, 1321,  929, 1367,  200,  200,  200,  200,
1592
      200,  200,  928, 1367,  931,  200,  200,  930, 1367, 1324,
1593
      200,  200,  200, 1367,  200,  200, 1320,  200, 1367,  200,
1594
     1321,  929,  200, 1331,  200,  933,  200,  200,  200,  200,
1595
      932,  931, 1367,  200,  930,  200, 1324, 1332,  200, 1316,
1596
     1316,  200,  200,  200,  200,  200, 1367, 1367,  200,  200,
1597
     1331,  200,  933,  200,  200,  200,  200,  932, 1367,  200,
1598
     1335,  200,  200,  200, 1332, 1338, 1367, 1340,  200,  200,
1599
      200,  200,  200,  200,  934,  200, 1367,  200,  200,  200,
1600
1601
      200, 1330,  200,  935, 1367,  200,  200, 1335,  200,  936,
1602
      200, 1342, 1338,  200, 1340,  200,  200, 1344,  200,  937,
1603
      200,  934, 1367,  200,  200,  200,  200,  200, 1330, 1346,
1604
      935,  200,  200,  200, 1367,  200,  936, 1348, 1342, 1350,
1605
      200,  200,  200,  200, 1344,  200,  937, 1352, 1367,  200,
1606
      200,  200,  200,  938,  200,  200, 1346,  200,  200, 1367,
1607
      200,  200,  200, 1354, 1348,  200, 1350,  200,  200, 1367,
1608
      200, 1356,  200, 1367, 1352,  200,  200,  200,  200,  200,
1609
      938, 1358,  200,  200,  200,  200,  939,  200,  200,  200,
1610
     1354,  940,  200,  200,  200,  200,  200, 1367, 1356, 1323,
1611
1612
     1316,  200,  200,  200,  200, 1367,  200, 1360, 1358, 1367,
1613
      200,  942,  200,  939,  200,  200,  200,  200,  940,  200,
1614
      200,  200,  200,  200,  200,  200, 1367,  200,  200,  200,
1615
      200,  200,  941,  200, 1360,  200, 1367,  200,  942, 1367,
1616
      200, 1334,  200, 1367,  200,  944,  200, 1367,  200, 1367,
1617
     1367,  200,  200,  200,  200, 1367,  200,  200,  200,  941,
1618
      200, 1367,  200,  200,  200, 1367,  943,  200, 1334,  200,
1619
     1367,  200,  944,  200, 1367,  945,  200, 1367, 1367, 1367,
1620
      200,  200, 1265, 1241,  200,  200, 1367,  200, 1367, 1367,
1621
      200,  946,  200,  943, 1367, 1367,  200,  200,  200,  200,
1622
1623
      200,  200,  945,  200, 1367, 1367,  200, 1367,  200, 1367,
1624
     1367,  200,  200, 1367,  200, 1367, 1367, 1367,  946,  200,
1625
     1303, 1367, 1367, 1367,  200,  947,  200,  949,  200,  200,
1626
      200, 1367,  200,  200,  200, 1367,  948,  200,  200,  200,
1627
     1367,  200,  200,  200, 1367, 1367, 1367, 1303,  200, 1367,
1628
     1367, 1367,  947,  200,  949, 1367,  200,  200, 1367,  200,
1629
      200,  200,  200,  948,  200, 1367,  200,  200,  200,  200,
1630
      200,  200,  200,  200,  200,  200,  200, 1367,  200, 1367,
1631
      200,  200,  950,  200, 1367, 1367,  200,  200, 1367,  200,
1632
      200, 1367,  200, 1367,  200, 1367, 1367,  200,  200,  200,
1633
1634
      200,  200,  200,  200,  951,  200,  200, 1367,  200,  950,
1635
      200,  200, 1367,  200, 1367, 1367,  200,  200, 1367,  200,
1636
     1367, 1367,  952, 1367,  200, 1367,  200, 1367, 1367,  200,
1637
      200,  951,  200,  200,  200,  953, 1367, 1367,  200,  200,
1638
      200, 1367,  200,  200,  200,  200,  200, 1367, 1367,  952,
1639
      200,  954,  955,  200,  956,  200,  200,  200,  200,  200,
1640
      200,  200,  953, 1367, 1367,  200,  200,  200, 1367,  200,
1641
      200,  200,  200,  200, 1367, 1367, 1367,  200,  954,  955,
1642
     1367,  956,  200,  200,  200,  200,  200,  200, 1367,  200,
1643
      957,  200,  200,  958,  200, 1367,  200,  200,  200,  200,
1644
1645
      959, 1367,  200,  200,  200,  975,  200, 1367, 1367,  200,
1646
      200,  200,  200,  200,  200,  200,  200,  957,  200, 1367,
1647
      958,  200,  200,  200,  960,  200,  200,  959,  200,  200,
1648
      200,  200,  975,  200,  200, 1367,  200,  200, 1367,  200,
1649
     1367,  200,  200,  200,  200, 1367, 1367,  200, 1367,  200,
1650
     1367,  960, 1367,  200, 1367,  200,  961,  978, 1367,  200,
1651
     1367,  200,  200,  200,  200, 1367,  200, 1367, 1367,  200,
1652
      200,  200,  200, 1367,  200,  962, 1367,  200, 1367, 1367,
1653
      200,  200,  200,  961,  978, 1367,  200,  200, 1367,  200,
1654
      200,  200, 1367,  200, 1367, 1367,  200,  200, 1367,  200,
1655
1656
     1367, 1367,  962,  200,  200, 1367,  200,  200,  200,  200,
1657
      964,  963, 1367,  200,  200,  200,  200, 1367, 1367,  200,
1658
     1367, 1367, 1367,  200,  200,  200,  200, 1367, 1367, 1367,
1659
      200, 1367, 1367,  200,  200,  200, 1367,  964,  963, 1367,
1660
      200,  965,  200,  200, 1367,  200,  200, 1367, 1367, 1367,
1661
      200,  200,  200,  200, 1367,  966,  967, 1367, 1367,  200,
1662
      200,  200,  200,  200,  200, 1367, 1367, 1367,  965,  200,
1663
      200, 1367,  200, 1367, 1367, 1367, 1367, 1367,  200,  200,
1664
      200, 1367,  966,  967, 1367,  968,  200,  200,  200,  200,
1665
      200,  200, 1367, 1367,  200,  200,  200,  200,  200, 1367,
1666
1667
     1367, 1367, 1367, 1367,  200,  200,  200,  200, 1367, 1367,
1668
     1367, 1367,  968,  200,  200, 1367,  200,  200, 1367, 1367,
1669
     1367,  200,  200,  200, 1367,  200,  969, 1367, 1367, 1367,
1670
     1367,  200,  200,  200, 1367,  200, 1367, 1367,  200,  200,
1671
      200,  200,  200,  970,  200,  200, 1367, 1367,  200, 1367,
1672
      200,  971, 1367,  969, 1367,  200, 1367, 1367,  200, 1367,
1673
      200, 1367,  200, 1367,  200,  200,  200,  200,  200,  200,
1674
      970,  200,  200,  973,  200,  200,  200,  200,  971,  972,
1675
      200, 1367,  200, 1367,  200,  200,  200,  200, 1367,  200,
1676
     1367,  200, 1367,  200,  200,  200,  200,  974,  200,  200,
1677
1678
      973,  200, 1367,  200,  200, 1367,  972,  200, 1367,  200,
1679
     1367,  200, 1367,  200,  200,  977,  200, 1367,  976,  200,
1680
      200, 1367, 1367,  200,  974,  200,  200,  200,  200,  200,
1681
     1367, 1367,  200,  200,  200,  200,  200,  200,  200,  200,
1682
     1367, 1367,  977,  200, 1367,  976,  200,  979,  200, 1367,
1683
     1367,  200,  200,  200,  200,  200,  200,  200, 1367,  200,
1684
      200,  200,  200, 1367,  200,  200,  200,  200, 1367,  200,
1685
      200, 1367,  981,  980,  979,  200,  200,  200,  200,  200,
1686
      200,  200,  200, 1367,  200, 1367, 1367,  982, 1367,  200,
1687
     1367,  200,  200, 1367,  200,  200,  200,  200, 1367,  981,
1688
1689
      980,  200, 1367,  200,  200, 1367,  200, 1367,  200,  200,
1690
     1367,  200, 1367,  200,  982, 1367,  200,  200,  200,  200,
1691
     1367, 1367,  200,  200,  200,  200, 1367,  200,  200,  200,
1692
     1367,  200,  983,  200, 1367, 1367,  984,  200,  200, 1367,
1693
      200,  200, 1367, 1367,  200, 1367, 1367, 1367, 1367, 1367,
1694
      200, 1367,  200, 1367,  200,  200,  200,  200,  200,  983,
1695
      200, 1367,  200,  984,  200,  985, 1367,  200,  200, 1367,
1696
     1367,  200, 1367,  200,  200,  992,  200, 1367,  200,  200,
1697
      986,  200,  200,  200,  200,  200,  200, 1367, 1367,  200,
1698
     1367, 1367,  985, 1367,  200,  200, 1367,  200,  200,  987,
1699
1700
      200,  200,  992,  200,  200,  200,  200,  986,  200,  200,
1701
      200, 1367,  200,  200, 1367, 1367,  200, 1367,  200,  989,
1702
     1367, 1367,  200,  200,  200,  988,  987,  200,  200,  200,
1703
      200,  200,  200, 1367,  200,  990,  200,  200, 1367,  200,
1704
     1367, 1367,  200,  200, 1367,  200,  989, 1367, 1367, 1367,
1705
      200, 1367,  988,  991,  200,  200,  200,  200,  200,  200,
1706
      200,  200,  990,  200,  200,  200,  200,  200,  200,  200,
1707
      200,  993,  200,  200, 1367, 1367, 1367, 1367,  200, 1367,
1708
      991, 1367, 1367,  200, 1367,  200, 1367,  200,  200, 1367,
1709
      200, 1367,  200, 1367,  200,  200, 1367,  200,  993,  200,
1710
1711
      200, 1367,  200,  200,  995,  200,  200,  200,  200, 1367,
1712
      200, 1367,  200,  200,  200,  200,  200, 1367,  994, 1367,
1713
      200, 1367,  200,  200,  200,  200,  200,  200, 1367,  200,
1714
      200,  995,  996,  200,  200,  200,  200,  200, 1367,  200,
1715
      200,  200, 1367,  200, 1367,  994, 1367,  200, 1367,  200,
1716
      200,  200,  200,  200,  200,  200, 1367,  200,  200,  996,
1717
      200, 1367,  200,  200,  200,  200,  200,  200,  200,  200,
1718
      200,  200, 1367,  200, 1367, 1367,  200, 1367,  200, 1367,
1719
     1073,  200,  200, 1367,  200,  200, 1367,  200, 1367,  200,
1720
     1367, 1367,  200,  200,  200,  200,  200,  200,  200, 1367,
1721
1722
      200, 1367, 1074,  200, 1367,  200,  200, 1073,  200, 1367,
1723
      200, 1075,  200, 1367,  200,  200, 1367, 1367, 1367, 1367,
1724
      200,  200,  200, 1367, 1367, 1367, 1367, 1367, 1367, 1074,
1725
      200,  200, 1367,  200, 1367, 1367,  200,  200, 1075,  200,
1726
      200,  200,  200, 1367, 1367, 1367,  200,  200,  200,  200,
1727
     1367, 1076, 1367, 1367, 1078,  200,  200,  200,  200,  200,
1728
     1077, 1367, 1367,  200,  200,  200, 1367,  200,  200, 1367,
1729
     1367, 1367, 1367,  200,  200,  200, 1367, 1367, 1076, 1367,
1730
     1367, 1078,  200,  200,  200, 1367,  200, 1077, 1079, 1367,
1731
      200,  200,  200, 1367,  200,  200,  200,  200, 1080,  200,
1732
1733
      200,  200,  200,  200,  200, 1081, 1367, 1367,  200,  200,
1734
      200,  200, 1367, 1367, 1367, 1079, 1367,  200,  200, 1367,
1735
     1367,  200,  200,  200,  200, 1080,  200,  200, 1082, 1367,
1736
      200,  200, 1081, 1367, 1367,  200,  200,  200,  200, 1367,
1737
     1083,  200,  200, 1084,  200,  200,  200, 1367,  200,  200,
1738
      200, 1367,  200,  200,  200, 1082, 1367, 1367, 1085, 1367,
1739
      200, 1367,  200, 1367,  200,  200, 1367, 1083,  200,  200,
1740
     1084,  200,  200,  200,  200,  200,  200,  200, 1367,  200,
1741
      200,  200, 1086, 1367, 1367, 1085, 1087,  200, 1367,  200,
1742
      200,  200,  200, 1367,  200, 1088, 1367,  200, 1367,  200,
1743
1744
      200,  200,  200,  200, 1367, 1367, 1367,  200, 1089, 1086,
1745
      200, 1367,  200, 1087, 1367, 1367,  200,  200,  200,  200,
1746
      200,  200, 1088, 1367,  200, 1367,  200,  200,  200,  200,
1747
     1367, 1367, 1367, 1367,  200, 1089,  200,  200,  200,  200,
1748
     1367, 1367, 1090,  200, 1367,  200,  200,  200,  200, 1367,
1749
      200, 1367,  200,  200, 1092,  200,  200, 1367,  200,  200,
1750
     1367, 1091, 1367,  200,  200,  200,  200, 1367, 1367, 1090,
1751
     1093, 1367,  200,  200,  200,  200, 1094,  200, 1367,  200,
1752
      200, 1092,  200,  200, 1367,  200,  200, 1367, 1091, 1367,
1753
      200,  200,  200,  200, 1095, 1367,  200, 1093,  200,  200,
1754
1755
      200,  200, 1367, 1094,  200, 1367,  200,  200, 1367,  200,
1756
     1367, 1096, 1367, 1367,  200, 1367,  200,  200, 1367,  200,
1757
      200, 1095, 1367,  200,  200,  200, 1367,  200, 1367, 1367,
1758
      200,  200,  200,  200,  200, 1097, 1367, 1367, 1096, 1098,
1759
      200,  200, 1367,  200,  200,  200, 1100,  200,  200, 1099,
1760
      200,  200,  200, 1367,  200,  200, 1367,  200,  200,  200,
1761
      200,  200, 1097, 1367, 1367,  200, 1098,  200,  200, 1367,
1762
      200,  200,  200, 1100,  200,  200, 1099,  200,  200,  200,
1763
     1367,  200,  200, 1367,  200,  200,  200,  200, 1367,  200,
1764
      200, 1102,  200,  200,  200,  200,  200,  200, 1367,  200,
1765
1766
     1104,  200,  200, 1367, 1101,  200,  200,  200, 1367,  200,
1767
     1367,  200,  200,  200, 1367,  200,  200,  200, 1102,  200,
1768
      200,  200, 1367,  200, 1367,  200,  200, 1104, 1367,  200,
1769
     1103, 1101, 1367,  200,  200,  200,  200, 1367,  200,  200,
1770
      200,  200,  200,  200, 1106, 1105,  200, 1367,  200,  200,
1771
      200,  200,  200,  200, 1367, 1367,  200, 1103, 1367, 1367,
1772
     1367,  200,  200, 1367, 1367,  200, 1367,  200,  200, 1367,
1773
      200, 1106, 1105, 1367, 1367,  200,  200,  200,  200,  200,
1774
      200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
1775
     1107,  200,  200,  200,  200,  200, 1367,  200, 1367, 1367,
1776
1777
      200, 1367, 1367, 1367, 1367,  200,  200, 1367,  200,  200,
1778
     1367,  200,  200,  200,  200, 1367,  200, 1107,  200,  200,
1779
      200,  200,  200,  200,  200,  200, 1367,  200, 1367, 1109,
1780
      200, 1108,  200,  200,  200,  200,  200, 1367, 1367,  200,
1781
     1367, 1110, 1367, 1367, 1111, 1367,  200, 1367, 1367,  200,
1782
      200, 1367,  200, 1367, 1367, 1367, 1109,  200, 1108, 1367,
1783
      200,  200,  200,  200, 1367, 1112,  200,  200, 1110, 1367,
1784
     1367, 1111,  200,  200, 1367, 1367,  200,  200,  200,  200,
1785
      200,  200, 1367, 1367, 1367,  200,  200, 1367, 1367, 1367,
1786
      200,  200, 1112, 1367,  200, 1367, 1367, 1367, 1367,  200,
1787
1788
     1367, 1113, 1367, 1367,  200,  200,  200,  200,  200,  200,
1789
     1367,  200,  200,  200, 1367, 1367,  200,  200,  200, 1367,
1790
      200,  200,  200,  200, 1367,  200, 1367,  200, 1113, 1367,
1791
      200, 1367,  200, 1367, 1367,  200,  200, 1367,  200, 1367,
1792
     1367, 1114, 1367,  200, 1367,  200, 1367,  200,  200,  200,
1793
      200,  200,  200,  200,  200,  200, 1116,  200, 1367,  200,
1794
     1115,  200,  200, 1367, 1367,  200, 1367,  200, 1114,  200,
1795
     1367, 1367,  200, 1367,  200, 1367, 1367, 1367,  200,  200,
1796
      200, 1367,  200, 1116, 1367, 1367, 1367, 1115,  200, 1367,
1797
     1367,  200,  200,  200,  200, 1367,  200, 1367,  200, 1117,
1798
1799
      200,  200,  200,  200, 1367, 1118,  200,  200, 1119,  200,
1800
     1367,  200,  200, 1367, 1367, 1367,  200, 1367,  200, 1367,
1801
      200,  200, 1367, 1367, 1367,  200, 1117,  200, 1367,  200,
1802
      200, 1367, 1118, 1367,  200, 1119,  200, 1367,  200,  200,
1803
      200, 1367,  200,  200,  200, 1120,  200,  200,  200,  200,
1804
     1367,  200,  200, 1367, 1367,  200,  200, 1367, 1367, 1367,
1805
      200, 1367, 1367, 1367,  200,  200, 1367,  200, 1367,  200,
1806
      200,  200, 1120,  200,  200, 1121,  200, 1367,  200,  200,
1807
      200, 1367,  200,  200, 1122,  200,  200,  200, 1367,  200,
1808
      200,  200,  200, 1367, 1367,  200,  200,  200, 1367, 1123,
1809
1810
     1367, 1367, 1121, 1367, 1367,  200,  200,  200, 1367, 1367,
1811
     1367, 1122,  200,  200,  200,  200,  200,  200,  200,  200,
1812
     1367, 1367,  200,  200,  200,  200, 1123, 1124, 1367, 1367,
1813
     1367, 1367,  200,  200,  200,  200, 1367, 1367, 1367, 1125,
1814
     1126,  200,  200,  200,  200,  200,  200, 1367, 1367,  200,
1815
      200,  200,  200,  200, 1124, 1367, 1367, 1127, 1367,  200,
1816
      200,  200,  200,  200, 1128,  200, 1125, 1126,  200,  200,
1817
      200,  200,  200,  200, 1367,  200,  200,  200,  200, 1367,
1818
      200, 1367, 1367, 1367, 1127,  200,  200,  200,  200, 1129,
1819
      200, 1128,  200,  200,  200,  200,  200,  200,  200,  200,
1820
1821
      200, 1367,  200,  200,  200,  200, 1130,  200, 1367, 1131,
1822
     1367,  200,  200,  200,  200,  200, 1129,  200, 1367,  200,
1823
      200,  200,  200,  200,  200,  200, 1132,  200, 1367,  200,
1824
      200,  200,  200, 1130,  200, 1367, 1131, 1367,  200,  200,
1825
      200,  200,  200, 1367,  200, 1367,  200, 1133,  200,  200,
1826
      200, 1367,  200, 1132,  200, 1367,  200, 1134,  200,  200,
1827
      200,  200,  200, 1367, 1367,  200,  200, 1135,  200,  200,
1828
     1367,  200,  200, 1367, 1133,  200, 1367, 1367, 1367,  200,
1829
     1367,  200, 1367, 1367, 1134,  200, 1367,  200,  200,  200,
1830
     1367, 1367,  200, 1367, 1135,  200, 1367, 1367,  200,  200,
1831
1832
      200, 1367,  200,  200, 1367,  200, 1136,  200,  200, 1367,
1833
      200, 1137,  200, 1138, 1367,  200,  200, 1367, 1140, 1367,
1834
     1367, 1367, 1367,  200,  200, 1367,  200,  200,  200,  200,
1835
      200,  200,  200, 1136,  200, 1367,  200,  200, 1137,  200,
1836
     1138, 1139,  200,  200, 1367, 1140, 1367, 1367, 1367, 1367,
1837
      200,  200,  200,  200,  200,  200, 1367, 1367,  200,  200,
1838
      200, 1367,  200,  200,  200, 1141, 1367,  200, 1139,  200,
1839
     1143, 1367,  200, 1367,  200,  200, 1367, 1142,  200,  200,
1840
      200,  200,  200, 1367, 1367,  200,  200,  200,  200,  200,
1841
      200,  200, 1141, 1367,  200, 1367,  200, 1143,  200,  200,
1842
1843
     1367,  200,  200, 1367, 1142,  200,  200,  200, 1367,  200,
1844
      200,  200,  200,  200, 1367,  200,  200,  200, 1144, 1367,
1845
     1367, 1145, 1367,  200, 1367,  200,  200, 1367, 1367, 1367,
1846
     1367, 1367,  200,  200,  200, 1367, 1367,  200,  200,  200,
1847
      200, 1367, 1367,  200,  200, 1144, 1367, 1146, 1145, 1367,
1848
      200, 1367, 1367,  200, 1367,  200, 1367,  200,  200,  200,
1849
      200,  200,  200, 1367, 1367,  200,  200,  200, 1367, 1367,
1850
      200,  200, 1367, 1367, 1146, 1367,  200, 1367,  200, 1367,
1851
     1367, 1367,  200,  200,  200,  200, 1194,  200,  200,  200,
1852
      200,  200,  200, 1367,  200,  200,  200,  200, 1367, 1367,
1853
1854
      200,  200, 1195,  200, 1367,  200,  200,  200, 1367, 1367,
1855
      200,  200,  200, 1194,  200,  200,  200,  200,  200, 1367,
1856
     1367,  200,  200,  200, 1367, 1367,  200,  200,  200, 1195,
1857
      200, 1367, 1196,  200,  200, 1367, 1197,  200,  200,  200,
1858
      200,  200,  200,  200, 1367,  200,  200, 1367,  200,  200,
1859
     1367, 1367, 1367,  200, 1367,  200,  200,  200, 1367, 1196,
1860
     1198, 1367, 1367, 1197,  200,  200, 1367,  200,  200,  200,
1861
      200, 1367,  200,  200, 1367, 1199,  200,  200, 1367,  200,
1862
      200, 1367,  200,  200,  200, 1367, 1200, 1198,  200,  200,
1863
     1367, 1367,  200,  200, 1367,  200, 1367,  200,  200, 1367,
1864
1865
     1367, 1367, 1199, 1367,  200, 1367,  200,  200, 1367, 1367,
1866
      200,  200,  200, 1200, 1367,  200,  200,  200, 1367,  200,
1867
      200,  200,  200, 1367, 1367,  200,  200, 1201,  200, 1202,
1868
      200,  200, 1367, 1367, 1367,  200, 1367,  200, 1367,  200,
1869
      200, 1367, 1367, 1367,  200, 1367,  200, 1367,  200,  200,
1870
     1203, 1367, 1367,  200, 1201,  200, 1202,  200,  200,  200,
1871
     1367,  200,  200, 1204, 1367,  200,  200,  200, 1367, 1367,
1872
      200,  200,  200, 1367,  200,  200, 1367, 1203, 1367,  200,
1873
     1205, 1367, 1367, 1367,  200, 1367,  200, 1367,  200, 1367,
1874
     1204, 1367,  200,  200, 1367, 1367, 1367,  200,  200,  200,
1875
1876
     1367,  200,  200,  200, 1206,  200,  200, 1205, 1367, 1367,
1877
      200,  200, 1367, 1367,  200,  200,  200,  200, 1367,  200,
1878
     1367,  200, 1367, 1367,  200, 1367,  200, 1367, 1367,  200,
1879
      200, 1206,  200, 1367, 1367, 1367, 1207,  200, 1367, 1367,
1880
     1367,  200,  200,  200,  200,  200,  200,  200,  200, 1367,
1881
     1367,  200,  200,  200, 1367, 1367,  200,  200,  200,  200,
1882
      200, 1208, 1367, 1207, 1367,  200,  200, 1367, 1367, 1367,
1883
      200,  200,  200, 1367,  200, 1367, 1367, 1367, 1367,  200,
1884
     1367, 1367, 1367, 1367,  200,  200,  200,  200, 1208,  200,
1885
     1367,  200,  200,  200, 1367, 1209,  200,  200,  200,  200,
1886
1887
      200,  200,  200, 1367,  200,  200, 1367,  200,  200, 1367,
1888
     1367, 1367,  200, 1367,  200,  200,  200, 1367,  200, 1367,
1889
     1367, 1367, 1209,  200,  200, 1367,  200,  200,  200,  200,
1890
     1367,  200,  200, 1367,  200,  200,  200, 1367, 1210,  200,
1891
      200,  200,  200,  200, 1212,  200, 1367,  200,  200, 1367,
1892
      200,  200,  200, 1211,  200, 1367, 1213,  200, 1367, 1367,
1893
      200,  200, 1367,  200, 1367, 1210,  200,  200, 1367, 1367,
1894
      200, 1212,  200, 1367,  200,  200, 1367,  200, 1367,  200,
1895
     1211,  200, 1367, 1213,  200, 1367, 1367,  200,  200,  200,
1896
      200,  200,  200,  200, 1367, 1367,  200,  200,  200, 1367,
1897
1898
      200,  200,  200, 1367, 1367,  200, 1367, 1367, 1367, 1367,
1899
      200, 1367, 1367, 1367, 1367, 1367,  200,  200,  200,  200,
1900
     1367, 1367, 1367,  200,  200,  200, 1367,  200,  200,  200,
1901
     1367,  200,  200,  200,  200, 1367,  200,  200,  200, 1367,
1902
      200,  200,  200,  200, 1367, 1367,  200,  200, 1367, 1367,
1903
     1367, 1367,  200, 1367, 1367, 1367, 1367, 1367,  200, 1367,
1904
      200,  200, 1367,  200, 1367,  200, 1367,  200,  200,  200,
1905
      200, 1367, 1367,  200,  200,  200, 1215,  200, 1367,  200,
1906
      200, 1214,  200, 1367, 1367, 1367,  200,  200, 1367, 1367,
1907
      200, 1216, 1367, 1367,  200,  200,  200, 1367, 1367,  200,
1908
1909
      200, 1367,  200, 1215,  200,  200, 1367,  200, 1214,  200,
1910
      200, 1367, 1367,  200,  200,  200, 1367,  200, 1216, 1367,
1911
      200,  200,  200,  200,  200, 1367,  200,  200, 1367,  200,
1912
      200,  200,  200, 1367, 1367, 1367, 1217,  200, 1367, 1367,
1913
      200,  200,  200,  200, 1367,  200, 1367,  200, 1367, 1367,
1914
      200,  200, 1218, 1367,  200,  200,  200,  200,  200,  200,
1915
     1367, 1367, 1367, 1217,  200, 1367, 1367,  200,  200, 1367,
1916
      200,  200,  200,  200, 1219, 1367, 1367,  200,  200, 1218,
1917
     1367,  200,  200,  200, 1367,  200,  200,  200, 1367, 1367,
1918
     1367,  200,  200, 1367, 1367, 1367, 1367,  200,  200, 1367,
1919
1920
      200, 1219, 1367, 1367,  200,  200,  200, 1367, 1367, 1367,
1921
      200,  200,  200,  200,  200,  200,  200, 1367, 1367,  200,
1922
      200, 1220, 1367, 1367,  200,  200,  200, 1367, 1367, 1367,
1923
     1221,  200, 1367,  200, 1367,  200,  200, 1367,  200, 1222,
1924
      200, 1367,  200,  200, 1367,  200,  200,  200, 1220,  200,
1925
     1223, 1225,  200,  200,  200,  200,  200, 1221, 1367, 1367,
1926
      200,  200,  200,  200,  200, 1367, 1222, 1367,  200, 1367,
1927
      200, 1367,  200,  200,  200, 1367,  200, 1223, 1225, 1367,
1928
     1367,  200,  200,  200, 1224, 1367, 1367,  200,  200, 1226,
1929
     1367,  200,  200, 1367,  200,  200, 1367,  200,  200,  200,
1930
1931
      200,  200, 1367, 1367,  200,  200, 1367, 1367, 1367, 1367,
1932
      200, 1224, 1367, 1227, 1367, 1367, 1226, 1367, 1367,  200,
1933
     1367,  200,  200, 1367,  200,  200,  200,  200, 1367,  200,
1934
     1367,  200,  200, 1367,  200, 1367,  200,  200,  200, 1367,
1935
     1227, 1367, 1367, 1228, 1367,  200, 1367,  200,  200,  200,
1936
     1367,  200, 1229, 1367, 1367, 1367,  200,  200, 1367, 1367,
1937
     1367,  200, 1367,  200,  200,  200,  200, 1367, 1367, 1367,
1938
     1228,  200,  200, 1367,  200,  200,  200, 1367,  200, 1229,
1939
     1230, 1367, 1367, 1367,  200,  200, 1367,  200, 1367,  200,
1940
      200,  200, 1367,  200,  200, 1367, 1367, 1367,  200,  200,
1941
1942
     1367, 1367, 1367,  200, 1367,  200, 1231, 1230,  200, 1367,
1943
     1367, 1367,  200,  200,  200, 1367,  200,  200,  200, 1367,
1944
      200,  200,  200, 1232, 1367, 1367,  200,  200, 1367, 1367,
1945
     1367, 1367,  200, 1231,  200,  200,  200, 1367, 1367, 1367,
1946
      200,  200, 1233, 1367, 1367,  200,  200,  200, 1367,  200,
1947
     1232, 1367, 1367,  200,  200,  200, 1367, 1367, 1367,  200,
1948
      200,  200, 1367,  200, 1367,  200, 1367, 1234,  200, 1233,
1949
     1367, 1367, 1367,  200, 1367, 1367,  200,  200,  200,  200,
1950
      200, 1367,  200,  200,  200, 1235, 1367,  200,  200,  200,
1951
     1367, 1367,  200, 1367, 1234, 1367, 1367, 1367, 1367, 1236,
1952
1953
     1367, 1367, 1367,  200,  200,  200,  200,  200, 1367,  200,
1954
      200,  200, 1235, 1367,  200,  200,  200, 1367,  200,  200,
1955
      200,  200, 1367,  200, 1367,  200, 1236, 1367,  200, 1367,
1956
      200, 1367, 1367,  200,  200, 1367,  200,  200, 1367,  200,
1957
     1367,  200, 1367, 1367,  200,  200,  200,  200,  200,  200,
1958
      200,  200,  200,  200, 1367,  200, 1367,  200,  200, 1367,
1959
      200, 1367, 1367,  200,  200, 1367,  200,  200, 1367,  200,
1960
     1238,  200,  200, 1237,  200, 1367,  200,  200,  200,  200,
1961
      200,  200,  200,  200, 1367,  200, 1367, 1367,  200, 1367,
1962
      200, 1367, 1367,  200,  200, 1367,  200, 1238, 1367,  200,
1963
1964
     1237,  200, 1367, 1367,  200,  200,  200,  200,  200,  200,
1965
      200,  200,  200,  200,  200,  200,  200,  200,  200, 1367,
1966
      200,  200, 1367,  200, 1367, 1367,  200, 1264, 1367, 1367,
1967
     1367,  200,  200, 1367,  200, 1367, 1367,  200,  200,  200,
1968
      200,  200,  200,  200,  200,  200,  200,  200,  200, 1367,
1969
      200,  200,  200,  200, 1264,  200, 1265, 1241,  200, 1367,
1970
     1367,  200,  200, 1367,  200, 1367, 1266, 1367, 1367,  200,
1971
      200,  200, 1367,  200,  200, 1367,  200, 1367,  200,  200,
1972
     1367,  200,  200, 1367, 1367,  200,  200, 1367,  200,  200,
1973
     1367,  200, 1267, 1266, 1367,  200,  200,  200,  200,  200,
1974
1975
      200,  200, 1367,  200, 1367,  200,  200, 1367,  200, 1367,
1976
      200, 1367,  200,  200,  200,  200,  200, 1367,  200, 1267,
1977
      200, 1367,  200,  200, 1367, 1268,  200,  200,  200,  200,
1978
      200, 1367,  200,  200,  200,  200, 1367,  200,  200, 1367,
1979
     1367,  200,  200,  200,  200,  200,  200,  200, 1271, 1269,
1980
     1367, 1367, 1268,  200,  200, 1367,  200,  200,  200,  200,
1981
     1367,  200,  200,  200,  200,  200, 1270, 1367,  200,  200,
1982
     1367,  200,  200,  200,  200, 1271, 1269, 1367,  200,  200,
1983
      200,  200,  200, 1367,  200,  200,  200,  200,  200,  200,
1984
      200,  200, 1367, 1270,  200,  200,  200, 1367,  200,  200,
1985
1986
      200,  200, 1367, 1367,  200,  200,  200, 1367, 1367,  200,
1987
      200,  200, 1367, 1367,  200,  200,  200,  200, 1367,  200,
1988
      200,  200, 1367, 1367,  200,  200,  200,  200, 1273,  200,
1989
      200,  200, 1272, 1367, 1367,  200, 1367,  200, 1367, 1367,
1990
      200,  200, 1367,  200,  200, 1367,  200,  200,  200, 1367,
1991
     1367,  200, 1367,  200, 1367, 1273,  200,  200, 1367, 1272,
1992
     1367, 1367,  200, 1367,  200, 1367,  200,  200,  200, 1367,
1993
      200,  200,  200, 1367,  200,  200,  200, 1275, 1367,  200,
1994
      200,  200,  200,  200,  200,  200,  200,  200, 1367, 1274,
1995
      200,  200, 1276,  200, 1367,  200, 1367,  200,  200,  200,
1996
1997
     1367,  200,  200,  200, 1275, 1367,  200, 1367,  200,  200,
1998
      200,  200,  200,  200,  200, 1367, 1274,  200,  200, 1276,
1999
     1277,  200,  200,  200,  200,  200, 1367, 1367,  200,  200,
2000
      200, 1367,  200,  200,  200, 1367, 1367, 1367, 1367,  200,
2001
     1367, 1367, 1278, 1367,  200,  200, 1367, 1277,  200, 1367,
2002
      200,  200,  200,  200, 1367,  200, 1367,  200,  200,  200,
2003
      200,  200, 1367,  200, 1367,  200,  200,  200, 1367, 1278,
2004
     1367,  200,  200, 1279, 1367, 1367, 1367,  200,  200, 1367,
2005
      200, 1367, 1367, 1280,  200,  200,  200, 1367, 1367, 1367,
2006
      200,  200,  200, 1367,  200,  200,  200,  200, 1367,  200,
2007
2008
     1279, 1367,  200, 1367,  200, 1367, 1367,  200, 1367, 1367,
2009
     1280,  200, 1367,  200,  200, 1367,  200, 1367,  200, 1367,
2010
     1367,  200,  200,  200,  200,  200,  200,  200,  200,  200,
2011
      200, 1367,  200, 1281,  200,  200, 1367,  200, 1367, 1367,
2012
      200,  200, 1367,  200,  200, 1367,  200, 1367,  200, 1367,
2013
     1282,  200,  200,  200,  200,  200,  200,  200, 1367,  200,
2014
     1281, 1367,  200, 1367,  200, 1367, 1367,  200,  200, 1283,
2015
      200,  200, 1367,  200,  200,  200,  200, 1282,  200, 1367,
2016
      200,  200, 1284,  200, 1285, 1367,  200, 1367,  200, 1367,
2017
     1367, 1367, 1367, 1367,  200,  200, 1283,  200, 1367, 1367,
2018
2019
     1367,  200,  200,  200,  200, 1367, 1286,  200,  200, 1284,
2020
      200, 1285, 1367,  200,  200,  200,  200, 1367,  200,  200,
2021
     1367,  200, 1367,  200,  200, 1367,  200, 1367, 1367,  200,
2022
     1367,  200,  200, 1286,  200, 1367,  200,  200, 1367,  200,
2023
     1367,  200,  200,  200,  200,  200,  200, 1367,  200, 1367,
2024
      200,  200,  200,  200,  200, 1367,  200, 1302,  200,  200,
2025
     1367,  200,  200,  200,  200, 1367,  200, 1367,  200,  200,
2026
      200,  200,  200, 1304,  200,  200,  200, 1367,  200,  200,
2027
      200,  200,  200, 1367, 1302,  200, 1367, 1367, 1367,  200,
2028
      200,  200,  200, 1367,  200,  200, 1367,  200,  200,  200,
2029
2030
     1304,  200, 1367,  200,  200,  200,  200,  200, 1305,  200,
2031
      200, 1367, 1367, 1367,  200, 1367,  200,  200, 1367,  200,
2032
     1367,  200, 1367, 1367,  200,  200,  200, 1367,  200, 1367,
2033
     1367,  200,  200,  200,  200, 1305,  200,  200, 1367, 1306,
2034
     1367,  200,  200,  200,  200, 1367, 1367, 1367, 1367, 1367,
2035
      200,  200,  200,  200,  200,  200, 1367, 1367, 1367,  200,
2036
      200,  200, 1367,  200, 1367, 1367, 1306, 1367, 1367,  200,
2037
      200,  200,  200, 1367, 1367, 1367,  200,  200, 1367,  200,
2038
     1367,  200,  200, 1309,  200, 1307, 1308,  200,  200, 1367,
2039
      200,  200,  200, 1367, 1310,  200,  200,  200,  200,  200,
2040
2041
      200, 1367, 1367,  200,  200, 1367, 1367, 1367, 1367,  200,
2042
     1309,  200, 1307, 1308,  200,  200,  200,  200,  200,  200,
2043
      200, 1310,  200,  200,  200,  200,  200,  200,  200,  200,
2044
     1367,  200, 1367,  200,  200, 1367,  200, 1367,  200,  200,
2045
     1367,  200,  200,  200,  200, 1367, 1367,  200,  200,  200,
2046
     1367,  200, 1367,  200, 1367,  200,  200, 1367, 1311, 1367,
2047
      200,  200, 1367,  200, 1367,  200,  200, 1367,  200,  200,
2048
      200,  200,  200,  200, 1313,  200,  200,  200,  200, 1312,
2049
      200, 1314,  200,  200, 1367, 1311,  200, 1367,  200, 1367,
2050
      200, 1367,  200,  200, 1367,  200, 1367,  200, 1367,  200,
2051
2052
      200, 1313,  200, 1367,  200,  200, 1312,  200, 1314,  200,
2053
      200, 1323, 1316,  200, 1325,  200, 1367,  200,  200,  200,
2054
      200, 1367,  200,  200,  200, 1367,  200,  200, 1367,  200,
2055
     1367, 1367,  200,  200,  200, 1367,  200, 1367, 1367, 1367,
2056
      200, 1325,  200,  200, 1367,  200,  200, 1367, 1367,  200,
2057
      200,  200, 1367,  200,  200, 1367,  200, 1367, 1367,  200,
2058
      200,  200, 1367,  200,  200, 1367,  200,  200, 1367,  200,
2059
      200, 1326,  200,  200,  200,  200,  200,  200,  200,  200,
2060
      200, 1367,  200,  200,  200, 1327, 1367,  200, 1367, 1367,
2061
      200,  200, 1367,  200, 1367, 1367, 1367, 1367, 1326,  200,
2062
2063
     1367,  200,  200,  200,  200,  200,  200,  200,  200,  200,
2064
      200,  200, 1327, 1367,  200,  200,  200,  200,  200, 1367,
2065
      200,  200, 1367,  200, 1367,  200,  200, 1367,  200,  200,
2066
      200, 1328, 1367,  200,  200,  200,  200,  200,  200,  200,
2067
     1367,  200,  200,  200,  200,  200,  200,  200,  200,  200,
2068
      200, 1367,  200,  200,  200,  200,  200,  200, 1328, 1367,
2069
      200,  200, 1367,  200, 1367,  200,  200, 1367,  200, 1367,
2070
      200,  200, 1367,  200,  200,  200,  200, 1336, 1367, 1367,
2071
      200,  200,  200, 1367,  200, 1367,  200,  200, 1367, 1367,
2072
      200,  200, 1367, 1367, 1367, 1367,  200,  200, 1367, 1367,
2073
2074
     1367,  200,  200, 1367, 1336, 1367, 1367,  200, 1367,  200,
2075
     1367,  200, 1367,  200,  200, 1367, 1367,  200,  200, 1367,
2076
     1367, 1367, 1367,  200,   46,   46,   46,   46,   46,   88,
2077
     1367, 1367,   88,   88,  185,  185,  185, 1367,  185,  187,
2078
     1367,  187,  187,  187,  190, 1367,  190,  190,  190,  200,
2079
     1367,  200,  200,  200,    7, 1367, 1367, 1367, 1367, 1367,
2080
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2081
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2082
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2083
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2084
2085
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2086
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2087
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
2088
     1367
2089
    } ;
2090
2091
static const flex_int16_t yy_chk[9032] =
2092
    {   0,
2093
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2094
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2095
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2096
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2097
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2098
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2099
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
2100
        1,    1,    1,    1,    1,    1,    5,    5,    5,    5,
2101
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2102
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2103
2104
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2105
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2106
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2107
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2108
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
2109
        5,    5,    9,    9,   10,   10,   15,   16,   16,   16,
2110
       16,   16,   16,   16,   16,   16,   16,   15,   17,   17,
2111
       17,   17,   17,   17,   17,   17,   17,   17,   17,   18,
2112
       18,   21,   22,   21,   27,   28,   22,   23,   30,   21,
2113
       27,   21,   22,   28,   23,   21,   21,   31,   41,   28,
2114
2115
       41,   23,   22,   41,   23, 1370,   44,   23,   21,   22,
2116
       21,   27,   28,   22,   23,   30,   21,   27,   21,   22,
2117
       28,   23,   21,   21,   31,   41,   28,   41,   23,   22,
2118
       41,   23,   24,   44,   23,   25,   24,   25,   49,   49,
2119
       24,   32,   25,   99,   33,   32,   24,   25,   33,   24,
2120
       55,   32,   50,   50,   33,   43,   43,   58,   58,   24,
2121
     1364,   55,   25,   24,   25, 1363,   34,   24,   32,   25,
2122
       99,   33,   32,   24,   25,   33,   24,   26,   32,   36,
2123
       34,   33,   43,   43,  100,   26,   34,   34,   26,  103,
2124
       36,   26,   29,   34,   26, 1362,   36,   26,   29,   29,
2125
2126
       29,   42,   86,   86,   26,   29,   36,   34, 1361,   42,
2127
     1359,  100,   26,   34,   34,   26,  103,   36,   26,   29,
2128
     1357,   26,   35,   36,   26,   29,   29,   29,   42,  104,
2129
       35,   38,   29,  101,   35,   38,   42,   35,   35,   38,
2130
       81,  101,   81,  106,   81,   38, 1355,   81, 1353,   35,
2131
      102, 1351,   81,  102, 1349,  107,  104,   35,   38, 1347,
2132
      101,   35,   38, 1345,   35,   35,   38,   81,  101,   81,
2133
      106,   81,   38,   39,   81,   39,  110,  102,   39,   81,
2134
      102,   39,  107,   39,  113,   39,   39,   56,   56,   56,
2135
       56,   56,   56,   56,   56,   56,   56,  188,  188, 1343,
2136
2137
       39, 1341,   39,  110, 1339,   39,  105,  105,   39,  109,
2138
       39,  113,   39,   39,   40,  112,  109,   67,   40,   67,
2139
      105,   40,   40,   67,   67,  112,  116,  116,   40,   67,
2140
      117,   40, 1337,  105,  105, 1333,  109, 1155, 1155, 1288,
2141
     1288,   40,  112,  109,   67,   40,   67,  105,   40,   40,
2142
       67,   67,  112,  116,  116,   40,   67,  117,   40,   57,
2143
       57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2144
       61,   61,  118,   61,   61,   61,   61,   61,   61,  119,
2145
       68,  114, 1329, 1322,   68, 1315,  114,  121,   68,   61,
2146
       61,   61,   70,  123,   68,   61,   70,   61,  124,  118,
2147
2148
      120,  120,   70,   61,   68,   61,  119,   68,  114,   61,
2149
       61,   68,   70,  114,  121,   68,  125,  127, 1301,   70,
2150
      123,   68,   61,   70,   61,  124, 1287,  120,  120,   70,
2151
       61,   68,   61, 1263,  128, 1239,   61,   61, 1193,   70,
2152
     1147, 1072,  997,  125,  127,   61,   62,   62,  898,   62,
2153
       62,   62,   62,   62,   62,  799,  671,  129,   71,   72,
2154
       73,  128,   71,   72,   73,   62,   62,   62,   71,   72,
2155
       73,  130,   62,   77,  132,  126,   62,   77,   71,   72,
2156
       73,  126,   62,   77,  129,   71,   72,   73,  133,   71,
2157
       72,   73,   62,   77,  543,   71,   72,   73,  130,   62,
2158
2159
       77,  132,  126,   62,   77,   71,   72,   73,  126,   62,
2160
       77,  416,  288,   83,  135,  133,   83,   83,  136,   62,
2161
       77,   62,   63,   83,   78,  192,   63,  138,   78,   63,
2162
       63,  131,   78,   83,  131,  190,   63,  139,   78,   63,
2163
       83,  135,   63,   83,   83,  136,   63,   90,   78,   63,
2164
       83,   78,  137,   63,  138,   78,   63,   63,  131,   78,
2165
       83,  131,  137,   63,  139,   78,   63,  137,  137,   63,
2166
       88,   85,   82,   63,   64,   78,   82,   84,   64,  137,
2167
       82,   84,   64,  140,  141,  144,   82,   84,   64,  137,
2168
      142,   64,  142,  145,  137,  137,   82,   84,   64,   82,
2169
2170
       60,   64,   59,   82,   84,   64,   52,   82,   84,   64,
2171
      140,  141,  144,   82,   84,   64,   51,  142,   64,  142,
2172
      145,  146,  147,   82,   84,   64,   65,  111,  111,  111,
2173
       65,  111,  115,   65,  115,   65,   65,  115,  149,  143,
2174
       65,  143,  150,  115,  151,   65,   65,   47,  146,  147,
2175
      115,   45,  143,   65,  111,  111,  111,   65,  111,  115,
2176
       65,  115,   65,   65,  115,  149,  143,   65,  143,  150,
2177
      115,  151,   65,   65,   66,  148,  153,  115,  148,  143,
2178
      154,   66,   66,  155,  156,   66,  157,  122,   66,  122,
2179
      159,   66,  158,  122,   66,   20,  158,  161,   19,  163,
2180
2181
      122,   66,  148,  153,  122,  148,   11,  154,   66,   66,
2182
      155,  156,   66,  157,  122,   66,  122,  159,   66,  158,
2183
      122,   66,   69,  158,  161,  162,  163,  122,   69,   69,
2184
       69,  122,  160,  165,  164,   69,  162,  160,  166,  167,
2185
       69,    7,  168,  164,  169,  160,  170,  165,    4,   69,
2186
      160,  164,  162,  172,  173,   69,   69,   69,    3,  160,
2187
      165,  164,   69,  162,  160,  166,  167,   69,   74,  168,
2188
      164,  169,  160,  170,  165,   74,  171,  160,  164,  174,
2189
      172,  173,   74,  177,  176,   74,    0,  171,   74,   74,
2190
        0,  176,  178,  175,  176,   74,    0,    0,  181,  179,
2191
2192
      182,  183,   74,  171,    0,  179,  174,    0,  291,   74,
2193
      177,  176,   74,  175,  171,   74,   74,   75,  176,  178,
2194
      175,  176,   75,  180,   75,  181,  179,  182,  183,  293,
2195
       75,   75,  179,  294,   75,  291,  180,   75,   75,    0,
2196
      175,    0,    0,    0,   75,    0,    0,    0,    0,   75,
2197
      180,   75,    0,    0,    0,  296,  293,   75,   75,    0,
2198
      294,   75,  208,  180,   75,   75,   76,  208,  200,  208,
2199
      201,  201,  200,   76,  208,  201,  298,   76,  200,  208,
2200
       76,  201,  296,   76,  299,  300,   76,    0,  200,  208,
2201
      301,  201,    0,   76,  208,  200,  208,  201,  201,  200,
2202
2203
       76,  208,  201,  298,   76,  200,  208,   76,  201,    0,
2204
       76,  299,  300,   76,   79,  200,   79,  301,  201,   79,
2205
       79,  302,   79,  203,   79,  203,   79,   79,    0,    0,
2206
      203,  203,    0,    0,  303,  203,   79,    0,    0,    0,
2207
        0,   79,    0,   79,    0,    0,   79,   79,  302,   79,
2208
      203,   79,  203,   79,   79,  202,  209,  203,  203,  202,
2209
      209,  303,  203,   79,   80,  202,  209,  205,   80,  205,
2210
      202,   80,   80,  205,  205,  202,  209,  305,   80,  205,
2211
      306,   80,  202,  209,  307,  308,  202,  209,   80,    0,
2212
        0,   80,  202,  209,  205,   80,  205,  202,   80,   80,
2213
2214
      205,  205,  202,  209,  305,   80,  205,  306,   80,    0,
2215
        0,  307,  308,    0,    0,   80,   91,   91,   91,   91,
2216
       91,   91,   91,   91,   91,   91,   92,   92,   92,   92,
2217
       92,   92,   92,   92,   92,   92,   93,   93,   93,   93,
2218
       93,   93,   93,   93,   93,   93,   93,  193,  193,  193,
2219
      193,  193,  193,  193,  193,  193,  193,  194,  194,  194,
2220
      194,  194,  194,  194,  194,  194,  194,  195,  195,  195,
2221
      195,  195,  195,  195,  195,  195,  195,  195,  204,  206,
2222
      304,  204,  304,  309,  310,  311,  312,    0,  206,  204,
2223
      206,  204,  313,  314,  210,  206,  204,  304,  210,  315,
2224
2225
      206,  204,    0,    0,  210,  204,  206,  304,  204,  304,
2226
      309,  310,  311,  312,  210,  206,  204,  206,  204,  313,
2227
      314,  210,  206,  204,  304,  210,  315,  206,  204,  207,
2228
      207,  210,  211,  316,  211,  207,    0,  207,  317,  211,
2229
      212,  210,  207,  207,  211,  319,  320,  207,  321,  322,
2230
        0,  212,  323,  212,    0,  324,  207,  207,  212,  211,
2231
      316,  211,  207,  212,  207,  317,  211,  212,    0,  207,
2232
      207,  211,  319,  320,  207,  321,  322,  214,  212,  323,
2233
      212,  214,  324,  325,    0,  212,  318,  214,    0,    0,
2234
      212,  213,  213,  213,    0,  213,  215,  214,  213,    0,
2235
2236
      215,  318,  327,  213,  214,  221,  215,  221,  214,  215,
2237
      325,  216,  221,  318,  214,  216,  215,  221,  213,  213,
2238
      213,  216,  213,  215,  214,  213,  216,  215,  318,  327,
2239
      213,  216,  221,  215,  221,  328,  215,    0,  216,  221,
2240
        0,  329,  216,  215,  221,    0,    0,    0,  216,  330,
2241
        0,    0,    0,  216,  331,    0,  332,  333,  216,  217,
2242
        0,  217,  328,    0,  217,  334,  335,  218,  329,  218,
2243
      217,    0,  217,  218,  218,    0,  330,  217,  219,  218,
2244
      219,  331,  217,  332,  333,  219,  217,  219,  217,  336,
2245
      219,  217,  334,  335,  218,  337,  218,  217,  220,  217,
2246
2247
      218,  218,  220,  337,  217,  219,  218,  219,  220,  217,
2248
      338,  339,  219,  340,  219,  223,  336,  219,  220,    0,
2249
        0,  341,  337,  227,  223,  220,  223,  227,    0,  220,
2250
      337,  223,  225,  227,  225,  220,  223,  338,  339,  225,
2251
      340,  342,  223,  227,  225,  220,  222,  222,  341,    0,
2252
      227,  223,  343,  223,  227,  222,    0,  222,  223,  225,
2253
      227,  225,  222,  223,  344,  345,  225,  222,  342,  346,
2254
      227,  225,  347,  222,  222,  348,  226,  349,  226,  343,
2255
        0,    0,  222,  226,  222,    0,    0,    0,  226,  222,
2256
        0,  344,  345,    0,  222,  224,  346,  224,    0,  347,
2257
2258
        0,  224,  348,  226,  349,  226,  350,  224,  224,  229,
2259
      226,  352,  224,  229,  228,  226,  228,  224,    0,  229,
2260
      228,  228,  224,  353,  224,  230,  228,  230,  224,  229,
2261
        0,  355,  230,  350,  224,  224,  229,  230,  352,  224,
2262
      229,  228,  356,  228,  224,  231,  229,  228,  228,  231,
2263
      353,    0,  230,  228,  230,  231,  229,  232,  355,  230,
2264
      357,  232,  358,  351,  230,  231,  360,  232,  233,  356,
2265
      233,  361,  231,  351,  362,  233,  231,  232,  233,  234,
2266
      233,  234,  231,    0,  232,    0,  234,  357,  232,  358,
2267
      351,  234,  231,  360,  232,  233,  363,  233,  361,  364,
2268
2269
      351,  362,  233,    0,  232,  233,  234,  233,  234,  236,
2270
      235,  236,  235,  234,  366,  359,  236,  235,  234,  235,
2271
      237,  236,  235,  363,  237,  359,  364,    0,    0,    0,
2272
      237,    0,    0,    0,    0,  367,  236,  235,  236,  235,
2273
      237,  366,  359,  236,  235,  368,  235,  237,  236,  235,
2274
      238,  237,  359,  369,  238,  241,  240,  237,  240,  241,
2275
      238,  238,  367,  240,  370,  241,  371,  237,  240,  372,
2276
      238,    0,  368,    0,  242,  241,    0,  238,  242,    0,
2277
      369,  238,  241,  240,  242,  240,  241,  238,  238,    0,
2278
      240,  370,  241,  371,  242,  240,  372,  238,  239,  243,
2279
2280
      243,  242,  241,  243,  373,  242,  239,  374,  239,  243,
2281
      246,  242,  246,  239,  239,    0,  246,  246,  239,  243,
2282
        0,  242,  246,  373,    0,  239,  243,  243,    0,    0,
2283
      243,  373,    0,  239,  374,  239,  243,  246,  257,  246,
2284
      239,  239,  257,  246,  246,  239,  243,  244,  257,  246,
2285
      373,  244,  247,  244,  247,  244,  260,  244,  257,  247,
2286
      260,  376,  377,    0,  247,  257,  260,  244,    0,  257,
2287
        0,    0,  378,    0,  244,  257,  260,  375,  244,  247,
2288
      244,  247,  244,  260,  244,  257,  247,  260,  376,  377,
2289
      375,  247,    0,  260,  244,  245,  379,  245,  248,  378,
2290
2291
      248,  380,  381,  260,  375,  248,  245,  249,  245,  249,
2292
      248,  382,  383,  245,  249,  249,  384,  375,  245,  249,
2293
        0,  385,  245,  379,  245,  248,  386,  248,  380,  381,
2294
        0,    0,  248,  245,  249,  245,  249,  248,  382,  383,
2295
      245,  249,  249,  384,    0,  245,  249,  250,  385,  250,
2296
      251,    0,  251,  386,  250,  250,    0,  251,  250,  250,
2297
      252,    0,  251,  254,  387,  254,  389,    0,  390,    0,
2298
      254,  252,    0,  252,  250,  254,  250,  251,  252,  251,
2299
        0,  250,  250,  252,  251,  250,  250,  252,  253,  251,
2300
      254,  387,  254,  389,  253,  390,  253,  254,  252,  255,
2301
2302
      252,  253,  254,    0,  391,  252,  253,  255,    0,  255,
2303
      252,    0,    0,  392,  255,  253,  393,  394,    0,  255,
2304
      395,  253,    0,  253,    0,  396,  255,  397,  253,    0,
2305
      256,  391,  256,  253,  255,  258,  255,  256,  256,  258,
2306
      392,  255,  256,  393,  394,  258,  255,  395,  258,  261,
2307
        0,  261,  396,  398,  397,  258,  261,  256,  399,  256,
2308
        0,  261,  258,  259,  256,  256,  258,  259,  401,  256,
2309
      403,  259,  258,    0,  263,  258,  261,  259,  261,  263,
2310
      398,  263,  258,  261,  405,  399,  263,  259,  261,    0,
2311
      259,  263,    0,    0,  259,  401,    0,  403,  259,    0,
2312
2313
      402,  263,    0,    0,  259,  264,  263,  264,  263,  402,
2314
        0,  405,  264,  263,  259,  262,  264,  264,  263,  265,
2315
      262,  406,  407,  265,    0,  265,  262,  402,  262,  404,
2316
      265,  404,  264,  262,  264,  265,  402,  267,  262,  264,
2317
      408,  267,  262,  264,  264,  267,  265,  262,  406,  407,
2318
      265,  267,  265,  262,    0,  262,  404,  265,  404,  268,
2319
      262,  267,  265,  268,  267,  262,  266,  408,  267,  268,
2320
      409,  410,  267,  411,  413,  266,    0,  266,  267,  268,
2321
        0,  269,  266,  266,    0,  269,  268,  266,  267,  269,
2322
      268,    0,    0,  266,    0,  269,  268,  409,  410,  412,
2323
2324
      411,  413,  266,  412,  266,  269,  268,  270,  269,  266,
2325
      266,  270,  269,  414,  266,  271,  269,  270,  272,  271,
2326
      270,  272,  269,  271,  544,  272,  412,  270,  545,  271,
2327
      412,  272,  269,    0,  270,    0,  546,  547,  270,  271,
2328
      414,  272,  271,  548,  270,  272,  271,  270,  272,  274,
2329
      271,  544,  272,  274,  270,  545,  271,    0,  272,  274,
2330
      273,  273,  273,  546,  547,  549,  271,  273,  272,  274,
2331
      548,  275,  273,  276,  550,  275,  274,  276,    0,  275,
2332
      274,  275,  551,  276,  276,    0,  274,  273,  273,  273,
2333
        0,  275,  549,  276,  273,    0,  274,  552,  275,  273,
2334
2335
      276,  550,  275,  280,  276,  277,  275,  280,  275,  551,
2336
      276,  276,  277,  280,  554,  557,  279,  279,  275,  277,
2337
      276,  279,  277,  280,  552,  277,    0,  279,    0,    0,
2338
      280,  558,  277,    0,  280,    0,    0,  279,    0,  277,
2339
      280,  554,  557,  279,  279,  559,  277,  560,  279,  277,
2340
      280,    0,  277,  278,  279,  281,  278,  281,  558,  562,
2341
      278,  281,  281,  278,  279,  282,  278,  281,    0,  282,
2342
      563,  564,  559,    0,  560,  282,  278,    0,  282,  565,
2343
      278,  567,  281,  278,  281,  282,  562,  278,  281,  281,
2344
      278,  283,  282,  278,  281,  283,  282,  563,  564,    0,
2345
2346
      284,  283,  282,  278,  284,  282,  565,  568,  567,  285,
2347
      284,  283,  282,  285,  422,  284,  422,  285,  283,  569,
2348
      284,  422,  283,  285,  570,  571,  422,  284,  283,  572,
2349
      573,  284,  574,  285,  568,    0,  285,  284,  283,    0,
2350
      285,  422,  284,  422,  285,    0,  569,  284,  422,    0,
2351
      285,  570,  571,  422,    0,    0,  572,  573,    0,  574,
2352
      285,  289,  289,  289,  289,  289,  289,  289,  289,  289,
2353
      289,  417,  417,  417,  417,  417,  417,  417,  417,  417,
2354
      417,  418,  419,  420,  421,  418,  419,  420,  421,  575,
2355
      578,  418,  419,  420,  421,    0,  579,  580,    0,  581,
2356
2357
        0,  418,  419,  420,  421,    0,    0,    0,  418,  419,
2358
      420,  421,  418,  419,  420,  421,  575,  578,  418,  419,
2359
      420,  421,  424,  579,  580,  423,  581,  423,  418,  419,
2360
      420,  421,  423,  424,  425,  424,  425,  423,  426,    0,
2361
      424,  425,  426,    0,  582,  424,  425,    0,  426,  424,
2362
      583,    0,  423,  584,  423,  585,    0,    0,  426,  423,
2363
      424,  425,  424,  425,  423,  426,  427,  424,  425,  426,
2364
      427,  582,  424,  425,  428,  426,  427,  583,  428,  429,
2365
      584,  587,  585,  429,  428,  426,  427,    0,  430,  429,
2366
      430,  588,  428,  427,  428,  430,  589,  427,  590,  429,
2367
2368
      430,  428,  431,  427,  431,  428,  429,  593,  587,  431,
2369
      429,  428,  594,  427,  431,  430,  429,  430,  588,  428,
2370
      433,  428,  430,  589,  433,  590,  429,  430,    0,  431,
2371
      433,  431,    0,  433,  593,    0,  431,    0,    0,  594,
2372
      433,  431,  432,    0,  432,  434,  596,  433,  432,  434,
2373
      598,  433,  599,    0,  432,  434,  600,  433,  435,  432,
2374
      433,  434,  435,    0,  432,  434,  435,  433,  435,  432,
2375
      437,  432,  434,  596,  437,  432,  434,  598,  435,  599,
2376
      437,  432,  434,  600,    0,  435,  432,    0,  434,  435,
2377
      437,  432,  434,  435,  436,  435,    0,  437,  436,    0,
2378
2379
      601,  437,  438,  602,  436,  435,  438,  437,  603,  436,
2380
      438,  439,    0,  439,  436,    0,  438,  437,  439,  606,
2381
        0,  436,    0,  439,    0,  436,  438,  601,  604,  438,
2382
      602,  436,  610,  438,  612,  603,  436,  438,  439,  604,
2383
      439,  436,  440,  438,  440,  439,  606,  441,  440,  440,
2384
      439,  441,  613,  438,  440,  604,  442,  441,  442,  610,
2385
      615,  612,  617,  442,  618,    0,  604,  441,  442,  440,
2386
      443,  440,  443,    0,  441,  440,  440,  443,  441,  613,
2387
        0,  440,  443,  442,  441,  442,    0,  615,  444,  617,
2388
      442,  618,  444,  619,  441,  442,    0,  443,  444,  443,
2389
2390
      616,  616,  445,  446,  443,  621,  445,  446,  444,  443,
2391
      445,    0,  622,  446,  623,  444,  445,  624,  446,  444,
2392
      619,    0,  626,  446,    0,  444,  445,  616,  616,  445,
2393
      446,    0,  621,  445,  446,  444,  447,  445,  447,  622,
2394
      446,  623,  447,  445,  624,  446,  627,  448,  447,  626,
2395
      446,  448,    0,  445,  629,    0,  449,  448,  447,    0,
2396
      449,  630,  631,  447,  632,  447,  449,  448,    0,  447,
2397
        0,  449,    0,  627,  448,  447,  449,    0,  448,  450,
2398
        0,  629,  450,  449,  448,  447,  450,  449,  630,  631,
2399
        0,  632,  450,  449,  448,  452,  634,  451,  449,  452,
2400
2401
      453,  451,  450,  449,  453,  452,  450,  451,  451,  450,
2402
      453,  635,  636,  450,    0,  452,  637,  451,    0,  450,
2403
      453,  638,  452,  634,  451,  640,  452,  453,  451,  450,
2404
      641,  453,  452,    0,  451,  451,  454,  453,  635,  636,
2405
      454,  455,  452,  637,  451,  455,  454,  453,  638,  455,
2406
      456,    0,  640,    0,  456,  455,  454,  641,  642,  458,
2407
      456,  458,  459,  454,  459,  455,  458,  454,  455,  459,
2408
      456,  458,  455,  454,  459,    0,  455,  456,  457,    0,
2409
      457,  456,  455,  454,  457,  642,  458,  456,  458,  459,
2410
      457,  459,  455,  458,  643,  646,  459,  456,  458,    0,
2411
2412
      457,  459,  460,  647,  460,  457,  462,  457,  460,  460,
2413
      462,  457,  648,  461,  460,  461,  462,  457,  649,  650,
2414
      461,  643,  646,  653,  463,  461,  462,  457,  463,  460,
2415
      647,  460,  463,  462,    0,  460,  460,  462,  463,  648,
2416
      461,  460,  461,  462,  654,  649,  650,  461,  463,  656,
2417
      653,  463,  461,  462,  464,  463,  464,  657,  658,  463,
2418
      465,  464,    0,  659,  465,  463,  464,  660,  465,  466,
2419
      465,  654,  661,  466,    0,  463,  656,  466,  662,  466,
2420
      465,  464,  663,  464,  657,  658,    0,  465,  464,  466,
2421
      659,  465,    0,  464,  660,  465,  466,  465,    0,  661,
2422
2423
      466,  467,  468,  467,  466,  662,  466,  465,  467,  663,
2424
        0,  664,  468,  467,  468,  666,  466,    0,  668,  468,
2425
        0,    0,  670,    0,  468,  469,    0,  469,  467,  468,
2426
      467,    0,  469,    0,  469,  467,    0,  469,  664,  468,
2427
      467,  468,  666,  471,  470,  668,  468,  471,  470,  670,
2428
      470,  468,  469,  471,  469,  470,  802,    0,  472,  469,
2429
      470,  469,  472,  471,  469,    0,  804,    0,  472,    0,
2430
      471,  470,  806,  472,  471,  470,  807,  470,  472,    0,
2431
      471,  808,  470,  802,  473,  472,  809,  470,  473,  472,
2432
      471,    0,  474,  804,  473,  472,  474,  473,  474,  806,
2433
2434
      472,    0,  474,  807,  473,  472,  475,    0,  808,    0,
2435
      475,  473,  474,  809,  810,  473,  475,    0,  476,  474,
2436
      811,  473,  476,  474,  473,  474,  475,    0,  476,  474,
2437
      477,  473,  478,  475,  477,  812,  478,  475,  476,  474,
2438
      477,  810,  478,  475,  479,  476,  813,  811,  479,  476,
2439
      477,    0,  478,  475,  479,  476,  480,  477,    0,  478,
2440
      480,  477,  812,  478,  479,  476,  480,  477,  814,  478,
2441
      816,  479,  480,  813,  817,  479,  480,  477,  481,  478,
2442
      481,  479,  482,  480,  482,  481,    0,  480,  818,  482,
2443
      481,  479,    0,  480,  482,  814,    0,  816,  819,  480,
2444
2445
      484,  817,    0,  480,  484,  481,  483,  481,  483,  482,
2446
      484,  482,  481,  483,  483,  818,  482,  481,  483,  485,
2447
      484,  482,  488,  485,  488,  819,  488,  484,  820,  485,
2448
        0,  484,  488,  483,    0,  483,  821,  484,  823,  485,
2449
      483,  483,  488,  486,  486,  483,  485,  484,  486,  488,
2450
      485,  488,  824,  488,  486,  820,  485,  491,  489,  488,
2451
      489,  491,  489,  821,  486,  823,  485,  491,  489,  488,
2452
      486,  486,  491,    0,  825,  486,    0,  491,  489,  824,
2453
      826,  486,    0,  827,  491,  489,    0,  489,  491,  489,
2454
      828,  486,  487,  490,  491,  489,  487,  490,    0,  491,
2455
2456
      487,  825,  487,  490,  491,  489,  487,  826,  829,  490,
2457
      827,    0,  830,  490,    0,    0,  487,  828,  492,  487,
2458
      490,  493,  492,  487,  490,  493,  831,  487,  492,  487,
2459
      490,  493,  832,  487,  492,  829,  490,  833,  492,  830,
2460
      490,  493,  494,  487,  836,  492,  494,    0,  493,  492,
2461
      494,  837,  493,  831,    0,  492,  494,  838,  493,  832,
2462
      495,  492,  495,    0,  833,  492,  494,  495,  493,  494,
2463
      839,  836,  495,  494,  496,    0,  496,  494,  837,    0,
2464
      496,  496,  840,  494,  838,    0,  496,  495,  497,  495,
2465
      497,  841,  498,  494,  495,  497,  498,  839,    0,  495,
2466
2467
      497,  496,  498,  496,    0,  844,  499,  496,  496,  840,
2468
      499,  847,  498,  496,    0,  497,  499,  497,  841,  498,
2469
        0,  500,  497,  498,  848,  500,  499,  497,  502,  498,
2470
      502,  500,  844,  499,  500,  502,    0,  499,  847,  498,
2471
      502,  500,    0,  499,  850,  853,    0,  506,  500,  506,
2472
        0,  848,  500,  499,  506,  502,    0,  502,  500,  506,
2473
      856,  500,  502,  504,  504,  504,    0,  502,  500,  501,
2474
      504,  850,  853,  501,  506,  504,  506,  501,  857,    0,
2475
      858,  506,  849,  501,  859,  849,  506,  856,  501,  860,
2476
      504,  504,  504,  501,    0,  861,  501,  504,  864,  865,
2477
2478
      501,  505,  504,    0,  501,  857,  505,  858,  505,  849,
2479
      501,  859,  849,  505,  866,  501,  860,  867,  505,  507,
2480
      501,  503,  861,  507,  868,  864,  865,    0,  505,  507,
2481
      503,    0,  503,  505,  503,  505,  870,  503,  871,  507,
2482
      505,  866,  503,    0,  867,  505,  507,    0,  503,  872,
2483
      507,  868,  874,    0,  508,    0,  507,  503,  508,  503,
2484
        0,  503,  508,  870,  503,  871,  507,  509,  508,  503,
2485
      510,  509,  875,  510,  510,    0,  872,  509,  508,  874,
2486
      510,  508,  509,    0,  511,  508,  511,  509,    0,  508,
2487
      510,  511,  876,    0,  509,  508,  511,  510,  509,  875,
2488
2489
      510,  510,  513,    0,  509,  508,  513,  510,  512,  509,
2490
      512,  511,  513,  511,  509,  512,  877,  510,  511,  876,
2491
      512,  514,  513,  511,  515,  514,  516,  879,  515,  513,
2492
      516,  514,  880,  513,  515,  512,  516,  512,  520,  513,
2493
      520,  514,  512,  877,  515,  520,  516,  512,  514,  513,
2494
      520,  515,  514,  516,  879,  515,  517,  516,  514,  880,
2495
      517,  515,  881,  516,  882,  520,  517,  520,  514,  517,
2496
      518,  515,  520,  516,  518,  519,  517,  520,  883,  519,
2497
      518,  884,  885,  517,  886,  519,  519,  517,  518,  881,
2498
      518,  882,  521,  517,  521,  519,  517,  518,  887,  521,
2499
2500
      521,  518,  519,  517,  521,  883,  519,  518,  884,  885,
2501
        0,  886,  519,  519,    0,  518,  522,  518,  522,  521,
2502
      889,  521,  519,  522,  522,  887,  521,  521,  522,  890,
2503
      523,  521,  523,  891,  524,  893,  524,  523,  524,  894,
2504
      895,  524,  523,  522,  998,  522,  524,  889,    0,    0,
2505
      522,  522,    0,    0,    0,  522,  890,  523,    0,  523,
2506
      891,  524,  893,  524,  523,  524,  894,  895,  524,  523,
2507
      525,  998,  525,  524,  526,  527,  526,  525,  525,  527,
2508
      528,  526,  525, 1000,  528,  527,  526,    0, 1002,    0,
2509
      528, 1003, 1004, 1005,    0,  527,    0,  525, 1007,  525,
2510
2511
      528,  526,  527,  526,  525,  525,  527,  528,  526,  525,
2512
     1000,  528,  527,  526,  529, 1002,  529,  528, 1003, 1004,
2513
     1005,  529,  527,  530,  531, 1007,  529,  528,  531,    0,
2514
      530, 1009,  530,    0,  531, 1010, 1011,  530, 1012,    0,
2515
     1013,  529,  530,  529,  531, 1015, 1017,    0,  529,    0,
2516
      530,  531,    0,  529, 1019,  531,  532,  530, 1009,  530,
2517
      532,  531, 1010, 1011,  530, 1012,  532, 1013,  532,  530,
2518
      533,  531, 1015, 1017,  533,    0,  532,  535,  534,  535,
2519
      533, 1019,  534,  532,  535,    0,  534,  532, 1022,  535,
2520
      533,    0,  534,  532,    0,  532,    0,  533,    0,    0,
2521
2522
        0,  533,  534,  532,  535,  534,  535,  533,    0,  534,
2523
     1024,  535,  537,  534, 1025, 1022,  535,  533,  536,  534,
2524
      536,  537, 1026,  537,  538,  536,  538,  536,  537,  534,
2525
      536,  538,    0,  537,    0,  538,  538, 1024, 1027,  537,
2526
        0, 1025, 1034,    0,    0,  536,    0,  536,  537, 1026,
2527
      537,  538,  536,  538,  536,  537, 1035,  536,  538,  539,
2528
      537,  539,  538,  538, 1036, 1027,  539,  539,  540, 1034,
2529
      540,  539, 1039,  541,  540,  540,    0,  541,    0,  541,
2530
      540, 1041,    0, 1035,  541,    0,  539,    0,  539,  541,
2531
     1043, 1036,    0,  539,  539,  540,    0,  540,  539, 1039,
2532
2533
      541,  540,  540,  542,  541,  542,  541,  540, 1041,  542,
2534
      542,  541,  672, 1045,  672,  542,  541, 1043,  672,  672,
2535
        0,  673, 1046,  673,  672,    0,    0,  673,  673,    0,
2536
      542, 1047,  542,  673,    0,    0,  542,  542,    0,  672,
2537
     1045,  672,  542,  674,    0,  672,  672,  674,  673, 1046,
2538
      673,  672,  675,  674,  673,  673,  675, 1048, 1047,  677,
2539
      673,  677,  675,  674, 1049,  676,  677, 1050, 1052,  676,
2540
      674,  677,  675, 1053,  674,  676,    0,  678,  676,  675,
2541
      674,  678,    0,  675, 1048,  676,  677,  678,  677,  675,
2542
      674, 1049,  676,  677, 1050, 1052,  676,  678,  677,  675,
2543
2544
     1053, 1054,  676,  680,  678,  676,    0,  680,  678,  679,
2545
        0,  679,  676,  680,  678,  681,  679, 1055,    0,  681,
2546
        0,  679,    0,  680,  678,  681, 1057, 1059, 1054, 1061,
2547
      680, 1062,    0,  682,  680,  681,  679,  682,  679, 1063,
2548
      680,  682,  681,  679, 1055,  683,  681,  682,  679,  683,
2549
      680, 1064,  681, 1057, 1059,  683, 1061,  682, 1062,  684,
2550
      682, 1065,  681,  684,  682,  683, 1063,  685,  682,  684,
2551
        0,  685,  683, 1070,  682,  685,  683, 1071, 1064,  684,
2552
        0,  685,  683, 1152,  682,  686,  684, 1156, 1065,  686,
2553
      684,  685,  683,  686,  685,  686,  684,  687,  685, 1157,
2554
2555
     1070,  687,  685, 1160, 1071,  686,  684,  687,  685,    0,
2556
     1152,  689,  686,    0, 1156,  689,  686,  687,  685,    0,
2557
      686,  689,  686,  688,  687,  690, 1157,  688,  687,  690,
2558
     1160,  689,  686,  688,  687,  690,  688, 1161,  689,  691,
2559
      690,  691,  689,  688,  687,  690,  691, 1162,  689,  692,
2560
      688,  691,  690,  692,  688,    0,  690,    0,  689,  692,
2561
      688,  694,  690,  688, 1161,  694,  691,  690,  691,  692,
2562
      688,  694,  690,  691, 1162,  693,  692,    0,  691,  693,
2563
      692,  694,  695,    0,  695,  693,  692,  702,  694,  695,
2564
      693,  702,  694, 1166,  695,  693,  692,  702,  694,    0,
2565
2566
     1169,    0,  693,  696,  696,  696,  693,  702,  694,  695,
2567
      696,  695,  693, 1170,  702,  696,  695,  693,  702,    0,
2568
     1166,  695,  693, 1173,  702, 1174,  697, 1169,  697, 1175,
2569
      696,  696,  696,  697,  702,  697, 1176,  696,  697,  698,
2570
     1170,  698,  696, 1179,    0, 1180,  698,  698, 1181,    0,
2571
     1173,  698, 1174,  697,    0,  697, 1175,    0,  699,    0,
2572
      697, 1184,  697, 1176, 1186,  697,  698, 1187,  698,  699,
2573
     1179,  699, 1180,  698,  698, 1181,  699,  700,  698,  700,
2574
        0,  699, 1188,  700,  700,  699,  701, 1189, 1184,  700,
2575
     1190, 1186,    0,    0, 1187,  701,  699,  701,  699,    0,
2576
2577
     1240, 1243,  701,  699,  700, 1247,  700,  701,  699, 1188,
2578
      700,  700,    0,  701, 1189, 1248,  700, 1190,  703,  704,
2579
      703,  704,  701, 1251,  701,  703,  704, 1240, 1243,  701,
2580
      703,  704, 1247, 1252,  701, 1241, 1241,  705,    0,  705,
2581
     1253, 1254, 1248,    0,  705,  703,  704,  703,  704,  705,
2582
     1251, 1258,  703,  704,    0,  706, 1259,  703,  704, 1260,
2583
     1252, 1262,    0,  706,  705,  706,  705, 1253, 1254, 1289,
2584
      706,  705, 1290, 1241, 1293,  706,  705,  707, 1258,  707,
2585
        0,  707,  706, 1259,  707,    0, 1260,    0, 1262,  707,
2586
      706,  708,  706,  708,    0,  708, 1289,  706,  708, 1290,
2587
2588
     1241, 1293,  706,  708,  707,  709,  707,  709,  707, 1296,
2589
        0,  707,  709, 1299,  709,    0,  707,  709,  708,  710,
2590
      708,  710,  708,    0,  711,  708,  710,  710,    0, 1303,
2591
      708,  710,  709,    0,  709,  711, 1296,  711,    0,  709,
2592
     1299,  709,  711, 1317,  709,  713,  710,  711,  710,  713,
2593
      712,  711,    0,  710,  710,  713, 1303, 1321,  710, 1316,
2594
     1316,  712,  711,  712,  711,  713,    0,    0,  712,  711,
2595
     1317,  714,  713,  712,  711,  714,  713,  712,    0,  715,
2596
     1324,  714,  713,  715, 1321, 1330,    0, 1334,  712,  715,
2597
      712,  714,  713,  716,  715,  712,    0,  716,  714,  715,
2598
2599
      712, 1316,  714,  716,    0,  717,  715, 1324,  714,  717,
2600
      715, 1338, 1330,  716, 1334,  717,  715, 1340,  714,  718,
2601
      716,  715,    0,  718,  716,  717,  715,  718, 1316, 1342,
2602
      716,  719,  717,  718,    0,  719,  717, 1344, 1338, 1346,
2603
      716,  719,  717,  718, 1340,  720,  718, 1348,    0,  720,
2604
      718,  719,  717,  721,  718,  720, 1342,  721,  719,    0,
2605
      718,  721,  719, 1350, 1344,  720, 1346,  721,  719,    0,
2606
      718, 1352,  720,    0, 1348,  722,  720,  721,  719,  722,
2607
      721, 1354,  720,  723,  721,  722,  722,  723,  721,  724,
2608
     1350,  724,  720,  723,  721,  722,  724,    0, 1352, 1323,
2609
2610
     1323,  724,  722,  723,  721,    0,  722, 1356, 1354,    0,
2611
      723,  727,  722,  722,  723,  727,  724,  725,  724,  725,
2612
      723,  727,  722,  724,  725,  726,    0,  726,  724,  725,
2613
      723,  727,  726,  729, 1356,  729,    0,  726,  727,    0,
2614
      729, 1323,  727,    0,  725,  729,  725,    0,  727,    0,
2615
        0,  725,  726,  728,  726,    0,  725,  728,  727,  726,
2616
      729,    0,  729,  728,  726,    0,  728,  729, 1323,  730,
2617
        0,  730,  729,  728,    0,  730,  730,    0,    0,    0,
2618
      728,  730, 1265, 1265,  728,  731,    0,  731,    0,    0,
2619
      728,  731,  731,  728,    0,    0,  730,  731,  730,  733,
2620
2621
      728,  733,  730,  730,    0,    0,  733,    0,  730,    0,
2622
        0,  733,  731,    0,  731,    0,    0,    0,  731,  731,
2623
     1265,    0,    0,    0,  731,  732,  733,  734,  733,  734,
2624
      732,    0,  732,  733,  734,    0,  732,  732,  733,  734,
2625
        0,  735,  732,  735,    0,    0,    0, 1265,  735,    0,
2626
        0,    0,  732,  735,  734,    0,  734,  732,    0,  732,
2627
      736,  734,  736,  732,  732,    0,  734,  736,  735,  732,
2628
      735,  737,  736,  737,  738,  735,  738,    0,  737,    0,
2629
      735,  738,  738,  737,    0,    0,  738,  736,    0,  736,
2630
      739,    0,  739,    0,  736,    0,    0,  739,  737,  736,
2631
2632
      737,  738,  739,  738,  740,  737,  740,    0,  738,  738,
2633
      737,  740,    0,  738,    0,    0,  740,  739,    0,  739,
2634
        0,    0,  741,    0,  739,    0,  741,    0,    0,  739,
2635
      742,  740,  741,  740,  742,  743,    0,    0,  740,  743,
2636
      742,    0,  741,  740,  744,  743,  744,    0,    0,  741,
2637
      742,  744,  744,  741,  745,  743,  744,  742,  745,  741,
2638
      745,  742,  743,    0,    0,  745,  743,  742,    0,  741,
2639
      745,  744,  743,  744,    0,    0,    0,  742,  744,  744,
2640
        0,  745,  743,  744,  746,  745,  746,  745,    0,  747,
2641
      746,  746,  745,  747,  748,    0,  746,  745,  748,  747,
2642
2643
      749,    0,  749,  769,  748,  769,  749,    0,    0,  747,
2644
      769,  746,  749,  746,  748,  769,  747,  746,  746,    0,
2645
      747,  748,  749,  746,  750,  748,  747,  749,  750,  749,
2646
      769,  748,  769,  749,  750,    0,  747,  769,    0,  749,
2647
        0,  748,  769,  751,  750,    0,    0,  751,    0,  749,
2648
        0,  750,    0,  751,    0,  750,  751,  774,    0,  774,
2649
        0,  750,  752,  751,  774,    0,  752,    0,    0,  774,
2650
      751,  750,  752,    0,  751,  752,    0,  753,    0,    0,
2651
      751,  753,  752,  751,  774,    0,  774,  753,    0,  752,
2652
      751,  774,    0,  752,    0,    0,  774,  753,    0,  752,
2653
2654
        0,    0,  752,  754,  753,    0,  755,  754,  753,  752,
2655
      755,  754,    0,  754,  753,  756,  755,    0,    0,  756,
2656
        0,    0,    0,  754,  753,  756,  755,    0,    0,    0,
2657
      754,    0,    0,  755,  754,  756,    0,  755,  754,    0,
2658
      754,  757,  756,  755,    0,  757,  756,    0,    0,    0,
2659
      754,  757,  756,  755,    0,  758,  759,    0,    0,  758,
2660
      759,  757,  756,  758,  759,    0,    0,    0,  757,  758,
2661
      759,    0,  757,    0,    0,    0,    0,    0,  757,  758,
2662
      759,    0,  758,  759,    0,  760,  758,  759,  757,  760,
2663
      758,  759,    0,    0,  761,  760,  758,  759,  761,    0,
2664
2665
        0,    0,    0,    0,  761,  760,  758,  759,    0,    0,
2666
        0,    0,  760,  762,  761,    0,  760,  762,    0,    0,
2667
        0,  761,  760,  762,    0,  761,  762,    0,    0,    0,
2668
        0,  761,  760,  762,    0,  763,    0,    0,  764,  763,
2669
      762,  761,  764,  763,  762,  763,    0,    0,  764,    0,
2670
      762,  764,    0,  762,    0,  763,    0,    0,  764,    0,
2671
      762,    0,  763,    0,  765,  764,  763,  767,  765,  764,
2672
      763,  767,  763,  766,  765,  764,  766,  767,  764,  765,
2673
      766,    0,  763,    0,  765,  764,  766,  767,    0,  768,
2674
        0,  765,    0,  768,  767,  765,  766,  768,  767,  768,
2675
2676
      766,  765,    0,  766,  767,    0,  765,  766,    0,  768,
2677
        0,  765,    0,  766,  767,  771,  768,    0,  770,  771,
2678
      768,    0,    0,  766,  768,  771,  768,  770,  772,  770,
2679
        0,    0,  772,  773,  770,  771,  768,  773,  772,  770,
2680
        0,    0,  771,  773,    0,  770,  771,  775,  772,    0,
2681
        0,  775,  771,  773,  770,  772,  770,  775,    0,  772,
2682
      773,  770,  771,    0,  773,  772,  770,  775,    0,  776,
2683
      773,    0,  777,  776,  775,  772,  777,  778,  775,  776,
2684
      773,  778,  777,    0,  775,    0,    0,  778,    0,  776,
2685
        0,  779,  777,    0,  775,  779,  776,  778,    0,  777,
2686
2687
      776,  779,    0,  777,  778,    0,  776,    0,  778,  777,
2688
        0,  779,    0,  780,  778,    0,  776,  780,  779,  777,
2689
        0,    0,  779,  780,  778,  781,    0,  781,  779,  782,
2690
        0,  782,  781,  780,    0,    0,  782,  781,  779,    0,
2691
      780,  782,    0,    0,  780,    0,    0,    0,    0,    0,
2692
      780,    0,  781,    0,  781,  783,  782,  783,  782,  781,
2693
      780,    0,  783,  782,  781,  784,    0,  783,  782,    0,
2694
        0,  785,    0,  785,  784,  791,  784,    0,  785,  791,
2695
      785,  784,  783,  785,  783,  791,  784,    0,    0,  783,
2696
        0,    0,  784,    0,  783,  791,    0,  786,  785,  786,
2697
2698
      785,  784,  791,  784,  786,  785,  791,  785,  784,  786,
2699
      785,    0,  791,  784,    0,    0,  787,    0,  787,  788,
2700
        0,    0,  791,  787,  786,  787,  786,  789,  787,  789,
2701
      788,  786,  788,    0,  789,  789,  786,  788,    0,  789,
2702
        0,    0,  788,  787,    0,  787,  788,    0,    0,    0,
2703
      787,    0,  787,  790,  789,  787,  789,  788,  790,  788,
2704
      790,  789,  789,  793,  788,  790,  789,  793,  792,  788,
2705
      790,  792,  792,  793,    0,    0,    0,    0,  792,    0,
2706
      790,    0,    0,  793,    0,  790,    0,  790,  792,    0,
2707
      793,    0,  790,    0,  793,  792,    0,  790,  792,  792,
2708
2709
      793,    0,  794,  795,  796,  792,  794,  795,  796,    0,
2710
      793,    0,  794,  795,  796,  792,  797,    0,  794,    0,
2711
      797,    0,  794,  795,  796,  798,  797,  798,    0,  794,
2712
      795,  796,  798,  794,  795,  796,  797,  798,    0,  794,
2713
      795,  796,    0,  797,    0,  794,    0,  797,    0,  794,
2714
      795,  796,  798,  797,  798,  899,    0,  899,  900,  798,
2715
      900,    0,  899,  797,  798,  900,  901,  899,  901,  902,
2716
      900,  902,    0,  901,    0,    0,  902,    0,  901,    0,
2717
      901,  902,  899,    0,  899,  900,    0,  900,    0,  899,
2718
        0,    0,  900,  901,  899,  901,  902,  900,  902,    0,
2719
2720
      901,    0,  903,  902,    0,  901,  903,  901,  902,    0,
2721
      904,  905,  903,    0,  904,  905,    0,    0,    0,    0,
2722
      904,  905,  903,    0,    0,    0,    0,    0,    0,  903,
2723
      904,  905,    0,  903,    0,    0,  906,  904,  905,  903,
2724
      906,  904,  905,    0,    0,    0,  906,  904,  905,  903,
2725
        0,  906,    0,    0,  908,  908,  906,  904,  905,  908,
2726
      907,    0,    0,  906,  907,  908,    0,  906,  907,    0,
2727
        0,    0,    0,  906,  907,  908,    0,    0,  906,    0,
2728
        0,  908,  908,  906,  907,    0,  908,  907,  909,    0,
2729
      909,  907,  908,    0,  909,  907,  910,  911,  910,  911,
2730
2731
      909,  907,  908,  910,  911,  911,    0,    0,  910,  911,
2732
      909,  907,    0,    0,    0,  909,    0,  909,  912,    0,
2733
        0,  909,  912,  910,  911,  910,  911,  909,  912,    0,
2734
      910,  911,  911,    0,    0,  910,  911,  909,  912,    0,
2735
      913,  915,  914,  915,  913,  912,  914,    0,  915,  912,
2736
      913,    0,  914,  915,  916,  912,    0,    0,  916,    0,
2737
      913,    0,  914,    0,  916,  912,    0,  913,  915,  914,
2738
      915,  913,  917,  914,  916,  915,  917,  913,    0,  914,
2739
      915,  916,  917,    0,    0,  916,  918,  913,    0,  914,
2740
      918,  916,  917,    0,  918,  919,    0,  919,    0,  917,
2741
2742
      918,  916,  919,  917,    0,    0,    0,  919,  920,  917,
2743
      918,    0,  920,  918,    0,    0,  921,  918,  920,  917,
2744
      921,  918,  919,    0,  919,    0,  921,  918,  920,  919,
2745
        0,    0,    0,    0,  919,  920,  921,  918,  922,  920,
2746
        0,    0,  922,  921,    0,  920,  923,  921,  922,    0,
2747
      923,    0,  924,  921,  924,  920,  923,    0,  922,  924,
2748
        0,  923,    0,  921,  924,  922,  923,    0,    0,  922,
2749
      925,    0,  926,  923,  925,  922,  926,  923,    0,  924,
2750
      925,  924,  926,  923,    0,  922,  924,    0,  923,    0,
2751
      925,  924,  926,  923,  927,    0,  928,  925,  927,  926,
2752
2753
      928,  925,    0,  926,  927,    0,  928,  925,    0,  926,
2754
        0,  928,    0,    0,  927,    0,  928,  925,    0,  926,
2755
      929,  927,    0,  928,  929,  927,    0,  928,    0,    0,
2756
      929,  927,  930,  928,  930,  929,    0,    0,  928,  930,
2757
      929,  927,    0,  928,  930,  931,  932,  929,  932,  931,
2758
      933,  929,  932,    0,  933,  931,    0,  929,  932,  930,
2759
      933,  930,  929,    0,    0,  931,  930,  929,  932,    0,
2760
      933,  930,  931,  932,  934,  932,  931,  933,  934,  932,
2761
        0,  933,  931,    0,  934,  932,  935,  933,    0,  936,
2762
      935,  936,  931,  936,  934,  932,  935,  933,    0,  936,
2763
2764
      938,  934,  938,    0,  935,  934,  935,  938,    0,  936,
2765
        0,  934,  938,  935,    0,  937,  936,  935,  936,  937,
2766
      936,  934,    0,  935,    0,  937,  936,  938,    0,  938,
2767
      937,  935,    0,  935,  938,  937,  936,    0,  939,  938,
2768
      939,  941,  937,  941,  940,  939,  937,    0,  941,  940,
2769
      939,  940,  937,  941,    0,    0,  940,  937,    0,    0,
2770
        0,  940,  937,    0,    0,  939,    0,  939,  941,    0,
2771
      941,  940,  939,    0,    0,  941,  940,  939,  940,  942,
2772
      941,  942,  943,  940,  943,  944,  942,  944,  940,  943,
2773
      943,  942,  944,  945,  943,  945,    0,  944,    0,    0,
2774
2775
      945,    0,    0,    0,    0,  945,  942,    0,  942,  943,
2776
        0,  943,  944,  942,  944,    0,  943,  943,  942,  944,
2777
      945,  943,  945,  946,  944,  946,    0,  945,    0,  947,
2778
      946,  946,  945,  947,  948,  946,  948,    0,    0,  947,
2779
        0,  948,    0,    0,  948,    0,  948,    0,    0,  947,
2780
      946,    0,  946,    0,    0,    0,  947,  946,  946,    0,
2781
      947,  948,  946,  948,    0,  949,  947,  949,  948,    0,
2782
        0,  948,  949,  948,    0,    0,  947,  949,  950,  951,
2783
      950,  951,    0,    0,    0,  950,  951,    0,    0,    0,
2784
      950,  951,  949,    0,  949,    0,    0,    0,    0,  949,
2785
2786
        0,  952,    0,    0,  949,  950,  951,  950,  951,  952,
2787
        0,  952,  950,  951,    0,    0,  952,  950,  951,    0,
2788
      953,  952,  953,  954,    0,  954,    0,  953,  952,    0,
2789
      954,    0,  953,    0,    0,  954,  952,    0,  952,    0,
2790
        0,  955,    0,  952,    0,  955,    0,  953,  952,  953,
2791
      954,  955,  954,  956,  953,  956,  957,  954,    0,  953,
2792
      956,  955,  954,    0,    0,  956,    0,  957,  955,  957,
2793
        0,    0,  955,    0,  957,    0,    0,    0,  955,  957,
2794
      956,    0,  956,  957,    0,    0,    0,  956,  955,    0,
2795
        0,  958,  956,  958,  957,    0,  957,    0,  958,  958,
2796
2797
      960,  957,  960,  958,    0,  959,  957,  960,  960,  959,
2798
        0,  959,  960,    0,    0,    0,  959,    0,  958,    0,
2799
      958,  959,    0,    0,    0,  958,  958,  960,    0,  960,
2800
      958,    0,  959,    0,  960,  960,  959,    0,  959,  960,
2801
      961,    0,  961,  959,  962,  963,  962,  961,  959,  963,
2802
        0,  962,  961,    0,    0,  963,  962,    0,    0,    0,
2803
      964,    0,    0,    0,  964,  963,    0,  961,    0,  961,
2804
      964,  962,  963,  962,  961,  964,  963,    0,  962,  961,
2805
      964,    0,  963,  962,  965,  965,  966,  964,    0,  965,
2806
      966,  964,  963,    0,    0,  965,  966,  964,    0,  966,
2807
2808
        0,    0,  964,    0,    0,  965,  966,  964,    0,    0,
2809
        0,  965,  965,  966,  967,  968,  965,  966,  967,  968,
2810
        0,    0,  965,  966,  967,  968,  966,  967,    0,    0,
2811
        0,    0,  965,  966,  967,  968,    0,    0,    0,  969,
2812
      970,  967,  968,  969,  970,  967,  968,    0,    0,  969,
2813
      970,  967,  968,  971,  967,    0,    0,  971,    0,  969,
2814
      970,  967,  968,  971,  973,  972,  969,  970,  973,  972,
2815
      969,  970,  973,  971,    0,  972,  969,  970,  973,    0,
2816
      971,    0,    0,    0,  971,  972,  969,  970,  973,  974,
2817
      971,  973,  972,  974,  976,  973,  972,  974,  976,  973,
2818
2819
      971,    0,  972,  974,  976,  973,  975,  975,    0,  976,
2820
        0,  975,  972,  974,  976,  973,  974,  975,    0,  977,
2821
      974,  976,  978,  977,  974,  976,  978,  975,    0,  977,
2822
      974,  976,  978,  975,  975,    0,  976,    0,  975,  977,
2823
      974,  976,  978,    0,  975,    0,  977,  979,  979,  978,
2824
      977,    0,  979,  978,  975,    0,  977,  980,  979,  978,
2825
      981,  980,  981,    0,    0,  980,  977,  981,  979,  978,
2826
        0,  980,  981,    0,  979,  979,    0,    0,    0,  979,
2827
        0,  980,    0,    0,  980,  979,    0,  981,  980,  981,
2828
        0,    0,  980,    0,  981,  979,    0,    0,  980,  981,
2829
2830
      982,    0,  982,  983,    0,  983,  982,  982,  980,    0,
2831
      983,  983,  982,  984,    0,  983,  986,    0,  986,    0,
2832
        0,    0,    0,  986,  984,    0,  984,  982,  986,  982,
2833
      983,  984,  983,  982,  982,    0,  984,  983,  983,  982,
2834
      984,  985,  983,  986,    0,  986,    0,    0,    0,    0,
2835
      986,  984,  985,  984,  985,  986,    0,    0,  984,  985,
2836
      987,    0,  987,  984,  985,  988,    0,  987,  985,  988,
2837
      990,    0,  987,    0,  990,  988,    0,  989,  989,  985,
2838
      990,  985,  989,    0,    0,  988,  985,  987,  989,  987,
2839
      990,  985,  988,    0,  987,    0,  988,  990,  989,  987,
2840
2841
        0,  990,  988,    0,  989,  989,  991,  990,    0,  989,
2842
      991,  992,  988,  992,    0,  989,  991,  990,  992,    0,
2843
        0,  993,    0,  992,    0,  989,  991,    0,    0,    0,
2844
        0,    0,  993,  991,  993,    0,    0,  991,  992,  993,
2845
      992,    0,    0,  991,  993,  992,    0,  994,  993,    0,
2846
      992,    0,    0,  991,    0,  995,    0,  995,  994,  993,
2847
      994,  993,  995,    0,    0,  994,  993,  995,    0,    0,
2848
      994,  993,    0,    0,  994,    0,  996,    0,  996,    0,
2849
        0,    0,  995,  996,  995,  994, 1073,  994,  996,  995,
2850
     1073, 1074,  994,    0,  995, 1074, 1073,  994,    0,    0,
2851
2852
     1075, 1074, 1075,  996,    0,  996, 1073, 1075,    0,    0,
2853
      996, 1074, 1075, 1073, 1076,  996, 1076, 1073, 1074,    0,
2854
        0, 1076, 1074, 1073,    0,    0, 1076, 1075, 1074, 1075,
2855
     1077,    0, 1077, 1073, 1075,    0, 1078, 1077, 1074, 1075,
2856
     1078, 1076, 1077, 1076,    0, 1079, 1078,    0, 1076, 1079,
2857
        0,    0,    0, 1076,    0, 1079, 1078, 1077,    0, 1077,
2858
     1079,    0,    0, 1078, 1077, 1079,    0, 1078, 1080, 1077,
2859
     1080,    0, 1079, 1078,    0, 1080, 1079, 1081,    0, 1081,
2860
     1080,    0, 1079, 1078, 1081,    0, 1082, 1079, 1082, 1081,
2861
        0,    0, 1079, 1082,    0, 1080,    0, 1080, 1082,    0,
2862
2863
        0,    0, 1080,    0, 1081,    0, 1081, 1080,    0,    0,
2864
     1083, 1081, 1083, 1082,    0, 1082, 1081, 1083,    0, 1084,
2865
     1082, 1084, 1083,    0,    0, 1082, 1084, 1084, 1085, 1085,
2866
     1085, 1084,    0,    0,    0, 1085,    0, 1083,    0, 1083,
2867
     1085,    0,    0,    0, 1083,    0, 1084,    0, 1084, 1083,
2868
     1086,    0,    0, 1084, 1084, 1085, 1085, 1085, 1084, 1086,
2869
        0, 1086, 1085, 1087,    0, 1087, 1086, 1085,    0,    0,
2870
     1087, 1086, 1088,    0, 1088, 1087,    0, 1086,    0, 1088,
2871
     1088,    0,    0,    0, 1088,    0, 1086,    0, 1086,    0,
2872
     1087,    0, 1087, 1086,    0,    0,    0, 1087, 1086, 1088,
2873
2874
        0, 1088, 1087, 1089, 1090, 1089, 1088, 1088,    0,    0,
2875
     1089, 1088,    0,    0, 1090, 1089, 1090, 1091,    0, 1091,
2876
        0, 1090,    0,    0, 1091,    0, 1090,    0,    0, 1091,
2877
     1089, 1090, 1089,    0,    0,    0, 1092, 1089,    0,    0,
2878
        0, 1090, 1089, 1090, 1091, 1092, 1091, 1092, 1090,    0,
2879
        0, 1091, 1092, 1090,    0,    0, 1091, 1092, 1093, 1094,
2880
     1093, 1094,    0, 1092,    0, 1093, 1094,    0,    0,    0,
2881
     1093, 1094, 1092,    0, 1092,    0,    0,    0,    0, 1092,
2882
        0,    0,    0,    0, 1092, 1093, 1094, 1093, 1094, 1095,
2883
        0, 1095, 1093, 1094,    0, 1097, 1095, 1093, 1094, 1097,
2884
2885
     1096, 1095, 1096,    0, 1098, 1097,    0, 1096, 1098,    0,
2886
        0,    0, 1096,    0, 1098, 1097, 1095,    0, 1095,    0,
2887
        0,    0, 1097, 1095, 1098,    0, 1097, 1096, 1095, 1096,
2888
        0, 1098, 1097,    0, 1096, 1098, 1099,    0, 1099, 1096,
2889
     1101, 1098, 1097, 1099, 1101, 1100,    0, 1100, 1099,    0,
2890
     1101, 1098, 1100, 1100, 1102,    0, 1102, 1100,    0,    0,
2891
     1101, 1102,    0, 1099,    0, 1099, 1102, 1101,    0,    0,
2892
     1099, 1101, 1100,    0, 1100, 1099,    0, 1101,    0, 1100,
2893
     1100, 1102,    0, 1102, 1100,    0,    0, 1101, 1102, 1103,
2894
     1104, 1103, 1104, 1102,    0,    0, 1103, 1104, 1105,    0,
2895
2896
     1105, 1103, 1104,    0,    0, 1105,    0,    0,    0,    0,
2897
     1105,    0,    0,    0,    0,    0, 1103, 1104, 1103, 1104,
2898
        0,    0,    0, 1103, 1104, 1105,    0, 1105, 1103, 1104,
2899
        0, 1106, 1105, 1106, 1107,    0, 1107, 1105, 1106,    0,
2900
     1108, 1107, 1108, 1106,    0,    0, 1107, 1108,    0,    0,
2901
        0,    0, 1108,    0,    0,    0,    0,    0, 1106,    0,
2902
     1106, 1107,    0, 1107,    0, 1106,    0, 1108, 1107, 1108,
2903
     1106,    0,    0, 1107, 1108, 1109, 1110, 1109,    0, 1108,
2904
     1110, 1109, 1109,    0,    0,    0, 1110, 1109,    0,    0,
2905
     1112, 1111,    0,    0, 1112, 1111, 1110,    0,    0, 1111,
2906
2907
     1112,    0, 1109, 1110, 1109, 1111,    0, 1110, 1109, 1109,
2908
     1112,    0,    0, 1110, 1109, 1111,    0, 1112, 1111,    0,
2909
     1113, 1112, 1111, 1110, 1113,    0, 1111, 1112,    0, 1114,
2910
     1113, 1114, 1111,    0,    0,    0, 1114, 1112,    0,    0,
2911
     1113, 1114, 1111, 1115,    0, 1115,    0, 1113,    0,    0,
2912
     1115, 1113, 1116,    0, 1116, 1115, 1114, 1113, 1114, 1116,
2913
        0,    0,    0, 1114, 1116,    0,    0, 1113, 1114,    0,
2914
     1115, 1117, 1115, 1117, 1118,    0,    0, 1115, 1117, 1116,
2915
        0, 1116, 1115, 1117,    0, 1118, 1116, 1118,    0,    0,
2916
        0, 1116, 1118,    0,    0,    0,    0, 1118, 1117,    0,
2917
2918
     1117, 1118,    0,    0, 1119, 1117, 1119,    0,    0,    0,
2919
     1117, 1119, 1118, 1120, 1118, 1120, 1119,    0,    0, 1118,
2920
     1120, 1120,    0,    0, 1118, 1120, 1121,    0,    0,    0,
2921
     1121, 1119,    0, 1119,    0, 1122, 1121,    0, 1119, 1122,
2922
     1120,    0, 1120, 1119,    0, 1122, 1121, 1120, 1120, 1125,
2923
     1123, 1125, 1120, 1121, 1123, 1122, 1125, 1121,    0,    0,
2924
     1123, 1125, 1122, 1121, 1124,    0, 1122,    0, 1124,    0,
2925
     1123,    0, 1122, 1121, 1124,    0, 1125, 1123, 1125,    0,
2926
        0, 1123, 1122, 1125, 1124,    0,    0, 1123, 1125, 1127,
2927
        0, 1124, 1126,    0, 1126, 1124,    0, 1123, 1127, 1126,
2928
2929
     1127, 1124,    0,    0, 1126, 1127,    0,    0,    0,    0,
2930
     1127, 1124,    0, 1128,    0,    0, 1127,    0,    0, 1126,
2931
        0, 1126, 1128,    0, 1128, 1127, 1126, 1127,    0, 1128,
2932
        0, 1126, 1127,    0, 1128,    0, 1129, 1127, 1129,    0,
2933
     1128,    0,    0, 1129,    0, 1130,    0, 1130, 1129, 1128,
2934
        0, 1128, 1130,    0,    0,    0, 1128, 1130,    0,    0,
2935
        0, 1128,    0, 1129, 1131, 1129, 1131,    0,    0,    0,
2936
     1129, 1131, 1130,    0, 1130, 1129, 1131,    0, 1132, 1130,
2937
     1132,    0,    0,    0, 1130, 1132,    0, 1133,    0, 1133,
2938
     1132, 1131,    0, 1131, 1133,    0,    0,    0, 1131, 1133,
2939
2940
        0,    0,    0, 1131,    0, 1132, 1134, 1132, 1134,    0,
2941
        0,    0, 1132, 1134, 1133,    0, 1133, 1132, 1134,    0,
2942
     1135, 1133, 1135, 1136,    0,    0, 1133, 1135,    0,    0,
2943
        0,    0, 1135, 1134, 1136, 1134, 1136,    0,    0,    0,
2944
     1134, 1136, 1137,    0,    0, 1134, 1136, 1135,    0, 1135,
2945
     1136,    0,    0, 1137, 1135, 1137,    0,    0,    0, 1135,
2946
     1137, 1136,    0, 1136,    0, 1137,    0, 1138, 1136, 1137,
2947
        0,    0,    0, 1136,    0,    0, 1138, 1139, 1138, 1139,
2948
     1137,    0, 1137, 1138, 1139, 1139,    0, 1137, 1138, 1139,
2949
        0,    0, 1137,    0, 1138,    0,    0,    0,    0, 1140,
2950
2951
        0,    0,    0, 1138, 1139, 1138, 1139, 1140,    0, 1140,
2952
     1138, 1139, 1139,    0, 1140, 1138, 1139,    0, 1141, 1140,
2953
     1141, 1142,    0, 1142,    0, 1141, 1140,    0, 1142,    0,
2954
     1141,    0,    0, 1142, 1140,    0, 1140, 1143,    0, 1143,
2955
        0, 1140,    0,    0, 1143, 1141, 1140, 1141, 1142, 1143,
2956
     1142, 1144, 1141, 1144,    0, 1142,    0, 1141, 1144,    0,
2957
     1142,    0,    0, 1144, 1143,    0, 1143, 1145,    0, 1145,
2958
     1146, 1143, 1146, 1145, 1145,    0, 1143, 1146, 1144, 1145,
2959
     1144, 1194, 1146, 1194,    0, 1144,    0,    0, 1194,    0,
2960
     1144,    0,    0, 1194, 1145,    0, 1145, 1146,    0, 1146,
2961
2962
     1145, 1145,    0,    0, 1146, 1195, 1145, 1195, 1194, 1146,
2963
     1194, 1196, 1195, 1196, 1197, 1194, 1197, 1195, 1196,    0,
2964
     1194, 1197,    0, 1196,    0,    0, 1197, 1198,    0,    0,
2965
        0, 1198, 1195,    0, 1195,    0,    0, 1198, 1196, 1195,
2966
     1196, 1197, 1199, 1197, 1195, 1196, 1199, 1198, 1197,    0,
2967
     1196, 1200, 1199, 1197, 1198, 1200, 1201, 1201, 1198,    0,
2968
        0, 1200, 1199,    0, 1198,    0, 1202,    0,    0, 1199,
2969
     1202, 1200,    0, 1199, 1198,    0, 1202,    0, 1200, 1199,
2970
        0, 1201, 1200,    0,    0, 1201, 1202,    0, 1200, 1199,
2971
        0, 1201, 1203, 1202,    0, 1204, 1203, 1202, 1200, 1204,
2972
2973
     1203, 1201,    0, 1202,    0, 1204, 1203,    0, 1201,    0,
2974
     1205,    0, 1201, 1202, 1205, 1204, 1203,    0, 1201, 1203,
2975
     1205,    0, 1204, 1203,    0, 1206, 1204, 1203, 1201, 1206,
2976
     1205,    0, 1204, 1203, 1207, 1206,    0, 1205, 1207,    0,
2977
        0, 1205, 1204, 1203, 1207, 1206, 1212, 1205, 1212, 1207,
2978
        0,    0, 1206, 1212, 1207,    0, 1206, 1205, 1212, 1209,
2979
        0, 1207, 1206, 1209, 1208, 1207, 1208,    0, 1208, 1209,
2980
        0, 1207, 1206, 1212, 1208, 1212, 1207,    0, 1210, 1209,
2981
     1212, 1207, 1210,    0, 1208, 1212, 1209, 1213, 1210, 1213,
2982
     1209, 1208,    0, 1208, 1213, 1208, 1209,    0, 1210, 1213,
2983
2984
     1211, 1208,    0,    0, 1211, 1210, 1209,    0,    0, 1210,
2985
     1211, 1208,    0,    0, 1213, 1210, 1213, 1214,    0, 1214,
2986
     1211, 1213,    0,    0, 1214, 1210, 1213, 1211, 1216, 1214,
2987
     1216, 1211, 1215,    0,    0, 1216,    0, 1211,    0,    0,
2988
     1216, 1215,    0, 1215, 1214,    0, 1214, 1211, 1215,    0,
2989
        0, 1214,    0, 1215,    0, 1216, 1214, 1216,    0, 1215,
2990
        0,    0, 1216,    0, 1217,    0, 1217, 1216, 1215,    0,
2991
     1215, 1217, 1218,    0, 1218, 1215, 1217, 1220,    0, 1218,
2992
     1215, 1220, 1221, 1219, 1218, 1219, 1221, 1220,    0, 1219,
2993
     1219, 1217, 1221, 1217,    0, 1219,    0, 1220, 1217, 1218,
2994
2995
        0, 1218, 1221, 1217, 1220,    0, 1218,    0, 1220, 1221,
2996
     1219, 1218, 1219, 1221, 1220,    0, 1219, 1219, 1222, 1221,
2997
     1222, 1223, 1219, 1223, 1220, 1222,    0,    0, 1223, 1221,
2998
     1222,    0, 1224, 1223, 1224,    0,    0,    0,    0, 1224,
2999
        0,    0, 1225,    0, 1224, 1222,    0, 1222, 1223,    0,
3000
     1223, 1225, 1222, 1225,    0, 1223,    0, 1222, 1225, 1224,
3001
     1223, 1224,    0, 1225,    0, 1226, 1224, 1226,    0, 1225,
3002
        0, 1224, 1226, 1226,    0,    0,    0, 1226, 1225,    0,
3003
     1225,    0,    0, 1227, 1227, 1225, 1227,    0,    0,    0,
3004
     1225, 1227, 1226,    0, 1226, 1228, 1227, 1228,    0, 1226,
3005
3006
     1226,    0, 1228,    0, 1226,    0,    0, 1228,    0,    0,
3007
     1227, 1227,    0, 1227, 1229,    0, 1229,    0, 1227,    0,
3008
        0, 1229, 1228, 1227, 1228, 1230, 1229, 1230, 1231, 1228,
3009
     1231,    0, 1230, 1230, 1228, 1231,    0, 1230,    0,    0,
3010
     1231, 1229,    0, 1229, 1232,    0, 1232,    0, 1229,    0,
3011
     1232, 1232, 1230, 1229, 1230, 1231, 1232, 1231,    0, 1230,
3012
     1230,    0, 1231,    0, 1230,    0,    0, 1231, 1233, 1233,
3013
     1233, 1232,    0, 1232, 1234, 1233, 1234, 1232, 1232,    0,
3014
     1233, 1234, 1234, 1232, 1235,    0, 1234,    0, 1235,    0,
3015
        0,    0,    0,    0, 1235, 1233, 1233, 1233,    0,    0,
3016
3017
        0, 1234, 1233, 1234, 1235,    0, 1236, 1233, 1234, 1234,
3018
     1236, 1235,    0, 1234, 1237, 1235, 1236,    0, 1237, 1238,
3019
        0, 1235,    0, 1238, 1237,    0, 1236,    0,    0, 1238,
3020
        0, 1235, 1266, 1236, 1237,    0, 1266, 1236,    0, 1238,
3021
        0, 1237, 1266, 1236, 1264, 1237, 1238,    0, 1264,    0,
3022
     1238, 1237, 1266, 1236, 1264,    0, 1238, 1264, 1267, 1266,
3023
        0, 1237, 1267, 1266, 1264,    0, 1238,    0, 1267, 1266,
3024
     1268, 1264, 1269, 1267, 1268, 1264, 1269,    0, 1267, 1266,
3025
     1268, 1264, 1269,    0, 1264, 1267,    0,    0,    0, 1267,
3026
     1268, 1264, 1269,    0, 1270, 1267,    0, 1268, 1270, 1269,
3027
3028
     1267, 1268,    0, 1269, 1270, 1267, 1271, 1268, 1271, 1269,
3029
     1271,    0,    0,    0, 1270,    0, 1271, 1268,    0, 1269,
3030
        0, 1270,    0,    0, 1272, 1270, 1271,    0, 1272,    0,
3031
        0, 1270, 1273, 1271, 1272, 1271, 1273, 1271,    0, 1272,
3032
        0, 1270, 1273, 1271, 1272,    0,    0,    0,    0,    0,
3033
     1274, 1272, 1273, 1271, 1274, 1272,    0,    0,    0, 1273,
3034
     1274, 1272,    0, 1273,    0,    0, 1272,    0,    0, 1273,
3035
     1274, 1272, 1275,    0,    0,    0, 1275, 1274,    0, 1273,
3036
        0, 1274, 1275, 1277, 1276, 1275, 1276, 1274, 1277,    0,
3037
     1277, 1276, 1275,    0, 1278, 1277, 1276, 1274, 1278, 1275,
3038
3039
     1277,    0,    0, 1275, 1278,    0,    0,    0,    0, 1275,
3040
     1277, 1276, 1275, 1276, 1278, 1277, 1279, 1277, 1276, 1275,
3041
     1279, 1278, 1277, 1276, 1280, 1278, 1279, 1277, 1280, 1281,
3042
        0, 1278,    0, 1281, 1280,    0, 1279,    0, 1282, 1281,
3043
        0, 1278, 1282, 1279, 1280,    0,    0, 1279, 1282, 1281,
3044
        0, 1280,    0, 1279,    0, 1280, 1281,    0, 1282,    0,
3045
     1281, 1280,    0, 1279,    0, 1282, 1281,    0, 1283, 1282,
3046
     1284, 1280, 1283, 1285, 1284, 1282, 1281, 1285, 1283, 1283,
3047
     1284, 1286, 1286, 1285,    0, 1282, 1286,    0, 1283,    0,
3048
     1284,    0, 1286, 1285,    0, 1283,    0, 1284,    0, 1283,
3049
3050
     1285, 1284, 1286,    0, 1285, 1283, 1283, 1284, 1286, 1286,
3051
     1285, 1302, 1302, 1286, 1304, 1283,    0, 1284, 1304, 1286,
3052
     1285,    0, 1305, 1306, 1304,    0, 1305, 1306,    0, 1286,
3053
        0,    0, 1305, 1306, 1304,    0, 1302,    0,    0,    0,
3054
     1302, 1304, 1305, 1306,    0, 1304, 1302,    0,    0, 1305,
3055
     1306, 1304,    0, 1305, 1306,    0, 1302,    0,    0, 1305,
3056
     1306, 1304,    0, 1302, 1307,    0, 1307, 1302,    0, 1305,
3057
     1306, 1307, 1308, 1302, 1308, 1309, 1307, 1309, 1310, 1308,
3058
     1310,    0, 1309, 1302, 1308, 1310,    0, 1309,    0,    0,
3059
     1310, 1307,    0, 1307,    0,    0,    0,    0, 1307, 1308,
3060
3061
        0, 1308, 1309, 1307, 1309, 1310, 1308, 1310, 1311, 1309,
3062
     1311, 1308, 1310,    0, 1309, 1311, 1312, 1310, 1312,    0,
3063
     1311, 1313,    0, 1312,    0, 1313, 1314,    0, 1312, 1325,
3064
     1314, 1313,    0, 1325, 1326, 1311, 1314, 1311, 1326, 1325,
3065
        0, 1313, 1311, 1312, 1326, 1312, 1314, 1311, 1313, 1325,
3066
     1312,    0, 1313, 1314, 1326, 1312, 1325, 1314, 1313,    0,
3067
     1325, 1326,    0, 1314,    0, 1326, 1325,    0, 1313,    0,
3068
     1327, 1326,    0, 1314, 1327, 1328, 1325, 1328,    0,    0,
3069
     1327, 1326, 1328,    0, 1336,    0, 1336, 1328,    0,    0,
3070
     1327, 1336,    0,    0,    0,    0, 1336, 1327,    0,    0,
3071
3072
        0, 1327, 1328,    0, 1328,    0,    0, 1327,    0, 1328,
3073
        0, 1336,    0, 1336, 1328,    0,    0, 1327, 1336,    0,
3074
        0,    0,    0, 1336, 1368, 1368, 1368, 1368, 1368, 1369,
3075
        0,    0, 1369, 1369, 1371, 1371, 1371,    0, 1371, 1372,
3076
        0, 1372, 1372, 1372, 1373,    0, 1373, 1373, 1373, 1374,
3077
        0, 1374, 1374, 1374, 1367, 1367, 1367, 1367, 1367, 1367,
3078
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3079
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3080
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3081
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3082
3083
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3084
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3085
     1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
3086
     1367
3087
    } ;
3088
3089
/* The intent behind this definition is that it'll catch
3090
 * any uses of REJECT which flex missed.
3091
 */
3092
#define REJECT reject_used_but_not_detected
3093
#define yymore() yymore_used_but_not_detected
3094
17.9k
#define YY_MORE_ADJ 0
3095
#define YY_RESTORE_YY_MORE_OFFSET
3096
#line 1 "flex_lexer.l"
3097
/**
3098
 * lexer
3099
 *
3100
 *
3101
 */
3102
/***************************
3103
 ** Section 1: Definitions
3104
 ***************************/
3105
#line 12 "flex_lexer.l"
3106
3107
#include "../sql/Expr.h"
3108
#include "bison_parser.h"
3109
#include <climits>
3110
#include <stdio.h>
3111
#include <sstream>
3112
3113
570k
#define TOKEN(name) { return SQL_##name; }
3114
3115
static thread_local std::stringstream strbuf;
3116
3117
#line 3117 "flex_lexer.cpp"
3118
3119
/***************************
3120
 ** Section 2: Rules
3121
 ***************************/
3122
/* Define the output files */
3123
/* Make reentrant */
3124
/* performance tweeks */
3125
/* other flags */
3126
/* %option nodefault */
3127
3128
/***************************
3129
 ** Section 3: Rules
3130
 ***************************/
3131
#line 3131 "flex_lexer.cpp"
3132
3133
3.71k
#define INITIAL 0
3134
23.6k
#define singlequotedstring 1
3135
3.93k
#define COMMENT 2
3136
3137
#ifndef YY_NO_UNISTD_H
3138
/* Special case for "unistd.h", since it is non-ANSI. We include it way
3139
 * down here because we want the user's section 1 to have been scanned first.
3140
 * The user has a chance to override it with an option.
3141
 */
3142
#include <unistd.h>
3143
#endif
3144
3145
#ifndef YY_EXTRA_TYPE
3146
#define YY_EXTRA_TYPE void *
3147
#endif
3148
3149
/* Holds the entire state of the reentrant scanner. */
3150
struct yyguts_t
3151
    {
3152
3153
    /* User-defined. Not touched by flex. */
3154
    YY_EXTRA_TYPE yyextra_r;
3155
3156
    /* The rest are the same as the globals declared in the non-reentrant scanner. */
3157
    FILE *yyin_r, *yyout_r;
3158
    size_t yy_buffer_stack_top; /**< index of top of stack. */
3159
    size_t yy_buffer_stack_max; /**< capacity of stack. */
3160
    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
3161
    char yy_hold_char;
3162
    int yy_n_chars;
3163
    int yyleng_r;
3164
    char *yy_c_buf_p;
3165
    int yy_init;
3166
    int yy_start;
3167
    int yy_did_buffer_switch_on_eof;
3168
    int yy_start_stack_ptr;
3169
    int yy_start_stack_depth;
3170
    int *yy_start_stack;
3171
    yy_state_type yy_last_accepting_state;
3172
    char* yy_last_accepting_cpos;
3173
3174
    int yylineno_r;
3175
    int yy_flex_debug_r;
3176
3177
    char *yytext_r;
3178
    int yy_more_flag;
3179
    int yy_more_len;
3180
3181
    YYSTYPE * yylval_r;
3182
3183
    YYLTYPE * yylloc_r;
3184
3185
    }; /* end struct yyguts_t */
3186
3187
static int yy_init_globals ( yyscan_t yyscanner );
3188
3189
    /* This must go here because YYSTYPE and YYLTYPE are included
3190
     * from bison output in section 1.*/
3191
4.11M
    #    define yylval yyg->yylval_r
3192
    
3193
74.0M
    #    define yylloc yyg->yylloc_r
3194
    
3195
int yylex_init (yyscan_t* scanner);
3196
3197
int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
3198
3199
/* Accessor methods to globals.
3200
   These are made visible to non-reentrant scanners for convenience. */
3201
3202
int yylex_destroy ( yyscan_t yyscanner );
3203
3204
int yyget_debug ( yyscan_t yyscanner );
3205
3206
void yyset_debug ( int debug_flag , yyscan_t yyscanner );
3207
3208
YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
3209
3210
void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
3211
3212
FILE *yyget_in ( yyscan_t yyscanner );
3213
3214
void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
3215
3216
FILE *yyget_out ( yyscan_t yyscanner );
3217
3218
void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
3219
3220
      int yyget_leng ( yyscan_t yyscanner );
3221
3222
char *yyget_text ( yyscan_t yyscanner );
3223
3224
int yyget_lineno ( yyscan_t yyscanner );
3225
3226
void yyset_lineno ( int _line_number , yyscan_t yyscanner );
3227
3228
int yyget_column  ( yyscan_t yyscanner );
3229
3230
void yyset_column ( int _column_no , yyscan_t yyscanner );
3231
3232
YYSTYPE * yyget_lval ( yyscan_t yyscanner );
3233
3234
void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
3235
3236
       YYLTYPE *yyget_lloc ( yyscan_t yyscanner );
3237
    
3238
        void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner );
3239
    
3240
/* Macros after this point can all be overridden by user definitions in
3241
 * section 1.
3242
 */
3243
3244
#ifndef YY_SKIP_YYWRAP
3245
#ifdef __cplusplus
3246
extern "C" int yywrap ( yyscan_t yyscanner );
3247
#else
3248
extern int yywrap ( yyscan_t yyscanner );
3249
#endif
3250
#endif
3251
3252
#ifndef YY_NO_UNPUT
3253
    
3254
#endif
3255
3256
#ifndef yytext_ptr
3257
static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
3258
#endif
3259
3260
#ifdef YY_NEED_STRLEN
3261
static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
3262
#endif
3263
3264
#ifndef YY_NO_INPUT
3265
#ifdef __cplusplus
3266
static int yyinput ( yyscan_t yyscanner );
3267
#else
3268
static int input ( yyscan_t yyscanner );
3269
#endif
3270
3271
#endif
3272
3273
/* Amount of stuff to slurp up with each read. */
3274
#ifndef YY_READ_BUF_SIZE
3275
#ifdef __ia64__
3276
/* On IA-64, the buffer size is 16k, not 8k */
3277
#define YY_READ_BUF_SIZE 16384
3278
#else
3279
0
#define YY_READ_BUF_SIZE 8192
3280
#endif /* __ia64__ */
3281
#endif
3282
3283
/* Copy whatever the last rule matched to the standard output. */
3284
#ifndef ECHO
3285
/* This used to be an fputs(), but since the string might contain NUL's,
3286
 * we now use fwrite().
3287
 */
3288
0
#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
3289
#endif
3290
3291
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3292
 * is returned in "result".
3293
 */
3294
#ifndef YY_INPUT
3295
#define YY_INPUT(buf,result,max_size) \
3296
0
  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3297
0
    { \
3298
0
    int c = '*'; \
3299
0
    int n; \
3300
0
    for ( n = 0; n < max_size && \
3301
0
           (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3302
0
      buf[n] = (char) c; \
3303
0
    if ( c == '\n' ) \
3304
0
      buf[n++] = (char) c; \
3305
0
    if ( c == EOF && ferror( yyin ) ) \
3306
0
      YY_FATAL_ERROR( "input in flex scanner failed" ); \
3307
0
    result = n; \
3308
0
    } \
3309
0
  else \
3310
0
    { \
3311
0
    errno=0; \
3312
0
    while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
3313
0
      { \
3314
0
      if( errno != EINTR) \
3315
0
        { \
3316
0
        YY_FATAL_ERROR( "input in flex scanner failed" ); \
3317
0
        break; \
3318
0
        } \
3319
0
      errno=0; \
3320
0
      clearerr(yyin); \
3321
0
      } \
3322
0
    }\
3323
\
3324
3325
#endif
3326
3327
/* No semi-colon after return; correct usage is to write "yyterminate();" -
3328
 * we don't want an extra ';' after the "return" because that will cause
3329
 * some compilers to complain about unreachable statements.
3330
 */
3331
#ifndef yyterminate
3332
2.57k
#define yyterminate() return YY_NULL
3333
#endif
3334
3335
/* Number of entries by which start-condition stack grows. */
3336
#ifndef YY_START_STACK_INCR
3337
#define YY_START_STACK_INCR 25
3338
#endif
3339
3340
/* Report a fatal error. */
3341
#ifndef YY_FATAL_ERROR
3342
0
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
3343
#endif
3344
3345
/* end tables serialization structures and prototypes */
3346
3347
/* Default declaration of generated scanner - a define so the user can
3348
 * easily add parameters.
3349
 */
3350
#ifndef YY_DECL
3351
#define YY_DECL_IS_OURS 1
3352
3353
extern int yylex \
3354
               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner);
3355
3356
#define YY_DECL int yylex \
3357
               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
3358
#endif /* !YY_DECL */
3359
3360
/* Code executed at the beginning of each rule, after yytext and yyleng
3361
 * have been set up.
3362
 */
3363
#ifndef YY_USER_ACTION
3364
#define YY_USER_ACTION
3365
#endif
3366
3367
/* Code executed at the end of each rule. */
3368
#ifndef YY_BREAK
3369
524k
#define YY_BREAK /*LINTED*/break;
3370
#endif
3371
3372
#define YY_RULE_SETUP \
3373
4.15M
  YY_USER_ACTION
3374
3375
/** The main scanner function which does all the work.
3376
 */
3377
YY_DECL
3378
3.63M
{
3379
3.63M
  yy_state_type yy_current_state;
3380
3.63M
  char *yy_cp, *yy_bp;
3381
3.63M
  int yy_act;
3382
3.63M
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3383
3384
3.63M
    yylval = yylval_param;
3385
3386
3.63M
    yylloc = yylloc_param;
3387
3388
3.63M
  if ( !yyg->yy_init )
3389
5.23k
    {
3390
5.23k
    yyg->yy_init = 1;
3391
3392
#ifdef YY_USER_INIT
3393
    YY_USER_INIT;
3394
#endif
3395
3396
5.23k
    if ( ! yyg->yy_start )
3397
5.23k
      yyg->yy_start = 1; /* first start state */
3398
3399
5.23k
    if ( ! yyin )
3400
5.23k
      yyin = stdin;
3401
3402
5.23k
    if ( ! yyout )
3403
5.23k
      yyout = stdout;
3404
3405
5.23k
    if ( ! YY_CURRENT_BUFFER ) {
3406
0
      yyensure_buffer_stack (yyscanner);
3407
0
      YY_CURRENT_BUFFER_LVALUE =
3408
0
        yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
3409
0
    }
3410
3411
5.23k
    yy_load_buffer_state( yyscanner );
3412
5.23k
    }
3413
3414
3.63M
  {
3415
3.63M
#line 57 "flex_lexer.l"
3416
3417
3418
3.63M
#line 3418 "flex_lexer.cpp"
3419
3420
4.15M
  while ( /*CONSTCOND*/1 )    /* loops until end-of-file is reached */
3421
4.15M
    {
3422
4.15M
    yy_cp = yyg->yy_c_buf_p;
3423
3424
    /* Support of yytext. */
3425
4.15M
    *yy_cp = yyg->yy_hold_char;
3426
3427
    /* yy_bp points to the position in yy_ch_buf of the start of
3428
     * the current run.
3429
     */
3430
4.15M
    yy_bp = yy_cp;
3431
3432
4.15M
    yy_current_state = yyg->yy_start;
3433
4.15M
yy_match:
3434
4.15M
    do
3435
22.0M
      {
3436
22.0M
      YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
3437
22.0M
      if ( yy_accept[yy_current_state] )
3438
17.8M
        {
3439
17.8M
        yyg->yy_last_accepting_state = yy_current_state;
3440
17.8M
        yyg->yy_last_accepting_cpos = yy_cp;
3441
17.8M
        }
3442
39.0M
      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3443
16.9M
        {
3444
16.9M
        yy_current_state = (int) yy_def[yy_current_state];
3445
16.9M
        if ( yy_current_state >= 1368 )
3446
12.8M
          yy_c = yy_meta[yy_c];
3447
16.9M
        }
3448
22.0M
      yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
3449
22.0M
      ++yy_cp;
3450
22.0M
      }
3451
22.0M
    while ( yy_current_state != 1367 );
3452
4.15M
    yy_cp = yyg->yy_last_accepting_cpos;
3453
4.15M
    yy_current_state = yyg->yy_last_accepting_state;
3454
3455
4.16M
yy_find_action:
3456
4.16M
    yy_act = yy_accept[yy_current_state];
3457
3458
4.16M
    YY_DO_BEFORE_ACTION;
3459
3460
4.16M
do_action:  /* This label is used only to access EOF actions. */
3461
3462
4.16M
    switch ( yy_act )
3463
4.16M
  { /* beginning of action switch */
3464
14
      case 0: /* must back up */
3465
      /* undo the effects of YY_DO_BEFORE_ACTION */
3466
14
      *yy_cp = yyg->yy_hold_char;
3467
14
      yy_cp = yyg->yy_last_accepting_cpos;
3468
14
      yy_current_state = yyg->yy_last_accepting_state;
3469
14
      goto yy_find_action;
3470
3471
3.93k
case 1:
3472
3.93k
YY_RULE_SETUP
3473
3.93k
#line 59 "flex_lexer.l"
3474
3.93k
BEGIN(COMMENT);
3475
3.93k
  YY_BREAK
3476
3.66k
case 2:
3477
3.66k
YY_RULE_SETUP
3478
3.66k
#line 60 "flex_lexer.l"
3479
3.66k
/* skipping comment content until a end of line is read */;
3480
3.66k
  YY_BREAK
3481
3.71k
case 3:
3482
/* rule 3 can match eol */
3483
3.71k
YY_RULE_SETUP
3484
3.71k
#line 61 "flex_lexer.l"
3485
3.71k
BEGIN(INITIAL);
3486
3.71k
  YY_BREAK
3487
468k
case 4:
3488
/* rule 4 can match eol */
3489
468k
YY_RULE_SETUP
3490
468k
#line 63 "flex_lexer.l"
3491
468k
/* skip whitespace */;
3492
468k
  YY_BREAK
3493
2
case 5:
3494
2
YY_RULE_SETUP
3495
2
#line 65 "flex_lexer.l"
3496
2
TOKEN(ADD)
3497
0
  YY_BREAK
3498
2
case 6:
3499
2
YY_RULE_SETUP
3500
2
#line 66 "flex_lexer.l"
3501
2
TOKEN(AFTER)
3502
0
  YY_BREAK
3503
2.65k
case 7:
3504
2.65k
YY_RULE_SETUP
3505
2.65k
#line 67 "flex_lexer.l"
3506
2.65k
TOKEN(ALL)
3507
0
  YY_BREAK
3508
5
case 8:
3509
5
YY_RULE_SETUP
3510
5
#line 68 "flex_lexer.l"
3511
5
TOKEN(ALTER)
3512
0
  YY_BREAK
3513
0
case 9:
3514
0
YY_RULE_SETUP
3515
0
#line 69 "flex_lexer.l"
3516
0
TOKEN(ANALYZE)
3517
0
  YY_BREAK
3518
2.00k
case 10:
3519
2.00k
YY_RULE_SETUP
3520
2.00k
#line 70 "flex_lexer.l"
3521
2.00k
TOKEN(AND)
3522
0
  YY_BREAK
3523
931
case 11:
3524
931
YY_RULE_SETUP
3525
931
#line 71 "flex_lexer.l"
3526
931
TOKEN(ARRAY)
3527
0
  YY_BREAK
3528
5.94k
case 12:
3529
5.94k
YY_RULE_SETUP
3530
5.94k
#line 72 "flex_lexer.l"
3531
5.94k
TOKEN(AS)
3532
0
  YY_BREAK
3533
708
case 13:
3534
708
YY_RULE_SETUP
3535
708
#line 73 "flex_lexer.l"
3536
708
TOKEN(ASC)
3537
0
  YY_BREAK
3538
2
case 14:
3539
2
YY_RULE_SETUP
3540
2
#line 74 "flex_lexer.l"
3541
2
TOKEN(BEFORE)
3542
0
  YY_BREAK
3543
3.02k
case 15:
3544
3.02k
YY_RULE_SETUP
3545
3.02k
#line 75 "flex_lexer.l"
3546
3.02k
TOKEN(BEGIN)
3547
0
  YY_BREAK
3548
864
case 16:
3549
864
YY_RULE_SETUP
3550
864
#line 76 "flex_lexer.l"
3551
864
TOKEN(BETWEEN)
3552
0
  YY_BREAK
3553
772
case 17:
3554
772
YY_RULE_SETUP
3555
772
#line 77 "flex_lexer.l"
3556
772
TOKEN(BIGINT)
3557
0
  YY_BREAK
3558
633
case 18:
3559
633
YY_RULE_SETUP
3560
633
#line 78 "flex_lexer.l"
3561
633
TOKEN(BOOLEAN)
3562
0
  YY_BREAK
3563
6.77k
case 19:
3564
6.77k
YY_RULE_SETUP
3565
6.77k
#line 79 "flex_lexer.l"
3566
6.77k
TOKEN(BY)
3567
0
  YY_BREAK
3568
2
case 20:
3569
2
YY_RULE_SETUP
3570
2
#line 80 "flex_lexer.l"
3571
2
TOKEN(CALL)
3572
0
  YY_BREAK
3573
2
case 21:
3574
2
YY_RULE_SETUP
3575
2
#line 81 "flex_lexer.l"
3576
2
TOKEN(CASCADE)
3577
0
  YY_BREAK
3578
2.24k
case 22:
3579
2.24k
YY_RULE_SETUP
3580
2.24k
#line 82 "flex_lexer.l"
3581
2.24k
TOKEN(CASE)
3582
0
  YY_BREAK
3583
639
case 23:
3584
639
YY_RULE_SETUP
3585
639
#line 83 "flex_lexer.l"
3586
639
TOKEN(CAST)
3587
0
  YY_BREAK
3588
448
case 24:
3589
448
YY_RULE_SETUP
3590
448
#line 84 "flex_lexer.l"
3591
448
TOKEN(CHAR)
3592
0
  YY_BREAK
3593
3
case 25:
3594
3
YY_RULE_SETUP
3595
3
#line 85 "flex_lexer.l"
3596
3
TOKEN(COLUMN)
3597
0
  YY_BREAK
3598
1.65k
case 26:
3599
1.65k
YY_RULE_SETUP
3600
1.65k
#line 86 "flex_lexer.l"
3601
1.65k
TOKEN(COLUMNS)
3602
0
  YY_BREAK
3603
38.2k
case 27:
3604
38.2k
YY_RULE_SETUP
3605
38.2k
#line 87 "flex_lexer.l"
3606
38.2k
TOKEN(COMMIT)
3607
0
  YY_BREAK
3608
1
case 28:
3609
1
YY_RULE_SETUP
3610
1
#line 88 "flex_lexer.l"
3611
1
TOKEN(CONTROL)
3612
0
  YY_BREAK
3613
11.5k
case 29:
3614
11.5k
YY_RULE_SETUP
3615
11.5k
#line 89 "flex_lexer.l"
3616
11.5k
TOKEN(COPY)
3617
0
  YY_BREAK
3618
8.63k
case 30:
3619
8.63k
YY_RULE_SETUP
3620
8.63k
#line 90 "flex_lexer.l"
3621
8.63k
TOKEN(CREATE)
3622
0
  YY_BREAK
3623
658
case 31:
3624
658
YY_RULE_SETUP
3625
658
#line 91 "flex_lexer.l"
3626
658
TOKEN(CROSS)
3627
0
  YY_BREAK
3628
2.04k
case 32:
3629
2.04k
YY_RULE_SETUP
3630
2.04k
#line 92 "flex_lexer.l"
3631
2.04k
TOKEN(DATE)
3632
0
  YY_BREAK
3633
549
case 33:
3634
549
YY_RULE_SETUP
3635
549
#line 93 "flex_lexer.l"
3636
549
TOKEN(DATETIME)
3637
0
  YY_BREAK
3638
1.45k
case 34:
3639
1.45k
YY_RULE_SETUP
3640
1.45k
#line 94 "flex_lexer.l"
3641
1.45k
TOKEN(DAY)
3642
0
  YY_BREAK
3643
514
case 35:
3644
514
YY_RULE_SETUP
3645
514
#line 95 "flex_lexer.l"
3646
514
TOKEN(DAYS)
3647
0
  YY_BREAK
3648
741
case 36:
3649
741
YY_RULE_SETUP
3650
741
#line 96 "flex_lexer.l"
3651
741
TOKEN(DEALLOCATE)
3652
0
  YY_BREAK
3653
1.44k
case 37:
3654
1.44k
YY_RULE_SETUP
3655
1.44k
#line 97 "flex_lexer.l"
3656
1.44k
TOKEN(DECIMAL)
3657
0
  YY_BREAK
3658
2
case 38:
3659
2
YY_RULE_SETUP
3660
2
#line 98 "flex_lexer.l"
3661
2
TOKEN(DEFAULT)
3662
0
  YY_BREAK
3663
1.52k
case 39:
3664
1.52k
YY_RULE_SETUP
3665
1.52k
#line 99 "flex_lexer.l"
3666
1.52k
TOKEN(DELETE)
3667
0
  YY_BREAK
3668
2
case 40:
3669
2
YY_RULE_SETUP
3670
2
#line 100 "flex_lexer.l"
3671
2
TOKEN(DELTA)
3672
0
  YY_BREAK
3673
916
case 41:
3674
916
YY_RULE_SETUP
3675
916
#line 101 "flex_lexer.l"
3676
916
TOKEN(DESC)
3677
0
  YY_BREAK
3678
4.21k
case 42:
3679
4.21k
YY_RULE_SETUP
3680
4.21k
#line 102 "flex_lexer.l"
3681
4.21k
TOKEN(DESCRIBE)
3682
0
  YY_BREAK
3683
1
case 43:
3684
1
YY_RULE_SETUP
3685
1
#line 103 "flex_lexer.l"
3686
1
TOKEN(DIRECT)
3687
0
  YY_BREAK
3688
557
case 44:
3689
557
YY_RULE_SETUP
3690
557
#line 104 "flex_lexer.l"
3691
557
TOKEN(DISTINCT)
3692
0
  YY_BREAK
3693
558
case 45:
3694
558
YY_RULE_SETUP
3695
558
#line 105 "flex_lexer.l"
3696
558
TOKEN(DOUBLE)
3697
0
  YY_BREAK
3698
2.90k
case 46:
3699
2.90k
YY_RULE_SETUP
3700
2.90k
#line 106 "flex_lexer.l"
3701
2.90k
TOKEN(DROP)
3702
0
  YY_BREAK
3703
915
case 47:
3704
915
YY_RULE_SETUP
3705
915
#line 107 "flex_lexer.l"
3706
915
TOKEN(ELSE)
3707
0
  YY_BREAK
3708
0
case 48:
3709
0
YY_RULE_SETUP
3710
0
#line 108 "flex_lexer.l"
3711
0
TOKEN(ENCODING)
3712
0
  YY_BREAK
3713
1.93k
case 49:
3714
1.93k
YY_RULE_SETUP
3715
1.93k
#line 109 "flex_lexer.l"
3716
1.93k
TOKEN(END)
3717
0
  YY_BREAK
3718
2
case 50:
3719
2
YY_RULE_SETUP
3720
2
#line 110 "flex_lexer.l"
3721
2
TOKEN(ESCAPE)
3722
0
  YY_BREAK
3723
866
case 51:
3724
866
YY_RULE_SETUP
3725
866
#line 111 "flex_lexer.l"
3726
866
TOKEN(EXCEPT)
3727
0
  YY_BREAK
3728
4.31k
case 52:
3729
4.31k
YY_RULE_SETUP
3730
4.31k
#line 112 "flex_lexer.l"
3731
4.31k
TOKEN(EXECUTE)
3732
0
  YY_BREAK
3733
1.31k
case 53:
3734
1.31k
YY_RULE_SETUP
3735
1.31k
#line 113 "flex_lexer.l"
3736
1.31k
TOKEN(EXISTS)
3737
0
  YY_BREAK
3738
1
case 54:
3739
1
YY_RULE_SETUP
3740
1
#line 114 "flex_lexer.l"
3741
1
TOKEN(EXPLAIN)
3742
0
  YY_BREAK
3743
630
case 55:
3744
630
YY_RULE_SETUP
3745
630
#line 115 "flex_lexer.l"
3746
630
TOKEN(EXTRACT)
3747
0
  YY_BREAK
3748
961
case 56:
3749
961
YY_RULE_SETUP
3750
961
#line 116 "flex_lexer.l"
3751
961
TOKEN(FALSE)
3752
0
  YY_BREAK
3753
3
case 57:
3754
3
YY_RULE_SETUP
3755
3
#line 117 "flex_lexer.l"
3756
3
TOKEN(FILE)
3757
0
  YY_BREAK
3758
5.30k
case 58:
3759
5.30k
YY_RULE_SETUP
3760
5.30k
#line 118 "flex_lexer.l"
3761
5.30k
TOKEN(FLOAT)
3762
0
  YY_BREAK
3763
2.68k
case 59:
3764
2.68k
YY_RULE_SETUP
3765
2.68k
#line 119 "flex_lexer.l"
3766
2.68k
TOKEN(FOLLOWING)
3767
0
  YY_BREAK
3768
2.97k
case 60:
3769
2.97k
YY_RULE_SETUP
3770
2.97k
#line 120 "flex_lexer.l"
3771
2.97k
TOKEN(FOR)
3772
0
  YY_BREAK
3773
2
case 61:
3774
2
YY_RULE_SETUP
3775
2
#line 121 "flex_lexer.l"
3776
2
TOKEN(FOREIGN)
3777
0
  YY_BREAK
3778
5
case 62:
3779
5
YY_RULE_SETUP
3780
5
#line 122 "flex_lexer.l"
3781
5
TOKEN(FORMAT)
3782
0
  YY_BREAK
3783
14.5k
case 63:
3784
14.5k
YY_RULE_SETUP
3785
14.5k
#line 123 "flex_lexer.l"
3786
14.5k
TOKEN(FROM)
3787
0
  YY_BREAK
3788
309
case 64:
3789
309
YY_RULE_SETUP
3790
309
#line 124 "flex_lexer.l"
3791
309
TOKEN(FULL)
3792
0
  YY_BREAK
3793
2
case 65:
3794
2
YY_RULE_SETUP
3795
2
#line 125 "flex_lexer.l"
3796
2
TOKEN(GLOBAL)
3797
0
  YY_BREAK
3798
2.76k
case 66:
3799
2.76k
YY_RULE_SETUP
3800
2.76k
#line 126 "flex_lexer.l"
3801
2.76k
TOKEN(GROUP)
3802
0
  YY_BREAK
3803
179
case 67:
3804
179
YY_RULE_SETUP
3805
179
#line 127 "flex_lexer.l"
3806
179
TOKEN(GROUPS)
3807
0
  YY_BREAK
3808
2
case 68:
3809
2
YY_RULE_SETUP
3810
2
#line 128 "flex_lexer.l"
3811
2
TOKEN(HASH)
3812
0
  YY_BREAK
3813
724
case 69:
3814
724
YY_RULE_SETUP
3815
724
#line 129 "flex_lexer.l"
3816
724
TOKEN(HAVING)
3817
0
  YY_BREAK
3818
453
case 70:
3819
453
YY_RULE_SETUP
3820
453
#line 130 "flex_lexer.l"
3821
453
TOKEN(HINT)
3822
0
  YY_BREAK
3823
1.21k
case 71:
3824
1.21k
YY_RULE_SETUP
3825
1.21k
#line 131 "flex_lexer.l"
3826
1.21k
TOKEN(HOUR)
3827
0
  YY_BREAK
3828
708
case 72:
3829
708
YY_RULE_SETUP
3830
708
#line 132 "flex_lexer.l"
3831
708
TOKEN(HOURS)
3832
0
  YY_BREAK
3833
505
case 73:
3834
505
YY_RULE_SETUP
3835
505
#line 133 "flex_lexer.l"
3836
505
TOKEN(IF)
3837
0
  YY_BREAK
3838
699
case 74:
3839
699
YY_RULE_SETUP
3840
699
#line 134 "flex_lexer.l"
3841
699
TOKEN(ILIKE)
3842
0
  YY_BREAK
3843
126
case 75:
3844
126
YY_RULE_SETUP
3845
126
#line 135 "flex_lexer.l"
3846
126
TOKEN(IMPORT)
3847
0
  YY_BREAK
3848
2.13k
case 76:
3849
2.13k
YY_RULE_SETUP
3850
2.13k
#line 136 "flex_lexer.l"
3851
2.13k
TOKEN(IN)
3852
0
  YY_BREAK
3853
1.65k
case 77:
3854
1.65k
YY_RULE_SETUP
3855
1.65k
#line 137 "flex_lexer.l"
3856
1.65k
TOKEN(INDEX)
3857
0
  YY_BREAK
3858
705
case 78:
3859
705
YY_RULE_SETUP
3860
705
#line 138 "flex_lexer.l"
3861
705
TOKEN(INNER)
3862
0
  YY_BREAK
3863
3.57k
case 79:
3864
3.57k
YY_RULE_SETUP
3865
3.57k
#line 139 "flex_lexer.l"
3866
3.57k
TOKEN(INSERT)
3867
0
  YY_BREAK
3868
9.17k
case 80:
3869
9.17k
YY_RULE_SETUP
3870
9.17k
#line 140 "flex_lexer.l"
3871
9.17k
TOKEN(INT)
3872
0
  YY_BREAK
3873
628
case 81:
3874
628
YY_RULE_SETUP
3875
628
#line 141 "flex_lexer.l"
3876
628
TOKEN(INTEGER)
3877
0
  YY_BREAK
3878
598
case 82:
3879
598
YY_RULE_SETUP
3880
598
#line 142 "flex_lexer.l"
3881
598
TOKEN(INTERSECT)
3882
0
  YY_BREAK
3883
4.39k
case 83:
3884
4.39k
YY_RULE_SETUP
3885
4.39k
#line 143 "flex_lexer.l"
3886
4.39k
TOKEN(INTERVAL)
3887
0
  YY_BREAK
3888
3.56k
case 84:
3889
3.56k
YY_RULE_SETUP
3890
3.56k
#line 144 "flex_lexer.l"
3891
3.56k
TOKEN(INTO)
3892
0
  YY_BREAK
3893
1.07k
case 85:
3894
1.07k
YY_RULE_SETUP
3895
1.07k
#line 145 "flex_lexer.l"
3896
1.07k
TOKEN(IS)
3897
0
  YY_BREAK
3898
764
case 86:
3899
764
YY_RULE_SETUP
3900
764
#line 146 "flex_lexer.l"
3901
764
TOKEN(ISNULL)
3902
0
  YY_BREAK
3903
119k
case 87:
3904
119k
YY_RULE_SETUP
3905
119k
#line 147 "flex_lexer.l"
3906
119k
TOKEN(JOIN)
3907
0
  YY_BREAK
3908
2.58k
case 88:
3909
2.58k
YY_RULE_SETUP
3910
2.58k
#line 148 "flex_lexer.l"
3911
2.58k
TOKEN(KEY)
3912
0
  YY_BREAK
3913
417
case 89:
3914
417
YY_RULE_SETUP
3915
417
#line 149 "flex_lexer.l"
3916
417
TOKEN(LEFT)
3917
0
  YY_BREAK
3918
734
case 90:
3919
734
YY_RULE_SETUP
3920
734
#line 150 "flex_lexer.l"
3921
734
TOKEN(LIKE)
3922
0
  YY_BREAK
3923
4.30k
case 91:
3924
4.30k
YY_RULE_SETUP
3925
4.30k
#line 151 "flex_lexer.l"
3926
4.30k
TOKEN(LIMIT)
3927
0
  YY_BREAK
3928
2
case 92:
3929
2
YY_RULE_SETUP
3930
2
#line 152 "flex_lexer.l"
3931
2
TOKEN(LOAD)
3932
0
  YY_BREAK
3933
2
case 93:
3934
2
YY_RULE_SETUP
3935
2
#line 153 "flex_lexer.l"
3936
2
TOKEN(LOCAL)
3937
0
  YY_BREAK
3938
2
case 94:
3939
2
YY_RULE_SETUP
3940
2
#line 154 "flex_lexer.l"
3941
2
TOKEN(LOCKED)
3942
0
  YY_BREAK
3943
149
case 95:
3944
149
YY_RULE_SETUP
3945
149
#line 155 "flex_lexer.l"
3946
149
TOKEN(LONG)
3947
0
  YY_BREAK
3948
3
case 96:
3949
3
YY_RULE_SETUP
3950
3
#line 156 "flex_lexer.l"
3951
3
TOKEN(MERGE)
3952
0
  YY_BREAK
3953
2
case 97:
3954
2
YY_RULE_SETUP
3955
2
#line 157 "flex_lexer.l"
3956
2
TOKEN(MINUS)
3957
0
  YY_BREAK
3958
1.72k
case 98:
3959
1.72k
YY_RULE_SETUP
3960
1.72k
#line 158 "flex_lexer.l"
3961
1.72k
TOKEN(MINUTE)
3962
0
  YY_BREAK
3963
1.48k
case 99:
3964
1.48k
YY_RULE_SETUP
3965
1.48k
#line 159 "flex_lexer.l"
3966
1.48k
TOKEN(MINUTES)
3967
0
  YY_BREAK
3968
720
case 100:
3969
720
YY_RULE_SETUP
3970
720
#line 160 "flex_lexer.l"
3971
720
TOKEN(MONTH)
3972
0
  YY_BREAK
3973
1.04k
case 101:
3974
1.04k
YY_RULE_SETUP
3975
1.04k
#line 161 "flex_lexer.l"
3976
1.04k
TOKEN(MONTHS)
3977
0
  YY_BREAK
3978
830
case 102:
3979
830
YY_RULE_SETUP
3980
830
#line 162 "flex_lexer.l"
3981
830
TOKEN(NATURAL)
3982
0
  YY_BREAK
3983
6
case 103:
3984
6
YY_RULE_SETUP
3985
6
#line 163 "flex_lexer.l"
3986
6
TOKEN(NO)
3987
0
  YY_BREAK
3988
5.28k
case 104:
3989
5.28k
YY_RULE_SETUP
3990
5.28k
#line 164 "flex_lexer.l"
3991
5.28k
TOKEN(NOT)
3992
0
  YY_BREAK
3993
151
case 105:
3994
151
YY_RULE_SETUP
3995
151
#line 165 "flex_lexer.l"
3996
151
TOKEN(NOWAIT)
3997
0
  YY_BREAK
3998
6.01k
case 106:
3999
6.01k
YY_RULE_SETUP
4000
6.01k
#line 166 "flex_lexer.l"
4001
6.01k
TOKEN(NULL)
4002
0
  YY_BREAK
4003
2
case 107:
4004
2
YY_RULE_SETUP
4005
2
#line 167 "flex_lexer.l"
4006
2
TOKEN(NVARCHAR)
4007
0
  YY_BREAK
4008
287
case 108:
4009
287
YY_RULE_SETUP
4010
287
#line 168 "flex_lexer.l"
4011
287
TOKEN(OF)
4012
0
  YY_BREAK
4013
2
case 109:
4014
2
YY_RULE_SETUP
4015
2
#line 169 "flex_lexer.l"
4016
2
TOKEN(OFF)
4017
0
  YY_BREAK
4018
2.60k
case 110:
4019
2.60k
YY_RULE_SETUP
4020
2.60k
#line 170 "flex_lexer.l"
4021
2.60k
TOKEN(OFFSET)
4022
0
  YY_BREAK
4023
117k
case 111:
4024
117k
YY_RULE_SETUP
4025
117k
#line 171 "flex_lexer.l"
4026
117k
TOKEN(ON)
4027
0
  YY_BREAK
4028
802
case 112:
4029
802
YY_RULE_SETUP
4030
802
#line 172 "flex_lexer.l"
4031
802
TOKEN(OR)
4032
0
  YY_BREAK
4033
3.43k
case 113:
4034
3.43k
YY_RULE_SETUP
4035
3.43k
#line 173 "flex_lexer.l"
4036
3.43k
TOKEN(ORDER)
4037
0
  YY_BREAK
4038
906
case 114:
4039
906
YY_RULE_SETUP
4040
906
#line 174 "flex_lexer.l"
4041
906
TOKEN(OUTER)
4042
0
  YY_BREAK
4043
4.69k
case 115:
4044
4.69k
YY_RULE_SETUP
4045
4.69k
#line 175 "flex_lexer.l"
4046
4.69k
TOKEN(OVER)
4047
0
  YY_BREAK
4048
0
case 116:
4049
0
YY_RULE_SETUP
4050
0
#line 176 "flex_lexer.l"
4051
0
TOKEN(PARAMETERS)
4052
0
  YY_BREAK
4053
629
case 117:
4054
629
YY_RULE_SETUP
4055
629
#line 177 "flex_lexer.l"
4056
629
TOKEN(PARTITION)
4057
0
  YY_BREAK
4058
3
case 118:
4059
3
YY_RULE_SETUP
4060
3
#line 178 "flex_lexer.l"
4061
3
TOKEN(PLAN)
4062
0
  YY_BREAK
4063
0
case 119:
4064
0
YY_RULE_SETUP
4065
0
#line 179 "flex_lexer.l"
4066
0
TOKEN(PRECEDING)
4067
0
  YY_BREAK
4068
2.39k
case 120:
4069
2.39k
YY_RULE_SETUP
4070
2.39k
#line 180 "flex_lexer.l"
4071
2.39k
TOKEN(PREPARE)
4072
0
  YY_BREAK
4073
2.36k
case 121:
4074
2.36k
YY_RULE_SETUP
4075
2.36k
#line 181 "flex_lexer.l"
4076
2.36k
TOKEN(PRIMARY)
4077
0
  YY_BREAK
4078
1.19k
case 122:
4079
1.19k
YY_RULE_SETUP
4080
1.19k
#line 182 "flex_lexer.l"
4081
1.19k
TOKEN(RANGE)
4082
0
  YY_BREAK
4083
553
case 123:
4084
553
YY_RULE_SETUP
4085
553
#line 183 "flex_lexer.l"
4086
553
TOKEN(REAL)
4087
0
  YY_BREAK
4088
0
case 124:
4089
0
YY_RULE_SETUP
4090
0
#line 184 "flex_lexer.l"
4091
0
TOKEN(REFERENCES)
4092
0
  YY_BREAK
4093
3
case 125:
4094
3
YY_RULE_SETUP
4095
3
#line 185 "flex_lexer.l"
4096
3
TOKEN(RENAME)
4097
0
  YY_BREAK
4098
1
case 126:
4099
1
YY_RULE_SETUP
4100
1
#line 186 "flex_lexer.l"
4101
1
TOKEN(RESTRICT)
4102
0
  YY_BREAK
4103
571
case 127:
4104
571
YY_RULE_SETUP
4105
571
#line 187 "flex_lexer.l"
4106
571
TOKEN(RIGHT)
4107
0
  YY_BREAK
4108
3.20k
case 128:
4109
3.20k
YY_RULE_SETUP
4110
3.20k
#line 188 "flex_lexer.l"
4111
3.20k
TOKEN(ROLLBACK)
4112
0
  YY_BREAK
4113
1.13k
case 129:
4114
1.13k
YY_RULE_SETUP
4115
1.13k
#line 189 "flex_lexer.l"
4116
1.13k
TOKEN(ROWS)
4117
0
  YY_BREAK
4118
1
case 130:
4119
1
YY_RULE_SETUP
4120
1
#line 190 "flex_lexer.l"
4121
1
TOKEN(SCHEMA)
4122
0
  YY_BREAK
4123
2
case 131:
4124
2
YY_RULE_SETUP
4125
2
#line 191 "flex_lexer.l"
4126
2
TOKEN(SCHEMAS)
4127
0
  YY_BREAK
4128
788
case 132:
4129
788
YY_RULE_SETUP
4130
788
#line 192 "flex_lexer.l"
4131
788
TOKEN(SECOND)
4132
0
  YY_BREAK
4133
1.10k
case 133:
4134
1.10k
YY_RULE_SETUP
4135
1.10k
#line 193 "flex_lexer.l"
4136
1.10k
TOKEN(SECONDS)
4137
0
  YY_BREAK
4138
41.3k
case 134:
4139
41.3k
YY_RULE_SETUP
4140
41.3k
#line 194 "flex_lexer.l"
4141
41.3k
TOKEN(SELECT)
4142
0
  YY_BREAK
4143
2.22k
case 135:
4144
2.22k
YY_RULE_SETUP
4145
2.22k
#line 195 "flex_lexer.l"
4146
2.22k
TOKEN(SET)
4147
0
  YY_BREAK
4148
2.43k
case 136:
4149
2.43k
YY_RULE_SETUP
4150
2.43k
#line 196 "flex_lexer.l"
4151
2.43k
TOKEN(SHARE)
4152
0
  YY_BREAK
4153
2.66k
case 137:
4154
2.66k
YY_RULE_SETUP
4155
2.66k
#line 197 "flex_lexer.l"
4156
2.66k
TOKEN(SHOW)
4157
0
  YY_BREAK
4158
1
case 138:
4159
1
YY_RULE_SETUP
4160
1
#line 198 "flex_lexer.l"
4161
1
TOKEN(SKIP)
4162
0
  YY_BREAK
4163
558
case 139:
4164
558
YY_RULE_SETUP
4165
558
#line 199 "flex_lexer.l"
4166
558
TOKEN(SMALLINT)
4167
0
  YY_BREAK
4168
3
case 140:
4169
3
YY_RULE_SETUP
4170
3
#line 200 "flex_lexer.l"
4171
3
TOKEN(SORTED)
4172
0
  YY_BREAK
4173
1
case 141:
4174
1
YY_RULE_SETUP
4175
1
#line 201 "flex_lexer.l"
4176
1
TOKEN(SPATIAL)
4177
0
  YY_BREAK
4178
6.59k
case 142:
4179
6.59k
YY_RULE_SETUP
4180
6.59k
#line 202 "flex_lexer.l"
4181
6.59k
TOKEN(TABLE)
4182
0
  YY_BREAK
4183
1.00k
case 143:
4184
1.00k
YY_RULE_SETUP
4185
1.00k
#line 203 "flex_lexer.l"
4186
1.00k
TOKEN(TABLES)
4187
0
  YY_BREAK
4188
0
case 144:
4189
0
YY_RULE_SETUP
4190
0
#line 204 "flex_lexer.l"
4191
0
TOKEN(TEMPORARY)
4192
0
  YY_BREAK
4193
351
case 145:
4194
351
YY_RULE_SETUP
4195
351
#line 205 "flex_lexer.l"
4196
351
TOKEN(TEXT)
4197
0
  YY_BREAK
4198
3.48k
case 146:
4199
3.48k
YY_RULE_SETUP
4200
3.48k
#line 206 "flex_lexer.l"
4201
3.48k
TOKEN(THEN)
4202
0
  YY_BREAK
4203
1.45k
case 147:
4204
1.45k
YY_RULE_SETUP
4205
1.45k
#line 207 "flex_lexer.l"
4206
1.45k
TOKEN(TIME)
4207
0
  YY_BREAK
4208
585
case 148:
4209
585
YY_RULE_SETUP
4210
585
#line 208 "flex_lexer.l"
4211
585
TOKEN(TIMESTAMP)
4212
0
  YY_BREAK
4213
4.41k
case 149:
4214
4.41k
YY_RULE_SETUP
4215
4.41k
#line 209 "flex_lexer.l"
4216
4.41k
TOKEN(TO)
4217
0
  YY_BREAK
4218
2.89k
case 150:
4219
2.89k
YY_RULE_SETUP
4220
2.89k
#line 210 "flex_lexer.l"
4221
2.89k
TOKEN(TOP)
4222
0
  YY_BREAK
4223
0
case 151:
4224
0
YY_RULE_SETUP
4225
0
#line 211 "flex_lexer.l"
4226
0
TOKEN(TRANSACTION)
4227
0
  YY_BREAK
4228
820
case 152:
4229
820
YY_RULE_SETUP
4230
820
#line 212 "flex_lexer.l"
4231
820
TOKEN(TRUE)
4232
0
  YY_BREAK
4233
577
case 153:
4234
577
YY_RULE_SETUP
4235
577
#line 213 "flex_lexer.l"
4236
577
TOKEN(TRUNCATE)
4237
0
  YY_BREAK
4238
886
case 154:
4239
886
YY_RULE_SETUP
4240
886
#line 214 "flex_lexer.l"
4241
886
TOKEN(UNBOUNDED)
4242
0
  YY_BREAK
4243
3.29k
case 155:
4244
3.29k
YY_RULE_SETUP
4245
3.29k
#line 215 "flex_lexer.l"
4246
3.29k
TOKEN(UNION)
4247
0
  YY_BREAK
4248
3.59k
case 156:
4249
3.59k
YY_RULE_SETUP
4250
3.59k
#line 216 "flex_lexer.l"
4251
3.59k
TOKEN(UNIQUE)
4252
0
  YY_BREAK
4253
2
case 157:
4254
2
YY_RULE_SETUP
4255
2
#line 217 "flex_lexer.l"
4256
2
TOKEN(UNLOAD)
4257
0
  YY_BREAK
4258
2.74k
case 158:
4259
2.74k
YY_RULE_SETUP
4260
2.74k
#line 218 "flex_lexer.l"
4261
2.74k
TOKEN(UPDATE)
4262
0
  YY_BREAK
4263
685
case 159:
4264
685
YY_RULE_SETUP
4265
685
#line 219 "flex_lexer.l"
4266
685
TOKEN(USING)
4267
0
  YY_BREAK
4268
171
case 160:
4269
171
YY_RULE_SETUP
4270
171
#line 220 "flex_lexer.l"
4271
171
TOKEN(VALUES)
4272
0
  YY_BREAK
4273
624
case 161:
4274
624
YY_RULE_SETUP
4275
624
#line 221 "flex_lexer.l"
4276
624
TOKEN(VARCHAR)
4277
0
  YY_BREAK
4278
3.26k
case 162:
4279
3.26k
YY_RULE_SETUP
4280
3.26k
#line 222 "flex_lexer.l"
4281
3.26k
TOKEN(VIEW)
4282
0
  YY_BREAK
4283
2
case 163:
4284
2
YY_RULE_SETUP
4285
2
#line 223 "flex_lexer.l"
4286
2
TOKEN(VIRTUAL)
4287
0
  YY_BREAK
4288
3.53k
case 164:
4289
3.53k
YY_RULE_SETUP
4290
3.53k
#line 224 "flex_lexer.l"
4291
3.53k
TOKEN(WHEN)
4292
0
  YY_BREAK
4293
3.27k
case 165:
4294
3.27k
YY_RULE_SETUP
4295
3.27k
#line 225 "flex_lexer.l"
4296
3.27k
TOKEN(WHERE)
4297
0
  YY_BREAK
4298
1.81k
case 166:
4299
1.81k
YY_RULE_SETUP
4300
1.81k
#line 226 "flex_lexer.l"
4301
1.81k
TOKEN(WITH)
4302
0
  YY_BREAK
4303
549
case 167:
4304
549
YY_RULE_SETUP
4305
549
#line 227 "flex_lexer.l"
4306
549
TOKEN(YEAR)
4307
0
  YY_BREAK
4308
704
case 168:
4309
704
YY_RULE_SETUP
4310
704
#line 228 "flex_lexer.l"
4311
704
TOKEN(YEARS)
4312
0
  YY_BREAK
4313
0
case 169:
4314
/* rule 169 can match eol */
4315
0
YY_RULE_SETUP
4316
0
#line 230 "flex_lexer.l"
4317
0
TOKEN(CURRENT_ROW)
4318
0
  YY_BREAK
4319
0
case 170:
4320
/* rule 170 can match eol */
4321
0
YY_RULE_SETUP
4322
0
#line 231 "flex_lexer.l"
4323
0
TOKEN(CHARACTER_VARYING)
4324
0
  YY_BREAK
4325
/* Allow =/== see https://sqlite.org/lang_expr.html#collateop */
4326
421
case 171:
4327
421
YY_RULE_SETUP
4328
421
#line 234 "flex_lexer.l"
4329
421
TOKEN(EQUALS)
4330
0
  YY_BREAK
4331
1.80k
case 172:
4332
1.80k
YY_RULE_SETUP
4333
1.80k
#line 235 "flex_lexer.l"
4334
1.80k
TOKEN(NOTEQUALS)
4335
0
  YY_BREAK
4336
2.13k
case 173:
4337
2.13k
YY_RULE_SETUP
4338
2.13k
#line 236 "flex_lexer.l"
4339
2.13k
TOKEN(NOTEQUALS)
4340
0
  YY_BREAK
4341
749
case 174:
4342
749
YY_RULE_SETUP
4343
749
#line 237 "flex_lexer.l"
4344
749
TOKEN(LESSEQ)
4345
0
  YY_BREAK
4346
677
case 175:
4347
677
YY_RULE_SETUP
4348
677
#line 238 "flex_lexer.l"
4349
677
TOKEN(GREATEREQ)
4350
0
  YY_BREAK
4351
751
case 176:
4352
751
YY_RULE_SETUP
4353
751
#line 239 "flex_lexer.l"
4354
751
TOKEN(CONCAT)
4355
0
  YY_BREAK
4356
2.58M
case 177:
4357
2.58M
YY_RULE_SETUP
4358
2.58M
#line 241 "flex_lexer.l"
4359
2.58M
{ return yytext[0]; }
4360
0
  YY_BREAK
4361
869
case 178:
4362
869
#line 244 "flex_lexer.l"
4363
3.74k
case 179:
4364
3.74k
YY_RULE_SETUP
4365
3.74k
#line 244 "flex_lexer.l"
4366
3.74k
{
4367
3.74k
  yylval->fval = atof(yytext);
4368
3.74k
  return SQL_FLOATVAL;
4369
869
}
4370
0
  YY_BREAK
4371
/*
4372
   * Regularly, negative literals are treated as <unary minus> <positive literal>. This does not work for LLONG_MIN, as it has no
4373
   * positive equivalent. We thus match for LLONG_MIN specifically. This is not an issue for floats, where
4374
   *   numeric_limits<double>::lowest() == -numeric_limits<double>::max();
4375
   */
4376
540
case 180:
4377
540
YY_RULE_SETUP
4378
540
#line 254 "flex_lexer.l"
4379
540
{
4380
540
  yylval->ival = LLONG_MIN;
4381
540
  return SQL_INTVAL;
4382
869
}
4383
0
  YY_BREAK
4384
32.7k
case 181:
4385
32.7k
YY_RULE_SETUP
4386
32.7k
#line 259 "flex_lexer.l"
4387
32.7k
{
4388
32.7k
  errno = 0;
4389
32.7k
  yylval->ival = strtoll(yytext, nullptr, 0);
4390
32.7k
  if (errno) {
4391
6
    return fprintf(stderr, "[SQL-Lexer-Error] Integer cannot be parsed - is it out of range?");
4392
0
    return 0;
4393
6
  }
4394
32.7k
  return SQL_INTVAL;
4395
32.7k
}
4396
0
  YY_BREAK
4397
1.37k
case 182:
4398
1.37k
YY_RULE_SETUP
4399
1.37k
#line 269 "flex_lexer.l"
4400
1.37k
{
4401
  // Crop the leading and trailing quote char
4402
1.37k
  yylval->sval = hsql::substr(yytext, 1, strlen(yytext)-1);
4403
1.37k
  return SQL_IDENTIFIER;
4404
32.7k
}
4405
0
  YY_BREAK
4406
416k
case 183:
4407
416k
YY_RULE_SETUP
4408
416k
#line 275 "flex_lexer.l"
4409
416k
{
4410
416k
  yylval->sval = strdup(yytext);
4411
416k
  return SQL_IDENTIFIER;
4412
32.7k
}
4413
0
  YY_BREAK
4414
23.6k
case 184:
4415
23.6k
YY_RULE_SETUP
4416
23.6k
#line 280 "flex_lexer.l"
4417
23.6k
{ BEGIN singlequotedstring; strbuf.clear(); strbuf.str(""); }  // Clear strbuf manually, see #170
4418
23.6k
  YY_BREAK
4419
4.55k
case 185:
4420
4.55k
YY_RULE_SETUP
4421
4.55k
#line 281 "flex_lexer.l"
4422
4.55k
{ strbuf << '\''; }
4423
4.55k
  YY_BREAK
4424
16.5k
case 186:
4425
/* rule 186 can match eol */
4426
16.5k
YY_RULE_SETUP
4427
16.5k
#line 282 "flex_lexer.l"
4428
16.5k
{ strbuf << yytext; }
4429
16.5k
  YY_BREAK
4430
23.5k
case 187:
4431
23.5k
YY_RULE_SETUP
4432
23.5k
#line 283 "flex_lexer.l"
4433
23.5k
{ BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; }
4434
0
  YY_BREAK
4435
128
case YY_STATE_EOF(singlequotedstring):
4436
128
#line 284 "flex_lexer.l"
4437
128
{ fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; }
4438
0
  YY_BREAK
4439
266
case 188:
4440
266
YY_RULE_SETUP
4441
266
#line 286 "flex_lexer.l"
4442
266
{ fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; }
4443
0
  YY_BREAK
4444
0
case 189:
4445
0
YY_RULE_SETUP
4446
0
#line 288 "flex_lexer.l"
4447
0
ECHO;
4448
0
  YY_BREAK
4449
0
#line 4449 "flex_lexer.cpp"
4450
2.50k
case YY_STATE_EOF(INITIAL):
4451
2.57k
case YY_STATE_EOF(COMMENT):
4452
2.57k
  yyterminate();
4453
4454
6.86k
  case YY_END_OF_BUFFER:
4455
6.86k
    {
4456
    /* Amount of text matched not including the EOB char. */
4457
6.86k
    int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
4458
4459
    /* Undo the effects of YY_DO_BEFORE_ACTION. */
4460
6.86k
    *yy_cp = yyg->yy_hold_char;
4461
6.86k
    YY_RESTORE_YY_MORE_OFFSET
4462
4463
6.86k
    if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4464
4.16k
      {
4465
      /* We're scanning a new file or input source.  It's
4466
       * possible that this happened because the user
4467
       * just pointed yyin at a new source and called
4468
       * yylex().  If so, then we have to assure
4469
       * consistency between YY_CURRENT_BUFFER and our
4470
       * globals.  Here is the right place to do so, because
4471
       * this is the first action (other than possibly a
4472
       * back-up) that will match for the new input source.
4473
       */
4474
4.16k
      yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4475
4.16k
      YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4476
4.16k
      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4477
4.16k
      }
4478
4479
    /* Note that here we test for yy_c_buf_p "<=" to the position
4480
     * of the first EOB in the buffer, since yy_c_buf_p will
4481
     * already have been incremented past the NUL character
4482
     * (since all states make transitions on EOB to the
4483
     * end-of-buffer state).  Contrast this with the test
4484
     * in input().
4485
     */
4486
6.86k
    if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4487
0
      { /* This was really a NUL. */
4488
0
      yy_state_type yy_next_state;
4489
4490
0
      yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
4491
4492
0
      yy_current_state = yy_get_previous_state( yyscanner );
4493
4494
      /* Okay, we're now positioned to make the NUL
4495
       * transition.  We couldn't have
4496
       * yy_get_previous_state() go ahead and do it
4497
       * for us because it doesn't know how to deal
4498
       * with the possibility of jamming (and we don't
4499
       * want to build jamming into it because then it
4500
       * will run more slowly).
4501
       */
4502
4503
0
      yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
4504
4505
0
      yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4506
4507
0
      if ( yy_next_state )
4508
0
        {
4509
        /* Consume the NUL. */
4510
0
        yy_cp = ++yyg->yy_c_buf_p;
4511
0
        yy_current_state = yy_next_state;
4512
0
        goto yy_match;
4513
0
        }
4514
4515
0
      else
4516
0
        {
4517
0
        yy_cp = yyg->yy_last_accepting_cpos;
4518
0
        yy_current_state = yyg->yy_last_accepting_state;
4519
0
        goto yy_find_action;
4520
0
        }
4521
0
      }
4522
4523
6.86k
    else switch ( yy_get_next_buffer( yyscanner ) )
4524
6.86k
      {
4525
2.69k
      case EOB_ACT_END_OF_FILE:
4526
2.69k
        {
4527
2.69k
        yyg->yy_did_buffer_switch_on_eof = 0;
4528
4529
2.69k
        if ( yywrap( yyscanner ) )
4530
2.69k
          {
4531
          /* Note: because we've taken care in
4532
           * yy_get_next_buffer() to have set up
4533
           * yytext, we can now set up
4534
           * yy_c_buf_p so that if some total
4535
           * hoser (like flex itself) wants to
4536
           * call the scanner after we return the
4537
           * YY_NULL, it'll still work - another
4538
           * YY_NULL will get returned.
4539
           */
4540
2.69k
          yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
4541
4542
2.69k
          yy_act = YY_STATE_EOF(YY_START);
4543
2.69k
          goto do_action;
4544
2.69k
          }
4545
4546
0
        else
4547
0
          {
4548
0
          if ( ! yyg->yy_did_buffer_switch_on_eof )
4549
0
            YY_NEW_FILE;
4550
0
          }
4551
0
        break;
4552
2.69k
        }
4553
4554
0
      case EOB_ACT_CONTINUE_SCAN:
4555
0
        yyg->yy_c_buf_p =
4556
0
          yyg->yytext_ptr + yy_amount_of_matched_text;
4557
4558
0
        yy_current_state = yy_get_previous_state( yyscanner );
4559
4560
0
        yy_cp = yyg->yy_c_buf_p;
4561
0
        yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4562
0
        goto yy_match;
4563
4564
4.17k
      case EOB_ACT_LAST_MATCH:
4565
4.17k
        yyg->yy_c_buf_p =
4566
4.17k
        &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
4567
4568
4.17k
        yy_current_state = yy_get_previous_state( yyscanner );
4569
4570
4.17k
        yy_cp = yyg->yy_c_buf_p;
4571
4.17k
        yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
4572
4.17k
        goto yy_find_action;
4573
6.86k
      }
4574
0
    break;
4575
6.86k
    }
4576
4577
0
  default:
4578
0
    YY_FATAL_ERROR(
4579
4.16M
      "fatal flex scanner internal error--no action found" );
4580
4.16M
  } /* end of action switch */
4581
4.16M
    } /* end of scanning one token */
4582
3.63M
  } /* end of user's declarations */
4583
3.63M
} /* end of yylex */
4584
4585
/* yy_get_next_buffer - try to read in a new buffer
4586
 *
4587
 * Returns a code representing an action:
4588
 *  EOB_ACT_LAST_MATCH -
4589
 *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4590
 *  EOB_ACT_END_OF_FILE - end of file
4591
 */
4592
static int yy_get_next_buffer (yyscan_t yyscanner)
4593
6.86k
{
4594
6.86k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4595
6.86k
  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4596
6.86k
  char *source = yyg->yytext_ptr;
4597
6.86k
  int number_to_move, i;
4598
6.86k
  int ret_val;
4599
4600
6.86k
  if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
4601
0
    YY_FATAL_ERROR(
4602
6.86k
    "fatal flex scanner internal error--end of buffer missed" );
4603
4604
6.86k
  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4605
6.86k
    { /* Don't try to fill the buffer, so this is an EOF. */
4606
6.86k
    if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
4607
2.69k
      {
4608
      /* We matched a single character, the EOB, so
4609
       * treat this as a final EOF.
4610
       */
4611
2.69k
      return EOB_ACT_END_OF_FILE;
4612
2.69k
      }
4613
4614
4.17k
    else
4615
4.17k
      {
4616
      /* We matched some text prior to the EOB, first
4617
       * process it.
4618
       */
4619
4.17k
      return EOB_ACT_LAST_MATCH;
4620
4.17k
      }
4621
6.86k
    }
4622
4623
  /* Try to read more data. */
4624
4625
  /* First move last chars to start of buffer. */
4626
0
  number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
4627
4628
0
  for ( i = 0; i < number_to_move; ++i )
4629
0
    *(dest++) = *(source++);
4630
4631
0
  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4632
    /* don't do the read, it's not guaranteed to return an EOF,
4633
     * just force an EOF
4634
     */
4635
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
4636
4637
0
  else
4638
0
    {
4639
0
      int num_to_read =
4640
0
      YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4641
4642
0
    while ( num_to_read <= 0 )
4643
0
      { /* Not enough room in the buffer - grow it. */
4644
4645
      /* just a shorter name for the current buffer */
4646
0
      YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4647
4648
0
      int yy_c_buf_p_offset =
4649
0
        (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
4650
4651
0
      if ( b->yy_is_our_buffer )
4652
0
        {
4653
0
        int new_size = b->yy_buf_size * 2;
4654
4655
0
        if ( new_size <= 0 )
4656
0
          b->yy_buf_size += b->yy_buf_size / 8;
4657
0
        else
4658
0
          b->yy_buf_size *= 2;
4659
4660
0
        b->yy_ch_buf = (char *)
4661
          /* Include room in for 2 EOB chars. */
4662
0
          yyrealloc( (void *) b->yy_ch_buf,
4663
0
               (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4664
0
        }
4665
0
      else
4666
        /* Can't grow it, we don't own it. */
4667
0
        b->yy_ch_buf = NULL;
4668
4669
0
      if ( ! b->yy_ch_buf )
4670
0
        YY_FATAL_ERROR(
4671
0
        "fatal error - scanner input buffer overflow" );
4672
4673
0
      yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4674
4675
0
      num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4676
0
            number_to_move - 1;
4677
4678
0
      }
4679
4680
0
    if ( num_to_read > YY_READ_BUF_SIZE )
4681
0
      num_to_read = YY_READ_BUF_SIZE;
4682
4683
    /* Read in more data. */
4684
0
    YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4685
0
      yyg->yy_n_chars, num_to_read );
4686
4687
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4688
0
    }
4689
4690
0
  if ( yyg->yy_n_chars == 0 )
4691
0
    {
4692
0
    if ( number_to_move == YY_MORE_ADJ )
4693
0
      {
4694
0
      ret_val = EOB_ACT_END_OF_FILE;
4695
0
      yyrestart( yyin  , yyscanner);
4696
0
      }
4697
4698
0
    else
4699
0
      {
4700
0
      ret_val = EOB_ACT_LAST_MATCH;
4701
0
      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4702
0
        YY_BUFFER_EOF_PENDING;
4703
0
      }
4704
0
    }
4705
4706
0
  else
4707
0
    ret_val = EOB_ACT_CONTINUE_SCAN;
4708
4709
0
  if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4710
    /* Extend the array by 50%, plus the number we really need. */
4711
0
    int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
4712
0
    YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4713
0
      (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
4714
0
    if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4715
0
      YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4716
    /* "- 2" to take care of EOB's */
4717
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4718
0
  }
4719
4720
0
  yyg->yy_n_chars += number_to_move;
4721
0
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4722
0
  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4723
4724
0
  yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4725
4726
0
  return ret_val;
4727
0
}
4728
4729
/* yy_get_previous_state - get the state just before the EOB char was reached */
4730
4731
    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
4732
4.17k
{
4733
4.17k
  yy_state_type yy_current_state;
4734
4.17k
  char *yy_cp;
4735
4.17k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4736
4737
4.17k
  yy_current_state = yyg->yy_start;
4738
4739
3.54M
  for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
4740
3.54M
    {
4741
3.54M
    YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4742
3.54M
    if ( yy_accept[yy_current_state] )
4743
3.53M
      {
4744
3.53M
      yyg->yy_last_accepting_state = yy_current_state;
4745
3.53M
      yyg->yy_last_accepting_cpos = yy_cp;
4746
3.53M
      }
4747
7.07M
    while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4748
3.53M
      {
4749
3.53M
      yy_current_state = (int) yy_def[yy_current_state];
4750
3.53M
      if ( yy_current_state >= 1368 )
4751
3.53M
        yy_c = yy_meta[yy_c];
4752
3.53M
      }
4753
3.54M
    yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4754
3.54M
    }
4755
4756
4.17k
  return yy_current_state;
4757
4.17k
}
4758
4759
/* yy_try_NUL_trans - try to make a transition on the NUL character
4760
 *
4761
 * synopsis
4762
 *  next_state = yy_try_NUL_trans( current_state );
4763
 */
4764
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
4765
0
{
4766
0
  int yy_is_jam;
4767
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
4768
0
  char *yy_cp = yyg->yy_c_buf_p;
4769
4770
0
  YY_CHAR yy_c = 1;
4771
0
  if ( yy_accept[yy_current_state] )
4772
0
    {
4773
0
    yyg->yy_last_accepting_state = yy_current_state;
4774
0
    yyg->yy_last_accepting_cpos = yy_cp;
4775
0
    }
4776
0
  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4777
0
    {
4778
0
    yy_current_state = (int) yy_def[yy_current_state];
4779
0
    if ( yy_current_state >= 1368 )
4780
0
      yy_c = yy_meta[yy_c];
4781
0
    }
4782
0
  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4783
0
  yy_is_jam = (yy_current_state == 1367);
4784
4785
0
  (void)yyg;
4786
0
  return yy_is_jam ? 0 : yy_current_state;
4787
0
}
4788
4789
#ifndef YY_NO_UNPUT
4790
4791
#endif
4792
4793
#ifndef YY_NO_INPUT
4794
#ifdef __cplusplus
4795
    static int yyinput (yyscan_t yyscanner)
4796
#else
4797
    static int input  (yyscan_t yyscanner)
4798
#endif
4799
4800
0
{
4801
0
  int c;
4802
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4803
0
4804
0
  *yyg->yy_c_buf_p = yyg->yy_hold_char;
4805
0
4806
0
  if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4807
0
    {
4808
0
    /* yy_c_buf_p now points to the character we want to return.
4809
0
     * If this occurs *before* the EOB characters, then it's a
4810
0
     * valid NUL; if not, then we've hit the end of the buffer.
4811
0
     */
4812
0
    if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
4813
0
      /* This was really a NUL. */
4814
0
      *yyg->yy_c_buf_p = '\0';
4815
0
4816
0
    else
4817
0
      { /* need more input */
4818
0
      int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
4819
0
      ++yyg->yy_c_buf_p;
4820
0
4821
0
      switch ( yy_get_next_buffer( yyscanner ) )
4822
0
        {
4823
0
        case EOB_ACT_LAST_MATCH:
4824
0
          /* This happens because yy_g_n_b()
4825
0
           * sees that we've accumulated a
4826
0
           * token and flags that we need to
4827
0
           * try matching the token before
4828
0
           * proceeding.  But for input(),
4829
0
           * there's no matching to consider.
4830
0
           * So convert the EOB_ACT_LAST_MATCH
4831
0
           * to EOB_ACT_END_OF_FILE.
4832
0
           */
4833
0
4834
0
          /* Reset buffer status. */
4835
0
          yyrestart( yyin , yyscanner);
4836
0
4837
0
          /*FALLTHROUGH*/
4838
0
4839
0
        case EOB_ACT_END_OF_FILE:
4840
0
          {
4841
0
          if ( yywrap( yyscanner ) )
4842
0
            return 0;
4843
0
4844
0
          if ( ! yyg->yy_did_buffer_switch_on_eof )
4845
0
            YY_NEW_FILE;
4846
0
#ifdef __cplusplus
4847
0
          return yyinput(yyscanner);
4848
0
#else
4849
0
          return input(yyscanner);
4850
0
#endif
4851
0
          }
4852
0
4853
0
        case EOB_ACT_CONTINUE_SCAN:
4854
0
          yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
4855
0
          break;
4856
0
        }
4857
0
      }
4858
0
    }
4859
0
4860
0
  c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
4861
0
  *yyg->yy_c_buf_p = '\0';  /* preserve yytext */
4862
0
  yyg->yy_hold_char = *++yyg->yy_c_buf_p;
4863
0
4864
0
  return c;
4865
0
}
4866
#endif  /* ifndef YY_NO_INPUT */
4867
4868
/** Immediately switch to a different input stream.
4869
 * @param input_file A readable stream.
4870
 * @param yyscanner The scanner object.
4871
 * @note This function does not reset the start condition to @c INITIAL .
4872
 */
4873
    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
4874
0
{
4875
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4876
4877
0
  if ( ! YY_CURRENT_BUFFER ){
4878
0
        yyensure_buffer_stack (yyscanner);
4879
0
    YY_CURRENT_BUFFER_LVALUE =
4880
0
            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
4881
0
  }
4882
4883
0
  yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
4884
0
  yy_load_buffer_state( yyscanner );
4885
0
}
4886
4887
/** Switch to a different input buffer.
4888
 * @param new_buffer The new input buffer.
4889
 * @param yyscanner The scanner object.
4890
 */
4891
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
4892
5.23k
{
4893
5.23k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4894
4895
  /* TODO. We should be able to replace this entire function body
4896
   * with
4897
   *    yypop_buffer_state();
4898
   *    yypush_buffer_state(new_buffer);
4899
     */
4900
5.23k
  yyensure_buffer_stack (yyscanner);
4901
5.23k
  if ( YY_CURRENT_BUFFER == new_buffer )
4902
0
    return;
4903
4904
5.23k
  if ( YY_CURRENT_BUFFER )
4905
0
    {
4906
    /* Flush out information for old buffer. */
4907
0
    *yyg->yy_c_buf_p = yyg->yy_hold_char;
4908
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
4909
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
4910
0
    }
4911
4912
5.23k
  YY_CURRENT_BUFFER_LVALUE = new_buffer;
4913
5.23k
  yy_load_buffer_state( yyscanner );
4914
4915
  /* We don't actually know whether we did this switch during
4916
   * EOF (yywrap()) processing, but the only time this flag
4917
   * is looked at is after yywrap() is called, so it's safe
4918
   * to go ahead and always set it.
4919
   */
4920
5.23k
  yyg->yy_did_buffer_switch_on_eof = 1;
4921
5.23k
}
4922
4923
static void yy_load_buffer_state  (yyscan_t yyscanner)
4924
10.4k
{
4925
10.4k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4926
10.4k
  yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4927
10.4k
  yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4928
10.4k
  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4929
10.4k
  yyg->yy_hold_char = *yyg->yy_c_buf_p;
4930
10.4k
}
4931
4932
/** Allocate and initialize an input buffer state.
4933
 * @param file A readable stream.
4934
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4935
 * @param yyscanner The scanner object.
4936
 * @return the allocated buffer state.
4937
 */
4938
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
4939
0
{
4940
0
  YY_BUFFER_STATE b;
4941
    
4942
0
  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
4943
0
  if ( ! b )
4944
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4945
4946
0
  b->yy_buf_size = size;
4947
4948
  /* yy_ch_buf has to be 2 characters longer than the size given because
4949
   * we need to put in 2 end-of-buffer characters.
4950
   */
4951
0
  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
4952
0
  if ( ! b->yy_ch_buf )
4953
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4954
4955
0
  b->yy_is_our_buffer = 1;
4956
4957
0
  yy_init_buffer( b, file , yyscanner);
4958
4959
0
  return b;
4960
0
}
4961
4962
/** Destroy the buffer.
4963
 * @param b a buffer created with yy_create_buffer()
4964
 * @param yyscanner The scanner object.
4965
 */
4966
    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
4967
5.23k
{
4968
5.23k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4969
4970
5.23k
  if ( ! b )
4971
0
    return;
4972
4973
5.23k
  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4974
5.23k
    YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4975
4976
5.23k
  if ( b->yy_is_our_buffer )
4977
5.23k
    yyfree( (void *) b->yy_ch_buf , yyscanner );
4978
4979
5.23k
  yyfree( (void *) b , yyscanner );
4980
5.23k
}
4981
4982
/* Initializes or reinitializes a buffer.
4983
 * This function is sometimes called more than once on the same buffer,
4984
 * such as during a yyrestart() or at EOF.
4985
 */
4986
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
4987
4988
0
{
4989
0
  int oerrno = errno;
4990
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
4991
4992
0
  yy_flush_buffer( b , yyscanner);
4993
4994
0
  b->yy_input_file = file;
4995
0
  b->yy_fill_buffer = 1;
4996
4997
    /* If b is the current buffer, then yy_init_buffer was _probably_
4998
     * called from yyrestart() or through yy_get_next_buffer.
4999
     * In that case, we don't want to reset the lineno or column.
5000
     */
5001
0
    if (b != YY_CURRENT_BUFFER){
5002
0
        b->yy_bs_lineno = 1;
5003
0
        b->yy_bs_column = 0;
5004
0
    }
5005
5006
0
        b->yy_is_interactive = 0;
5007
    
5008
0
  errno = oerrno;
5009
0
}
5010
5011
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
5012
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
5013
 * @param yyscanner The scanner object.
5014
 */
5015
    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
5016
0
{
5017
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5018
0
  if ( ! b )
5019
0
    return;
5020
5021
0
  b->yy_n_chars = 0;
5022
5023
  /* We always need two end-of-buffer characters.  The first causes
5024
   * a transition to the end-of-buffer state.  The second causes
5025
   * a jam in that state.
5026
   */
5027
0
  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5028
0
  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5029
5030
0
  b->yy_buf_pos = &b->yy_ch_buf[0];
5031
5032
0
  b->yy_at_bol = 1;
5033
0
  b->yy_buffer_status = YY_BUFFER_NEW;
5034
5035
0
  if ( b == YY_CURRENT_BUFFER )
5036
0
    yy_load_buffer_state( yyscanner );
5037
0
}
5038
5039
/** Pushes the new state onto the stack. The new state becomes
5040
 *  the current state. This function will allocate the stack
5041
 *  if necessary.
5042
 *  @param new_buffer The new state.
5043
 *  @param yyscanner The scanner object.
5044
 */
5045
void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
5046
0
{
5047
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5048
0
  if (new_buffer == NULL)
5049
0
    return;
5050
5051
0
  yyensure_buffer_stack(yyscanner);
5052
5053
  /* This block is copied from yy_switch_to_buffer. */
5054
0
  if ( YY_CURRENT_BUFFER )
5055
0
    {
5056
    /* Flush out information for old buffer. */
5057
0
    *yyg->yy_c_buf_p = yyg->yy_hold_char;
5058
0
    YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
5059
0
    YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
5060
0
    }
5061
5062
  /* Only push if top exists. Otherwise, replace top. */
5063
0
  if (YY_CURRENT_BUFFER)
5064
0
    yyg->yy_buffer_stack_top++;
5065
0
  YY_CURRENT_BUFFER_LVALUE = new_buffer;
5066
5067
  /* copied from yy_switch_to_buffer. */
5068
0
  yy_load_buffer_state( yyscanner );
5069
0
  yyg->yy_did_buffer_switch_on_eof = 1;
5070
0
}
5071
5072
/** Removes and deletes the top of the stack, if present.
5073
 *  The next element becomes the new top.
5074
 *  @param yyscanner The scanner object.
5075
 */
5076
void yypop_buffer_state (yyscan_t yyscanner)
5077
0
{
5078
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5079
0
  if (!YY_CURRENT_BUFFER)
5080
0
    return;
5081
5082
0
  yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
5083
0
  YY_CURRENT_BUFFER_LVALUE = NULL;
5084
0
  if (yyg->yy_buffer_stack_top > 0)
5085
0
    --yyg->yy_buffer_stack_top;
5086
5087
0
  if (YY_CURRENT_BUFFER) {
5088
0
    yy_load_buffer_state( yyscanner );
5089
0
    yyg->yy_did_buffer_switch_on_eof = 1;
5090
0
  }
5091
0
}
5092
5093
/* Allocates the stack if it does not exist.
5094
 *  Guarantees space for at least one push.
5095
 */
5096
static void yyensure_buffer_stack (yyscan_t yyscanner)
5097
5.23k
{
5098
5.23k
  yy_size_t num_to_alloc;
5099
5.23k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5100
5101
5.23k
  if (!yyg->yy_buffer_stack) {
5102
5103
    /* First allocation is just for 2 elements, since we don't know if this
5104
     * scanner will even need a stack. We use 2 instead of 1 to avoid an
5105
     * immediate realloc on the next call.
5106
         */
5107
5.23k
      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
5108
5.23k
    yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
5109
5.23k
                (num_to_alloc * sizeof(struct yy_buffer_state*)
5110
5.23k
                , yyscanner);
5111
5.23k
    if ( ! yyg->yy_buffer_stack )
5112
0
      YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5113
5114
5.23k
    memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5115
5116
5.23k
    yyg->yy_buffer_stack_max = num_to_alloc;
5117
5.23k
    yyg->yy_buffer_stack_top = 0;
5118
5.23k
    return;
5119
5.23k
  }
5120
5121
0
  if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
5122
5123
    /* Increase the buffer to prepare for a possible push. */
5124
0
    yy_size_t grow_size = 8 /* arbitrary grow size */;
5125
5126
0
    num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
5127
0
    yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
5128
0
                (yyg->yy_buffer_stack,
5129
0
                num_to_alloc * sizeof(struct yy_buffer_state*)
5130
0
                , yyscanner);
5131
0
    if ( ! yyg->yy_buffer_stack )
5132
0
      YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5133
5134
    /* zero only the new slots.*/
5135
0
    memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
5136
0
    yyg->yy_buffer_stack_max = num_to_alloc;
5137
0
  }
5138
0
}
5139
5140
/** Setup the input buffer state to scan directly from a user-specified character buffer.
5141
 * @param base the character buffer
5142
 * @param size the size in bytes of the character buffer
5143
 * @param yyscanner The scanner object.
5144
 * @return the newly allocated buffer state object.
5145
 */
5146
YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
5147
5.23k
{
5148
5.23k
  YY_BUFFER_STATE b;
5149
    
5150
5.23k
  if ( size < 2 ||
5151
5.23k
       base[size-2] != YY_END_OF_BUFFER_CHAR ||
5152
5.23k
       base[size-1] != YY_END_OF_BUFFER_CHAR )
5153
    /* They forgot to leave room for the EOB's. */
5154
0
    return NULL;
5155
5156
5.23k
  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
5157
5.23k
  if ( ! b )
5158
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5159
5160
5.23k
  b->yy_buf_size = (int) (size - 2);  /* "- 2" to take care of EOB's */
5161
5.23k
  b->yy_buf_pos = b->yy_ch_buf = base;
5162
5.23k
  b->yy_is_our_buffer = 0;
5163
5.23k
  b->yy_input_file = NULL;
5164
5.23k
  b->yy_n_chars = b->yy_buf_size;
5165
5.23k
  b->yy_is_interactive = 0;
5166
5.23k
  b->yy_at_bol = 1;
5167
5.23k
  b->yy_fill_buffer = 0;
5168
5.23k
  b->yy_buffer_status = YY_BUFFER_NEW;
5169
5170
5.23k
  yy_switch_to_buffer( b , yyscanner );
5171
5172
5.23k
  return b;
5173
5.23k
}
5174
5175
/** Setup the input buffer state to scan a string. The next call to yylex() will
5176
 * scan from a @e copy of @a str.
5177
 * @param yystr a NUL-terminated string to scan
5178
 * @param yyscanner The scanner object.
5179
 * @return the newly allocated buffer state object.
5180
 * @note If you want to scan bytes that may contain NUL values, then use
5181
 *       yy_scan_bytes() instead.
5182
 */
5183
YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
5184
5.23k
{
5185
    
5186
5.23k
  return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
5187
5.23k
}
5188
5189
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5190
 * scan from a @e copy of @a bytes.
5191
 * @param yybytes the byte buffer to scan
5192
 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5193
 * @param yyscanner The scanner object.
5194
 * @return the newly allocated buffer state object.
5195
 */
5196
YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
5197
5.23k
{
5198
5.23k
  YY_BUFFER_STATE b;
5199
5.23k
  char *buf;
5200
5.23k
  yy_size_t n;
5201
5.23k
  int i;
5202
    
5203
  /* Get memory for full buffer, including space for trailing EOB's. */
5204
5.23k
  n = (yy_size_t) (_yybytes_len + 2);
5205
5.23k
  buf = (char *) yyalloc( n , yyscanner );
5206
5.23k
  if ( ! buf )
5207
0
    YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5208
5209
21.5M
  for ( i = 0; i < _yybytes_len; ++i )
5210
21.5M
    buf[i] = yybytes[i];
5211
5212
5.23k
  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5213
5214
5.23k
  b = yy_scan_buffer( buf, n , yyscanner);
5215
5.23k
  if ( ! b )
5216
0
    YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5217
5218
  /* It's okay to grow etc. this buffer, and we should throw it
5219
   * away when we're done.
5220
   */
5221
5.23k
  b->yy_is_our_buffer = 1;
5222
5223
5.23k
  return b;
5224
5.23k
}
5225
5226
#ifndef YY_EXIT_FAILURE
5227
0
#define YY_EXIT_FAILURE 2
5228
#endif
5229
5230
static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
5231
0
{
5232
0
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5233
0
  (void)yyg;
5234
0
  fprintf( stderr, "%s\n", msg );
5235
0
  exit( YY_EXIT_FAILURE );
5236
0
}
5237
5238
/* Redefine yyless() so it works in section 3 code. */
5239
5240
#undef yyless
5241
#define yyless(n) \
5242
  do \
5243
    { \
5244
    /* Undo effects of setting up yytext. */ \
5245
        int yyless_macro_arg = (n); \
5246
        YY_LESS_LINENO(yyless_macro_arg);\
5247
    yytext[yyleng] = yyg->yy_hold_char; \
5248
    yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
5249
    yyg->yy_hold_char = *yyg->yy_c_buf_p; \
5250
    *yyg->yy_c_buf_p = '\0'; \
5251
    yyleng = yyless_macro_arg; \
5252
    } \
5253
  while ( 0 )
5254
5255
/* Accessor  methods (get/set functions) to struct members. */
5256
5257
/** Get the user-defined data for this scanner.
5258
 * @param yyscanner The scanner object.
5259
 */
5260
YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
5261
0
{
5262
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5263
0
    return yyextra;
5264
0
}
5265
5266
/** Get the current line number.
5267
 * @param yyscanner The scanner object.
5268
 */
5269
int yyget_lineno  (yyscan_t yyscanner)
5270
0
{
5271
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5272
5273
0
        if (! YY_CURRENT_BUFFER)
5274
0
            return 0;
5275
    
5276
0
    return yylineno;
5277
0
}
5278
5279
/** Get the current column number.
5280
 * @param yyscanner The scanner object.
5281
 */
5282
int yyget_column  (yyscan_t yyscanner)
5283
0
{
5284
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5285
5286
0
        if (! YY_CURRENT_BUFFER)
5287
0
            return 0;
5288
    
5289
0
    return yycolumn;
5290
0
}
5291
5292
/** Get the input stream.
5293
 * @param yyscanner The scanner object.
5294
 */
5295
FILE *yyget_in  (yyscan_t yyscanner)
5296
0
{
5297
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5298
0
    return yyin;
5299
0
}
5300
5301
/** Get the output stream.
5302
 * @param yyscanner The scanner object.
5303
 */
5304
FILE *yyget_out  (yyscan_t yyscanner)
5305
0
{
5306
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5307
0
    return yyout;
5308
0
}
5309
5310
/** Get the length of the current token.
5311
 * @param yyscanner The scanner object.
5312
 */
5313
int yyget_leng  (yyscan_t yyscanner)
5314
0
{
5315
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5316
0
    return yyleng;
5317
0
}
5318
5319
/** Get the current token.
5320
 * @param yyscanner The scanner object.
5321
 */
5322
5323
char *yyget_text  (yyscan_t yyscanner)
5324
0
{
5325
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5326
0
    return yytext;
5327
0
}
5328
5329
/** Set the user-defined data. This data is never touched by the scanner.
5330
 * @param user_defined The data to be associated with this scanner.
5331
 * @param yyscanner The scanner object.
5332
 */
5333
void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
5334
0
{
5335
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5336
0
    yyextra = user_defined ;
5337
0
}
5338
5339
/** Set the current line number.
5340
 * @param _line_number line number
5341
 * @param yyscanner The scanner object.
5342
 */
5343
void yyset_lineno (int  _line_number , yyscan_t yyscanner)
5344
0
{
5345
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5346
5347
        /* lineno is only valid if an input buffer exists. */
5348
0
        if (! YY_CURRENT_BUFFER )
5349
0
           YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
5350
    
5351
0
    yylineno = _line_number;
5352
0
}
5353
5354
/** Set the current column.
5355
 * @param _column_no column number
5356
 * @param yyscanner The scanner object.
5357
 */
5358
void yyset_column (int  _column_no , yyscan_t yyscanner)
5359
0
{
5360
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5361
5362
        /* column is only valid if an input buffer exists. */
5363
0
        if (! YY_CURRENT_BUFFER )
5364
0
           YY_FATAL_ERROR( "yyset_column called with no buffer" );
5365
    
5366
0
    yycolumn = _column_no;
5367
0
}
5368
5369
/** Set the input stream. This does not discard the current
5370
 * input buffer.
5371
 * @param _in_str A readable stream.
5372
 * @param yyscanner The scanner object.
5373
 * @see yy_switch_to_buffer
5374
 */
5375
void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
5376
0
{
5377
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5378
0
    yyin = _in_str ;
5379
0
}
5380
5381
void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
5382
0
{
5383
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5384
0
    yyout = _out_str ;
5385
0
}
5386
5387
int yyget_debug  (yyscan_t yyscanner)
5388
0
{
5389
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5390
0
    return yy_flex_debug;
5391
0
}
5392
5393
void yyset_debug (int  _bdebug , yyscan_t yyscanner)
5394
0
{
5395
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5396
0
    yy_flex_debug = _bdebug ;
5397
0
}
5398
5399
/* Accessor methods for yylval and yylloc */
5400
5401
YYSTYPE * yyget_lval  (yyscan_t yyscanner)
5402
0
{
5403
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5404
0
    return yylval;
5405
0
}
5406
5407
void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
5408
0
{
5409
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5410
0
    yylval = yylval_param;
5411
0
}
5412
5413
YYLTYPE *yyget_lloc  (yyscan_t yyscanner)
5414
0
{
5415
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5416
0
    return yylloc;
5417
0
}
5418
    
5419
void yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
5420
0
{
5421
0
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5422
0
    yylloc = yylloc_param;
5423
0
}
5424
    
5425
/* User-visible API */
5426
5427
/* yylex_init is special because it creates the scanner itself, so it is
5428
 * the ONLY reentrant function that doesn't take the scanner as the last argument.
5429
 * That's why we explicitly handle the declaration, instead of using our macros.
5430
 */
5431
int yylex_init(yyscan_t* ptr_yy_globals)
5432
5.23k
{
5433
5.23k
    if (ptr_yy_globals == NULL){
5434
0
        errno = EINVAL;
5435
0
        return 1;
5436
0
    }
5437
5438
5.23k
    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
5439
5440
5.23k
    if (*ptr_yy_globals == NULL){
5441
0
        errno = ENOMEM;
5442
0
        return 1;
5443
0
    }
5444
5445
    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
5446
5.23k
    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5447
5448
5.23k
    return yy_init_globals ( *ptr_yy_globals );
5449
5.23k
}
5450
5451
/* yylex_init_extra has the same functionality as yylex_init, but follows the
5452
 * convention of taking the scanner as the last argument. Note however, that
5453
 * this is a *pointer* to a scanner, as it will be allocated by this call (and
5454
 * is the reason, too, why this function also must handle its own declaration).
5455
 * The user defined value in the first argument will be available to yyalloc in
5456
 * the yyextra field.
5457
 */
5458
int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
5459
0
{
5460
0
    struct yyguts_t dummy_yyguts;
5461
5462
0
    yyset_extra (yy_user_defined, &dummy_yyguts);
5463
5464
0
    if (ptr_yy_globals == NULL){
5465
0
        errno = EINVAL;
5466
0
        return 1;
5467
0
    }
5468
5469
0
    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
5470
5471
0
    if (*ptr_yy_globals == NULL){
5472
0
        errno = ENOMEM;
5473
0
        return 1;
5474
0
    }
5475
5476
    /* By setting to 0xAA, we expose bugs in
5477
    yy_init_globals. Leave at 0x00 for releases. */
5478
0
    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
5479
5480
0
    yyset_extra (yy_user_defined, *ptr_yy_globals);
5481
5482
0
    return yy_init_globals ( *ptr_yy_globals );
5483
0
}
5484
5485
static int yy_init_globals (yyscan_t yyscanner)
5486
10.4k
{
5487
10.4k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5488
    /* Initialization is the same as for the non-reentrant scanner.
5489
     * This function is called from yylex_destroy(), so don't allocate here.
5490
     */
5491
5492
10.4k
    yyg->yy_buffer_stack = NULL;
5493
10.4k
    yyg->yy_buffer_stack_top = 0;
5494
10.4k
    yyg->yy_buffer_stack_max = 0;
5495
10.4k
    yyg->yy_c_buf_p = NULL;
5496
10.4k
    yyg->yy_init = 0;
5497
10.4k
    yyg->yy_start = 0;
5498
5499
10.4k
    yyg->yy_start_stack_ptr = 0;
5500
10.4k
    yyg->yy_start_stack_depth = 0;
5501
10.4k
    yyg->yy_start_stack =  NULL;
5502
5503
/* Defined in main.c */
5504
#ifdef YY_STDINIT
5505
    yyin = stdin;
5506
    yyout = stdout;
5507
#else
5508
10.4k
    yyin = NULL;
5509
10.4k
    yyout = NULL;
5510
10.4k
#endif
5511
5512
    /* For future reference: Set errno on error, since we are called by
5513
     * yylex_init()
5514
     */
5515
10.4k
    return 0;
5516
10.4k
}
5517
5518
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
5519
int yylex_destroy  (yyscan_t yyscanner)
5520
5.23k
{
5521
5.23k
    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5522
5523
    /* Pop the buffer stack, destroying each element. */
5524
5.23k
  while(YY_CURRENT_BUFFER){
5525
0
    yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
5526
0
    YY_CURRENT_BUFFER_LVALUE = NULL;
5527
0
    yypop_buffer_state(yyscanner);
5528
0
  }
5529
5530
  /* Destroy the stack itself. */
5531
5.23k
  yyfree(yyg->yy_buffer_stack , yyscanner);
5532
5.23k
  yyg->yy_buffer_stack = NULL;
5533
5534
    /* Destroy the start condition stack. */
5535
5.23k
        yyfree( yyg->yy_start_stack , yyscanner );
5536
5.23k
        yyg->yy_start_stack = NULL;
5537
5538
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
5539
     * yylex() is called, initialization will occur. */
5540
5.23k
    yy_init_globals( yyscanner);
5541
5542
    /* Destroy the main struct (reentrant only). */
5543
5.23k
    yyfree ( yyscanner , yyscanner );
5544
5.23k
    yyscanner = NULL;
5545
5.23k
    return 0;
5546
5.23k
}
5547
5548
/*
5549
 * Internal utility routines.
5550
 */
5551
5552
#ifndef yytext_ptr
5553
static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
5554
{
5555
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5556
  (void)yyg;
5557
5558
  int i;
5559
  for ( i = 0; i < n; ++i )
5560
    s1[i] = s2[i];
5561
}
5562
#endif
5563
5564
#ifdef YY_NEED_STRLEN
5565
static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
5566
{
5567
  int n;
5568
  for ( n = 0; s[n]; ++n )
5569
    ;
5570
5571
  return n;
5572
}
5573
#endif
5574
5575
void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
5576
20.9k
{
5577
20.9k
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5578
20.9k
  (void)yyg;
5579
20.9k
  return malloc(size);
5580
20.9k
}
5581
5582
void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
5583
0
{
5584
0
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5585
0
  (void)yyg;
5586
5587
  /* The cast to (char *) in the following accommodates both
5588
   * implementations that use char* generic pointers, and those
5589
   * that use void* generic pointers.  It works with the latter
5590
   * because both ANSI C and C++ allow castless assignment from
5591
   * any pointer type to void*, and deal with argument conversions
5592
   * as though doing an assignment.
5593
   */
5594
0
  return realloc(ptr, size);
5595
0
}
5596
5597
void yyfree (void * ptr , yyscan_t yyscanner)
5598
26.1k
{
5599
26.1k
  struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
5600
26.1k
  (void)yyg;
5601
26.1k
  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
5602
26.1k
}
5603
5604
#define YYTABLES_NAME "yytables"
5605
5606
#line 288 "flex_lexer.l"
5607
5608
/***************************
5609
 ** Section 3: User code
5610
 ***************************/
5611
5612
0
int yyerror(const char *msg) {
5613
    fprintf(stderr, "[SQL-Lexer-Error] %s\n",msg); return 0;
5614
0
}
5615