GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: lib/libpcap/scanner.c Lines: 158 413 38.3 %
Date: 2017-11-07 Branches: 76 289 26.3 %

Line Branch Exec Source
1
#line 2 "scanner.c"
2
3
#line 4 "scanner.c"
4
5
#define  YY_INT_ALIGNED short int
6
7
/*	$OpenBSD: flex.skl,v 1.16 2017/05/02 19:16:19 millert Exp $	*/
8
9
/* A lexical scanner generated by flex */
10
11
#define yy_create_buffer pcap_yy_create_buffer
12
#define yy_delete_buffer pcap_yy_delete_buffer
13
#define yy_flex_debug pcap_yy_flex_debug
14
#define yy_init_buffer pcap_yy_init_buffer
15
#define yy_flush_buffer pcap_yy_flush_buffer
16
#define yy_load_buffer_state pcap_yy_load_buffer_state
17
#define yy_switch_to_buffer pcap_yy_switch_to_buffer
18
#define yyin pcap_yyin
19
#define yyleng pcap_yyleng
20
#define yylex pcap_yylex
21
#define yylineno pcap_yylineno
22
#define yyout pcap_yyout
23
#define yyrestart pcap_yyrestart
24
#define yytext pcap_yytext
25
#define yywrap pcap_yywrap
26
#define yyalloc pcap_yyalloc
27
#define yyrealloc pcap_yyrealloc
28
#define yyfree pcap_yyfree
29
30
#define FLEX_SCANNER
31
#define YY_FLEX_MAJOR_VERSION 2
32
#define YY_FLEX_MINOR_VERSION 5
33
#define YY_FLEX_SUBMINOR_VERSION 39
34
#if YY_FLEX_SUBMINOR_VERSION > 0
35
#define FLEX_BETA
36
#endif
37
38
/* First, we deal with  platform-specific or compiler-specific issues. */
39
40
/* begin standard C headers. */
41
#include <stdio.h>
42
#include <string.h>
43
#include <errno.h>
44
#include <stdlib.h>
45
46
/* end standard C headers. */
47
48
/* $OpenBSD: flexint.h,v 1.1 2015/11/19 19:43:40 tedu Exp $ */
49
50
/* flex integer type definitions */
51
52
#ifndef FLEXINT_H
53
#define FLEXINT_H
54
55
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
56
57
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
58
59
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
60
 * if you want the limit (max/min) macros for int types.
61
 */
62
#ifndef __STDC_LIMIT_MACROS
63
#define __STDC_LIMIT_MACROS 1
64
#endif
65
66
#include <inttypes.h>
67
typedef int8_t flex_int8_t;
68
typedef uint8_t flex_uint8_t;
69
typedef int16_t flex_int16_t;
70
typedef uint16_t flex_uint16_t;
71
typedef int32_t flex_int32_t;
72
typedef uint32_t flex_uint32_t;
73
#else
74
typedef signed char flex_int8_t;
75
typedef short int flex_int16_t;
76
typedef int flex_int32_t;
77
typedef unsigned char flex_uint8_t;
78
typedef unsigned short int flex_uint16_t;
79
typedef unsigned int flex_uint32_t;
80
81
/* Limits of integral types. */
82
#ifndef INT8_MIN
83
#define INT8_MIN               (-128)
84
#endif
85
#ifndef INT16_MIN
86
#define INT16_MIN              (-32767-1)
87
#endif
88
#ifndef INT32_MIN
89
#define INT32_MIN              (-2147483647-1)
90
#endif
91
#ifndef INT8_MAX
92
#define INT8_MAX               (127)
93
#endif
94
#ifndef INT16_MAX
95
#define INT16_MAX              (32767)
96
#endif
97
#ifndef INT32_MAX
98
#define INT32_MAX              (2147483647)
99
#endif
100
#ifndef UINT8_MAX
101
#define UINT8_MAX              (255U)
102
#endif
103
#ifndef UINT16_MAX
104
#define UINT16_MAX             (65535U)
105
#endif
106
#ifndef UINT32_MAX
107
#define UINT32_MAX             (4294967295U)
108
#endif
109
110
#endif /* ! C99 */
111
112
#endif /* ! FLEXINT_H */
113
114
#ifdef __cplusplus
115
116
/* The "const" storage-class-modifier is valid. */
117
#define YY_USE_CONST
118
119
#else	/* ! __cplusplus */
120
121
/* C99 requires __STDC__ to be defined as 1. */
122
#if defined (__STDC__)
123
124
#define YY_USE_CONST
125
126
#endif	/* defined (__STDC__) */
127
#endif	/* ! __cplusplus */
128
129
#ifdef YY_USE_CONST
130
#define yyconst const
131
#else
132
#define yyconst
133
#endif
134
135
/* Returned upon end-of-file. */
136
#define YY_NULL 0
137
138
/* Promotes a possibly negative, possibly signed char to an unsigned
139
 * integer for use as an array index.  If the signed char is negative,
140
 * we want to instead treat it as an 8-bit unsigned char, hence the
141
 * double cast.
142
 */
143
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
144
145
/* Enter a start condition.  This macro really ought to take a parameter,
146
 * but we do it the disgusting crufty way forced on us by the ()-less
147
 * definition of BEGIN.
148
 */
149
#define BEGIN (yy_start) = 1 + 2 *
150
151
/* Translate the current start state into a value that can be later handed
152
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
153
 * compatibility.
154
 */
155
#define YY_START (((yy_start) - 1) / 2)
156
#define YYSTATE YY_START
157
158
/* Action number for EOF rule of a given start state. */
159
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
160
161
/* Special action meaning "start processing a new file". */
162
#define YY_NEW_FILE pcap_yyrestart(pcap_yyin  )
163
164
#define YY_END_OF_BUFFER_CHAR 0
165
166
/* Size of default input buffer. */
167
#ifndef YY_BUF_SIZE
168
#define YY_BUF_SIZE 16384
169
#endif
170
171
/* The state buf must be large enough to hold one state per character in the main buffer.
172
 */
173
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
174
175
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
176
#define YY_TYPEDEF_YY_BUFFER_STATE
177
typedef struct yy_buffer_state *YY_BUFFER_STATE;
178
#endif
179
180
#ifndef YY_TYPEDEF_YY_SIZE_T
181
#define YY_TYPEDEF_YY_SIZE_T
182
typedef size_t yy_size_t;
183
#endif
184
2
185
2
extern yy_size_t pcap_yyleng;
186
187
extern FILE *pcap_yyin, *pcap_yyout;
188
189
#define EOB_ACT_CONTINUE_SCAN 0
190
#define EOB_ACT_END_OF_FILE 1
191
#define EOB_ACT_LAST_MATCH 2
192
193
    #define YY_LESS_LINENO(n)
194
    #define YY_LINENO_REWIND_TO(ptr)
195
196
/* Return all but the first "n" matched characters back to the input stream. */
197
#define yyless(n) \
198
	do \
199
		{ \
200
		/* Undo effects of setting up pcap_yytext. */ \
201
        int yyless_macro_arg = (n); \
202
        YY_LESS_LINENO(yyless_macro_arg);\
203
		*yy_cp = (yy_hold_char); \
204
		YY_RESTORE_YY_MORE_OFFSET \
205
		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
206
		YY_DO_BEFORE_ACTION; /* set up pcap_yytext again */ \
207
		} \
208
	while ( 0 )
209
210
#define unput(c) yyunput( c, (yytext_ptr)  )
211
212
#ifndef YY_STRUCT_YY_BUFFER_STATE
213
#define YY_STRUCT_YY_BUFFER_STATE
214
struct yy_buffer_state
215
	{
216
	FILE *yy_input_file;
217
218
2
	char *yy_ch_buf;		/* input buffer */
219
	char *yy_buf_pos;		/* current position in input buffer */
220
221
	/* Size of input buffer in bytes, not including room for EOB
222
	 * characters.
223
	 */
224
	yy_size_t yy_buf_size;
225
226
	/* Number of characters read into yy_ch_buf, not including EOB
227
	 * characters.
228
	 */
229
	yy_size_t yy_n_chars;
230
231
	/* Whether we "own" the buffer - i.e., we know we created it,
232
	 * and can realloc() it to grow it, and should free() it to
233
	 * delete it.
234
	 */
235
	int yy_is_our_buffer;
236
237
	/* Whether this is an "interactive" input source; if so, and
238
	 * if we're using stdio for input, then we want to use getc()
239
	 * instead of fread(), to make sure we stop fetching input after
240
	 * each newline.
241
	 */
242
	int yy_is_interactive;
243
244
	/* Whether we're considered to be at the beginning of a line.
245
6
	 * If so, '^' rules will be active on the next match, otherwise
246
	 * not.
247
	 */
248
	int yy_at_bol;
249
250
    int yy_bs_lineno; /**< The line count. */
251
    int yy_bs_column; /**< The column count. */
252
4
253
	/* Whether to try to fill the input buffer when we reach the
254
	 * end of it.
255
	 */
256
	int yy_fill_buffer;
257
258
	int yy_buffer_status;
259
260
#define YY_BUFFER_NEW 0
261
#define YY_BUFFER_NORMAL 1
262
	/* When an EOF's been seen but there's still some text to process
263
	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
264
	 * shouldn't try reading from the input source any more.  We might
265
	 * still have a bunch of tokens to match, though, because of
266
	 * possible backing-up.
267
	 *
268
	 * When we actually see the EOF, we change the status to "new"
269
	 * (via pcap_yyrestart()), so that the user can continue scanning by
270
	 * just pointing pcap_yyin at a new input file.
271
	 */
272
#define YY_BUFFER_EOF_PENDING 2
273
274
	};
275
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
276
277
/* Stack of input buffers. */
278
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
279
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
280
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
281
282
/* We provide macros for accessing buffer states in case in the
283
 * future we want to put the buffer states in a more general
284
 * "scanner state".
285
 *
286
 * Returns the top of the stack, or NULL.
287
 */
288
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
289
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
290
                          : NULL)
291
292
/* Same as previous macro, but useful when we know that the buffer stack is not
293
 * NULL or when we need an lvalue. For internal use only.
294
 */
295
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
296
297
/* yy_hold_char holds the character lost when pcap_yytext is formed. */
298
static char yy_hold_char;
299
static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
300
yy_size_t pcap_yyleng;
301
302
/* Points to current character in buffer. */
303
static char *yy_c_buf_p = (char *) 0;
304
static int yy_init = 0;		/* whether we need to initialize */
305
static int yy_start = 0;	/* start state number */
306
307
/* Flag which is used to allow pcap_yywrap()'s to do buffer switches
308
 * instead of setting up a fresh pcap_yyin.  A bit of a hack ...
309
 */
310
static int yy_did_buffer_switch_on_eof;
311
312
void pcap_yyrestart (FILE *input_file  );
313
void pcap_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
314
YY_BUFFER_STATE pcap_yy_create_buffer (FILE *file,int size  );
315
void pcap_yy_delete_buffer (YY_BUFFER_STATE b  );
316
void pcap_yy_flush_buffer (YY_BUFFER_STATE b  );
317
void pcap_yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
318
void pcap_yypop_buffer_state (void );
319
320
static void pcap_yyensure_buffer_stack (void );
321
static void pcap_yy_load_buffer_state (void );
322
static void pcap_yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
323
324
#define YY_FLUSH_BUFFER pcap_yy_flush_buffer(YY_CURRENT_BUFFER )
325
326
YY_BUFFER_STATE pcap_yy_scan_buffer (char *base,yy_size_t size  );
327
YY_BUFFER_STATE pcap_yy_scan_string (yyconst char *yy_str  );
328
YY_BUFFER_STATE pcap_yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
329
330
void *pcap_yyalloc (yy_size_t  );
331
void *pcap_yyrealloc (void *,yy_size_t  );
332
void pcap_yyfree (void *  );
333
334
#define yy_new_buffer pcap_yy_create_buffer
335
336
#define yy_set_interactive(is_interactive) \
337
	{ \
338
	if ( ! YY_CURRENT_BUFFER ){ \
339
        pcap_yyensure_buffer_stack (); \
340
		YY_CURRENT_BUFFER_LVALUE =    \
341
            pcap_yy_create_buffer(pcap_yyin,YY_BUF_SIZE ); \
342
	} \
343
	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
344
	}
345
346
#define yy_set_bol(at_bol) \
347
	{ \
348
	if ( ! YY_CURRENT_BUFFER ){\
349
        pcap_yyensure_buffer_stack (); \
350
		YY_CURRENT_BUFFER_LVALUE =    \
351
            pcap_yy_create_buffer(pcap_yyin,YY_BUF_SIZE ); \
352
	} \
353
	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
354
	}
355
356
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
357
358
/* Begin user sect3 */
359
360
typedef unsigned char YY_CHAR;
361
362
FILE *pcap_yyin = (FILE *) 0, *pcap_yyout = (FILE *) 0;
363
364
typedef int yy_state_type;
365
366
extern int pcap_yylineno;
367
368
int pcap_yylineno = 1;
369
370
extern char *pcap_yytext;
371
#define yytext_ptr pcap_yytext
372
373
static yy_state_type yy_get_previous_state (void );
374
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
375
static int yy_get_next_buffer (void );
376
static void yy_fatal_error (yyconst char msg[]  );
377
378
/* Done after the current pattern has been matched and before the
379
 * corresponding action - sets up pcap_yytext.
380
 */
381
#define YY_DO_BEFORE_ACTION \
382
	(yytext_ptr) = yy_bp; \
383
	pcap_yyleng = (size_t) (yy_cp - yy_bp); \
384
	(yy_hold_char) = *yy_cp; \
385
	*yy_cp = '\0'; \
386
	(yy_c_buf_p) = yy_cp;
387
388
#define YY_NUM_RULES 100
389
#define YY_END_OF_BUFFER 101
390
/* This struct is not used in this scanner,
391
   but its presence is necessary. */
392
struct yy_trans_info
393
	{
394
	flex_int32_t yy_verify;
395
	flex_int32_t yy_nxt;
396
	};
397
static yyconst flex_int16_t yy_accept[1237] =
398
    {   0,
399
        0,    0,  101,   98,   58,   58,   59,   59,   59,   59,
400
       99,   66,   66,   59,   59,   59,   59,   96,   96,   98,
401
       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
402
       96,   96,   96,   96,   96,   96,   96,   96,   96,   59,
403
       98,   62,   37,    0,   95,   66,    0,   95,   95,   95,
404
       69,   64,   61,   63,   60,   65,   97,   97,   95,   95,
405
       16,   95,   95,   95,   95,   95,   95,   95,   95,   95,
406
       95,   95,   95,   95,   95,   95,   95,   95,   95,    7,
407
       95,   95,   95,   95,   95,   95,   95,   95,   44,   38,
408
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
409
410
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
411
       38,   67,   67,   66,   95,    0,   69,   66,   69,   69,
412
       69,   95,   95,   37,    5,   95,   95,   95,   95,   53,
413
        1,   17,   95,   95,   95,   95,   95,   95,   95,   95,
414
       95,   95,   14,   20,   40,   95,   95,   95,   95,   95,
415
       26,   39,   95,   13,   95,    3,   95,   95,   95,   46,
416
       95,   95,   21,   95,    2,   95,   24,   95,    8,   95,
417
        9,   95,   95,   95,   95,   66,    0,   95,    0,   70,
418
       69,   69,    0,   69,    0,   69,    0,   69,    0,   95,
419
       95,   95,   95,   34,   95,   95,   95,    4,   95,   95,
420
421
       25,   10,   95,   11,   12,   95,   95,   32,   27,   95,
422
       95,   95,   95,   28,   95,    6,   95,   45,   95,   47,
423
       95,   95,    0,   95,   51,   43,   50,   67,   67,   67,
424
       66,    0,   69,    0,    0,   69,    0,   69,   70,   69,
425
        0,    0,    0,    0,   69,   69,   69,   69,   69,    0,
426
       95,   54,   55,   56,   57,   95,   18,   95,   95,   95,
427
       95,   95,    0,   15,   95,   95,   95,   95,   95,   23,
428
       22,   95,   95,   29,   95,   95,   95,   95,   95,   95,
429
       95,   95,   95,   95,   95,   95,   95,   95,    0,    0,
430
       69,   69,   69,    0,    0,   70,   69,   69,   70,   69,
431
432
        0,    0,   69,   69,   69,   69,   69,    0,    0,    0,
433
        0,   69,   69,    0,   69,    0,   69,    0,   49,   95,
434
       95,   19,   95,   95,   95,   95,   95,   95,   95,   95,
435
       95,   95,   95,   95,   95,   95,   40,   95,   95,   95,
436
       48,   95,   95,   95,   95,   95,   95,   95,   95,   95,
437
       95,   95,   67,   67,   67,    0,   69,   69,    0,   69,
438
        0,    0,   69,    0,   69,   70,   69,    0,    0,    0,
439
       69,   69,    0,   69,   70,   69,    0,    0,    0,    0,
440
        0,    0,    0,   69,   69,   69,   69,   69,    0,   95,
441
       95,   95,   31,   33,   95,   95,   95,   95,   95,   95,
442
443
       95,   95,   95,   95,   95,   95,   41,   95,   95,   95,
444
       95,   52,   93,   89,   95,   91,   90,   94,   95,   95,
445
        0,    0,   69,   69,   69,   69,   69,   69,    0,    0,
446
       70,   69,   69,   69,    0,    0,   69,   69,   69,   69,
447
       69,    0,    0,    0,    0,    0,    0,    0,   69,   69,
448
       69,   69,   69,    0,    0,    0,    0,    0,   69,   69,
449
        0,   69,    0,   69,    0,   95,   95,   95,   95,   95,
450
       95,   95,   95,   95,   95,   95,   95,   72,   71,   95,
451
       42,   95,   95,   92,   88,   67,    0,   69,   69,    0,
452
       69,   69,    0,   69,    0,    0,   69,    0,   69,   70,
453
454
       69,    0,    0,    0,   69,   69,    0,   69,   70,   69,
455
        0,    0,    0,    0,    0,   69,   69,    0,   69,   70,
456
       69,    0,   69,   69,    0,    0,    0,    0,    0,    0,
457
        0,   69,   69,   69,   69,   69,    0,   35,   53,   77,
458
       84,   95,   95,   95,   95,   95,   95,   95,   95,   36,
459
       95,   95,    0,    0,   69,   69,   69,   69,   69,   69,
460
       69,   69,   69,    0,    0,   70,   69,   69,   69,    0,
461
        0,   69,   69,   69,   69,   69,    0,    0,    0,    0,
462
        0,    0,    0,   69,   69,   69,   69,   69,    0,   69,
463
       69,    0,    0,    0,    0,    0,    0,    0,   69,   69,
464
465
       69,   69,   69,    0,    0,    0,    0,    0,    0,   69,
466
       69,    0,   69,    0,   69,    0,   95,   95,   95,   95,
467
       95,   95,   95,   95,   95,   95,   30,    0,   69,   69,
468
        0,   69,   69,    0,   69,   69,    0,   69,    0,   68,
469
       69,    0,   69,   70,   69,    0,    0,    0,   69,   69,
470
        0,   69,   70,   69,    0,    0,    0,    0,    0,   69,
471
       69,    0,   69,   70,   69,    0,    0,    0,    0,    0,
472
        0,   69,   69,    0,   69,   70,   69,    0,   69,   69,
473
       69,    0,    0,    0,    0,    0,    0,    0,   69,   69,
474
       69,   69,   69,    0,   95,   95,   95,   95,   95,   95,
475
476
       95,   95,   82,   95,    0,    0,   69,   69,   69,   69,
477
       69,   69,   69,   69,   69,   69,   69,   69,    0,   68,
478
       70,   69,   69,   69,    0,    0,   69,   69,   69,   69,
479
       69,    0,    0,    0,    0,    0,    0,    0,   69,   69,
480
       69,   69,   69,    0,   69,   69,    0,    0,    0,    0,
481
        0,    0,    0,   69,   69,   69,   69,   69,    0,   69,
482
       69,   69,    0,    0,    0,    0,    0,    0,    0,   69,
483
       69,   69,   69,   69,    0,    0,    0,    0,    0,    0,
484
       69,   69,    0,   69,    0,   69,    0,   95,   95,   95,
485
       86,   95,   95,   95,   95,   95,   95,   95,   74,    0,
486
487
       69,   69,    0,   69,   69,    0,   69,   69,    0,   69,
488
       69,    0,   69,    0,    0,    0,   69,    0,    0,   69,
489
       70,   69,    0,    0,    0,   69,   69,    0,   69,   70,
490
       69,    0,    0,    0,    0,    0,   69,   69,    0,   69,
491
       70,   69,    0,    0,    0,    0,    0,    0,   69,   69,
492
        0,   69,   70,   69,    0,    0,    0,    0,    0,    0,
493
       69,   69,    0,   69,   70,   69,    0,   69,   69,   69,
494
        0,    0,    0,    0,    0,    0,    0,   69,   69,   69,
495
       69,   69,    0,   95,   95,   95,   95,   76,   95,   95,
496
       95,   80,   95,    0,    0,   69,   69,   69,   69,   69,
497
498
       69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
499
        0,    0,    0,   70,    0,    0,   69,    0,    0,   69,
500
       69,   69,    0,    0,    0,    0,    0,    0,    0,   69,
501
       69,   69,    0,   69,   69,    0,    0,    0,    0,    0,
502
        0,    0,   69,   69,   69,    0,   69,   69,   69,    0,
503
        0,    0,    0,    0,    0,    0,   69,   69,   69,    0,
504
       69,   69,   69,    0,    0,    0,    0,    0,    0,    0,
505
       69,   69,   69,    0,    0,    0,    0,    0,    0,   69,
506
       69,    0,   69,    0,   69,    0,   73,   85,   87,   81,
507
       95,   95,   95,   95,    0,    0,   69,    0,   69,    0,
508
509
       69,   69,    0,   69,   69,    0,   69,   69,    0,   69,
510
       69,    0,   69,    0,    0,    0,    0,   69,   69,    0,
511
       69,    0,    0,   69,   69,   69,    0,    0,    0,    0,
512
       69,   69,   69,    0,    0,    0,    0,    0,   69,   69,
513
       69,    0,    0,    0,    0,    0,   69,   69,   69,    0,
514
        0,    0,    0,    0,   69,   69,   69,   69,   69,   69,
515
        0,    0,    0,    0,    0,    0,    0,   69,   69,   69,
516
        0,   95,   95,   95,   95,    0,    0,    0,   69,   69,
517
       69,   69,   69,   69,    0,    0,    0,    0,   69,   69,
518
        0,    0,    0,    0,   69,   69,   69,    0,    0,    0,
519
520
        0,    0,   69,   69,   69,   69,    0,    0,    0,    0,
521
        0,   69,   69,   69,   69,    0,    0,    0,    0,    0,
522
       69,   69,   69,   69,    0,    0,    0,    0,    0,   69,
523
        0,    0,    0,    0,    0,   69,   69,   69,   95,   95,
524
       95,   83,   69,   69,   69,   69,   69,   69,   69,   69,
525
        0,    0,    0,    0,   69,   69,    0,    0,   69,    0,
526
        0,    0,   69,    0,    0,    0,   69,    0,    0,    0,
527
       69,    0,    0,    0,   69,   69,   69,   69,    0,    0,
528
        0,    0,    0,   69,   78,   95,   75,   69,    0,    0,
529
       69,   69,    0,   69,   69,   69,    0,   69,   69,   69,
530
531
        0,   69,   69,   69,    0,   69,   69,   69,    0,    0,
532
        0,    0,   69,   79,   69,   69,    0,    0,    0,    0,
533
        0,    0,   69,   69,   69,    0,    0,   69,   69,   69,
534
       69,   69,    0,   69,   69,    0
535
    } ;
536
537
static yyconst flex_int32_t yy_ec[256] =
538
    {   0,
539
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
540
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
541
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
542
        1,    2,    4,    1,    1,    1,    1,    5,    1,    6,
543
        6,    7,    7,    1,    8,    9,    7,   10,   11,   12,
544
       13,   14,   15,   16,   15,   15,   15,   17,    1,   18,
545
       19,   20,    1,    1,   21,   21,   21,   21,   21,   21,
546
       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
547
       22,   22,   22,   22,   22,   22,   22,   23,   22,   22,
548
       24,   25,   24,    1,   26,    1,   27,   28,   29,   30,
549
550
       31,   32,   33,   34,   35,   22,   36,   37,   38,   39,
551
       40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
552
       50,   22,    1,   51,    1,    1,    1,    1,    1,    1,
553
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
554
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
555
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
556
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
557
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
558
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
559
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
560
561
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
562
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
563
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
564
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
565
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
566
        1,    1,    1,    1,    1
567
    } ;
568
569
static yyconst flex_int32_t yy_meta[52] =
570
    {   0,
571
        1,    2,    2,    2,    1,    2,    1,    3,    4,    5,
572
        5,    5,    5,    5,    5,    5,    6,    1,    1,    1,
573
        7,    3,    8,    1,    1,    3,    7,    7,    7,    7,
574
        7,    7,    3,    3,    3,    3,    3,    3,    3,    3,
575
        3,    3,    3,    3,    3,    3,    3,    3,    8,    3,
576
        1
577
    } ;
578
579
static yyconst flex_int16_t yy_base[1687] =
580
    {   0,
581
        0,    0, 3426,   51, 6131, 6131, 3406, 3419, 6131,   52,
582
     6131,   70,   39,  120,   36, 3389,   37,  137,  177,  137,
583
       96,   17,   30,   19, 3377,   46, 3366,  126,   97,   96,
584
       35,  118,  128,  139,  173,   93, 3375, 3366, 3364, 3334,
585
      196, 6131, 6131,    0,  212,  220, 3367,  244,    0,  251,
586
      283, 6131, 6131, 6131, 6131, 6131,  284,    0, 3338, 3352,
587
        0, 3351, 3338, 3351, 3337, 3316, 3331, 3316, 3313, 3315,
588
     3320, 3308, 3292, 3305, 3291, 3296, 3292,   52, 3302, 3298,
589
     3268,   90, 3270, 3264, 3266, 3253, 3244, 3243,    0,    0,
590
     3239, 3235, 3227, 3228, 3228, 3224, 3239, 3207, 3218, 3208,
591
592
     3217, 3208,  143, 3186, 3198, 3184, 3183, 3182, 3193, 3192,
593
     6131,  307,  150,  347,  371, 3191,  378, 3177,  402,  151,
594
     3168, 3149, 3137,    0,    0, 3142, 3151, 3131, 3122, 3129,
595
        0,    0, 3128, 3123, 3124, 3127, 3098, 3080, 3093, 3078,
596
     3074, 3074,    0,    0, 3080, 3053, 3060, 3059,  171, 3049,
597
        0,    0, 3065,    0, 3045,    0, 3044, 3037, 3012,    0,
598
     3010, 3023,    0, 3009,    0, 3006,    0,   27,  148, 3017,
599
        0, 2993, 2992,  321,  442,  466, 3013, 3012, 3011, 3008,
600
      475,  188, 3007, 2996,  328,  516,  539, 2974,    0, 2950,
601
      257, 2951, 2954,    0, 2952, 2938, 2922,    0, 2916, 2916,
602
603
        0,  419, 2922,    0,    0, 2913, 2882,    0,    0, 2889,
604
     2896, 2888, 2881,    0, 2880,    0, 2879,    0,  137,    0,
605
     2862, 2857,  467, 2849,    0,    0,    0,  563,  189, 2876,
606
     2867, 2865,  603, 2863, 2862,  626,  335,  650,  673, 2861,
607
        0, 2828,  280,  413,  697, 2827,  721,  194, 2826, 2832,
608
     2785,    0,    0,    0,    0, 2779,    0, 2790, 2773, 2772,
609
     2785, 2780,  740,    0, 2760, 2746, 2732, 2723, 2727,    0,
610
        0, 2730, 2711, 2727, 2716, 2693, 2707, 2700, 2695, 2706,
611
     2698, 2686, 2687, 2665, 2671, 2686,  427,  777, 2695, 2694,
612
      801,  197, 2692, 2691, 2690, 2675,  842,  253, 2674, 2673,
613
614
      486,  491,  883, 2672,  907,  303, 2671, 2677, 2668,  505,
615
        0,  356, 2667,  577,  948,  971, 2651,    0,    0, 2623,
616
     2639,    0, 2630, 2614, 2619, 2632, 2617, 2618, 2617,  100,
617
     2603,  140, 2603, 2611, 2598, 2608,    0, 2610, 2582, 2586,
618
        0, 2581, 2573, 2586, 2584, 2578, 2574, 2554, 2552, 2557,
619
     2562, 2561,  994,  304, 2583, 2574, 1034, 2573, 1057, 2557,
620
     2556, 2555, 1080,  584, 1104, 1127, 2554,    0,  591,    0,
621
      387, 2553,  744, 1151, 1174, 2551,    0,  513,  533, 2558,
622
      411,  599,  600, 1198, 2549, 1222,  305, 2534, 2541,  358,
623
     2505, 2508,    0,    0, 2513, 2514, 2500, 2500, 2497, 2480,
624
625
     2479, 2486, 2478, 2477, 2488, 2473,    0, 2459, 2472, 2474,
626
     2461,    0,    0,    0, 2464,    0,    0,    0, 2453, 1262,
627
     2479, 2463, 1286,  375, 2462, 1327,  377, 2461, 2460, 2458,
628
     2456, 1368,  398, 2440,  602,  753, 1409, 2439, 1433,  444,
629
     2438, 2445,  754,  771, 2444,  451,  812,  817, 1474, 2434,
630
     1498,  474, 2433, 2440,  831,    0,  865,    0,  548, 2416,
631
      872, 1539, 1562, 2415,    0, 2386, 2391, 2388, 2384, 2374,
632
     2382, 2373, 2362, 2363, 2355, 2376, 2371,    0,    0, 2341,
633
        0, 2350, 2338,    0,    0,    0, 2366, 1585, 1609, 1632,
634
     2364, 1656, 1679, 2362, 2346, 2345, 1702,  930, 1726, 1749,
635
636
     2344,    0,  937,    0,  611, 2343, 1008, 1773, 1796, 2342,
637
        0, 1015,    0, 1022,    0,  612, 2339, 1245, 1820, 1843,
638
     2338,    0,  489, 1252, 2330,  880,  945, 2329, 2328,  965,
639
     1030, 1867, 2317, 1891,  535, 2316, 2323,  169,  266,  739,
640
      753,  793, 1296,  882,  533,  644,  666, 1323,  279,  299,
641
     1280, 1325, 2298, 2296, 1932,  623, 2294, 1973,  627, 2279,
642
     2014,  668, 2270, 2268, 2259, 2258, 2055,  670, 2235, 1031,
643
     1033, 2096, 2234, 2120,  673, 2233, 2239, 1051, 1261, 2224,
644
     2222, 1303, 1323, 2161, 2205, 2185,  674, 2204, 2211,  692,
645
     1354, 2202, 1364, 1365, 2201, 2178, 1383, 1384, 2226, 2169,
646
647
     2250,  697, 2168, 2159,    0, 1456,    0, 1463,    0,  755,
648
     2148, 1521, 2291, 2314, 2145,    0,  690,  901,  964, 1279,
649
      965, 1033,  985, 1073, 1319, 1097,  555, 2144, 2337, 2361,
650
     2384, 2127, 2408, 2431, 2105, 2455, 2478, 2103, 2102, 2101,
651
     2501, 1528, 2525, 2548, 2084,    0, 1914,    0,  757, 2081,
652
     1921, 2572, 2595, 2079,    0, 1955,    0, 1962,    0,  851,
653
     2078, 1996, 2619, 2642, 2060,    0,    0, 2003,    0, 2037,
654
        0,  980, 2058, 2044, 2666, 2689, 2057,    0,    0,  720,
655
     2078, 2064, 1385, 1406, 2053, 2031, 1471, 1536, 2713, 2022,
656
     2737,  750, 2021, 2027, 1321, 1345, 1538, 1473, 1098, 2053,
657
658
     2073, 1120, 2095, 1049, 2017, 2016, 2778,  774, 2015, 2819,
659
      815, 2004, 2860,  882, 2003, 2901,  884, 1982, 1981, 1980,
660
     2941, 2965, 1028, 1978, 1579, 1626, 3006, 1976, 3030, 1080,
661
     1975, 1982, 1673, 2091, 1971, 1970, 2093, 2130, 3071, 1941,
662
     3095, 1122, 1940, 1947, 1124, 2144, 1945, 2158, 2195, 1943,
663
     1942, 2196, 2200, 3136, 1933, 3160, 1126, 1922, 1929,    0,
664
     1127, 2214, 1908, 2223, 2260, 1907, 1906, 2261, 2265, 3201,
665
     1894, 3225, 1147, 1893, 1900,    0, 2279,    0, 2760,    0,
666
     1113, 1876, 2767, 3266, 3289, 1875,    0, 2260, 2776, 2777,
667
      618, 2812, 2138, 1190, 2813, 2290, 1191, 1166,  619, 1873,
668
669
     3312, 3336, 3359, 1869, 3383, 3406, 1845, 3430, 3453, 1828,
670
     3477, 3500, 1826, 1798, 3524, 1195, 1779, 1778, 2844, 3565,
671
     1757, 1756,    0, 2851,    0, 1160, 1732, 2883, 3589, 1711,
672
     1709,    0, 2890,    0, 2924,    0, 1231, 1684, 2931, 3613,
673
     1640, 1639,    0,    0, 2988,    0, 2995,    0, 1392, 1638,
674
     3053, 3637, 1637, 1593,    0,    0, 3060,    0, 3118,    0,
675
     1393, 1586, 3125, 3661, 1545, 1500,    0,    0, 1259, 3183,
676
     1491, 2308, 2331, 1484, 1449, 2378, 2425, 3685, 1440, 3709,
677
     1262, 1435, 1426, 1555, 1601, 1624, 1603,  841, 1650, 2789,
678
     1215, 1216, 2796, 1411, 3749, 3773, 1367, 1358, 3814, 1382,
679
680
     1313, 3855, 1404, 1311, 3896, 1469, 1308, 3937, 1473, 1307,
681
     1306, 3190, 3978, 1304, 1269,    0, 1264, 2472, 2940, 4002,
682
     1263, 1262, 1260, 3003, 3068, 1238, 1213, 3133, 3198, 4026,
683
     1183, 1177, 1184, 1474, 3248, 1144, 3242, 3262, 1143, 1093,
684
     3263, 3283, 4050, 1081, 1041, 1043,    0, 1475, 3547, 1006,
685
     3306, 3353, 1004, 1003, 3400, 3447, 4074,  954,  953,  958,
686
        0, 1535, 3554,  957, 3494, 3562,  946,  917, 3719, 3720,
687
     4098,  889,  885,  892,    0, 3734,    0, 3741,    0, 1394,
688
      845, 3796, 4122,    0,  831,    0, 1578, 1626, 1672, 1673,
689
     1694, 2790, 3808, 3812, 4146, 1538,    0,  822, 4187,    0,
690
691
      820, 4211,    0,  817, 4235,    0,  810, 4259,    0,  808,
692
     4283,    0,  783, 3790, 3809, 4307,  778,  751,  750,  736,
693
      723, 3840,    0, 1395,  722,  682, 3878,    0, 3885,    0,
694
     1442,  658,  652,    0, 3919,    0, 3926,    0, 1548,  651,
695
      593,    0, 3960,    0, 3967,    0, 1735,  568,  566,    0,
696
     4169,    0, 4176,    0, 1758,  563,  544,    0, 1559, 4330,
697
      530, 3810, 3975,  525,  492, 4184, 4324, 4365,  449,    0,
698
      456, 2137, 1695, 1719, 1742, 4389,  444,  442,    0,    0,
699
        0,    0,    0,    0, 4338,    0, 1782,  433,  432,    0,
700
     4360, 4362,  437,  436,    0, 1584, 4345,  435, 4399, 4403,
701
702
      394,  393,    0,    0, 1655, 4352,  392, 4404, 4405,  388,
703
      358,    0,    0, 1656, 4419,  357, 4414, 4415,  346,  315,
704
        0,    0, 1723, 4429,  277, 4427, 4437,  268,  266,    0,
705
        0, 4455,    0, 4467,    0, 1805,  256,    0, 2158, 4449,
706
     1812, 1743,    0, 6131,    0,    0,    0,    0,    0,    0,
707
     4438, 4449,  236,  235,    0, 6131, 4478,    0, 6131,    0,
708
     4489,    0, 6131,    0, 4496,    0, 6131,    0, 4503,    0,
709
     6131,    0, 4510,    0, 6131,    0, 1748, 4517,  233, 4525,
710
     4526,  231, 1852,    0, 1790, 2940, 1813,    0, 4526,    0,
711
     1770, 4540,  230,    0, 1795, 4547,  206,    0, 1817, 4554,
712
713
      187,    0, 1819, 4566,  170,    0, 1840, 4573,  124,    0,
714
     4580,    0, 6131, 1859, 1842, 4587,   85,    0,    0,    0,
715
        0,    0,    0, 1864, 4594,   62,    0,    0,    0,    0,
716
        0,    0,    0,    0,    0, 6131, 4610, 4614, 4617, 4620,
717
     4623, 4626, 4629, 4632, 4635, 4638, 4641, 4644, 4647, 4650,
718
     4653, 4656, 4659, 4663, 4667, 4670, 4673, 4676, 4679, 4682,
719
     4685, 4689, 4693, 4696, 4699, 4703, 4705, 4708, 4711, 4714,
720
     4717, 4720, 4723, 4726, 4730, 4732, 4735, 4739, 4744, 4748,
721
     4751, 4754, 4757, 4760, 4763, 4766, 4769, 4772, 4776, 4780,
722
     4783, 4787, 4792, 4796, 4799, 4803, 4806, 4809, 4813, 4815,
723
724
     4818, 4821, 4824, 4827, 4830, 4833, 4836, 4839, 4842, 4846,
725
     4848, 4851, 4854, 4857, 4861, 4863, 4866, 4869, 4874, 4879,
726
     4883, 4885, 4889, 4892, 4896, 4901, 4905, 4908, 4911, 4914,
727
     4917, 4920, 4923, 4926, 4930, 4934, 4937, 4941, 4945, 4950,
728
     4954, 4956, 4960, 4963, 4967, 4970, 4975, 4979, 4984, 4988,
729
     4990, 4994, 4997, 5001, 5004, 5007, 5010, 5014, 5016, 5019,
730
     5024, 5028, 5031, 5034, 5037, 5040, 5043, 5046, 5049, 5052,
731
     5056, 5058, 5061, 5064, 5067, 5071, 5073, 5076, 5079, 5082,
732
     5085, 5089, 5091, 5094, 5097, 5100, 5105, 5109, 5114, 5118,
733
     5120, 5124, 5127, 5131, 5136, 5140, 5143, 5146, 5149, 5152,
734
735
     5155, 5158, 5161, 5165, 5169, 5172, 5176, 5180, 5185, 5189,
736
     5191, 5195, 5198, 5202, 5205, 5210, 5214, 5219, 5223, 5225,
737
     5229, 5232, 5236, 5239, 5242, 5247, 5251, 5256, 5260, 5262,
738
     5266, 5269, 5273, 5276, 5279, 5282, 5286, 5288, 5291, 5296,
739
     5300, 5303, 5306, 5309, 5312, 5315, 5318, 5321, 5324, 5327,
740
     5330, 5333, 5337, 5339, 5342, 5345, 5348, 5351, 5355, 5357,
741
     5360, 5363, 5366, 5369, 5372, 5376, 5378, 5381, 5384, 5387,
742
     5390, 5393, 5397, 5399, 5402, 5405, 5408, 5411, 5416, 5420,
743
     5425, 5429, 5431, 5435, 5438, 5442, 5447, 5451, 5454, 5457,
744
     5460, 5463, 5466, 5469, 5472, 5475, 5478, 5482, 5486, 5489,
745
746
     5493, 5497, 5502, 5506, 5508, 5512, 5515, 5519, 5522, 5527,
747
     5531, 5536, 5540, 5542, 5546, 5549, 5553, 5556, 5559, 5564,
748
     5568, 5573, 5577, 5579, 5583, 5586, 5590, 5593, 5596, 5601,
749
     5605, 5610, 5614, 5616, 5620, 5623, 5627, 5630, 5633, 5636,
750
     5640, 5642, 5645, 5648, 5653, 5657, 5660, 5663, 5666, 5669,
751
     5672, 5675, 5678, 5681, 5684, 5687, 5690, 5694, 5698, 5701,
752
     5704, 5708, 5711, 5714, 5718, 5720, 5723, 5726, 5730, 5732,
753
     5735, 5738, 5741, 5745, 5747, 5750, 5753, 5756, 5760, 5762,
754
     5765, 5768, 5771, 5775, 5777, 5780, 5783, 5788, 5792, 5797,
755
     5801, 5803, 5807, 5810, 5814, 5819, 5823, 5826, 5829, 5832,
756
757
     5835, 5838, 5841, 5844, 5847, 5851, 5853, 5856, 5860, 5865,
758
     5869, 5870, 5873, 5878, 5882, 5887, 5891, 5892, 5895, 5898,
759
     5903, 5907, 5912, 5916, 5917, 5920, 5923, 5928, 5932, 5937,
760
     5941, 5942, 5945, 5948, 5953, 5957, 5962, 5966, 5967, 5970,
761
     5973, 5976, 5980, 5982, 5987, 5991, 5994, 5997, 6000, 6003,
762
     6006, 6009, 6013, 6018, 6022, 6023, 6026, 6029, 6032, 6035,
763
     6038, 6041, 6044, 6047, 6050, 6053, 6058, 6062, 6065, 6068,
764
     6071, 6075, 6079, 6083, 6087, 6091, 6094, 6097, 6101, 6104,
765
     6107, 6110, 6113, 6116, 6120, 6123
766
    } ;
767
768
static yyconst flex_int16_t yy_def[1687] =
769
    {   0,
770
     1236,    1, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
771
     1236, 1236,   12, 1236, 1236, 1236, 1236,   12,   18, 1237,
772
       18,   18,   18,   18,   18,   19,   19,   19,   19,   19,
773
       19,   19,   19,   19,   19,   19,   19,   19,   19, 1236,
774
     1236, 1236, 1236,   19,   19,   18, 1238,   46,   19,   19,
775
     1236, 1236, 1236, 1236, 1236, 1236, 1237, 1237,   48,   48,
776
       19,   19,   19,   19,   19,   19,   48,   19,   19,   19,
777
       19,   48,   19,   19,   19,   19,   19,   19,   19,   19,
778
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
779
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
780
781
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
782
     1236,   19,  112,   46,  114, 1239, 1236,   50, 1236,  119,
783
     1240,   19,  115,   19,   19,   19,   19,   19,  115,   19,
784
       19,   19,   19,  115,   19,   19,   19,   19,   19,   19,
785
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
786
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
787
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
788
       19,   19,   19,   19,   19,   19, 1241,   19, 1242, 1243,
789
     1236,  181, 1244, 1245, 1236, 1236, 1236, 1246, 1247,   19,
790
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
791
792
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
793
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
794
       19,   19,   19,   19,   19,   19,   19,   19,  228,  175,
795
      176, 1248, 1236, 1249, 1250, 1236, 1236, 1236, 1236, 1251,
796
     1252, 1253, 1254, 1254, 1236, 1255, 1236,  247, 1256, 1247,
797
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
798
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
799
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
800
       19,   19,   19,   19,   19,   19,   19,   19, 1242, 1257,
801
     1236,  291, 1258, 1236, 1259, 1260, 1236,  297, 1244, 1261,
802
803
     1262, 1262, 1236, 1263, 1236,  305, 1264, 1252, 1236, 1236,
804
     1265, 1266, 1236, 1236, 1236, 1236, 1267, 1268,   19,   19,
805
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
806
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
807
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
808
       19,   19,   19,  353,  288, 1269, 1236,  238, 1236, 1251,
809
     1270, 1271, 1236, 1236, 1236, 1236, 1272, 1273, 1236, 1274,
810
     1275, 1236, 1236, 1236, 1236, 1276, 1277, 1278, 1278, 1265,
811
     1266, 1279, 1279, 1236, 1280, 1236,  386, 1281, 1268,   19,
812
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
813
814
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
815
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
816
     1282, 1283, 1236,  423, 1284, 1236,  426, 1285, 1236, 1286,
817
     1287, 1236,  432, 1288, 1289, 1289, 1236, 1290, 1236,  439,
818
     1291, 1273, 1292, 1292, 1274, 1275, 1293, 1293, 1236, 1294,
819
     1236,  451, 1295, 1296, 1236, 1297, 1236, 1298, 1299, 1236,
820
     1236, 1236, 1236, 1300, 1301,   19,   19,   19,   19,   19,
821
       19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
822
       19,   19,   19,   19,   19,  420, 1302, 1236, 1236, 1236,
823
     1303, 1236, 1236, 1304, 1305, 1306, 1236, 1236, 1236, 1236,
824
825
     1307, 1308, 1236, 1309, 1310, 1236, 1236, 1236, 1236, 1311,
826
     1312, 1236, 1313, 1236, 1314, 1315, 1236, 1236, 1236, 1236,
827
     1316, 1317, 1318, 1236, 1297, 1319, 1319, 1320, 1321, 1322,
828
     1322, 1236, 1323, 1236,  534, 1324, 1325, 1326, 1326, 1326,
829
     1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326,
830
     1326, 1326, 1327, 1328, 1236,  555, 1329, 1236,  558, 1330,
831
     1236,  561, 1331, 1236, 1332, 1333, 1236,  567, 1334, 1335,
832
     1335, 1236, 1336, 1236,  574, 1337, 1338, 1339, 1339, 1340,
833
     1341, 1342, 1342, 1236, 1343, 1236,  586, 1344, 1345, 1346,
834
     1236, 1347, 1348, 1348, 1349, 1350, 1351, 1351, 1236, 1352,
835
836
     1236,  601, 1353, 1354, 1355, 1236, 1356, 1236, 1357, 1358,
837
     1236, 1236, 1236, 1236, 1359, 1360, 1361, 1361, 1361, 1361,
838
     1361, 1361, 1361, 1361, 1361, 1361, 1361, 1362, 1236, 1236,
839
     1236, 1363, 1236, 1236, 1364, 1236, 1236, 1365, 1366, 1367,
840
     1236, 1236, 1236, 1236, 1368, 1369, 1236, 1370, 1371, 1236,
841
     1236, 1236, 1236, 1372, 1373, 1236, 1374, 1236, 1375, 1376,
842
     1236, 1236, 1236, 1236, 1377, 1378, 1379, 1236, 1380, 1236,
843
     1381, 1382, 1236, 1236, 1236, 1236, 1383, 1384, 1385, 1386,
844
     1236, 1387, 1388, 1388, 1389, 1390, 1391, 1391, 1236, 1392,
845
     1236,  691, 1393, 1394, 1395, 1395, 1395, 1395, 1395, 1395,
846
847
     1395, 1395, 1395, 1395, 1396, 1397, 1236,  707, 1398, 1236,
848
      710, 1399, 1236,  713, 1400, 1236,  716, 1401, 1236, 1402,
849
     1236, 1236,  722, 1403, 1404, 1404, 1236, 1405, 1236,  729,
850
     1406, 1407, 1408, 1408, 1409, 1410, 1411, 1411, 1236, 1412,
851
     1236,  741, 1413, 1414, 1415, 1236, 1416, 1417, 1417, 1418,
852
     1419, 1420, 1420, 1236, 1421, 1236,  756, 1422, 1423, 1424,
853
     1425, 1236, 1426, 1427, 1427, 1428, 1429, 1430, 1430, 1236,
854
     1431, 1236,  772, 1432, 1433, 1434, 1236, 1435, 1236, 1436,
855
     1437, 1236, 1236, 1236, 1236, 1438, 1439, 1440, 1440, 1440,
856
     1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1441,
857
858
     1236, 1236, 1236, 1442, 1236, 1236, 1443, 1236, 1236, 1444,
859
     1236, 1236, 1445, 1446, 1236,  815, 1447, 1448, 1236, 1236,
860
     1449, 1450, 1451, 1236, 1452, 1453, 1236, 1236, 1236, 1454,
861
     1455, 1456, 1236, 1457, 1236, 1458, 1459, 1236, 1236, 1236,
862
     1460, 1461, 1462, 1463, 1236, 1464, 1236, 1465, 1466, 1236,
863
     1236, 1236, 1467, 1468, 1469, 1470, 1236, 1471, 1236, 1472,
864
     1473, 1236, 1236, 1236, 1474, 1475, 1476, 1477, 1478, 1236,
865
     1479, 1480, 1480, 1481, 1482, 1483, 1483, 1236, 1484, 1236,
866
      880, 1485, 1486, 1487, 1487, 1487, 1487, 1487, 1487, 1487,
867
     1487, 1487, 1487, 1488, 1236, 1236,  896, 1489, 1236,  899,
868
869
     1490, 1236,  902, 1491, 1236,  905, 1492, 1236,  908, 1493,
870
     1236, 1236, 1236, 1494, 1495, 1496, 1497, 1498, 1498, 1236,
871
     1499, 1500, 1501, 1502, 1502, 1503, 1504, 1505, 1505, 1236,
872
     1506, 1507, 1508, 1509, 1236, 1510, 1511, 1511, 1512, 1513,
873
     1514, 1514, 1236, 1515, 1516, 1517, 1518, 1519, 1236, 1520,
874
     1521, 1521, 1522, 1523, 1524, 1524, 1236, 1525, 1526, 1527,
875
     1528, 1529, 1236, 1530, 1531, 1531, 1532, 1533, 1534, 1534,
876
     1236, 1535, 1536, 1537, 1538, 1236, 1539, 1236, 1540, 1541,
877
     1236, 1236, 1236, 1542, 1543, 1544, 1545, 1545, 1545, 1545,
878
     1545, 1545, 1545, 1545, 1236,  995, 1546, 1547, 1236, 1548,
879
880
     1549, 1236, 1550, 1551, 1236, 1552, 1553, 1236, 1554, 1555,
881
     1236, 1556, 1557, 1558, 1558, 1236, 1559, 1560, 1561, 1562,
882
     1563, 1236, 1564, 1565, 1236, 1566, 1236, 1567, 1236, 1568,
883
     1569, 1236, 1570, 1571, 1236, 1572, 1236, 1573, 1574, 1236,
884
     1575, 1576, 1236, 1577, 1236, 1578, 1579, 1236, 1580, 1581,
885
     1236, 1582, 1236, 1583, 1584, 1236, 1585, 1586, 1587, 1236,
886
     1588, 1589, 1589, 1590, 1591, 1592, 1592, 1236, 1593, 1594,
887
     1595, 1596, 1596, 1596, 1596, 1236, 1597, 1598, 1599, 1600,
888
     1601, 1602, 1603, 1604, 1236, 1605, 1606, 1236, 1607, 1608,
889
     1609, 1609, 1610, 1611, 1612, 1613, 1236, 1614, 1615, 1615,
890
891
     1616, 1617, 1618, 1619, 1620, 1236, 1621, 1622, 1622, 1623,
892
     1624, 1625, 1626, 1627, 1236, 1628, 1629, 1629, 1630, 1631,
893
     1632, 1633, 1634, 1236, 1635, 1636, 1636, 1637, 1638, 1639,
894
     1640, 1236, 1641, 1236, 1642, 1643, 1236, 1644, 1645, 1645,
895
     1645, 1645, 1646, 1236, 1647, 1648, 1649, 1650, 1651, 1652,
896
     1653, 1653, 1654, 1655, 1656, 1236, 1236, 1657, 1236, 1658,
897
     1236, 1659, 1236, 1660, 1236, 1661, 1236, 1662, 1236, 1663,
898
     1236, 1664, 1236, 1665, 1236, 1640, 1666, 1236, 1641, 1667,
899
     1667, 1642, 1643, 1668, 1645, 1645, 1645, 1669, 1236, 1670,
900
     1671, 1236, 1657, 1658, 1672, 1236, 1659, 1660, 1673, 1236,
901
902
     1661, 1662, 1674, 1236, 1663, 1664, 1675, 1236, 1665, 1676,
903
     1236, 1677, 1236, 1645, 1678, 1236, 1670, 1679, 1680, 1681,
904
     1682, 1683, 1676, 1684, 1236, 1677, 1685, 1679, 1680, 1681,
905
     1682, 1683, 1686, 1685, 1686,    0, 1236, 1236, 1236, 1236,
906
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
907
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
908
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
909
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
910
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
911
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
912
913
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
914
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
915
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
916
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
917
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
918
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
919
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
920
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
921
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
922
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
923
924
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
925
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
926
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
927
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
928
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
929
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
930
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
931
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
932
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
933
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
934
935
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
936
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
937
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
938
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
939
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
940
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
941
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
942
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
943
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
944
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
945
946
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
947
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
948
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
949
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
950
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
951
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
952
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
953
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
954
     1236, 1236, 1236, 1236, 1236, 1236
955
    } ;
956
957
static yyconst flex_int16_t yy_nxt[6183] =
958
    {   0,
959
        4,    5,    6,    7,    8,    9,   10,    9,   11,   12,
960
       13,   13,   13,   13,   13,   13,   14,   15,   16,   17,
961
       18,   19,   19,    9,   20,   11,   21,   22,   18,   23,
962
       24,   25,   26,   27,   28,   19,   29,   30,   31,   32,
963
       33,   19,   34,   35,   36,   37,   38,   39,   19,   19,
964
       40,   41,   41,   52,   53,   55,   56,   41,   41,   65,
965
       67,   49,   70,   71,   68,   87,   66,   41,   41,  221,
966
     1211,  222,   73,   69,   88,   41,   41,   44,   45,   46,
967
       46,   46,   46,   46,   46,   46,   47,   49,   74,  140,
968
       48,   49,   50, 1189,  141,   44,   48,   48,   48,   48,
969
970
       48,   48,   49,   49,   49,   49,   49,   49,   49,   49,
971
       49,   49,   49,   49,   49,   49,   49,   49,   50,   49,
972
       41,  106,   84,   81,   59,   60,   41,   82,  145,   61,
973
      399,   83, 1173,  146,   62,   85,   51,   57,   63,  400,
974
       64,   86,  107,   57,   41,   49,   48,   48,   48,   48,
975
       48,   48,   48,   57,   76,  223,   89,   77,   78,   49,
976
       90,   57,   92,   91,   79,   96,   80,   93,   94,   97,
977
       95,  165,   49, 1236,  402,  276,   44,   98, 1169,  224,
978
      277,  166,   99,  403,  100,   49,   49,   49,   49,   49,
979
       49,   49,   49, 1236,   44, 1165,   41,   49,   49, 1236,
980
981
      210,  101,   41,   49,   49,   49,   49,   49,   49,  102,
982
     1236,   49,   41,  211, 1161,  103, 1236,  104,  105, 1236,
983
       41,  112,  113,  113,  113,  113,  113,  113,   45,  114,
984
      114,  114,  114,  114,  114,  114, 1236,   49, 1157, 1134,
985
      115, 1132, 1236,  912, 1085, 1236,  115,  115,  115,  115,
986
      115,  115,   49,  115,  115,  115,  115,  115,  115,  115,
987
      118,  118,  118,  118,  118,  118,  118,  252,  253,  254,
988
      255,  118,  984,   44,  863, 1236, 1053,  118,  118,  118,
989
      118,  118,  118,   41,   57, 1051,   44,  256,  310,   41,
990
       57,   44,  119,  120,  120,  120,  120,  120,  120,   41,
991
992
       57, 1236,  311,  121,   44,  626,   44,   41,   57,  121,
993
      121,  121,  121,  121,  121,  174,  113,  113,  113,  113,
994
      113,  113,  113,  851,   44, 1236,   49, 1236,  311,  175,
995
      228,  229,  229,  229,  229,  229,  229,  243,  244,  244,
996
      244,  244,  244,  244,  301,  302,  302,  302,  302,  302,
997
      302, 1236,   49, 1236, 1045,  175,  176,  176,  176,  176,
998
      176,  176,  176,  177,  185, 1043,  839,  178,  252,  253,
999
      254,  255,  187,  178,  178,  178,  178,  178,  178,   49,
1000
      178,  178,  178,  178,  178,  178,  178,  181,  182,  182,
1001
      182,  182,  182,  182,  183,  237, 1037, 1236,  184, 1236,
1002
1003
     1035,  828, 1029,  359,  184,  184,  184,  184,  184,  184,
1004
      185,  186,  186,  186,  186,  186,  186,  186,  187,  185,
1005
     1236,  310,  188, 1236,  189, 1236,  263, 1236,  188,  188,
1006
      188,  188,  188,  188,  264, 1236,  353,  354,  354,  354,
1007
      354,  354,  354, 1027,  819, 1022, 1236,  265,  299, 1077,
1008
      189,  230,  230,  230,  230,  230,  230,  230, 1077,  237,
1009
     1144, 1236,  230,  266,  982,  984, 1236, 1236,  230,  230,
1010
      230,  230,  230,  230,   45,  231,  231,  231,  231,  231,
1011
      231,  231,  177,  237,  238,  238,  238,  238,  238,  238,
1012
      238,  239, 1236,  280,  369,  240, 1236,  241,  281,  369,
1013
1014
      783,  240,  240,  240,  240,  240,  240,  282,  370,  283,
1015
      284,  605,  285, 1236,  378,  379,  379,  379,  379,  379,
1016
      379,  455, 1236,  241,  185,  245,  245,  245,  245,  245,
1017
      245,  245,  187,  978,  370,  456,  246,  605,  976, 1236,
1018
       44,  455,  246,  246,  246,  246,  246,  246,  247,  248,
1019
      248,  248,  248,  248,  248, 1236,  314, 1236,   44,  249,
1020
      299,  456,   44,  622,  316,  249,  249,  249,  249,  249,
1021
      249,  287,  229,  229,  229,  229,  229,  229,  229, 1012,
1022
       44, 1236,  299, 1236, 1009,  288,  382,  383,  383,  383,
1023
      383,  383,  383,  435,  436,  436,  436,  436,  436,  436,
1024
1025
      443,  444,  444,  444,  444,  444,  444,  457,  457,  299,
1026
      503,  288,  291,  292,  292,  292,  292,  292,  292,  364,
1027
      373,  458, 1236,  293,  504,   44,   44,  490,  493,  293,
1028
      293,  293,  293,  293,  293,  297,  298,  298,  298,  298,
1029
      298,  298,  299,   44,   44, 1236,  300,  458, 1236, 1236,
1030
      504,   44,  300,  300,  300,  300,  300,  300,  237,  303,
1031
      303,  303,  303,  303,  303,  303,  239, 1006,  299,   44,
1032
      304, 1236,  623,   44, 1003, 1236,  304,  304,  304,  304,
1033
      304,  304,  305,  306,  306,  306,  306,  306,  306,  299,
1034
     1236,   44, 1236,  307,  624, 1236, 1236,   44,  299,  307,
1035
1036
      307,  307,  307,  307,  307,  185,  312,  312,  312,  312,
1037
      312,  312,  312,  187,  667,   44, 1236,  313, 1236, 1236,
1038
      695, 1236, 1236,  313,  313,  313,  313,  313,  313,  314,
1039
      315,  315,  315,  315,  315,  315,  315,  316, 1000,  299,
1040
      667,  317,  776,  318,  912, 1236,   44,  317,  317,  317,
1041
      317,  317,  317,  447,  448,  448,  448,  448,  448,  448,
1042
       44,  503,  512,  461,   44,  498,  299,  299,  776,  318,
1043
      326,  463, 1236,  631,  327, 1236,  513,  328,   44,  512,
1044
      329,  617,  330,  331,  332,  333,  355,  355,  355,  355,
1045
      355,  355,  355, 1236, 1077,  618, 1236,  355, 1236, 1012,
1046
1047
       44, 1236,  513,  355,  355,  355,  355,  355,  355,  237,
1048
      358,  358,  358,  358,  358,  358,  358,  359,   44, 1236,
1049
      514,  360, 1236,  241, 1009,  514, 1006,  360,  360,  360,
1050
      360,  360,  360, 1003,  515,  619, 1000, 1236, 1077, 1236,
1051
      523,  524,  524,  524,  524,  524,  524,  984,   44,  241,
1052
      364,  365,  365,  365,  365,  365,  365,  365,  366,  507,
1053
      515,  785,  367, 1236,  368, 1236,   44,  634,  367,  367,
1054
      367,  367,  367,  367,  526,  527,  527,  527,  527,  527,
1055
      527,  530,  531,  531,  531,  531,  531,  531,  606,   44,
1056
      368,  237,  371,  371,  371,  371,  371,  371,  371,  359,
1057
1058
      863,  299,  607,  372, 1236, 1012, 1236,   44,   44,  372,
1059
      372,  372,  372,  372,  372,  373,  374,  374,  374,  374,
1060
      374,  374,  374,  375,  621,  674,   44,  376,  607,  377,
1061
     1236,  696, 1236,  376,  376,  376,  376,  376,  376,  570,
1062
      571,  571,  571,  571,  571,  571,  578,  579,  579,  579,
1063
      579,  579,  579,  606,  859,  377,  314,  384,  384,  384,
1064
      384,  384,  384,  384,  316,  857,  851, 1236,  385,  299,
1065
     1009,   44,   44,  608,  385,  385,  385,  385,  385,  385,
1066
      386,  387,  387,  387,  387,  387,  387,  609,  518,   44,
1067
       44,  388,   44, 1236,  697,  699,  637,  388,  388,  388,
1068
1069
      388,  388,  388,  354,  354,  354,  354,  354,  354,  354,
1070
       44,  662,  847,  609,  845,  701,  420,  582,  583,  583,
1071
      583,  583,  583,  583,  590,  591,  591,  591,  591,  591,
1072
      591,  593,  594,  594,  594,  594,  594,  594,  608,  647,
1073
       44,  647,  420,  423,  424,  424,  424,  424,  424,  424,
1074
     1236,  839, 1236,  648,  425, 1236,   44,  299,   44,  656,
1075
      425,  425,  425,  425,  425,  425,  426,  427,  427,  427,
1076
      427,  427,  427,  657,   44,  700, 1236,  428, 1236,  648,
1077
       44, 1236,  799,  428,  428,  428,  428,  428,  428,  432,
1078
      433,  433,  433,  433,  433,  433,  299, 1006,   44,  657,
1079
1080
      434,  651, 1236,  702,   44,   44,  434,  434,  434,  434,
1081
      434,  434,  364,  437,  437,  437,  437,  437,  437,  437,
1082
      366,  612,   44,   44,  438,  704,  793,   44, 1236,  614,
1083
      438,  438,  438,  438,  438,  438,  439,  440,  440,  440,
1084
      440,  440,  440,  299, 1236,   44,  844,  441, 1236,  856,
1085
      797,  835,  833,  441,  441,  441,  441,  441,  441,  373,
1086
      449,  449,  449,  449,  449,  449,  449,  375,  642, 1236,
1087
     1236,  450,  844,   44, 1236,  856,  803,  450,  450,  450,
1088
      450,  450,  450,  451,  452,  452,  452,  452,  452,  452,
1089
      299,   44,  828,  299,  453, 1236,  893,   44,   44, 1003,
1090
1091
      453,  453,  453,  453,  453,  453,  314,  459,  459,  459,
1092
      459,  459,  459,  459,  316,   44,   44, 1236,  460,  889,
1093
      892,  642,   44,   44,  460,  460,  460,  460,  460,  460,
1094
      461,  462,  462,  462,  462,  462,  462,  462,  463,  651,
1095
       44,   44,  464, 1236,  465,  993,  824,  806,  464,  464,
1096
      464,  464,  464,  464,  597,  598,  598,  598,  598,  598,
1097
      598,  524,  524,  524,  524,  524,  524,  524,  819,  656,
1098
      465,  486,  486,  486,  486,  486,  486,  486,  299, 1000,
1099
      299,  975,  486, 1236, 1236,  914,   44,   44,  486,  486,
1100
      486,  486,  486,  486,  364,  489,  489,  489,  489,  489,
1101
1102
      489,  489,  490,   44,   44,   44,  491,  975,  368, 1236,
1103
     1236,  658,  491,  491,  491,  491,  491,  491,  627,  698,
1104
     1019,   44,  895, 1012, 1009,  659,   44, 1006,   44, 1003,
1105
       44,  658,   44,  620,  368,  373,  492,  492,  492,  492,
1106
      492,  492,  492,  493,   44, 1236,   44,  494,   44,  377,
1107
       44,  659,   44,  494,  494,  494,  494,  494,  494,  703,
1108
      625,  788,  220,  591,  591,  591,  591,  591,  591,  591,
1109
       44, 1236,  668,  668, 1000,  377,  498,  499,  499,  499,
1110
      499,  499,  499,  499,  500,  789,  669, 1236,  501, 1236,
1111
      502,  670,  670,  777,  501,  501,  501,  501,  501,  501,
1112
1113
      662,  674,  783,  819, 1236,  671, 1236,  778,  809,  812,
1114
      785, 1000,  669, 1236,  777, 1236,  502,  364,  505,  505,
1115
      505,  505,  505,  505,  505,  490, 1236,  895, 1236,  506,
1116
     1236,  671, 1236,  778,  783,  506,  506,  506,  506,  506,
1117
      506,  507,  508,  508,  508,  508,  508,  508,  508,  509,
1118
      828,  984, 1236,  510, 1236,  511,  785,  612, 1003,  510,
1119
      510,  510,  510,  510,  510,  680,  681,  681,  681,  681,
1120
      681,  681,  683,  684,  684,  684,  684,  684,  684,  779,
1121
       44,  511,  373,  516,  516,  516,  516,  516,  516,  516,
1122
      493, 1236,  779,  780,  517, 1236, 1034, 1042,   44,  777,
1123
1124
      517,  517,  517,  517,  517,  517,  518,  519,  519,  519,
1125
      519,  519,  519,  519,  520,  792,  865, 1236,  521,  780,
1126
      522, 1236, 1034, 1042,  521,  521,  521,  521,  521,  521,
1127
      687,  688,  688,  688,  688,  688,  688,  725,  726,  726,
1128
      726,  726,  726,  726,  779,   44,  522,  461,  532,  532,
1129
      532,  532,  532,  532,  532,  463,  839, 1050, 1236,  533,
1130
     1236,  299,   44,   44, 1006,  533,  533,  533,  533,  533,
1131
      533,  534,  535,  535,  535,  535,  535,  535,  790,  791,
1132
       44, 1131,  536, 1050, 1236,   44, 1236,  824,  536,  536,
1133
      536,  536,  536,  536,  555,  556,  556,  556,  556,  556,
1134
1135
      556,  825,  812,   44,  987,  557, 1160, 1131,   44,  853,
1136
       44,  557,  557,  557,  557,  557,  557,  364,  437,  437,
1137
      437,  437,  437,  437,  437,  490,   44,  825,   44,  438,
1138
      990,   44, 1160,   44,  824,  438,  438,  438,  438,  438,
1139
      438,  558,  559,  559,  559,  559,  559,  559, 1236,   44,
1140
      988,   44,  560,  299,  809,  841,  299,   44,  560,  560,
1141
      560,  560,  560,  560,  373,  449,  449,  449,  449,  449,
1142
      449,  449,  493,  989, 1236,   44,  450, 1164, 1168,   44,
1143
       44,  833,  450,  450,  450,  450,  450,  450,  561,  562,
1144
      562,  562,  562,  562,  562,  834,  991,   44,   44,  563,
1145
1146
      806,   44,   44, 1164, 1168,  563,  563,  563,  563,  563,
1147
      563,  567,  568,  568,  568,  568,  568,  568,  299,   44,
1148
       44,  834,  569, 1140, 1072,  830,   44,  299,  569,  569,
1149
      569,  569,  569,  569,  498,  572,  572,  572,  572,  572,
1150
      572,  572,  500,  851,   44, 1172,  573, 1141,  803,   44,
1151
       44, 1009,  573,  573,  573,  573,  573,  573,  574,  575,
1152
      575,  575,  575,  575,  575,  299,  863,   44,   44,  576,
1153
     1210, 1172,  821,  299, 1012,  576,  576,  576,  576,  576,
1154
      576,  507,  584,  584,  584,  584,  584,  584,  584,  509,
1155
      912, 1142, 1218,  585,  914,  299, 1210,   44, 1077,  585,
1156
1157
      585,  585,  585,  585,  585,  586,  587,  587,  587,  587,
1158
      587,  587,  299,  982,  895,   44,  588, 1219, 1218,   44,
1159
       44,  984,  588,  588,  588,  588,  588,  588,  518,  599,
1160
      599,  599,  599,  599,  599,  599,  520,   44,   44, 1220,
1161
      600, 1221,  812, 1219,  809, 1187,  600,  600,  600,  600,
1162
      600,  600,  601,  602,  602,  602,  602,  602,  602,  299,
1163
      982,  806, 1222,  603, 1227, 1220,   44, 1221, 1236,  603,
1164
      603,  603,  603,  603,  603,  461,  610,  610,  610,  610,
1165
      610,  610,  610,  463,   44,  803, 1233,  611, 1222,  895,
1166
     1227,  785,  614,  611,  611,  611,  611,  611,  611,  612,
1167
1168
      613,  613,  613,  613,  613,  613,  613,  614,  674,  865,
1169
      812,  615, 1233,  616,  518,  670,  668,  615,  615,  615,
1170
      615,  615,  615,  733,  734,  734,  734,  734,  734,  734,
1171
      737,  738,  738,  738,  738,  738,  738,  662,  853,  616,
1172
      498,  630,  630,  630,  630,  630,  630,  630,  631,  809,
1173
      507,  658,  632,  656,  502,  651,  841,  806,  632,  632,
1174
      632,  632,  632,  632,  745,  746,  746,  746,  746,  746,
1175
      746,  748,  749,  749,  749,  749,  749,  749,  498,  647,
1176
      502,  507,  633,  633,  633,  633,  633,  633,  633,  634,
1177
      642,  830,  803,  635,  821,  511,  721,  706,  812,  635,
1178
1179
      635,  635,  635,  635,  635,  752,  753,  753,  753,  753,
1180
      753,  753,  761,  762,  762,  762,  762,  762,  762,  809,
1181
      806,  511,  518,  636,  636,  636,  636,  636,  636,  636,
1182
      637,  803,  801,  706,  638,  612,  522,  785,  614,  461,
1183
      638,  638,  638,  638,  638,  638,  764,  765,  765,  765,
1184
      765,  765,  765,  768,  769,  769,  769,  769,  769,  769,
1185
       44,  608,  522,  642,  643,  643,  643,  643,  643,  643,
1186
      643,  644,  606,  676,  637,  645,  664,  646,   44,  794,
1187
       44,  645,  645,  645,  645,  645,  645,  681,  681,  681,
1188
      681,  681,  681,  681,  634,  653,  795,  631,   44,  833,
1189
1190
      644,  835,   44,  646,  498,  649,  649,  649,  649,  649,
1191
      649,  649,  631, 1236,  796,  836,  650,  721,  706,  637,
1192
       44,  634,  650,  650,  650,  650,  650,  650,  651,  652,
1193
      652,  652,  652,  652,  652,  652,  653,  798,  835, 1236,
1194
      654,  836,  655,  631,   44,   44,  654,  654,  654,  654,
1195
      654,  654, 1236,  746,  746,  746,  746,  746,  746,  746,
1196
      706,  614,   44,   44,  463,   44,  845,  518,  655,  507,
1197
      660,  660,  660,  660,  660,  660,  660,  634, 1236, 1139,
1198
      846,  661,  888,   44,  676,  637,  373,  661,  661,  661,
1199
      661,  661,  661,  662,  663,  663,  663,  663,  663,  663,
1200
1201
      663,  664, 1185,  845,  847,  665,  846,  666,  847,  514,
1202
      512,  665,  665,  665,  665,  665,  665, 1236,  848,  507,
1203
      664,  634, 1236,  762,  762,  762,  762,  762,  762,  762,
1204
      364,  857,  503,  666,  518,  672,  672,  672,  672,  672,
1205
      672,  672,  637, 1236,  848,  858,  673,  498, 1236,  653,
1206
      631,  644,  673,  673,  673,  673,  673,  673,  674,  675,
1207
      675,  675,  675,  675,  675,  675,  676,   44,  857,  859,
1208
      677,  858,  678,  859,  641,  566,  677,  677,  677,  677,
1209
      677,  677, 1236,  860,  554,   44,  637, 1236,  869,  870,
1210
      870,  870,  870,  870,  870,  634,  884,   44,  678,  612,
1211
1212
      689,  689,  689,  689,  689,  689,  689,  614, 1236,  860,
1213
      631,  690,  629, 1236,  554,   44,  976,  690,  690,  690,
1214
      690,  690,  690,  691,  692,  692,  692,  692,  692,  692,
1215
      977,  461,  614,  463,  693,  891,  314,  457,  455,  976,
1216
      693,  693,  693,  693,  693,  693,  707,  708,  708,  708,
1217
      708,  708,  708, 1236,  520,  493,  977,  709,  509,  490,
1218
      500,  566,  554,  709,  709,  709,  709,  709,  709,  498,
1219
      572,  572,  572,  572,  572,  572,  572,  631,  493, 1236,
1220
      490,  573,  554,  552,  551,  550,  978,  573,  573,  573,
1221
      573,  573,  573,  710,  711,  711,  711,  711,  711,  711,
1222
1223
      979,  549,  548,  547,  712,  546,  545,  544,  543,  542,
1224
      712,  712,  712,  712,  712,  712,  507,  584,  584,  584,
1225
      584,  584,  584,  584,  634,  541,  979,  540,  585,  539,
1226
      538,  463,  316,  978,  585,  585,  585,  585,  585,  585,
1227
      713,  714,  714,  714,  714,  714,  714, 1236,  373,  520,
1228
      493,  715,  369,  364,  509,  490,  500,  715,  715,  715,
1229
      715,  715,  715,  518,  599,  599,  599,  599,  599,  599,
1230
      599,  637,  497, 1236,  431,  600,  422,  493,  490,  488,
1231
     1022,  600,  600,  600,  600,  600,  600,  716,  717,  717,
1232
      717,  717,  717,  717, 1023,  422,  485,  484,  718,  483,
1233
1234
      482,  481,  480,  479,  718,  718,  718,  718,  718,  718,
1235
      722,  723,  723,  723,  723,  723,  723,  299,  478,  477,
1236
     1023,  724,  476,  475,  474,  473,  472,  724,  724,  724,
1237
      724,  724,  724,  642,  727,  727,  727,  727,  727,  727,
1238
      727,  644,  471,  470,  469,  728,  468,  467,  466,  314,
1239
      463,  728,  728,  728,  728,  728,  728,  729,  730,  730,
1240
      730,  730,  730,  730,  299,  316,  310,  375,  731,  359,
1241
      366,  431,  422,  359,  731,  731,  731,  731,  731,  731,
1242
      651,  739,  739,  739,  739,  739,  739,  739,  653,  359,
1243
      422,  287,  740,  419,  418,  417,  416,  415,  740,  740,
1244
1245
      740,  740,  740,  740,  741,  742,  742,  742,  742,  742,
1246
      742,  299,  414,  413,  412,  743,  411,  218,  160,  410,
1247
      409,  743,  743,  743,  743,  743,  743,  662,  754,  754,
1248
      754,  754,  754,  754,  754,  664,  408,  407,  406,  755,
1249
      405,  404,  401,  398,  397,  755,  755,  755,  755,  755,
1250
      755,  756,  757,  757,  757,  757,  757,  757,  299,  396,
1251
      395,  394,  758,  393,  392,  391,  390,  316,  758,  758,
1252
      758,  758,  758,  758,  674,  770,  770,  770,  770,  770,
1253
      770,  770,  676,  187,  299,  237,  771,  375,  359,  366,
1254
      299,  363,  771,  771,  771,  771,  771,  771,  772,  773,
1255
1256
      773,  773,  773,  773,  773,  299,  296,  290,  359,  774,
1257
      357,  290,  352,  351,  350,  774,  774,  774,  774,  774,
1258
      774,  612,  781,  781,  781,  781,  781,  781,  781,  614,
1259
      349,  348,  347,  782,  346,  345,  344,  343,  342,  782,
1260
      782,  782,  782,  782,  782,  783,  784,  784,  784,  784,
1261
      784,  784,  784,  785,  341,  340,  339,  786,  338,  787,
1262
      337,  336,   89,  786,  786,  786,  786,  786,  786,  872,
1263
      873,  873,  873,  873,  873,  873,  876,  877,  877,  877,
1264
      877,  877,  877,   44,   44,  787,  642,  802,  802,  802,
1265
      802,  802,  802,  802,  803,  335,   44,   44,  804,  334,
1266
1267
      646,   44,   44,   44,  804,  804,  804,  804,  804,  804,
1268
      325,  324,  885,  886,   44,   44,  323,  322,  321,   44,
1269
       44,   44,  320,  319, 1073,  992,  646,  651,  805,  805,
1270
      805,  805,  805,  805,  805,  806,  994,   44,   44,  807,
1271
      185,  655,  316,  187,  299,  807,  807,  807,  807,  807,
1272
      807,  887,  890,  918,  919,  919,  919,  919,  919,  919,
1273
      924,  925,  925,  925,  925,  925,  925,  655,  662,  808,
1274
      808,  808,  808,  808,  808,  808,  809,  239,  296,  290,
1275
      810,  290,  666, 1236,  174,  286,  810,  810,  810,  810,
1276
      810,  810,  928,  929,  929,  929,  929,  929,  929,  934,
1277
1278
      935,  935,  935,  935,  935,  935,  279,  278,  666,  674,
1279
      811,  811,  811,  811,  811,  811,  811,  812,  275,  274,
1280
      273,  813,  272,  678,  271,  270,  269,  813,  813,  813,
1281
      813,  813,  813,  937,  938,  938,  938,  938,  938,  938,
1282
      941,  942,  942,  942,  942,  942,  942,   44, 1022,  678,
1283
      815,  816,  816,  816,  816,  816,  816,  817,  268,  267,
1284
      262,  818, 1236,  261,  156,   44,  260,  818,  818,  818,
1285
      818,  818,  818,  819,  820,  820,  820,  820,  820,  820,
1286
      820,  821,  259,  258, 1214,  822,  257,  823, 1236,  251,
1287
      187,  822,  822,  822,  822,  822,  822,  948,  949,  949,
1288
1289
      949,  949,  949,  949,  951,  952,  952,  952,  952,  952,
1290
      952, 1027,  239,  823,  642,  826,  826,  826,  826,  826,
1291
      826,  826,  803,  183,  236, 1028,  827,  180,  177,  233,
1292
      227,  226,  827,  827,  827,  827,  827,  827,  828,  829,
1293
      829,  829,  829,  829,  829,  829,  830,  225,  220,  156,
1294
      831, 1028,  832,  219,  218,  217,  831,  831,  831,  831,
1295
      831,  831,  955,  956,  956,  956,  956,  956,  956,  962,
1296
      963,  963,  963,  963,  963,  963, 1027,  216,  832,  651,
1297
      837,  837,  837,  837,  837,  837,  837,  806,  215,  214,
1298
     1236,  838,  213,  212,  209,  156,  208,  838,  838,  838,
1299
1300
      838,  838,  838,  839,  840,  840,  840,  840,  840,  840,
1301
      840,  841,  207,  206,  205,  842, 1236,  843,  204,  203,
1302
      202,  842,  842,  842,  842,  842,  842,  965,  966,  966,
1303
      966,  966,  966,  966,  969,  970,  970,  970,  970,  970,
1304
      970, 1029,  201,  843,  662,  849,  849,  849,  849,  849,
1305
      849,  849,  809,  200,  199, 1030,  850,  198,  197,  196,
1306
      195,  194,  850,  850,  850,  850,  850,  850,  851,  852,
1307
      852,  852,  852,  852,  852,  852,  853,  193,  192,  191,
1308
      854, 1030,  855,  190,  187,   45,  854,  854,  854,  854,
1309
      854,  854,  870,  870,  870,  870,  870,  870,  870, 1014,
1310
1311
     1015, 1015, 1015, 1015, 1015, 1015, 1029,  180,  855,  674,
1312
      861,  861,  861,  861,  861,  861,  861,  812,  173,  172,
1313
     1236,  862,  171,  170,  169,  168,  167,  862,  862,  862,
1314
      862,  862,  862,  863,  864,  864,  864,  864,  864,  864,
1315
      864,  865,  164,  163,  162,  866, 1236,  867,  161,  160,
1316
     1035,  866,  866,  866,  866,  866,  866,  935,  935,  935,
1317
      935,  935,  935,  935, 1036,  159,  158,  157,  156,  155,
1318
     1035, 1037,  154,  867,  783,  878,  878,  878,  878,  878,
1319
      878,  878,  785,  153, 1236, 1038,  879,  152,  151,  150,
1320
     1036, 1037,  879,  879,  879,  879,  879,  879,  880,  881,
1321
1322
      881,  881,  881,  881,  881, 1236,  149,  148,  147,  882,
1323
     1236, 1038,  144,  143, 1043,  882,  882,  882,  882,  882,
1324
      882,  896,  897,  897,  897,  897,  897,  897, 1044,  142,
1325
      139, 1236,  898,  138,  137,  136,  135,  134,  898,  898,
1326
      898,  898,  898,  898,  642,  727,  727,  727,  727,  727,
1327
      727,  727,  803,  133, 1044,  132,  728,  131,  130,  129,
1328
      128, 1043,  728,  728,  728,  728,  728,  728,  899,  900,
1329
      900,  900,  900,  900,  900, 1236,  127,  126,  125,  901,
1330
      124,  123,  122,  117,  111,  901,  901,  901,  901,  901,
1331
      901,  651,  739,  739,  739,  739,  739,  739,  739,  806,
1332
1333
      110, 1236,  109,  740,  108,   75,   72,   54, 1045,  740,
1334
      740,  740,  740,  740,  740,  902,  903,  903,  903,  903,
1335
      903,  903, 1046,   43,   42, 1236,  904, 1236, 1236, 1236,
1336
     1236, 1236,  904,  904,  904,  904,  904,  904,  662,  754,
1337
      754,  754,  754,  754,  754,  754,  809, 1236, 1046, 1236,
1338
      755, 1236, 1236, 1236, 1236, 1045,  755,  755,  755,  755,
1339
      755,  755,  905,  906,  906,  906,  906,  906,  906, 1236,
1340
     1236, 1236, 1236,  907, 1236, 1236, 1236, 1236, 1236,  907,
1341
      907,  907,  907,  907,  907,  674,  770,  770,  770,  770,
1342
      770,  770,  770,  812, 1236, 1236, 1236,  771, 1236, 1236,
1343
1344
     1236, 1236, 1051,  771,  771,  771,  771,  771,  771,  908,
1345
      909,  909,  909,  909,  909,  909, 1052, 1236, 1236, 1236,
1346
      910, 1236, 1236, 1236, 1236, 1236,  910,  910,  910,  910,
1347
      910,  910,  912,  913,  913,  913,  913,  913,  913,  913,
1348
      914, 1236, 1052, 1236,  915, 1236,  916, 1236, 1236, 1236,
1349
      915,  915,  915,  915,  915,  915,  949,  949,  949,  949,
1350
      949,  949,  949,  963,  963,  963,  963,  963,  963,  963,
1351
     1051, 1236,  916,  819,  920,  920,  920,  920,  920,  920,
1352
      920,  821, 1236, 1236, 1236,  921, 1236, 1236, 1236, 1236,
1353
     1236,  921,  921,  921,  921,  921,  921,  828,  930,  930,
1354
1355
      930,  930,  930,  930,  930,  830, 1236, 1236, 1236,  931,
1356
     1236, 1236, 1236, 1236, 1236,  931,  931,  931,  931,  931,
1357
      931,  839,  943,  943,  943,  943,  943,  943,  943,  841,
1358
     1236, 1236, 1236,  944, 1236, 1236, 1236, 1236, 1236,  944,
1359
      944,  944,  944,  944,  944,  851,  957,  957,  957,  957,
1360
      957,  957,  957,  853, 1236, 1236, 1236,  958, 1236, 1236,
1361
     1236, 1236, 1236,  958,  958,  958,  958,  958,  958,  863,
1362
      971,  971,  971,  971,  971,  971,  971,  865, 1236, 1236,
1363
     1236,  972, 1236, 1236, 1236, 1236, 1236,  972,  972,  972,
1364
      972,  972,  972,  783,  980,  980,  980,  980,  980,  980,
1365
1366
      980,  785, 1236, 1236, 1236,  981, 1236, 1236, 1236, 1236,
1367
     1236,  981,  981,  981,  981,  981,  981,  982,  983,  983,
1368
      983,  983,  983,  983,  983,  984, 1236, 1053, 1053,  985,
1369
     1236,  986, 1236, 1236, 1236,  985,  985,  985,  985,  985,
1370
      985, 1054, 1236, 1059, 1060, 1060, 1060, 1060, 1060, 1060,
1371
     1062, 1063, 1063, 1063, 1063, 1063, 1063,  986,  995,  996,
1372
      996,  996,  996,  996,  996,  997, 1236, 1054, 1236,  998,
1373
     1236, 1236, 1236, 1236, 1236,  998,  998,  998,  998,  998,
1374
      998,  819,  999,  999,  999,  999,  999,  999,  999, 1000,
1375
     1236, 1236, 1236, 1001, 1236,  823, 1236, 1236, 1085, 1001,
1376
1377
     1001, 1001, 1001, 1001, 1001, 1066, 1067, 1067, 1067, 1067,
1378
     1067, 1067, 1086, 1236, 1236,   44, 1236, 1085, 1132,   44,
1379
     1236,  823,  828, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
1380
     1003, 1236, 1133,   44, 1004, 1236,  832,   44, 1086, 1236,
1381
     1004, 1004, 1004, 1004, 1004, 1004, 1074, 1236, 1075, 1091,
1382
     1092, 1092, 1092, 1092, 1092, 1092, 1236, 1236, 1133, 1236,
1383
     1236, 1236,  832,  839, 1005, 1005, 1005, 1005, 1005, 1005,
1384
     1005, 1006, 1236, 1236, 1236, 1007, 1236,  843, 1236, 1236,
1385
     1236, 1007, 1007, 1007, 1007, 1007, 1007, 1096, 1097, 1097,
1386
     1097, 1097, 1097, 1097, 1099, 1100, 1100, 1100, 1100, 1100,
1387
1388
     1100, 1236, 1236,  843,  851, 1008, 1008, 1008, 1008, 1008,
1389
     1008, 1008, 1009, 1236, 1236, 1236, 1010, 1236,  855, 1236,
1390
     1236, 1236, 1010, 1010, 1010, 1010, 1010, 1010, 1105, 1106,
1391
     1106, 1106, 1106, 1106, 1106, 1108, 1109, 1109, 1109, 1109,
1392
     1109, 1109, 1236, 1236,  855,  863, 1011, 1011, 1011, 1011,
1393
     1011, 1011, 1011, 1012, 1236, 1236, 1236, 1013, 1236,  867,
1394
     1236, 1236, 1236, 1013, 1013, 1013, 1013, 1013, 1013, 1114,
1395
     1115, 1115, 1115, 1115, 1115, 1115, 1117, 1118, 1118, 1118,
1396
     1118, 1118, 1118, 1132, 1236,  867,  912, 1016, 1016, 1016,
1397
     1016, 1016, 1016, 1016,  914, 1236, 1236, 1236, 1017, 1236,
1398
1399
     1236, 1236, 1236, 1236, 1017, 1017, 1017, 1017, 1017, 1017,
1400
      819, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1000, 1236,
1401
     1236, 1236, 1025, 1236, 1236, 1236, 1236, 1236, 1025, 1025,
1402
     1025, 1025, 1025, 1025,  828, 1031, 1031, 1031, 1031, 1031,
1403
     1031, 1031, 1003, 1236, 1236, 1236, 1032, 1236, 1236, 1236,
1404
     1236, 1236, 1032, 1032, 1032, 1032, 1032, 1032,  839, 1039,
1405
     1039, 1039, 1039, 1039, 1039, 1039, 1006, 1236, 1236, 1236,
1406
     1040, 1236, 1236, 1236, 1236, 1236, 1040, 1040, 1040, 1040,
1407
     1040, 1040,  851, 1047, 1047, 1047, 1047, 1047, 1047, 1047,
1408
     1009, 1236, 1236, 1236, 1048, 1236, 1236, 1236, 1236, 1236,
1409
1410
     1048, 1048, 1048, 1048, 1048, 1048,  863, 1055, 1055, 1055,
1411
     1055, 1055, 1055, 1055, 1012, 1236, 1236, 1236, 1056, 1236,
1412
     1236, 1236, 1236, 1236, 1056, 1056, 1056, 1056, 1056, 1056,
1413
      982, 1068, 1068, 1068, 1068, 1068, 1068, 1068,  984, 1236,
1414
     1236, 1236, 1069, 1236, 1236, 1236, 1236, 1236, 1069, 1069,
1415
     1069, 1069, 1069, 1069,  912, 1076, 1076, 1076, 1076, 1076,
1416
     1076, 1076, 1077, 1236, 1236, 1236, 1078, 1236,  916, 1236,
1417
     1236, 1236, 1078, 1078, 1078, 1078, 1078, 1078, 1123, 1124,
1418
     1124, 1124, 1124, 1124, 1124, 1126, 1127, 1127, 1127, 1127,
1419
     1127, 1127, 1134, 1236,  916,  819,  920,  920,  920,  920,
1420
1421
      920,  920,  920, 1000, 1236, 1236, 1135,  921, 1236, 1236,
1422
     1236, 1236, 1236,  921,  921,  921,  921,  921,  921,  828,
1423
      930,  930,  930,  930,  930,  930,  930, 1003, 1236, 1236,
1424
     1236,  931, 1135, 1236, 1236, 1236, 1236,  931,  931,  931,
1425
      931,  931,  931,  839,  943,  943,  943,  943,  943,  943,
1426
      943, 1006, 1236, 1236, 1236,  944, 1236, 1236, 1236, 1236,
1427
     1236,  944,  944,  944,  944,  944,  944,  851,  957,  957,
1428
      957,  957,  957,  957,  957, 1009, 1236, 1236, 1236,  958,
1429
     1236, 1236, 1236, 1236, 1236,  958,  958,  958,  958,  958,
1430
      958,  863,  971,  971,  971,  971,  971,  971,  971, 1012,
1431
1432
     1236, 1236, 1236,  972, 1236, 1236, 1236, 1236, 1236,  972,
1433
      972,  972,  972,  972,  972,  912, 1087, 1087, 1087, 1087,
1434
     1087, 1087, 1087, 1077, 1236, 1236, 1236, 1088, 1236, 1236,
1435
     1236, 1236, 1134, 1088, 1088, 1088, 1088, 1088, 1088, 1060,
1436
     1060, 1060, 1060, 1060, 1060, 1060, 1236, 1151, 1152, 1152,
1437
     1152, 1152, 1152, 1152, 1097, 1097, 1097, 1097, 1097, 1097,
1438
     1097, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1157, 1236,
1439
     1157, 1236, 1236,  982, 1136, 1136, 1136, 1136, 1136, 1136,
1440
     1136,  984, 1158, 1236, 1236, 1137, 1236, 1236, 1236, 1236,
1441
     1236, 1137, 1137, 1137, 1137, 1137, 1137,  912, 1016, 1016,
1442
1443
     1016, 1016, 1016, 1016, 1016, 1077, 1236, 1161, 1158, 1017,
1444
     1236, 1161, 1165, 1165, 1236, 1017, 1017, 1017, 1017, 1017,
1445
     1017, 1162, 1169, 1169, 1236, 1236, 1166, 1236, 1115, 1115,
1446
     1115, 1115, 1115, 1115, 1115, 1173, 1170, 1236, 1124, 1124,
1447
     1124, 1124, 1124, 1124, 1124, 1173, 1189, 1162, 1236, 1174,
1448
     1236, 1236, 1166, 1236, 1236, 1236,   44, 1189, 1236, 1236,
1449
     1190, 1236, 1170, 1236, 1177, 1178, 1178, 1178, 1178, 1178,
1450
     1178, 1236, 1236, 1236,   44, 1174, 1180, 1181, 1181, 1181,
1451
     1181, 1181, 1181, 1186, 1236, 1236, 1190, 1191, 1192, 1192,
1452
     1192, 1192, 1192, 1192, 1236, 1236, 1236, 1236, 1195, 1196,
1453
1454
     1196, 1196, 1196, 1196, 1196, 1199, 1200, 1200, 1200, 1200,
1455
     1200, 1200, 1203, 1204, 1204, 1204, 1204, 1204, 1204, 1207,
1456
     1208, 1208, 1208, 1208, 1208, 1208, 1178, 1178, 1178, 1178,
1457
     1178, 1178, 1178, 1211, 1211, 1215, 1216, 1216, 1216, 1216,
1458
     1216, 1216, 1236, 1236, 1236, 1236, 1236, 1212, 1236, 1192,
1459
     1192, 1192, 1192, 1192, 1192, 1192, 1196, 1196, 1196, 1196,
1460
     1196, 1196, 1196, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
1461
     1236, 1236, 1236, 1212, 1236, 1204, 1204, 1204, 1204, 1204,
1462
     1204, 1204, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1224,
1463
     1225, 1225, 1225, 1225, 1225, 1225, 1216, 1216, 1216, 1216,
1464
1465
     1216, 1216, 1216, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
1466
       58, 1236,   58,   58,   58,   58,   58,   58,  116,  116,
1467
      116,  179,  179,  179,  188,  188,  188,  232,  232,  232,
1468
      234,  234,  234,  235,  235,  235,  242,  242,  242,  240,
1469
      240,  240,  246,  246,  246,  250, 1236,  250,  289,  289,
1470
      289,  294,  294,  294,  295,  295,  295,  304,  304,  304,
1471
      308, 1236,  308,  309,  309,  309,  244,  244, 1236, 1236,
1472
      244,  313,  313,  313,  317,  317,  317,  356,  356,  356,
1473
      360,  360,  360,  361,  361,  361,  362,  362,  362,  367,
1474
      367,  367,  302,  302, 1236, 1236,  302,  372,  372,  372,
1475
1476
      376,  376,  376,  380, 1236,  380,  381,  381,  381,  385,
1477
      385,  385,  389, 1236,  389,  421,  421,  421,  429,  429,
1478
      429,  430,  430,  430,  438,  438,  438,  442, 1236,  442,
1479
      445, 1236,  445,  446,  446,  446,  450,  450,  450,  454,
1480
     1236,  454,  379,  379, 1236, 1236,  379,  383,  383, 1236,
1481
     1236,  383,  460,  460,  460,  464,  464,  464,  361,  361,
1482
      361,  487,  487,  487,  491,  491,  491,  494,  494,  494,
1483
      495,  495,  495,  496,  496,  496,  501,  501,  501,  436,
1484
      436, 1236, 1236,  436,  506,  506,  506,  510,  510,  510,
1485
      444,  444, 1236, 1236,  444,  448,  448, 1236, 1236,  448,
1486
1487
      517,  517,  517,  521,  521,  521,  454,  454, 1236,  454,
1488
      525, 1236,  525,  528, 1236,  528,  529,  529,  529,  533,
1489
      533,  533,  537, 1236,  537,  553,  553,  553,  438,  438,
1490
      438,  450,  450,  450,  564,  564,  564,  565,  565,  565,
1491
      573,  573,  573,  577, 1236,  577,  580, 1236,  580,  581,
1492
      581,  581,  585,  585,  585,  589, 1236,  589,  592, 1236,
1493
      592,  595, 1236,  595,  596,  596,  596,  600,  600,  600,
1494
      604, 1236,  604,  524, 1236, 1236,  524,  527,  527, 1236,
1495
     1236,  527,  528,  528, 1236,  528,  529,  529,  531,  531,
1496
     1236, 1236,  531,  611,  611,  611,  615,  615,  615,  537,
1497
1498
      537, 1236,  537,   49,   49,   49, 1236,   49,   49,  495,
1499
      495,  495,  628,  628,  628,  632,  632,  632,  635,  635,
1500
      635,  638,  638,  638,  639,  639,  639,  640,  640,  640,
1501
      645,  645,  645,  571,  571, 1236, 1236,  571,  650,  650,
1502
      650,  654,  654,  654,  577,  577, 1236,  577,  579,  579,
1503
     1236, 1236,  579,  580,  580, 1236,  580,  581,  581,  583,
1504
      583, 1236, 1236,  583,  661,  661,  661,  665,  665,  665,
1505
      589,  589, 1236,  589,  591, 1236, 1236,  591,  592,  592,
1506
     1236,  592,  594,  594, 1236, 1236,  594,  595,  595, 1236,
1507
      595,  596,  596,  598,  598, 1236, 1236,  598,  673,  673,
1508
1509
      673,  677,  677,  677,  604,  604, 1236,  604,  679, 1236,
1510
      679,  682, 1236,  682,  685, 1236,  685,  686,  686,  686,
1511
      690,  690,  690,  694, 1236,  694,   49,   49,   49, 1236,
1512
       49,   49,  705,  705,  705,  573,  573,  573,  585,  585,
1513
      585,  600,  600,  600,  719,  719,  719,  720,  720,  720,
1514
      728,  728,  728,  732, 1236,  732,  735, 1236,  735,  736,
1515
      736,  736,  740,  740,  740,  744, 1236,  744,  747, 1236,
1516
      747,  750, 1236,  750,  751,  751,  751,  755,  755,  755,
1517
      759, 1236,  759,  760, 1236,  760,  763, 1236,  763,  766,
1518
     1236,  766,  767,  767,  767,  771,  771,  771,  775, 1236,
1519
1520
      775,  679, 1236,  679,  681, 1236, 1236,  681,  682,  682,
1521
     1236,  682,  684,  684, 1236, 1236,  684,  685,  685, 1236,
1522
      685,  686,  686,  688,  688, 1236, 1236,  688,  782,  782,
1523
      782,  786,  786,  786,  694,  694, 1236,  694,   49,   49,
1524
       49, 1236,   49,   49,  639,  639,  639,  800,  800,  800,
1525
      804,  804,  804,  807,  807,  807,  810,  810,  810,  813,
1526
      813,  813,  814,  814,  814,  822,  822,  822,  726,  726,
1527
     1236, 1236,  726,  827,  827,  827,  831,  831,  831,  732,
1528
      732, 1236,  732,  734,  734, 1236, 1236,  734,  735,  735,
1529
     1236,  735,  736,  736,  738,  738, 1236, 1236,  738,  838,
1530
1531
      838,  838,  842,  842,  842,  744,  744, 1236,  744,  746,
1532
     1236, 1236,  746,  747,  747, 1236,  747,  749,  749, 1236,
1533
     1236,  749,  750,  750, 1236,  750,  751,  751,  753,  753,
1534
     1236, 1236,  753,  850,  850,  850,  854,  854,  854,  759,
1535
      759, 1236,  759,  760, 1236,  760,  762, 1236, 1236,  762,
1536
      763,  763, 1236,  763,  765,  765, 1236, 1236,  765,  766,
1537
      766, 1236,  766,  767,  767,  769,  769, 1236, 1236,  769,
1538
      862,  862,  862,  866,  866,  866,  775,  775, 1236,  775,
1539
      868, 1236,  868,  871, 1236,  871,  874, 1236,  874,  875,
1540
      875,  875,  879,  879,  879,  883, 1236,  883,   49,   49,
1541
1542
       49, 1236,   49,   49,  894,  894,  894,  728,  728,  728,
1543
      740,  740,  740,  755,  755,  755,  771,  771,  771,  911,
1544
      911,  911,  917,  917,  917,  915,  915,  915,  922,  922,
1545
      922,  921,  921,  921,  923, 1236,  923,  926, 1236,  926,
1546
      927,  927,  927,  932,  932,  932,  931,  931,  931,  933,
1547
     1236,  933,  936, 1236,  936,  939, 1236,  939,  940,  940,
1548
      940,  945,  945,  945,  944,  944,  944,  946, 1236,  946,
1549
      947, 1236,  947,  950, 1236,  950,  953, 1236,  953,  954,
1550
      954,  954,  959,  959,  959,  958,  958,  958,  960, 1236,
1551
      960,  961, 1236,  961,  964, 1236,  964,  967, 1236,  967,
1552
1553
      968,  968,  968,  973,  973,  973,  972,  972,  972,  974,
1554
     1236,  974,  868, 1236,  868,  870, 1236, 1236,  870,  871,
1555
      871, 1236,  871,  873,  873, 1236, 1236,  873,  874,  874,
1556
     1236,  874,  875,  875,  877,  877, 1236, 1236,  877,  981,
1557
      981,  981,  985,  985,  985,  883,  883, 1236,  883,   49,
1558
       49,   49, 1236,   49,   49,  814,  814,  814, 1001, 1001,
1559
     1001, 1004, 1004, 1004, 1007, 1007, 1007, 1010, 1010, 1010,
1560
     1013, 1013, 1013, 1018, 1018, 1018, 1017, 1017, 1017, 1020,
1561
     1236, 1020, 1021, 1021, 1021,  919,  919, 1236, 1236,  919,
1562
     1025, 1025, 1025, 1026, 1026, 1026,  923,  923, 1236,  923,
1563
1564
      925,  925, 1236, 1236,  925,  926,  926, 1236,  926,  927,
1565
      927,  929,  929, 1236, 1236,  929, 1032, 1032, 1032, 1033,
1566
     1033, 1033,  933,  933, 1236,  933,  935, 1236, 1236,  935,
1567
      936,  936, 1236,  936,  938,  938, 1236, 1236,  938,  939,
1568
      939, 1236,  939,  940,  940,  942,  942, 1236, 1236,  942,
1569
     1040, 1040, 1040, 1041, 1041, 1041,  946,  946, 1236,  946,
1570
      947, 1236,  947,  949, 1236, 1236,  949,  950,  950, 1236,
1571
      950,  952,  952, 1236, 1236,  952,  953,  953, 1236,  953,
1572
      954,  954,  956,  956, 1236, 1236,  956, 1048, 1048, 1048,
1573
     1049, 1049, 1049,  960,  960, 1236,  960,  961, 1236,  961,
1574
1575
      963, 1236, 1236,  963,  964,  964, 1236,  964,  966,  966,
1576
     1236, 1236,  966,  967,  967, 1236,  967,  968,  968,  970,
1577
      970, 1236, 1236,  970, 1056, 1056, 1056, 1057, 1057, 1057,
1578
      974,  974, 1236,  974, 1058, 1236, 1058, 1061, 1236, 1061,
1579
     1064, 1236, 1064, 1065, 1065, 1065, 1070, 1236, 1070, 1069,
1580
     1069, 1069, 1071, 1236, 1071,   49,   49,   49, 1236,   49,
1581
       49, 1079, 1236, 1079, 1078, 1078, 1078, 1080, 1236, 1080,
1582
      921,  921,  921, 1081, 1236, 1081,  931,  931,  931, 1082,
1583
     1236, 1082,  944,  944,  944, 1083, 1236, 1083,  958,  958,
1584
      958, 1084, 1236, 1084,  972,  972,  972, 1015, 1015, 1236,
1585
1586
     1236, 1015, 1088, 1088, 1088, 1089, 1089, 1089,  242,  242,
1587
      242, 1020, 1020, 1236, 1020, 1090, 1090, 1090, 1093, 1236,
1588
     1093, 1094, 1094, 1094, 1095, 1095, 1095, 1098, 1236, 1098,
1589
     1101, 1236, 1101, 1102, 1102, 1102, 1103, 1103, 1103, 1104,
1590
     1236, 1104, 1107, 1236, 1107, 1110, 1236, 1110, 1111, 1111,
1591
     1111, 1112, 1112, 1112, 1113, 1236, 1113, 1116, 1236, 1116,
1592
     1119, 1236, 1119, 1120, 1120, 1120, 1121, 1121, 1121, 1122,
1593
     1236, 1122, 1125, 1236, 1125, 1128, 1236, 1128, 1129, 1129,
1594
     1129, 1130, 1130, 1130, 1058, 1236, 1058, 1060, 1236, 1236,
1595
     1060, 1061, 1061, 1236, 1061, 1063, 1063, 1236, 1236, 1063,
1596
1597
     1064, 1064, 1236, 1064, 1065, 1065, 1067, 1067, 1236, 1236,
1598
     1067, 1137, 1137, 1137, 1138, 1236, 1138, 1071, 1071, 1236,
1599
     1071,   49,   49,   49, 1236,   49,   49, 1143, 1143, 1143,
1600
     1017, 1017, 1017, 1145, 1236, 1145, 1146, 1236, 1146, 1147,
1601
     1236, 1147, 1148, 1236, 1148, 1149, 1236, 1149, 1150, 1236,
1602
     1150, 1153, 1236, 1153, 1154, 1154, 1154, 1155, 1155, 1155,
1603
     1156, 1236, 1156, 1092, 1092, 1236, 1236, 1092, 1093, 1093,
1604
     1236, 1093, 1094, 1094, 1159, 1236, 1159, 1097, 1236, 1236,
1605
     1097, 1098, 1098, 1236, 1098, 1100, 1100, 1236, 1236, 1100,
1606
     1101, 1101, 1236, 1101, 1102, 1102, 1163, 1236, 1163, 1104,
1607
1608
     1236, 1104, 1106, 1236, 1236, 1106, 1107, 1107, 1236, 1107,
1609
     1109, 1109, 1236, 1236, 1109, 1110, 1110, 1236, 1110, 1111,
1610
     1111, 1167, 1236, 1167, 1113, 1236, 1113, 1115, 1236, 1236,
1611
     1115, 1116, 1116, 1236, 1116, 1118, 1118, 1236, 1236, 1118,
1612
     1119, 1119, 1236, 1119, 1120, 1120, 1171, 1236, 1171, 1122,
1613
     1236, 1122, 1124, 1236, 1236, 1124, 1125, 1125, 1236, 1125,
1614
     1127, 1127, 1236, 1236, 1127, 1128, 1128, 1236, 1128, 1129,
1615
     1129, 1175, 1236, 1175, 1176, 1236, 1176, 1179, 1236, 1179,
1616
     1182, 1236, 1182, 1183, 1183, 1183, 1184, 1236, 1184,   49,
1617
       49,   49, 1236,   49,   49, 1188, 1236, 1188, 1090, 1236,
1618
1619
     1090, 1095, 1236, 1095, 1103, 1236, 1103, 1112, 1236, 1112,
1620
     1121, 1236, 1121, 1130, 1236, 1130, 1152, 1152, 1236, 1236,
1621
     1152, 1153, 1153, 1236, 1153, 1154, 1154, 1144, 1236, 1144,
1622
     1193, 1236, 1193, 1194, 1236, 1194, 1197, 1236, 1197, 1198,
1623
     1236, 1198, 1201, 1236, 1201, 1202, 1236, 1202, 1205, 1236,
1624
     1205, 1206, 1236, 1206, 1209, 1236, 1209, 1178, 1236, 1236,
1625
     1178, 1181, 1181, 1236, 1236, 1181, 1213, 1236, 1213, 1155,
1626
     1236, 1155, 1217, 1236, 1217, 1192, 1236, 1236, 1192, 1196,
1627
     1236, 1236, 1196, 1200, 1236, 1236, 1200, 1204, 1236, 1236,
1628
     1204, 1208, 1236, 1236, 1208, 1223, 1236, 1223, 1226, 1236,
1629
1630
     1226, 1216, 1236, 1236, 1216, 1228, 1236, 1228, 1229, 1236,
1631
     1229, 1230, 1236, 1230, 1231, 1236, 1231, 1232, 1236, 1232,
1632
     1225, 1236, 1236, 1225, 1234, 1236, 1234, 1235, 1236, 1235,
1633
        3, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
1634
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
1635
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
1636
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
1637
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
1638
     1236, 1236
1639
    } ;
1640
1641
static yyconst flex_int16_t yy_chk[6183] =
1642
    {   0,
1643
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1644
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1645
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1646
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1647
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1648
        1,    4,   10,   15,   15,   17,   17,    4,   10,   22,
1649
       23,   13,   24,   24,   23,   31,   22,    4,   10,  168,
1650
     1226,  168,   26,   23,   31,    4,   10,   12,   12,   12,
1651
       12,   12,   12,   12,   12,   12,   12,   13,   26,   78,
1652
       12,   12,   12, 1217,   78,   12,   12,   12,   12,   12,
1653
1654
       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
1655
       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
1656
       14,   36,   30,   29,   21,   21,   14,   29,   82,   21,
1657
      330,   29, 1209,   82,   21,   30,   14,   20,   21,  330,
1658
       21,   30,   36,   20,   14,   18,   18,   18,   18,   18,
1659
       18,   18,   18,   20,   28,  169,   32,   28,   28,   18,
1660
       32,   20,   33,   32,   28,   34,   28,   33,   33,   34,
1661
       33,  103,  113,  120,  332,  219,  538,   34, 1205,  169,
1662
      219,  103,   34,  332,   34,   18,   19,   19,   19,   19,
1663
       19,   19,   19,   19,  538, 1201,   41,   19,  113,  120,
1664
1665
      149,   35,   41,   19,   19,   19,   19,   19,   19,   35,
1666
      182,  229,   41,  149, 1197,   35,  248,   35,   35,  292,
1667
       41,   45,   45,   45,   45,   45,   45,   45,   46,   46,
1668
       46,   46,   46,   46,   46,   46,  182,  229, 1193, 1182,
1669
       46, 1179,  248, 1154, 1153,  292,   46,   46,   46,   46,
1670
       46,   46,   48,   48,   48,   48,   48,   48,   48,   48,
1671
       50,   50,   50,   50,   50,   50,   50,  191,  191,  191,
1672
      191,   50, 1137,  539, 1129,  298, 1128,   50,   50,   50,
1673
       50,   50,   50,   51,   57, 1125,  549,  191,  243,   51,
1674
       57,  539,   51,   51,   51,   51,   51,   51,   51,   51,
1675
1676
       57,  298,  243,   51,  549,  549,  550,   51,   57,   51,
1677
       51,   51,   51,   51,   51,  112,  112,  112,  112,  112,
1678
      112,  112,  112, 1120,  550,  306,  354,  387,  243,  112,
1679
      174,  174,  174,  174,  174,  174,  174,  185,  185,  185,
1680
      185,  185,  185,  185,  237,  237,  237,  237,  237,  237,
1681
      237,  306,  354,  387, 1119,  112,  114,  114,  114,  114,
1682
      114,  114,  114,  114,  312, 1116, 1111,  114,  390,  390,
1683
      390,  390,  312,  114,  114,  114,  114,  114,  114,  115,
1684
      115,  115,  115,  115,  115,  115,  115,  117,  117,  117,
1685
      117,  117,  117,  117,  117,  371, 1110,  424,  117,  427,
1686
1687
     1107, 1102, 1101,  371,  117,  117,  117,  117,  117,  117,
1688
      119,  119,  119,  119,  119,  119,  119,  119,  119,  381,
1689
      433,  244,  119,  424,  119,  427,  202,  381,  119,  119,
1690
      119,  119,  119,  119,  202,  244,  287,  287,  287,  287,
1691
      287,  287,  287, 1098, 1094, 1093,  433,  202, 1089, 1088,
1692
      119,  175,  175,  175,  175,  175,  175,  175, 1078,  446,
1693
     1077,  244,  175,  202, 1071, 1069,  440,  446,  175,  175,
1694
      175,  175,  175,  175,  176,  176,  176,  176,  176,  176,
1695
      176,  176,  176,  181,  181,  181,  181,  181,  181,  181,
1696
      181,  181,  440,  223,  301,  181,  452,  181,  223,  302,
1697
1698
     1065,  181,  181,  181,  181,  181,  181,  223,  301,  223,
1699
      223,  523,  223,  302,  310,  310,  310,  310,  310,  310,
1700
      310,  378,  452,  181,  186,  186,  186,  186,  186,  186,
1701
      186,  186,  186, 1064,  301,  378,  186,  523, 1061,  302,
1702
      545,  379,  186,  186,  186,  186,  186,  186,  187,  187,
1703
      187,  187,  187,  187,  187,  379,  459,  535,  545,  187,
1704
     1057,  378,  627,  545,  459,  187,  187,  187,  187,  187,
1705
      187,  228,  228,  228,  228,  228,  228,  228,  228, 1056,
1706
      627,  379, 1049,  535, 1048,  228,  314,  314,  314,  314,
1707
      314,  314,  314,  364,  364,  364,  364,  364,  364,  364,
1708
1709
      369,  369,  369,  369,  369,  369,  369,  382,  383, 1041,
1710
      435,  228,  233,  233,  233,  233,  233,  233,  233,  505,
1711
      516,  382,  383,  233,  435,  791,  799,  505,  516,  233,
1712
      233,  233,  233,  233,  233,  236,  236,  236,  236,  236,
1713
      236,  236,  236,  791,  799,  556,  236,  382,  383,  559,
1714
      435,  546,  236,  236,  236,  236,  236,  236,  238,  238,
1715
      238,  238,  238,  238,  238,  238,  238, 1040, 1033,  546,
1716
      238,  556,  546,  547, 1032,  559,  238,  238,  238,  238,
1717
      238,  238,  239,  239,  239,  239,  239,  239,  239,  239,
1718
      562,  547,  568,  239,  547,  575,  587,  617, 1026,  239,
1719
1720
      239,  239,  239,  239,  239,  245,  245,  245,  245,  245,
1721
      245,  245,  245,  245,  590,  617,  562,  245,  568,  602,
1722
      617,  575,  587,  245,  245,  245,  245,  245,  245,  247,
1723
      247,  247,  247,  247,  247,  247,  247,  247, 1025, 1021,
1724
      590,  247,  680,  247, 1020,  602,  540,  247,  247,  247,
1725
      247,  247,  247,  373,  373,  373,  373,  373,  373,  373,
1726
      541,  436,  443,  610,  540,  649, 1019, 1018,  680,  247,
1727
      263,  610,  692,  649,  263,  436,  443,  263,  541,  444,
1728
      263,  540,  263,  263,  263,  263,  288,  288,  288,  288,
1729
      288,  288,  288,  444, 1017,  541,  708,  288,  692, 1013,
1730
1731
      542,  436,  443,  288,  288,  288,  288,  288,  288,  291,
1732
      291,  291,  291,  291,  291,  291,  291,  291,  542,  444,
1733
      447,  291,  708,  291, 1010,  448, 1007,  291,  291,  291,
1734
      291,  291,  291, 1004,  447,  542, 1001,  711,  998,  448,
1735
      455,  455,  455,  455,  455,  455,  455,  985,  888,  291,
1736
      297,  297,  297,  297,  297,  297,  297,  297,  297,  660,
1737
      447,  981,  297,  711,  297,  448,  888,  660,  297,  297,
1738
      297,  297,  297,  297,  457,  457,  457,  457,  457,  457,
1739
      457,  461,  461,  461,  461,  461,  461,  461,  526,  544,
1740
      297,  303,  303,  303,  303,  303,  303,  303,  303,  303,
1741
1742
      974,  973,  526,  303,  714,  972,  717,  544,  618,  303,
1743
      303,  303,  303,  303,  303,  305,  305,  305,  305,  305,
1744
      305,  305,  305,  305,  544,  968,  618,  305,  526,  305,
1745
      714,  618,  717,  305,  305,  305,  305,  305,  305,  498,
1746
      498,  498,  498,  498,  498,  498,  503,  503,  503,  503,
1747
      503,  503,  503,  527,  967,  305,  315,  315,  315,  315,
1748
      315,  315,  315,  315,  315,  964,  960,  527,  315,  959,
1749
      958,  619,  621,  530,  315,  315,  315,  315,  315,  315,
1750
      316,  316,  316,  316,  316,  316,  316,  530,  672,  619,
1751
      621,  316,  623,  527,  619,  621,  672,  316,  316,  316,
1752
1753
      316,  316,  316,  353,  353,  353,  353,  353,  353,  353,
1754
      623,  954,  953,  530,  950,  623,  353,  507,  507,  507,
1755
      507,  507,  507,  507,  512,  512,  512,  512,  512,  512,
1756
      512,  514,  514,  514,  514,  514,  514,  514,  531,  570,
1757
      622,  571,  353,  357,  357,  357,  357,  357,  357,  357,
1758
      723,  946,  531,  570,  357,  571,  704,  945,  622,  578,
1759
      357,  357,  357,  357,  357,  357,  359,  359,  359,  359,
1760
      359,  359,  359,  578,  704,  622,  723,  359,  531,  570,
1761
      624,  571,  704,  359,  359,  359,  359,  359,  359,  363,
1762
      363,  363,  363,  363,  363,  363,  363,  944,  624,  578,
1763
1764
      363,  940,  730,  624,  626,  699,  363,  363,  363,  363,
1765
      363,  363,  365,  365,  365,  365,  365,  365,  365,  365,
1766
      365,  781,  626,  699,  365,  626,  699,  702,  730,  781,
1767
      365,  365,  365,  365,  365,  365,  366,  366,  366,  366,
1768
      366,  366,  366,  366,  742,  702,  745,  366,  757,  761,
1769
      702,  939,  936,  366,  366,  366,  366,  366,  366,  374,
1770
      374,  374,  374,  374,  374,  374,  374,  374,  826,  773,
1771
      742,  374,  745,  798,  757,  761,  826,  374,  374,  374,
1772
      374,  374,  374,  375,  375,  375,  375,  375,  375,  375,
1773
      375,  798,  933,  932,  375,  773,  798,  794,  797,  931,
1774
1775
      375,  375,  375,  375,  375,  375,  384,  384,  384,  384,
1776
      384,  384,  384,  384,  384,  794,  797,  816,  384,  794,
1777
      797,  927,  891,  892,  384,  384,  384,  384,  384,  384,
1778
      386,  386,  386,  386,  386,  386,  386,  386,  386,  837,
1779
      891,  892,  386,  816,  386,  891,  926,  837,  386,  386,
1780
      386,  386,  386,  386,  518,  518,  518,  518,  518,  518,
1781
      518,  524,  524,  524,  524,  524,  524,  524,  923,  579,
1782
      386,  420,  420,  420,  420,  420,  420,  420,  922,  921,
1783
      917,  869,  420,  579,  881,  915,  620,  551,  420,  420,
1784
      420,  420,  420,  420,  423,  423,  423,  423,  423,  423,
1785
1786
      423,  423,  423,  543,  620,  551,  423,  869,  423,  579,
1787
      881,  582,  423,  423,  423,  423,  423,  423,  551,  620,
1788
      914,  543,  911,  910,  907,  582,  625,  904,  695,  901,
1789
      548,  583,  552,  543,  423,  426,  426,  426,  426,  426,
1790
      426,  426,  426,  426,  625,  583,  695,  426,  548,  426,
1791
      552,  582,  696,  426,  426,  426,  426,  426,  426,  625,
1792
      548,  695,  552,  591,  591,  591,  591,  591,  591,  591,
1793
      696,  583,  593,  594,  898,  426,  432,  432,  432,  432,
1794
      432,  432,  432,  432,  432,  696,  593,  594,  432,  897,
1795
      432,  597,  598,  683,  432,  432,  432,  432,  432,  432,
1796
1797
      849,  861,  980, 1024,  900,  597,  598,  683,  849,  861,
1798
      980, 1024,  593,  594,  684,  897,  432,  437,  437,  437,
1799
      437,  437,  437,  437,  437,  437,  903,  894,  684,  437,
1800
      900,  597,  598,  683,  883,  437,  437,  437,  437,  437,
1801
      437,  439,  439,  439,  439,  439,  439,  439,  439,  439,
1802
     1031,  882,  903,  439,  684,  439,  879,  875, 1031,  439,
1803
      439,  439,  439,  439,  439,  606,  606,  606,  606,  606,
1804
      606,  606,  608,  608,  608,  608,  608,  608,  608,  687,
1805
      698,  439,  449,  449,  449,  449,  449,  449,  449,  449,
1806
      449,  906,  874,  687,  449,  909,  934,  948,  698,  871,
1807
1808
      449,  449,  449,  449,  449,  449,  451,  451,  451,  451,
1809
      451,  451,  451,  451,  451,  698,  866,  906,  451,  687,
1810
      451,  909,  934,  948,  451,  451,  451,  451,  451,  451,
1811
      612,  612,  612,  612,  612,  612,  612,  642,  642,  642,
1812
      642,  642,  642,  642,  688,  697,  451,  462,  462,  462,
1813
      462,  462,  462,  462,  462,  462, 1039,  962,  688,  462,
1814
      996,  865,  884,  697, 1039,  462,  462,  462,  462,  462,
1815
      462,  463,  463,  463,  463,  463,  463,  463,  697,  697,
1816
      884, 1059,  463,  962,  688,  987,  996,  725,  463,  463,
1817
      463,  463,  463,  463,  488,  488,  488,  488,  488,  488,
1818
1819
      488,  725,  862,  987,  884,  488, 1096, 1059,  885,  854,
1820
      887,  488,  488,  488,  488,  488,  488,  489,  489,  489,
1821
      489,  489,  489,  489,  489,  489,  885,  725,  887,  489,
1822
      887,  886, 1096,  988,  726,  489,  489,  489,  489,  489,
1823
      489,  490,  490,  490,  490,  490,  490,  490,  726,  886,
1824
      885,  988,  490,  853,  850,  842,  841,  889,  490,  490,
1825
      490,  490,  490,  490,  492,  492,  492,  492,  492,  492,
1826
      492,  492,  492,  886,  726,  889,  492, 1105, 1114,  989,
1827
      990,  733,  492,  492,  492,  492,  492,  492,  493,  493,
1828
      493,  493,  493,  493,  493,  733,  889,  989,  990,  493,
1829
1830
      838,  991, 1073, 1105, 1114,  493,  493,  493,  493,  493,
1831
      493,  497,  497,  497,  497,  497,  497,  497,  497,  991,
1832
     1073,  733,  497, 1073,  991,  831, 1074,  830,  497,  497,
1833
      497,  497,  497,  497,  499,  499,  499,  499,  499,  499,
1834
      499,  499,  499, 1047, 1074, 1123,  499, 1074,  827, 1075,
1835
     1142, 1047,  499,  499,  499,  499,  499,  499,  500,  500,
1836
      500,  500,  500,  500,  500,  500, 1055, 1075, 1142,  500,
1837
     1177, 1123,  822,  821, 1055,  500,  500,  500,  500,  500,
1838
      500,  508,  508,  508,  508,  508,  508,  508,  508,  508,
1839
     1087, 1075, 1191,  508,  818,  817, 1177, 1185, 1087,  508,
1840
1841
      508,  508,  508,  508,  508,  509,  509,  509,  509,  509,
1842
      509,  509,  509, 1136,  814, 1185,  509, 1195, 1191, 1141,
1843
     1187, 1136,  509,  509,  509,  509,  509,  509,  519,  519,
1844
      519,  519,  519,  519,  519,  519,  519, 1141, 1187, 1199,
1845
      519, 1203,  813, 1195,  810, 1141,  519,  519,  519,  519,
1846
      519,  519,  520,  520,  520,  520,  520,  520,  520,  520,
1847
     1183,  807, 1207,  520, 1215, 1199, 1214, 1203, 1183,  520,
1848
      520,  520,  520,  520,  520,  532,  532,  532,  532,  532,
1849
      532,  532,  532,  532, 1214,  804, 1224,  532, 1207,  800,
1850
     1215,  786,  782,  532,  532,  532,  532,  532,  532,  534,
1851
1852
      534,  534,  534,  534,  534,  534,  534,  534,  775,  774,
1853
      771,  534, 1224,  534,  767,  766,  763,  534,  534,  534,
1854
      534,  534,  534,  647,  647,  647,  647,  647,  647,  647,
1855
      651,  651,  651,  651,  651,  651,  651,  759,  758,  534,
1856
      555,  555,  555,  555,  555,  555,  555,  555,  555,  755,
1857
      751,  750,  555,  747,  555,  744,  743,  740,  555,  555,
1858
      555,  555,  555,  555,  656,  656,  656,  656,  656,  656,
1859
      656,  658,  658,  658,  658,  658,  658,  658,  736,  735,
1860
      555,  558,  558,  558,  558,  558,  558,  558,  558,  558,
1861
      732,  731,  728,  558,  724,  558,  720,  719,  718,  558,
1862
1863
      558,  558,  558,  558,  558,  662,  662,  662,  662,  662,
1864
      662,  662,  668,  668,  668,  668,  668,  668,  668,  715,
1865
      712,  558,  561,  561,  561,  561,  561,  561,  561,  561,
1866
      561,  709,  706,  705,  561,  694,  561,  693,  690,  686,
1867
      561,  561,  561,  561,  561,  561,  670,  670,  670,  670,
1868
      670,  670,  670,  674,  674,  674,  674,  674,  674,  674,
1869
      700,  685,  561,  567,  567,  567,  567,  567,  567,  567,
1870
      567,  567,  682,  677,  673,  567,  665,  567,  700,  700,
1871
      701,  567,  567,  567,  567,  567,  567,  681,  681,  681,
1872
      681,  681,  681,  681,  661,  654,  700,  650,  701,  734,
1873
1874
      645,  737,  703,  567,  572,  572,  572,  572,  572,  572,
1875
      572,  572,  572,  734,  701,  737,  572,  640,  639,  638,
1876
      703,  635,  572,  572,  572,  572,  572,  572,  574,  574,
1877
      574,  574,  574,  574,  574,  574,  574,  703,  738,  734,
1878
      574,  737,  574,  632, 1072,  793,  574,  574,  574,  574,
1879
      574,  574,  738,  746,  746,  746,  746,  746,  746,  746,
1880
      628,  615, 1072,  793,  611, 1139,  748,  604,  574,  584,
1881
      584,  584,  584,  584,  584,  584,  584,  584,  738, 1072,
1882
      748,  584,  793, 1139,  603,  600,  596,  584,  584,  584,
1883
      584,  584,  584,  586,  586,  586,  586,  586,  586,  586,
1884
1885
      586,  586, 1139,  749,  752,  586,  748,  586,  753,  595,
1886
      592,  586,  586,  586,  586,  586,  586,  749,  752,  589,
1887
      588,  585,  753,  762,  762,  762,  762,  762,  762,  762,
1888
      581,  764,  580,  586,  599,  599,  599,  599,  599,  599,
1889
      599,  599,  599,  749,  752,  764,  599,  577,  753,  576,
1890
      573,  569,  599,  599,  599,  599,  599,  599,  601,  601,
1891
      601,  601,  601,  601,  601,  601,  601,  788,  765,  768,
1892
      601,  764,  601,  769,  566,  565,  601,  601,  601,  601,
1893
      601,  601,  765,  768,  564,  788,  563,  769,  777,  777,
1894
      777,  777,  777,  777,  777,  560,  788,  796,  601,  613,
1895
1896
      613,  613,  613,  613,  613,  613,  613,  613,  765,  768,
1897
      557,  613,  554,  769,  553,  796,  872,  613,  613,  613,
1898
      613,  613,  613,  614,  614,  614,  614,  614,  614,  614,
1899
      872,  537,  536,  533,  614,  796,  529,  528,  525,  873,
1900
      614,  614,  614,  614,  614,  614,  629,  629,  629,  629,
1901
      629,  629,  629,  873,  521,  517,  872,  629,  510,  506,
1902
      501,  496,  495,  629,  629,  629,  629,  629,  629,  630,
1903
      630,  630,  630,  630,  630,  630,  630,  630,  494,  873,
1904
      491,  630,  487,  483,  482,  480,  876,  630,  630,  630,
1905
      630,  630,  630,  631,  631,  631,  631,  631,  631,  631,
1906
1907
      876,  477,  476,  475,  631,  474,  473,  472,  471,  470,
1908
      631,  631,  631,  631,  631,  631,  633,  633,  633,  633,
1909
      633,  633,  633,  633,  633,  469,  876,  468,  633,  467,
1910
      466,  464,  460,  877,  633,  633,  633,  633,  633,  633,
1911
      634,  634,  634,  634,  634,  634,  634,  877,  454,  453,
1912
      450,  634,  445,  442,  441,  438,  434,  634,  634,  634,
1913
      634,  634,  634,  636,  636,  636,  636,  636,  636,  636,
1914
      636,  636,  431,  877,  430,  636,  429,  428,  425,  422,
1915
      918,  636,  636,  636,  636,  636,  636,  637,  637,  637,
1916
      637,  637,  637,  637,  918,  421,  419,  415,  637,  411,
1917
1918
      410,  409,  408,  406,  637,  637,  637,  637,  637,  637,
1919
      641,  641,  641,  641,  641,  641,  641,  641,  405,  404,
1920
      918,  641,  403,  402,  401,  400,  399,  641,  641,  641,
1921
      641,  641,  641,  643,  643,  643,  643,  643,  643,  643,
1922
      643,  643,  398,  397,  396,  643,  395,  392,  391,  389,
1923
      388,  643,  643,  643,  643,  643,  643,  644,  644,  644,
1924
      644,  644,  644,  644,  644,  385,  380,  376,  644,  372,
1925
      367,  362,  361,  360,  644,  644,  644,  644,  644,  644,
1926
      652,  652,  652,  652,  652,  652,  652,  652,  652,  358,
1927
      356,  355,  652,  352,  351,  350,  349,  348,  652,  652,
1928
1929
      652,  652,  652,  652,  653,  653,  653,  653,  653,  653,
1930
      653,  653,  347,  346,  345,  653,  344,  343,  342,  340,
1931
      339,  653,  653,  653,  653,  653,  653,  663,  663,  663,
1932
      663,  663,  663,  663,  663,  663,  338,  336,  335,  663,
1933
      334,  333,  331,  329,  328,  663,  663,  663,  663,  663,
1934
      663,  664,  664,  664,  664,  664,  664,  664,  664,  327,
1935
      326,  325,  664,  324,  323,  321,  320,  317,  664,  664,
1936
      664,  664,  664,  664,  675,  675,  675,  675,  675,  675,
1937
      675,  675,  675,  313,  309,  308,  675,  307,  304,  300,
1938
      299,  296,  675,  675,  675,  675,  675,  675,  676,  676,
1939
1940
      676,  676,  676,  676,  676,  676,  295,  294,  293,  676,
1941
      290,  289,  286,  285,  284,  676,  676,  676,  676,  676,
1942
      676,  689,  689,  689,  689,  689,  689,  689,  689,  689,
1943
      283,  282,  281,  689,  280,  279,  278,  277,  276,  689,
1944
      689,  689,  689,  689,  689,  691,  691,  691,  691,  691,
1945
      691,  691,  691,  691,  275,  274,  273,  691,  272,  691,
1946
      269,  268,  267,  691,  691,  691,  691,  691,  691,  779,
1947
      779,  779,  779,  779,  779,  779,  783,  783,  783,  783,
1948
      783,  783,  783,  789,  790,  691,  707,  707,  707,  707,
1949
      707,  707,  707,  707,  707,  266,  890,  992,  707,  265,
1950
1951
      707,  789,  790,  893,  707,  707,  707,  707,  707,  707,
1952
      262,  261,  789,  790,  890,  992,  260,  259,  258,  792,
1953
      795,  893,  256,  251,  992,  890,  707,  710,  710,  710,
1954
      710,  710,  710,  710,  710,  710,  893,  792,  795,  710,
1955
      250,  710,  249,  246,  242,  710,  710,  710,  710,  710,
1956
      710,  792,  795,  819,  819,  819,  819,  819,  819,  819,
1957
      824,  824,  824,  824,  824,  824,  824,  710,  713,  713,
1958
      713,  713,  713,  713,  713,  713,  713,  240,  235,  234,
1959
      713,  232,  713,  231,  230,  224,  713,  713,  713,  713,
1960
      713,  713,  828,  828,  828,  828,  828,  828,  828,  833,
1961
1962
      833,  833,  833,  833,  833,  833,  222,  221,  713,  716,
1963
      716,  716,  716,  716,  716,  716,  716,  716,  217,  215,
1964
      213,  716,  212,  716,  211,  210,  207,  716,  716,  716,
1965
      716,  716,  716,  835,  835,  835,  835,  835,  835,  835,
1966
      839,  839,  839,  839,  839,  839,  839, 1186,  919,  716,
1967
      721,  721,  721,  721,  721,  721,  721,  721,  206,  203,
1968
      200,  721,  919,  199,  197, 1186,  196,  721,  721,  721,
1969
      721,  721,  721,  722,  722,  722,  722,  722,  722,  722,
1970
      722,  722,  195,  193, 1186,  722,  192,  722,  919,  190,
1971
      188,  722,  722,  722,  722,  722,  722,  845,  845,  845,
1972
1973
      845,  845,  845,  845,  847,  847,  847,  847,  847,  847,
1974
      847,  924,  184,  722,  727,  727,  727,  727,  727,  727,
1975
      727,  727,  727,  183,  180,  924,  727,  179,  178,  177,
1976
      173,  172,  727,  727,  727,  727,  727,  727,  729,  729,
1977
      729,  729,  729,  729,  729,  729,  729,  170,  166,  164,
1978
      729,  924,  729,  162,  161,  159,  729,  729,  729,  729,
1979
      729,  729,  851,  851,  851,  851,  851,  851,  851,  857,
1980
      857,  857,  857,  857,  857,  857,  925,  158,  729,  739,
1981
      739,  739,  739,  739,  739,  739,  739,  739,  157,  155,
1982
      925,  739,  153,  150,  148,  147,  146,  739,  739,  739,
1983
1984
      739,  739,  739,  741,  741,  741,  741,  741,  741,  741,
1985
      741,  741,  145,  142,  141,  741,  925,  741,  140,  139,
1986
      138,  741,  741,  741,  741,  741,  741,  859,  859,  859,
1987
      859,  859,  859,  859,  863,  863,  863,  863,  863,  863,
1988
      863,  928,  137,  741,  754,  754,  754,  754,  754,  754,
1989
      754,  754,  754,  136,  135,  928,  754,  134,  133,  130,
1990
      129,  128,  754,  754,  754,  754,  754,  754,  756,  756,
1991
      756,  756,  756,  756,  756,  756,  756,  127,  126,  123,
1992
      756,  928,  756,  122,  121,  118,  756,  756,  756,  756,
1993
      756,  756,  870,  870,  870,  870,  870,  870,  870,  912,
1994
1995
      912,  912,  912,  912,  912,  912,  929,  116,  756,  770,
1996
      770,  770,  770,  770,  770,  770,  770,  770,  110,  109,
1997
      929,  770,  108,  107,  106,  105,  104,  770,  770,  770,
1998
      770,  770,  770,  772,  772,  772,  772,  772,  772,  772,
1999
      772,  772,  102,  101,  100,  772,  929,  772,   99,   98,
2000
      937,  772,  772,  772,  772,  772,  772,  935,  935,  935,
2001
      935,  935,  935,  935,  937,   97,   96,   95,   94,   93,
2002
      938,  941,   92,  772,  784,  784,  784,  784,  784,  784,
2003
      784,  784,  784,   91,  938,  941,  784,   88,   87,   86,
2004
      937,  942,  784,  784,  784,  784,  784,  784,  785,  785,
2005
2006
      785,  785,  785,  785,  785,  942,   85,   84,   83,  785,
2007
      938,  941,   81,   80,  951,  785,  785,  785,  785,  785,
2008
      785,  801,  801,  801,  801,  801,  801,  801,  951,   79,
2009
       77,  942,  801,   76,   75,   74,   73,   72,  801,  801,
2010
      801,  801,  801,  801,  802,  802,  802,  802,  802,  802,
2011
      802,  802,  802,   71,  951,   70,  802,   69,   68,   67,
2012
       66,  952,  802,  802,  802,  802,  802,  802,  803,  803,
2013
      803,  803,  803,  803,  803,  952,   65,   64,   63,  803,
2014
       62,   60,   59,   47,   40,  803,  803,  803,  803,  803,
2015
      803,  805,  805,  805,  805,  805,  805,  805,  805,  805,
2016
2017
       39,  952,   38,  805,   37,   27,   25,   16,  955,  805,
2018
      805,  805,  805,  805,  805,  806,  806,  806,  806,  806,
2019
      806,  806,  955,    8,    7,    3,  806,    0,    0,    0,
2020
        0,    0,  806,  806,  806,  806,  806,  806,  808,  808,
2021
      808,  808,  808,  808,  808,  808,  808,    0,  955,    0,
2022
      808,    0,    0,    0,    0,  956,  808,  808,  808,  808,
2023
      808,  808,  809,  809,  809,  809,  809,  809,  809,  956,
2024
        0,    0,    0,  809,    0,    0,    0,    0,    0,  809,
2025
      809,  809,  809,  809,  809,  811,  811,  811,  811,  811,
2026
      811,  811,  811,  811,    0,  956,    0,  811,    0,    0,
2027
2028
        0,    0,  965,  811,  811,  811,  811,  811,  811,  812,
2029
      812,  812,  812,  812,  812,  812,  965,    0,    0,    0,
2030
      812,    0,    0,    0,    0,    0,  812,  812,  812,  812,
2031
      812,  812,  815,  815,  815,  815,  815,  815,  815,  815,
2032
      815,    0,  965,    0,  815,    0,  815,    0,    0,    0,
2033
      815,  815,  815,  815,  815,  815,  949,  949,  949,  949,
2034
      949,  949,  949,  963,  963,  963,  963,  963,  963,  963,
2035
      966,    0,  815,  820,  820,  820,  820,  820,  820,  820,
2036
      820,  820,    0,    0,  966,  820,    0,    0,    0,    0,
2037
        0,  820,  820,  820,  820,  820,  820,  829,  829,  829,
2038
2039
      829,  829,  829,  829,  829,  829,    0,    0,    0,  829,
2040
      966,    0,    0,    0,    0,  829,  829,  829,  829,  829,
2041
      829,  840,  840,  840,  840,  840,  840,  840,  840,  840,
2042
        0,    0,    0,  840,    0,    0,    0,    0,    0,  840,
2043
      840,  840,  840,  840,  840,  852,  852,  852,  852,  852,
2044
      852,  852,  852,  852,    0,    0,    0,  852,    0,    0,
2045
        0,    0,    0,  852,  852,  852,  852,  852,  852,  864,
2046
      864,  864,  864,  864,  864,  864,  864,  864,    0,    0,
2047
        0,  864,    0,    0,    0,    0,    0,  864,  864,  864,
2048
      864,  864,  864,  878,  878,  878,  878,  878,  878,  878,
2049
2050
      878,  878,    0,    0,    0,  878,    0,    0,    0,    0,
2051
        0,  878,  878,  878,  878,  878,  878,  880,  880,  880,
2052
      880,  880,  880,  880,  880,  880,    0,  969,  970,  880,
2053
        0,  880,    0,    0,    0,  880,  880,  880,  880,  880,
2054
      880,  969,  970,  976,  976,  976,  976,  976,  976,  976,
2055
      978,  978,  978,  978,  978,  978,  978,  880,  895,  895,
2056
      895,  895,  895,  895,  895,  895,    0,  969,  970,  895,
2057
        0,    0,    0,    0,    0,  895,  895,  895,  895,  895,
2058
      895,  896,  896,  896,  896,  896,  896,  896,  896,  896,
2059
        0,    0,    0,  896,    0,  896,    0,    0, 1014,  896,
2060
2061
      896,  896,  896,  896,  896,  982,  982,  982,  982,  982,
2062
      982,  982, 1014,    0,    0,  993,    0, 1015, 1062,  994,
2063
        0,  896,  899,  899,  899,  899,  899,  899,  899,  899,
2064
      899, 1015, 1062,  993,  899,    0,  899,  994, 1014,    0,
2065
      899,  899,  899,  899,  899,  899,  993,    0,  994, 1022,
2066
     1022, 1022, 1022, 1022, 1022, 1022,    0, 1015, 1062,    0,
2067
        0,    0,  899,  902,  902,  902,  902,  902,  902,  902,
2068
      902,  902,    0,    0,    0,  902,    0,  902,    0,    0,
2069
        0,  902,  902,  902,  902,  902,  902, 1027, 1027, 1027,
2070
     1027, 1027, 1027, 1027, 1029, 1029, 1029, 1029, 1029, 1029,
2071
2072
     1029,    0,    0,  902,  905,  905,  905,  905,  905,  905,
2073
      905,  905,  905,    0,    0,    0,  905,    0,  905,    0,
2074
        0,    0,  905,  905,  905,  905,  905,  905, 1035, 1035,
2075
     1035, 1035, 1035, 1035, 1035, 1037, 1037, 1037, 1037, 1037,
2076
     1037, 1037,    0,    0,  905,  908,  908,  908,  908,  908,
2077
      908,  908,  908,  908,    0,    0,    0,  908,    0,  908,
2078
        0,    0,    0,  908,  908,  908,  908,  908,  908, 1043,
2079
     1043, 1043, 1043, 1043, 1043, 1043, 1045, 1045, 1045, 1045,
2080
     1045, 1045, 1045, 1063,    0,  908,  913,  913,  913,  913,
2081
      913,  913,  913,  913,  913,    0,    0, 1063,  913,    0,
2082
2083
        0,    0,    0,    0,  913,  913,  913,  913,  913,  913,
2084
      920,  920,  920,  920,  920,  920,  920,  920,  920,    0,
2085
        0,    0,  920, 1063,    0,    0,    0,    0,  920,  920,
2086
      920,  920,  920,  920,  930,  930,  930,  930,  930,  930,
2087
      930,  930,  930,    0,    0,    0,  930,    0,    0,    0,
2088
        0,    0,  930,  930,  930,  930,  930,  930,  943,  943,
2089
      943,  943,  943,  943,  943,  943,  943,    0,    0,    0,
2090
      943,    0,    0,    0,    0,    0,  943,  943,  943,  943,
2091
      943,  943,  957,  957,  957,  957,  957,  957,  957,  957,
2092
      957,    0,    0,    0,  957,    0,    0,    0,    0,    0,
2093
2094
      957,  957,  957,  957,  957,  957,  971,  971,  971,  971,
2095
      971,  971,  971,  971,  971,    0,    0,    0,  971,    0,
2096
        0,    0,    0,    0,  971,  971,  971,  971,  971,  971,
2097
      983,  983,  983,  983,  983,  983,  983,  983,  983,    0,
2098
        0,    0,  983,    0,    0,    0,    0,    0,  983,  983,
2099
      983,  983,  983,  983,  995,  995,  995,  995,  995,  995,
2100
      995,  995,  995,    0,    0,    0,  995,    0,  995,    0,
2101
        0,    0,  995,  995,  995,  995,  995,  995, 1051, 1051,
2102
     1051, 1051, 1051, 1051, 1051, 1053, 1053, 1053, 1053, 1053,
2103
     1053, 1053, 1066,    0,  995,  999,  999,  999,  999,  999,
2104
2105
      999,  999,  999,  999,    0,    0, 1066,  999,    0,    0,
2106
        0,    0,    0,  999,  999,  999,  999,  999,  999, 1002,
2107
     1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,    0,    0,
2108
        0, 1002, 1066,    0,    0,    0,    0, 1002, 1002, 1002,
2109
     1002, 1002, 1002, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
2110
     1005, 1005,    0,    0,    0, 1005,    0,    0,    0,    0,
2111
        0, 1005, 1005, 1005, 1005, 1005, 1005, 1008, 1008, 1008,
2112
     1008, 1008, 1008, 1008, 1008, 1008,    0,    0,    0, 1008,
2113
        0,    0,    0,    0,    0, 1008, 1008, 1008, 1008, 1008,
2114
     1008, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011,
2115
2116
        0,    0,    0, 1011,    0,    0,    0,    0,    0, 1011,
2117
     1011, 1011, 1011, 1011, 1011, 1016, 1016, 1016, 1016, 1016,
2118
     1016, 1016, 1016, 1016,    0,    0,    0, 1016,    0,    0,
2119
        0,    0, 1067, 1016, 1016, 1016, 1016, 1016, 1016, 1060,
2120
     1060, 1060, 1060, 1060, 1060, 1060, 1067, 1085, 1085, 1085,
2121
     1085, 1085, 1085, 1085, 1097, 1097, 1097, 1097, 1097, 1097,
2122
     1097, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1091,    0,
2123
     1092,    0, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
2124
     1068, 1068, 1091,    0, 1092, 1068,    0,    0,    0,    0,
2125
        0, 1068, 1068, 1068, 1068, 1068, 1068, 1076, 1076, 1076,
2126
2127
     1076, 1076, 1076, 1076, 1076, 1076,    0, 1099, 1091, 1076,
2128
     1092, 1100, 1108, 1109,    0, 1076, 1076, 1076, 1076, 1076,
2129
     1076, 1099, 1117, 1118,    0, 1100, 1108, 1109, 1115, 1115,
2130
     1115, 1115, 1115, 1115, 1115, 1126, 1117, 1118, 1124, 1124,
2131
     1124, 1124, 1124, 1124, 1124, 1127, 1151, 1099,    0, 1126,
2132
        0, 1100, 1108, 1109,    0,    0, 1140, 1152,    0, 1127,
2133
     1151,    0, 1117, 1118, 1132, 1132, 1132, 1132, 1132, 1132,
2134
     1132, 1152,    0,    0, 1140, 1126, 1134, 1134, 1134, 1134,
2135
     1134, 1134, 1134, 1140,    0, 1127, 1151, 1157, 1157, 1157,
2136
     1157, 1157, 1157, 1157,    0,    0,    0, 1152, 1161, 1161,
2137
2138
     1161, 1161, 1161, 1161, 1161, 1165, 1165, 1165, 1165, 1165,
2139
     1165, 1165, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1173,
2140
     1173, 1173, 1173, 1173, 1173, 1173, 1178, 1178, 1178, 1178,
2141
     1178, 1178, 1178, 1180, 1181, 1189, 1189, 1189, 1189, 1189,
2142
     1189, 1189,    0,    0,    0,    0,    0, 1180, 1181, 1192,
2143
     1192, 1192, 1192, 1192, 1192, 1192, 1196, 1196, 1196, 1196,
2144
     1196, 1196, 1196, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
2145
        0,    0,    0, 1180, 1181, 1204, 1204, 1204, 1204, 1204,
2146
     1204, 1204, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1211,
2147
     1211, 1211, 1211, 1211, 1211, 1211, 1216, 1216, 1216, 1216,
2148
2149
     1216, 1216, 1216, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
2150
     1237,    0, 1237, 1237, 1237, 1237, 1237, 1237, 1238, 1238,
2151
     1238, 1239, 1239, 1239, 1240, 1240, 1240, 1241, 1241, 1241,
2152
     1242, 1242, 1242, 1243, 1243, 1243, 1244, 1244, 1244, 1245,
2153
     1245, 1245, 1246, 1246, 1246, 1247,    0, 1247, 1248, 1248,
2154
     1248, 1249, 1249, 1249, 1250, 1250, 1250, 1251, 1251, 1251,
2155
     1252,    0, 1252, 1253, 1253, 1253, 1254, 1254,    0,    0,
2156
     1254, 1255, 1255, 1255, 1256, 1256, 1256, 1257, 1257, 1257,
2157
     1258, 1258, 1258, 1259, 1259, 1259, 1260, 1260, 1260, 1261,
2158
     1261, 1261, 1262, 1262,    0,    0, 1262, 1263, 1263, 1263,
2159
2160
     1264, 1264, 1264, 1265,    0, 1265, 1266, 1266, 1266, 1267,
2161
     1267, 1267, 1268,    0, 1268, 1269, 1269, 1269, 1270, 1270,
2162
     1270, 1271, 1271, 1271, 1272, 1272, 1272, 1273,    0, 1273,
2163
     1274,    0, 1274, 1275, 1275, 1275, 1276, 1276, 1276, 1277,
2164
        0, 1277, 1278, 1278,    0,    0, 1278, 1279, 1279,    0,
2165
        0, 1279, 1280, 1280, 1280, 1281, 1281, 1281, 1282, 1282,
2166
     1282, 1283, 1283, 1283, 1284, 1284, 1284, 1285, 1285, 1285,
2167
     1286, 1286, 1286, 1287, 1287, 1287, 1288, 1288, 1288, 1289,
2168
     1289,    0,    0, 1289, 1290, 1290, 1290, 1291, 1291, 1291,
2169
     1292, 1292,    0,    0, 1292, 1293, 1293,    0,    0, 1293,
2170
2171
     1294, 1294, 1294, 1295, 1295, 1295, 1296, 1296,    0, 1296,
2172
     1297,    0, 1297, 1298,    0, 1298, 1299, 1299, 1299, 1300,
2173
     1300, 1300, 1301,    0, 1301, 1302, 1302, 1302, 1303, 1303,
2174
     1303, 1304, 1304, 1304, 1305, 1305, 1305, 1306, 1306, 1306,
2175
     1307, 1307, 1307, 1308,    0, 1308, 1309,    0, 1309, 1310,
2176
     1310, 1310, 1311, 1311, 1311, 1312,    0, 1312, 1313,    0,
2177
     1313, 1314,    0, 1314, 1315, 1315, 1315, 1316, 1316, 1316,
2178
     1317,    0, 1317, 1318,    0,    0, 1318, 1319, 1319,    0,
2179
        0, 1319, 1320, 1320,    0, 1320, 1321, 1321, 1322, 1322,
2180
        0,    0, 1322, 1323, 1323, 1323, 1324, 1324, 1324, 1325,
2181
2182
     1325,    0, 1325, 1326, 1326, 1326,    0, 1326, 1326, 1327,
2183
     1327, 1327, 1328, 1328, 1328, 1329, 1329, 1329, 1330, 1330,
2184
     1330, 1331, 1331, 1331, 1332, 1332, 1332, 1333, 1333, 1333,
2185
     1334, 1334, 1334, 1335, 1335,    0,    0, 1335, 1336, 1336,
2186
     1336, 1337, 1337, 1337, 1338, 1338,    0, 1338, 1339, 1339,
2187
        0,    0, 1339, 1340, 1340,    0, 1340, 1341, 1341, 1342,
2188
     1342,    0,    0, 1342, 1343, 1343, 1343, 1344, 1344, 1344,
2189
     1345, 1345,    0, 1345, 1346,    0,    0, 1346, 1347, 1347,
2190
        0, 1347, 1348, 1348,    0,    0, 1348, 1349, 1349,    0,
2191
     1349, 1350, 1350, 1351, 1351,    0,    0, 1351, 1352, 1352,
2192
2193
     1352, 1353, 1353, 1353, 1354, 1354,    0, 1354, 1355,    0,
2194
     1355, 1356,    0, 1356, 1357,    0, 1357, 1358, 1358, 1358,
2195
     1359, 1359, 1359, 1360,    0, 1360, 1361, 1361, 1361,    0,
2196
     1361, 1361, 1362, 1362, 1362, 1363, 1363, 1363, 1364, 1364,
2197
     1364, 1365, 1365, 1365, 1366, 1366, 1366, 1367, 1367, 1367,
2198
     1368, 1368, 1368, 1369,    0, 1369, 1370,    0, 1370, 1371,
2199
     1371, 1371, 1372, 1372, 1372, 1373,    0, 1373, 1374,    0,
2200
     1374, 1375,    0, 1375, 1376, 1376, 1376, 1377, 1377, 1377,
2201
     1378,    0, 1378, 1379,    0, 1379, 1380,    0, 1380, 1381,
2202
        0, 1381, 1382, 1382, 1382, 1383, 1383, 1383, 1384,    0,
2203
2204
     1384, 1385,    0, 1385, 1386,    0,    0, 1386, 1387, 1387,
2205
        0, 1387, 1388, 1388,    0,    0, 1388, 1389, 1389,    0,
2206
     1389, 1390, 1390, 1391, 1391,    0,    0, 1391, 1392, 1392,
2207
     1392, 1393, 1393, 1393, 1394, 1394,    0, 1394, 1395, 1395,
2208
     1395,    0, 1395, 1395, 1396, 1396, 1396, 1397, 1397, 1397,
2209
     1398, 1398, 1398, 1399, 1399, 1399, 1400, 1400, 1400, 1401,
2210
     1401, 1401, 1402, 1402, 1402, 1403, 1403, 1403, 1404, 1404,
2211
        0,    0, 1404, 1405, 1405, 1405, 1406, 1406, 1406, 1407,
2212
     1407,    0, 1407, 1408, 1408,    0,    0, 1408, 1409, 1409,
2213
        0, 1409, 1410, 1410, 1411, 1411,    0,    0, 1411, 1412,
2214
2215
     1412, 1412, 1413, 1413, 1413, 1414, 1414,    0, 1414, 1415,
2216
        0,    0, 1415, 1416, 1416,    0, 1416, 1417, 1417,    0,
2217
        0, 1417, 1418, 1418,    0, 1418, 1419, 1419, 1420, 1420,
2218
        0,    0, 1420, 1421, 1421, 1421, 1422, 1422, 1422, 1423,
2219
     1423,    0, 1423, 1424,    0, 1424, 1425,    0,    0, 1425,
2220
     1426, 1426,    0, 1426, 1427, 1427,    0,    0, 1427, 1428,
2221
     1428,    0, 1428, 1429, 1429, 1430, 1430,    0,    0, 1430,
2222
     1431, 1431, 1431, 1432, 1432, 1432, 1433, 1433,    0, 1433,
2223
     1434,    0, 1434, 1435,    0, 1435, 1436,    0, 1436, 1437,
2224
     1437, 1437, 1438, 1438, 1438, 1439,    0, 1439, 1440, 1440,
2225
2226
     1440,    0, 1440, 1440, 1441, 1441, 1441, 1442, 1442, 1442,
2227
     1443, 1443, 1443, 1444, 1444, 1444, 1445, 1445, 1445, 1446,
2228
     1446, 1446, 1447, 1447, 1447, 1448, 1448, 1448, 1449, 1449,
2229
     1449, 1450, 1450, 1450, 1451,    0, 1451, 1452,    0, 1452,
2230
     1453, 1453, 1453, 1454, 1454, 1454, 1455, 1455, 1455, 1456,
2231
        0, 1456, 1457,    0, 1457, 1458,    0, 1458, 1459, 1459,
2232
     1459, 1460, 1460, 1460, 1461, 1461, 1461, 1462,    0, 1462,
2233
     1463,    0, 1463, 1464,    0, 1464, 1465,    0, 1465, 1466,
2234
     1466, 1466, 1467, 1467, 1467, 1468, 1468, 1468, 1469,    0,
2235
     1469, 1470,    0, 1470, 1471,    0, 1471, 1472,    0, 1472,
2236
2237
     1473, 1473, 1473, 1474, 1474, 1474, 1475, 1475, 1475, 1476,
2238
        0, 1476, 1477,    0, 1477, 1478,    0,    0, 1478, 1479,
2239
     1479,    0, 1479, 1480, 1480,    0,    0, 1480, 1481, 1481,
2240
        0, 1481, 1482, 1482, 1483, 1483,    0,    0, 1483, 1484,
2241
     1484, 1484, 1485, 1485, 1485, 1486, 1486,    0, 1486, 1487,
2242
     1487, 1487,    0, 1487, 1487, 1488, 1488, 1488, 1489, 1489,
2243
     1489, 1490, 1490, 1490, 1491, 1491, 1491, 1492, 1492, 1492,
2244
     1493, 1493, 1493, 1494, 1494, 1494, 1495, 1495, 1495, 1496,
2245
        0, 1496, 1497, 1497, 1497, 1498, 1498,    0,    0, 1498,
2246
     1499, 1499, 1499, 1500, 1500, 1500, 1501, 1501,    0, 1501,
2247
2248
     1502, 1502,    0,    0, 1502, 1503, 1503,    0, 1503, 1504,
2249
     1504, 1505, 1505,    0,    0, 1505, 1506, 1506, 1506, 1507,
2250
     1507, 1507, 1508, 1508,    0, 1508, 1509,    0,    0, 1509,
2251
     1510, 1510,    0, 1510, 1511, 1511,    0,    0, 1511, 1512,
2252
     1512,    0, 1512, 1513, 1513, 1514, 1514,    0,    0, 1514,
2253
     1515, 1515, 1515, 1516, 1516, 1516, 1517, 1517,    0, 1517,
2254
     1518,    0, 1518, 1519,    0,    0, 1519, 1520, 1520,    0,
2255
     1520, 1521, 1521,    0,    0, 1521, 1522, 1522,    0, 1522,
2256
     1523, 1523, 1524, 1524,    0,    0, 1524, 1525, 1525, 1525,
2257
     1526, 1526, 1526, 1527, 1527,    0, 1527, 1528,    0, 1528,
2258
2259
     1529,    0,    0, 1529, 1530, 1530,    0, 1530, 1531, 1531,
2260
        0,    0, 1531, 1532, 1532,    0, 1532, 1533, 1533, 1534,
2261
     1534,    0,    0, 1534, 1535, 1535, 1535, 1536, 1536, 1536,
2262
     1537, 1537,    0, 1537, 1538,    0, 1538, 1539,    0, 1539,
2263
     1540,    0, 1540, 1541, 1541, 1541, 1542,    0, 1542, 1543,
2264
     1543, 1543, 1544,    0, 1544, 1545, 1545, 1545,    0, 1545,
2265
     1545, 1546,    0, 1546, 1547, 1547, 1547, 1548,    0, 1548,
2266
     1549, 1549, 1549, 1550,    0, 1550, 1551, 1551, 1551, 1552,
2267
        0, 1552, 1553, 1553, 1553, 1554,    0, 1554, 1555, 1555,
2268
     1555, 1556,    0, 1556, 1557, 1557, 1557, 1558, 1558,    0,
2269
2270
        0, 1558, 1559, 1559, 1559, 1560, 1560, 1560, 1561, 1561,
2271
     1561, 1562, 1562,    0, 1562, 1563, 1563, 1563, 1564,    0,
2272
     1564, 1565, 1565, 1565, 1566, 1566, 1566, 1567,    0, 1567,
2273
     1568,    0, 1568, 1569, 1569, 1569, 1570, 1570, 1570, 1571,
2274
        0, 1571, 1572,    0, 1572, 1573,    0, 1573, 1574, 1574,
2275
     1574, 1575, 1575, 1575, 1576,    0, 1576, 1577,    0, 1577,
2276
     1578,    0, 1578, 1579, 1579, 1579, 1580, 1580, 1580, 1581,
2277
        0, 1581, 1582,    0, 1582, 1583,    0, 1583, 1584, 1584,
2278
     1584, 1585, 1585, 1585, 1586,    0, 1586, 1587,    0,    0,
2279
     1587, 1588, 1588,    0, 1588, 1589, 1589,    0,    0, 1589,
2280
2281
     1590, 1590,    0, 1590, 1591, 1591, 1592, 1592,    0,    0,
2282
     1592, 1593, 1593, 1593, 1594,    0, 1594, 1595, 1595,    0,
2283
     1595, 1596, 1596, 1596,    0, 1596, 1596, 1597, 1597, 1597,
2284
     1598, 1598, 1598, 1599,    0, 1599, 1600,    0, 1600, 1601,
2285
        0, 1601, 1602,    0, 1602, 1603,    0, 1603, 1604,    0,
2286
     1604, 1605,    0, 1605, 1606, 1606, 1606, 1607, 1607, 1607,
2287
     1608,    0, 1608, 1609, 1609,    0,    0, 1609, 1610, 1610,
2288
        0, 1610, 1611, 1611, 1612,    0, 1612, 1613,    0,    0,
2289
     1613, 1614, 1614,    0, 1614, 1615, 1615,    0,    0, 1615,
2290
     1616, 1616,    0, 1616, 1617, 1617, 1618,    0, 1618, 1619,
2291
2292
        0, 1619, 1620,    0,    0, 1620, 1621, 1621,    0, 1621,
2293
     1622, 1622,    0,    0, 1622, 1623, 1623,    0, 1623, 1624,
2294
     1624, 1625,    0, 1625, 1626,    0, 1626, 1627,    0,    0,
2295
     1627, 1628, 1628,    0, 1628, 1629, 1629,    0,    0, 1629,
2296
     1630, 1630,    0, 1630, 1631, 1631, 1632,    0, 1632, 1633,
2297
        0, 1633, 1634,    0,    0, 1634, 1635, 1635,    0, 1635,
2298
     1636, 1636,    0,    0, 1636, 1637, 1637,    0, 1637, 1638,
2299
     1638, 1639,    0, 1639, 1640,    0, 1640, 1641,    0, 1641,
2300
     1642,    0, 1642, 1643, 1643, 1643, 1644,    0, 1644, 1645,
2301
     1645, 1645,    0, 1645, 1645, 1646,    0, 1646, 1647,    0,
2302
2303
     1647, 1648,    0, 1648, 1649,    0, 1649, 1650,    0, 1650,
2304
     1651,    0, 1651, 1652,    0, 1652, 1653, 1653,    0,    0,
2305
     1653, 1654, 1654,    0, 1654, 1655, 1655, 1656,    0, 1656,
2306
     1657,    0, 1657, 1658,    0, 1658, 1659,    0, 1659, 1660,
2307
        0, 1660, 1661,    0, 1661, 1662,    0, 1662, 1663,    0,
2308
     1663, 1664,    0, 1664, 1665,    0, 1665, 1666,    0,    0,
2309
     1666, 1667, 1667,    0,    0, 1667, 1668,    0, 1668, 1669,
2310
        0, 1669, 1670,    0, 1670, 1671,    0,    0, 1671, 1672,
2311
        0,    0, 1672, 1673,    0,    0, 1673, 1674,    0,    0,
2312
     1674, 1675,    0,    0, 1675, 1676,    0, 1676, 1677,    0,
2313
2314
     1677, 1678,    0,    0, 1678, 1679,    0, 1679, 1680,    0,
2315
     1680, 1681,    0, 1681, 1682,    0, 1682, 1683,    0, 1683,
2316
     1684,    0,    0, 1684, 1685,    0, 1685, 1686,    0, 1686,
2317
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
2318
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
2319
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
2320
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
2321
     1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
2322
     1236, 1236
2323
    } ;
2324
2325
static yy_state_type yy_last_accepting_state;
2326
static char *yy_last_accepting_cpos;
2327
2328
extern int pcap_yy_flex_debug;
2329
int pcap_yy_flex_debug = 0;
2330
2331
/* The intent behind this definition is that it'll catch
2332
 * any uses of REJECT which flex missed.
2333
 */
2334
#define REJECT reject_used_but_not_detected
2335
#define yymore() yymore_used_but_not_detected
2336
#define YY_MORE_ADJ 0
2337
#define YY_RESTORE_YY_MORE_OFFSET
2338
char *pcap_yytext;
2339
#line 1 "scanner.l"
2340
#line 2 "scanner.l"
2341
/*	$OpenBSD: scanner.l,v 1.24 2017/07/09 15:32:09 espie Exp $	*/
2342
2343
/*
2344
 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
2345
 *	The Regents of the University of California.  All rights reserved.
2346
 *
2347
 * Redistribution and use in source and binary forms, with or without
2348
 * modification, are permitted provided that: (1) source code distributions
2349
 * retain the above copyright notice and this paragraph in its entirety, (2)
2350
 * distributions including binary code include the above copyright notice and
2351
 * this paragraph in its entirety in the documentation or other materials
2352
 * provided with the distribution, and (3) all advertising materials mentioning
2353
 * features or use of this software display the following acknowledgement:
2354
 * ``This product includes software developed by the University of California,
2355
 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
2356
 * the University nor the names of its contributors may be used to endorse
2357
 * or promote products derived from this software without specific prior
2358
 * written permission.
2359
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
2360
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
2361
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2362
 */
2363
2364
#include <sys/types.h>
2365
#include <sys/time.h>
2366
2367
#include <ctype.h>
2368
#include <string.h>
2369
#include <unistd.h>
2370
#include <vis.h>
2371
2372
#include "pcap-int.h"
2373
2374
#include "gencode.h"
2375
#include <pcap-namedb.h>
2376
2377
#ifdef INET6
2378
#include <netdb.h>
2379
#include <sys/socket.h>
2380
#endif /*INET6*/
2381
2382
#ifdef HAVE_OS_PROTO_H
2383
#include "os-proto.h"
2384
#endif
2385
2386
#include "grammar.h"
2387
2388
static int stoi(char *);
2389
static inline int xdtoi(int);
2390
2391
#ifdef FLEX_SCANNER
2392
#define YY_NO_UNPUT
2393
#undef YY_INPUT
2394
#define YY_INPUT(buf, result, max)\
2395
 {\
2396
	char *src = in_buffer;\
2397
	int i;\
2398
\
2399
	if (*src == 0)\
2400
		result = YY_NULL;\
2401
	else {\
2402
		for (i = 0; *src && i < max; ++i)\
2403
			buf[i] = *src++;\
2404
		in_buffer += i;\
2405
		result = i;\
2406
	}\
2407
 }
2408
#else
2409
#undef getc
2410
#define getc(fp)  (*in_buffer == 0 ? EOF : *in_buffer++)
2411
#endif
2412
2413
extern YYSTYPE yylval;
2414
2415
static char *in_buffer;
2416
2417
#line 2418 "scanner.c"
2418
2419
#define INITIAL 0
2420
2421
#ifndef YY_NO_UNISTD_H
2422
/* Special case for "unistd.h", since it is non-ANSI. We include it way
2423
 * down here because we want the user's section 1 to have been scanned first.
2424
 * The user has a chance to override it with an option.
2425
 */
2426
#include <unistd.h>
2427
#endif
2428
2429
#ifndef YY_EXTRA_TYPE
2430
#define YY_EXTRA_TYPE void *
2431
#endif
2432
2433
static int yy_init_globals (void );
2434
2435
/* Accessor methods to globals.
2436
   These are made visible to non-reentrant scanners for convenience. */
2437
2438
int pcap_yylex_destroy (void );
2439
2440
int pcap_yyget_debug (void );
2441
2442
void pcap_yyset_debug (int debug_flag  );
2443
2444
YY_EXTRA_TYPE pcap_yyget_extra (void );
2445
2446
void pcap_yyset_extra (YY_EXTRA_TYPE user_defined  );
2447
2448
FILE *pcap_yyget_in (void );
2449
2450
void pcap_yyset_in  (FILE * in_str  );
2451
2452
FILE *pcap_yyget_out (void );
2453
2454
void pcap_yyset_out  (FILE * out_str  );
2455
2456
yy_size_t pcap_yyget_leng (void );
2457
2458
char *pcap_yyget_text (void );
2459
2460
int pcap_yyget_lineno (void );
2461
2462
void pcap_yyset_lineno (int line_number  );
2463
2464
/* Macros after this point can all be overridden by user definitions in
2465
 * section 1.
2466
 */
2467
2468
#ifndef YY_SKIP_YYWRAP
2469
#ifdef __cplusplus
2470
extern "C" int pcap_yywrap (void );
2471
#else
2472
extern int pcap_yywrap (void );
2473
#endif
2474
#endif
2475
2476
    static void yyunput (int c,char *buf_ptr  );
2477
2478
#ifndef yytext_ptr
2479
static void yy_flex_strncpy (char *,yyconst char *,int );
2480
#endif
2481
2482
#ifdef YY_NEED_STRLEN
2483
static int yy_flex_strlen (yyconst char * );
2484
#endif
2485
2486
#ifndef YY_NO_INPUT
2487
2488
#ifdef __cplusplus
2489
static int yyinput (void );
2490
#else
2491
static int input (void );
2492
#endif
2493
2494
#endif
2495
2496
/* Amount of stuff to slurp up with each read. */
2497
#ifndef YY_READ_BUF_SIZE
2498
#define YY_READ_BUF_SIZE 8192
2499
#endif
2500
2501
/* Copy whatever the last rule matched to the standard output. */
2502
#ifndef ECHO
2503
/* This used to be an fputs(), but since the string might contain NUL's,
2504
 * we now use fwrite().
2505
 */
2506
#define ECHO do { if (fwrite( pcap_yytext, pcap_yyleng, 1, pcap_yyout )) {} } while (0)
2507
#endif
2508
2509
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2510
 * is returned in "result".
2511
 */
2512
#ifndef YY_INPUT
2513
#define YY_INPUT(buf,result,max_size) \
2514
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2515
		{ \
2516
		int c = '*'; \
2517
		size_t n; \
2518
		for ( n = 0; n < max_size && \
2519
			     (c = getc( pcap_yyin )) != EOF && c != '\n'; ++n ) \
2520
			buf[n] = (char) c; \
2521
		if ( c == '\n' ) \
2522
			buf[n++] = (char) c; \
2523
		if ( c == EOF && ferror( pcap_yyin ) ) \
2524
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
2525
		result = n; \
2526
		} \
2527
	else \
2528
		{ \
2529
		errno=0; \
2530
		while ( (result = fread(buf, 1, max_size, pcap_yyin))==0 && ferror(pcap_yyin)) \
2531
			{ \
2532
			if( errno != EINTR) \
2533
				{ \
2534
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
2535
				break; \
2536
				} \
2537
			errno=0; \
2538
			clearerr(pcap_yyin); \
2539
			} \
2540
		}\
2541
\
2542
2543
#endif
2544
2545
/* No semi-colon after return; correct usage is to write "yyterminate();" -
2546
 * we don't want an extra ';' after the "return" because that will cause
2547
 * some compilers to complain about unreachable statements.
2548
 */
2549
#ifndef yyterminate
2550
#define yyterminate() return YY_NULL
2551
#endif
2552
2553
/* Number of entries by which start-condition stack grows. */
2554
#ifndef YY_START_STACK_INCR
2555
#define YY_START_STACK_INCR 25
2556
#endif
2557
2558
/* Report a fatal error. */
2559
#ifndef YY_FATAL_ERROR
2560
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2561
#endif
2562
2563
/* end tables serialization structures and prototypes */
2564
2565
/* Default declaration of generated scanner - a define so the user can
2566
 * easily add parameters.
2567
 */
2568
#ifndef YY_DECL
2569
#define YY_DECL_IS_OURS 1
2570
2571
extern int pcap_yylex (void);
2572
2573
#define YY_DECL int pcap_yylex (void)
2574
#endif /* !YY_DECL */
2575
2576
/* Code executed at the beginning of each rule, after pcap_yytext and pcap_yyleng
2577
 * have been set up.
2578
 */
2579
#ifndef YY_USER_ACTION
2580
#define YY_USER_ACTION
2581
#endif
2582
2583
/* Code executed at the end of each rule. */
2584
#ifndef YY_BREAK
2585
#define YY_BREAK break;
2586
#endif
2587
2588
#define YY_RULE_SETUP \
2589
	YY_USER_ACTION
2590
2591
/** The main scanner function which does all the work.
2592
 */
2593
YY_DECL
2594
{
2595
	yy_state_type yy_current_state;
2596
	char *yy_cp, *yy_bp;
2597
	int yy_act;
2598
2599
36
	if ( !(yy_init) )
2600
		{
2601
2
		(yy_init) = 1;
2602
2603
#ifdef YY_USER_INIT
2604
		YY_USER_INIT;
2605
#endif
2606
2607
2
		if ( ! (yy_start) )
2608
2
			(yy_start) = 1;	/* first start state */
2609
2610
2
		if ( ! pcap_yyin )
2611
2
			pcap_yyin = stdin;
2612
2613
2
		if ( ! pcap_yyout )
2614
2
			pcap_yyout = stdout;
2615
2616

4
		if ( ! YY_CURRENT_BUFFER ) {
2617
			pcap_yyensure_buffer_stack ();
2618
			YY_CURRENT_BUFFER_LVALUE =
2619
				pcap_yy_create_buffer(pcap_yyin,YY_BUF_SIZE );
2620
		}
2621
2622
2
		pcap_yy_load_buffer_state( );
2623
2
		}
2624
2625
	{
2626
#line 168 "scanner.l"
2627
2628
#line 2629 "scanner.c"
2629
2630
	while ( 1 )		/* loops until end-of-file is reached */
2631
		{
2632
22
		yy_cp = (yy_c_buf_p);
2633
2634
		/* Support of pcap_yytext. */
2635
22
		*yy_cp = (yy_hold_char);
2636
2637
		/* yy_bp points to the position in yy_ch_buf of the start of
2638
		 * the current run.
2639
		 */
2640
		yy_bp = yy_cp;
2641
2642
22
		yy_current_state = (yy_start);
2643
yy_match:
2644
24
		do
2645
			{
2646
64
			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2647
64
			if ( yy_accept[yy_current_state] )
2648
				{
2649
40
				(yy_last_accepting_state) = yy_current_state;
2650
40
				(yy_last_accepting_cpos) = yy_cp;
2651
40
				}
2652
112
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2653
				{
2654
48
				yy_current_state = (int) yy_def[yy_current_state];
2655
48
				if ( yy_current_state >= 1237 )
2656
					yy_c = yy_meta[(unsigned int) yy_c];
2657
				}
2658
64
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2659
64
			++yy_cp;
2660
64
			}
2661
64
		while ( yy_base[yy_current_state] != 6131 );
2662
2663
yy_find_action:
2664
26
		yy_act = yy_accept[yy_current_state];
2665
26
		if ( yy_act == 0 )
2666
			{ /* have to back up */
2667
16
			yy_cp = (yy_last_accepting_cpos);
2668
16
			yy_current_state = (yy_last_accepting_state);
2669
16
			yy_act = yy_accept[yy_current_state];
2670
16
			}
2671
2672
26
		YY_DO_BEFORE_ACTION;
2673
2674
do_action:	/* This label is used only to access EOF actions. */
2675
2676


























44
		switch ( yy_act )
2677
	{ /* beginning of action switch */
2678
			case 0: /* must back up */
2679
			/* undo the effects of YY_DO_BEFORE_ACTION */
2680
			*yy_cp = (yy_hold_char);
2681
			yy_cp = (yy_last_accepting_cpos);
2682
			yy_current_state = (yy_last_accepting_state);
2683
			goto yy_find_action;
2684
2685
case 1:
2686
YY_RULE_SETUP
2687
#line 169 "scanner.l"
2688
return DST;
2689
	YY_BREAK
2690
case 2:
2691
YY_RULE_SETUP
2692
#line 170 "scanner.l"
2693
return SRC;
2694
	YY_BREAK
2695
case 3:
2696
YY_RULE_SETUP
2697
#line 172 "scanner.l"
2698
return LINK;
2699
	YY_BREAK
2700
case 4:
2701
YY_RULE_SETUP
2702
#line 173 "scanner.l"
2703
return LINK;
2704
	YY_BREAK
2705
case 5:
2706
YY_RULE_SETUP
2707
#line 174 "scanner.l"
2708
return ARP;
2709
	YY_BREAK
2710
case 6:
2711
YY_RULE_SETUP
2712
#line 175 "scanner.l"
2713
return RARP;
2714
	YY_BREAK
2715
case 7:
2716
YY_RULE_SETUP
2717
#line 176 "scanner.l"
2718
return IP;
2719
	YY_BREAK
2720
case 8:
2721
YY_RULE_SETUP
2722
#line 177 "scanner.l"
2723
return TCP;
2724
	YY_BREAK
2725
case 9:
2726
YY_RULE_SETUP
2727
#line 178 "scanner.l"
2728
return UDP;
2729
	YY_BREAK
2730
case 10:
2731
YY_RULE_SETUP
2732
#line 179 "scanner.l"
2733
return ICMP;
2734
	YY_BREAK
2735
case 11:
2736
YY_RULE_SETUP
2737
#line 180 "scanner.l"
2738
return IGMP;
2739
	YY_BREAK
2740
case 12:
2741
YY_RULE_SETUP
2742
#line 181 "scanner.l"
2743
return IGRP;
2744
	YY_BREAK
2745
case 13:
2746
YY_RULE_SETUP
2747
#line 182 "scanner.l"
2748
return PIM;
2749
	YY_BREAK
2750
case 14:
2751
YY_RULE_SETUP
2752
#line 184 "scanner.l"
2753
return IPV6;
2754
	YY_BREAK
2755
case 15:
2756
YY_RULE_SETUP
2757
#line 185 "scanner.l"
2758
return ICMPV6;
2759
	YY_BREAK
2760
case 16:
2761
YY_RULE_SETUP
2762
#line 186 "scanner.l"
2763
return AH;
2764
	YY_BREAK
2765
case 17:
2766
YY_RULE_SETUP
2767
#line 187 "scanner.l"
2768
return ESP;
2769
	YY_BREAK
2770
case 18:
2771
YY_RULE_SETUP
2772
#line 189 "scanner.l"
2773
return ATALK;
2774
	YY_BREAK
2775
case 19:
2776
YY_RULE_SETUP
2777
#line 190 "scanner.l"
2778
return DECNET;
2779
	YY_BREAK
2780
case 20:
2781
YY_RULE_SETUP
2782
#line 191 "scanner.l"
2783
return LAT;
2784
	YY_BREAK
2785
case 21:
2786
YY_RULE_SETUP
2787
#line 192 "scanner.l"
2788
return SCA;
2789
	YY_BREAK
2790
case 22:
2791
YY_RULE_SETUP
2792
#line 193 "scanner.l"
2793
return MOPRC;
2794
	YY_BREAK
2795
case 23:
2796
YY_RULE_SETUP
2797
#line 194 "scanner.l"
2798
return MOPDL;
2799
	YY_BREAK
2800
case 24:
2801
YY_RULE_SETUP
2802
#line 195 "scanner.l"
2803
return STP;
2804
	YY_BREAK
2805
case 25:
2806
YY_RULE_SETUP
2807
#line 197 "scanner.l"
2808
return HOST;
2809
	YY_BREAK
2810
case 26:
2811
YY_RULE_SETUP
2812
#line 198 "scanner.l"
2813
return NET;
2814
	YY_BREAK
2815
case 27:
2816
YY_RULE_SETUP
2817
#line 199 "scanner.l"
2818
return MASK;
2819
	YY_BREAK
2820
case 28:
2821
YY_RULE_SETUP
2822
#line 200 "scanner.l"
2823
return PORT;
2824
	YY_BREAK
2825
case 29:
2826
YY_RULE_SETUP
2827
#line 201 "scanner.l"
2828
return PROTO;
2829
	YY_BREAK
2830
case 30:
2831
YY_RULE_SETUP
2832
#line 202 "scanner.l"
2833
{
2834
#ifdef NO_PROTOCHAIN
2835
		  bpf_error("%s not supported", pcap_yytext);
2836
#else
2837
		  return PROTOCHAIN;
2838
#endif
2839
		}
2840
	YY_BREAK
2841
case 31:
2842
YY_RULE_SETUP
2843
#line 210 "scanner.l"
2844
return GATEWAY;
2845
	YY_BREAK
2846
case 32:
2847
YY_RULE_SETUP
2848
#line 212 "scanner.l"
2849
return LESS;
2850
	YY_BREAK
2851
case 33:
2852
YY_RULE_SETUP
2853
#line 213 "scanner.l"
2854
return GREATER;
2855
	YY_BREAK
2856
case 34:
2857
YY_RULE_SETUP
2858
#line 214 "scanner.l"
2859
return BYTE;
2860
	YY_BREAK
2861
case 35:
2862
YY_RULE_SETUP
2863
#line 215 "scanner.l"
2864
return TK_BROADCAST;
2865
	YY_BREAK
2866
case 36:
2867
YY_RULE_SETUP
2868
#line 216 "scanner.l"
2869
return TK_MULTICAST;
2870
	YY_BREAK
2871
case 37:
2872
YY_RULE_SETUP
2873
#line 218 "scanner.l"
2874
return AND;
2875
	YY_BREAK
2876
case 38:
2877
YY_RULE_SETUP
2878
#line 219 "scanner.l"
2879
return OR;
2880
	YY_BREAK
2881
case 39:
2882
YY_RULE_SETUP
2883
#line 220 "scanner.l"
2884
return '!';
2885
	YY_BREAK
2886
case 40:
2887
YY_RULE_SETUP
2888
#line 222 "scanner.l"
2889
return LEN;
2890
	YY_BREAK
2891
case 41:
2892
YY_RULE_SETUP
2893
#line 223 "scanner.l"
2894
return INBOUND;
2895
	YY_BREAK
2896
case 42:
2897
YY_RULE_SETUP
2898
#line 224 "scanner.l"
2899
return OUTBOUND;
2900
	YY_BREAK
2901
case 43:
2902
YY_RULE_SETUP
2903
#line 226 "scanner.l"
2904
return VLAN;
2905
	YY_BREAK
2906
case 44:
2907
YY_RULE_SETUP
2908
#line 228 "scanner.l"
2909
return PF_IFNAME;
2910
	YY_BREAK
2911
case 45:
2912
YY_RULE_SETUP
2913
#line 229 "scanner.l"
2914
return PF_RSET;
2915
	YY_BREAK
2916
case 46:
2917
YY_RULE_SETUP
2918
#line 230 "scanner.l"
2919
return PF_RNR;
2920
	YY_BREAK
2921
case 47:
2922
YY_RULE_SETUP
2923
#line 231 "scanner.l"
2924
return PF_SRNR;
2925
	YY_BREAK
2926
case 48:
2927
YY_RULE_SETUP
2928
#line 232 "scanner.l"
2929
return PF_REASON;
2930
	YY_BREAK
2931
case 49:
2932
YY_RULE_SETUP
2933
#line 233 "scanner.l"
2934
return PF_ACTION;
2935
	YY_BREAK
2936
case 50:
2937
YY_RULE_SETUP
2938
#line 235 "scanner.l"
2939
return LINK;
2940
	YY_BREAK
2941
case 51:
2942
YY_RULE_SETUP
2943
#line 236 "scanner.l"
2944
return TYPE;
2945
	YY_BREAK
2946
case 52:
2947
YY_RULE_SETUP
2948
#line 237 "scanner.l"
2949
return SUBTYPE;
2950
	YY_BREAK
2951
case 53:
2952
YY_RULE_SETUP
2953
#line 238 "scanner.l"
2954
return DIR;
2955
	YY_BREAK
2956
case 54:
2957
YY_RULE_SETUP
2958
#line 239 "scanner.l"
2959
return ADDR1;
2960
	YY_BREAK
2961
case 55:
2962
YY_RULE_SETUP
2963
#line 240 "scanner.l"
2964
return ADDR2;
2965
	YY_BREAK
2966
case 56:
2967
YY_RULE_SETUP
2968
#line 241 "scanner.l"
2969
return ADDR3;
2970
	YY_BREAK
2971
case 57:
2972
YY_RULE_SETUP
2973
#line 242 "scanner.l"
2974
return ADDR4;
2975
	YY_BREAK
2976
case 58:
2977
/* rule 58 can match eol */
2978
YY_RULE_SETUP
2979
#line 244 "scanner.l"
2980
;
2981
	YY_BREAK
2982
case 59:
2983
YY_RULE_SETUP
2984
#line 245 "scanner.l"
2985
return pcap_yytext[0];
2986
	YY_BREAK
2987
case 60:
2988
YY_RULE_SETUP
2989
#line 246 "scanner.l"
2990
return GEQ;
2991
	YY_BREAK
2992
case 61:
2993
YY_RULE_SETUP
2994
#line 247 "scanner.l"
2995
return LEQ;
2996
	YY_BREAK
2997
case 62:
2998
YY_RULE_SETUP
2999
#line 248 "scanner.l"
3000
return NEQ;
3001
	YY_BREAK
3002
case 63:
3003
YY_RULE_SETUP
3004
#line 249 "scanner.l"
3005
return '=';
3006
	YY_BREAK
3007
case 64:
3008
YY_RULE_SETUP
3009
#line 250 "scanner.l"
3010
return LSH;
3011
	YY_BREAK
3012
case 65:
3013
YY_RULE_SETUP
3014
#line 251 "scanner.l"
3015
return RSH;
3016
	YY_BREAK
3017
case 66:
3018
YY_RULE_SETUP
3019
#line 252 "scanner.l"
3020
{ yylval.i = stoi((char *)pcap_yytext); return NUM; }
3021
	YY_BREAK
3022
case 67:
3023
YY_RULE_SETUP
3024
#line 253 "scanner.l"
3025
{
3026
			yylval.s = sdup((char *)pcap_yytext); return HID; }
3027
	YY_BREAK
3028
case 68:
3029
YY_RULE_SETUP
3030
#line 255 "scanner.l"
3031
{ yylval.e = pcap_ether_aton((char *)pcap_yytext);
3032
			  return EID; }
3033
	YY_BREAK
3034
case 69:
3035
YY_RULE_SETUP
3036
#line 257 "scanner.l"
3037
{
3038
#ifdef INET6
3039
			  struct addrinfo hints, *res;
3040
			  memset(&hints, 0, sizeof(hints));
3041
			  hints.ai_family = AF_INET6;
3042
			  hints.ai_flags = AI_NUMERICHOST;
3043
			  if (getaddrinfo(pcap_yytext, NULL, &hints, &res))
3044
				bpf_error("bogus IPv6 address %s", pcap_yytext);
3045
			  else {
3046
				yylval.e = sdup((char *)pcap_yytext); return HID6;
3047
			  }
3048
#else
3049
			  bpf_error("IPv6 address %s not supported", pcap_yytext);
3050
#endif /*INET6*/
3051
			}
3052
	YY_BREAK
3053
case 70:
3054
YY_RULE_SETUP
3055
#line 272 "scanner.l"
3056
{ bpf_error("bogus ethernet address %s", pcap_yytext); }
3057
	YY_BREAK
3058
case 71:
3059
YY_RULE_SETUP
3060
#line 273 "scanner.l"
3061
{ yylval.i = 0; return NUM; }
3062
	YY_BREAK
3063
case 72:
3064
YY_RULE_SETUP
3065
#line 274 "scanner.l"
3066
{ yylval.i = 1; return NUM; }
3067
	YY_BREAK
3068
case 73:
3069
YY_RULE_SETUP
3070
#line 275 "scanner.l"
3071
{ yylval.i = 0; return NUM; }
3072
	YY_BREAK
3073
case 74:
3074
YY_RULE_SETUP
3075
#line 276 "scanner.l"
3076
{ yylval.i = 3; return NUM; }
3077
	YY_BREAK
3078
case 75:
3079
YY_RULE_SETUP
3080
#line 277 "scanner.l"
3081
{ yylval.i = 4; return NUM; }
3082
	YY_BREAK
3083
case 76:
3084
YY_RULE_SETUP
3085
#line 278 "scanner.l"
3086
{ yylval.i = 5; return NUM; }
3087
	YY_BREAK
3088
case 77:
3089
YY_RULE_SETUP
3090
#line 279 "scanner.l"
3091
{ yylval.i = 8; return NUM; }
3092
	YY_BREAK
3093
case 78:
3094
YY_RULE_SETUP
3095
#line 280 "scanner.l"
3096
{ yylval.i = 9; return NUM; }
3097
	YY_BREAK
3098
case 79:
3099
YY_RULE_SETUP
3100
#line 281 "scanner.l"
3101
{ yylval.i = 10; return NUM; }
3102
	YY_BREAK
3103
case 80:
3104
YY_RULE_SETUP
3105
#line 282 "scanner.l"
3106
{ yylval.i = 11; return NUM; }
3107
	YY_BREAK
3108
case 81:
3109
YY_RULE_SETUP
3110
#line 283 "scanner.l"
3111
{ yylval.i = 12; return NUM; }
3112
	YY_BREAK
3113
case 82:
3114
YY_RULE_SETUP
3115
#line 284 "scanner.l"
3116
{ yylval.i = 13; return NUM; }
3117
	YY_BREAK
3118
case 83:
3119
YY_RULE_SETUP
3120
#line 285 "scanner.l"
3121
{ yylval.i = 14; return NUM; }
3122
	YY_BREAK
3123
case 84:
3124
YY_RULE_SETUP
3125
#line 286 "scanner.l"
3126
{ yylval.i = 15; return NUM; }
3127
	YY_BREAK
3128
case 85:
3129
YY_RULE_SETUP
3130
#line 287 "scanner.l"
3131
{ yylval.i = 16; return NUM; }
3132
	YY_BREAK
3133
case 86:
3134
YY_RULE_SETUP
3135
#line 288 "scanner.l"
3136
{ yylval.i = 17; return NUM; }
3137
	YY_BREAK
3138
case 87:
3139
YY_RULE_SETUP
3140
#line 289 "scanner.l"
3141
{ yylval.i = 18; return NUM; }
3142
	YY_BREAK
3143
case 88:
3144
YY_RULE_SETUP
3145
#line 290 "scanner.l"
3146
{ yylval.i = 13; return NUM; }
3147
	YY_BREAK
3148
case 89:
3149
YY_RULE_SETUP
3150
#line 291 "scanner.l"
3151
{ yylval.i = 0x01; return NUM; }
3152
	YY_BREAK
3153
case 90:
3154
YY_RULE_SETUP
3155
#line 292 "scanner.l"
3156
{ yylval.i = 0x02; return NUM; }
3157
	YY_BREAK
3158
case 91:
3159
YY_RULE_SETUP
3160
#line 293 "scanner.l"
3161
{ yylval.i = 0x04; return NUM; }
3162
	YY_BREAK
3163
case 92:
3164
YY_RULE_SETUP
3165
#line 294 "scanner.l"
3166
{ yylval.i = 0x08; return NUM; }
3167
	YY_BREAK
3168
case 93:
3169
YY_RULE_SETUP
3170
#line 295 "scanner.l"
3171
{ yylval.i = 0x10; return NUM; }
3172
	YY_BREAK
3173
case 94:
3174
YY_RULE_SETUP
3175
#line 296 "scanner.l"
3176
{ yylval.i = 0x20; return NUM; }
3177
	YY_BREAK
3178
case 95:
3179
YY_RULE_SETUP
3180
#line 297 "scanner.l"
3181
{
3182
			 yylval.s = sdup((char *)pcap_yytext); return ID; }
3183
	YY_BREAK
3184
case 96:
3185
YY_RULE_SETUP
3186
#line 299 "scanner.l"
3187
{		 yylval.s = sdup((char *)pcap_yytext); return ID; }
3188
	YY_BREAK
3189
case 97:
3190
YY_RULE_SETUP
3191
#line 300 "scanner.l"
3192
{ yylval.s = sdup((char *)pcap_yytext + 1); return ID; }
3193
	YY_BREAK
3194
case 98:
3195
YY_RULE_SETUP
3196
#line 301 "scanner.l"
3197
{
3198
			size_t len = strlen(pcap_yytext) * 4 + 1;
3199
			char *v = malloc(len);
3200
			if (v != NULL)
3201
				strnvis(v, pcap_yytext, len, 0);
3202
			bpf_error("illegal token: %s", v);
3203
			free(v);
3204
			}
3205
	YY_BREAK
3206
case 99:
3207
YY_RULE_SETUP
3208
#line 309 "scanner.l"
3209
{
3210
			  char v[5];
3211
3212
			  vis(v, *pcap_yytext, VIS_OCTAL, 0);
3213
			  bpf_error("illegal char '%s'", v);
3214
			}
3215
	YY_BREAK
3216
case 100:
3217
YY_RULE_SETUP
3218
#line 315 "scanner.l"
3219
ECHO;
3220
	YY_BREAK
3221
#line 3222 "scanner.c"
3222
case YY_STATE_EOF(INITIAL):
3223
2
	yyterminate();
3224
3225
	case YY_END_OF_BUFFER:
3226
		{
3227
		/* Amount of text matched not including the EOB char. */
3228
6
		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3229
3230
		/* Undo the effects of YY_DO_BEFORE_ACTION. */
3231
6
		*yy_cp = (yy_hold_char);
3232
		YY_RESTORE_YY_MORE_OFFSET
3233
3234
6
		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3235
			{
3236
			/* We're scanning a new file or input source.  It's
3237
			 * possible that this happened because the user
3238
			 * just pointed pcap_yyin at a new source and called
3239
			 * pcap_yylex().  If so, then we have to assure
3240
			 * consistency between YY_CURRENT_BUFFER and our
3241
			 * globals.  Here is the right place to do so, because
3242
			 * this is the first action (other than possibly a
3243
			 * back-up) that will match for the new input source.
3244
			 */
3245
2
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3246
2
			YY_CURRENT_BUFFER_LVALUE->yy_input_file = pcap_yyin;
3247
2
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3248
2
			}
3249
3250
		/* Note that here we test for yy_c_buf_p "<=" to the position
3251
		 * of the first EOB in the buffer, since yy_c_buf_p will
3252
		 * already have been incremented past the NUL character
3253
		 * (since all states make transitions on EOB to the
3254
		 * end-of-buffer state).  Contrast this with the test
3255
		 * in input().
3256
		 */
3257
6
		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3258
			{ /* This was really a NUL. */
3259
			yy_state_type yy_next_state;
3260
3261
			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3262
3263
			yy_current_state = yy_get_previous_state(  );
3264
3265
			/* Okay, we're now positioned to make the NUL
3266
			 * transition.  We couldn't have
3267
			 * yy_get_previous_state() go ahead and do it
3268
			 * for us because it doesn't know how to deal
3269
			 * with the possibility of jamming (and we don't
3270
			 * want to build jamming into it because then it
3271
			 * will run more slowly).
3272
			 */
3273
3274
			yy_next_state = yy_try_NUL_trans( yy_current_state );
3275
3276
			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3277
3278
			if ( yy_next_state )
3279
				{
3280
				/* Consume the NUL. */
3281
				yy_cp = ++(yy_c_buf_p);
3282
				yy_current_state = yy_next_state;
3283
				goto yy_match;
3284
				}
3285
3286
			else
3287
				{
3288
				yy_cp = (yy_c_buf_p);
3289
				goto yy_find_action;
3290
				}
3291
			}
3292
3293

6
		else switch ( yy_get_next_buffer(  ) )
3294
			{
3295
			case EOB_ACT_END_OF_FILE:
3296
				{
3297
2
				(yy_did_buffer_switch_on_eof) = 0;
3298
3299
2
				if ( pcap_yywrap( ) )
3300
					{
3301
					/* Note: because we've taken care in
3302
					 * yy_get_next_buffer() to have set up
3303
					 * pcap_yytext, we can now set up
3304
					 * yy_c_buf_p so that if some total
3305
					 * hoser (like flex itself) wants to
3306
					 * call the scanner after we return the
3307
					 * YY_NULL, it'll still work - another
3308
					 * YY_NULL will get returned.
3309
					 */
3310
2
					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3311
3312
2
					yy_act = YY_STATE_EOF(YY_START);
3313
2
					goto do_action;
3314
					}
3315
3316
				else
3317
					{
3318
					if ( ! (yy_did_buffer_switch_on_eof) )
3319
						YY_NEW_FILE;
3320
					}
3321
				break;
3322
				}
3323
3324
			case EOB_ACT_CONTINUE_SCAN:
3325
2
				(yy_c_buf_p) =
3326
2
					(yytext_ptr) + yy_amount_of_matched_text;
3327
3328
2
				yy_current_state = yy_get_previous_state(  );
3329
3330
2
				yy_cp = (yy_c_buf_p);
3331
2
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3332
2
				goto yy_match;
3333
3334
			case EOB_ACT_LAST_MATCH:
3335
2
				(yy_c_buf_p) =
3336
2
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3337
3338
2
				yy_current_state = yy_get_previous_state(  );
3339
3340
2
				yy_cp = (yy_c_buf_p);
3341
2
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3342
2
				goto yy_find_action;
3343
			}
3344
		break;
3345
		}
3346
3347
	default:
3348
		YY_FATAL_ERROR(
3349
			"fatal flex scanner internal error--no action found" );
3350
	} /* end of action switch */
3351
		} /* end of scanning one token */
3352
	} /* end of user's declarations */
3353
18
} /* end of pcap_yylex */
3354
3355
/* yy_get_next_buffer - try to read in a new buffer
3356
 *
3357
 * Returns a code representing an action:
3358
 *	EOB_ACT_LAST_MATCH -
3359
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3360
 *	EOB_ACT_END_OF_FILE - end of file
3361
 */
3362
static int yy_get_next_buffer (void)
3363
{
3364
12
    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3365
6
	char *source = (yytext_ptr);
3366
	int number_to_move, i;
3367
	int ret_val;
3368
3369
6
	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3370
		YY_FATAL_ERROR(
3371
		"fatal flex scanner internal error--end of buffer missed" );
3372
3373
6
	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3374
		{ /* Don't try to fill the buffer, so this is an EOF. */
3375
		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3376
			{
3377
			/* We matched a single character, the EOB, so
3378
			 * treat this as a final EOF.
3379
			 */
3380
			return EOB_ACT_END_OF_FILE;
3381
			}
3382
3383
		else
3384
			{
3385
			/* We matched some text prior to the EOB, first
3386
			 * process it.
3387
			 */
3388
			return EOB_ACT_LAST_MATCH;
3389
			}
3390
		}
3391
3392
	/* Try to read more data. */
3393
3394
	/* First move last chars to start of buffer. */
3395
6
	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3396
3397
24
	for ( i = 0; i < number_to_move; ++i )
3398
6
		*(dest++) = *(source++);
3399
3400
6
	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3401
		/* don't do the read, it's not guaranteed to return an EOF,
3402
		 * just force an EOF
3403
		 */
3404
2
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3405
3406
	else
3407
		{
3408
			yy_size_t num_to_read =
3409
4
			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3410
3411
8
		while ( num_to_read <= 0 )
3412
			{ /* Not enough room in the buffer - grow it. */
3413
3414
			/* just a shorter name for the current buffer */
3415
			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
3416
3417
			int yy_c_buf_p_offset =
3418
				(int) ((yy_c_buf_p) - b->yy_ch_buf);
3419
3420
			if ( b->yy_is_our_buffer )
3421
				{
3422
				yy_size_t new_size = b->yy_buf_size * 2;
3423
3424
				if ( new_size <= 0 )
3425
					b->yy_buf_size += b->yy_buf_size / 8;
3426
				else
3427
					b->yy_buf_size *= 2;
3428
3429
				b->yy_ch_buf = (char *)
3430
					/* Include room in for 2 EOB chars. */
3431
					pcap_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
3432
				}
3433
			else
3434
				/* Can't grow it, we don't own it. */
3435
				b->yy_ch_buf = 0;
3436
3437
			if ( ! b->yy_ch_buf )
3438
				YY_FATAL_ERROR(
3439
				"fatal error - scanner input buffer overflow" );
3440
3441
			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3442
3443
			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3444
						number_to_move - 1;
3445
3446
			}
3447
3448
4
		if ( num_to_read > YY_READ_BUF_SIZE )
3449
4
			num_to_read = YY_READ_BUF_SIZE;
3450
3451
		/* Read in more data. */
3452

136
		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3453
			(yy_n_chars), num_to_read );
3454
3455
4
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3456
		}
3457
3458
6
	if ( (yy_n_chars) == 0 )
3459
		{
3460
4
		if ( number_to_move == YY_MORE_ADJ )
3461
			{
3462
			ret_val = EOB_ACT_END_OF_FILE;
3463
2
			pcap_yyrestart(pcap_yyin  );
3464
2
			}
3465
3466
		else
3467
			{
3468
			ret_val = EOB_ACT_LAST_MATCH;
3469
2
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3470
				YY_BUFFER_EOF_PENDING;
3471
			}
3472
		}
3473
3474
	else
3475
		ret_val = EOB_ACT_CONTINUE_SCAN;
3476
3477
6
	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3478
		/* Extend the array by 50%, plus the number we really need. */
3479
		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3480
		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) pcap_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3481
		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3482
			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3483
		/* "- 2" to take care of EOB's */
3484
		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
3485
	}
3486
3487
6
	(yy_n_chars) += number_to_move;
3488
6
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3489
6
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3490
3491
6
	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3492
3493
6
	return ret_val;
3494
6
}
3495
3496
/* yy_get_previous_state - get the state just before the EOB char was reached */
3497
3498
    static yy_state_type yy_get_previous_state (void)
3499
{
3500
	yy_state_type yy_current_state;
3501
	char *yy_cp;
3502
3503
8
	yy_current_state = (yy_start);
3504
3505
20
	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3506
		{
3507
18
		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3508
6
		if ( yy_accept[yy_current_state] )
3509
			{
3510
4
			(yy_last_accepting_state) = yy_current_state;
3511
4
			(yy_last_accepting_cpos) = yy_cp;
3512
4
			}
3513
8
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3514
			{
3515
2
			yy_current_state = (int) yy_def[yy_current_state];
3516
2
			if ( yy_current_state >= 1237 )
3517
				yy_c = yy_meta[(unsigned int) yy_c];
3518
			}
3519
6
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3520
		}
3521
3522
4
	return yy_current_state;
3523
}
3524
3525
/* yy_try_NUL_trans - try to make a transition on the NUL character
3526
 *
3527
 * synopsis
3528
 *	next_state = yy_try_NUL_trans( current_state );
3529
 */
3530
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3531
{
3532
	int yy_is_jam;
3533
    	char *yy_cp = (yy_c_buf_p);
3534
3535
	YY_CHAR yy_c = 1;
3536
	if ( yy_accept[yy_current_state] )
3537
		{
3538
		(yy_last_accepting_state) = yy_current_state;
3539
		(yy_last_accepting_cpos) = yy_cp;
3540
		}
3541
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3542
		{
3543
		yy_current_state = (int) yy_def[yy_current_state];
3544
		if ( yy_current_state >= 1237 )
3545
			yy_c = yy_meta[(unsigned int) yy_c];
3546
		}
3547
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3548
	yy_is_jam = (yy_current_state == 1236);
3549
3550
		return yy_is_jam ? 0 : yy_current_state;
3551
}
3552
3553
    static void yyunput (int c, char * yy_bp )
3554
{
3555
	char *yy_cp;
3556
3557
    yy_cp = (yy_c_buf_p);
3558
3559
	/* undo effects of setting up pcap_yytext */
3560
	*yy_cp = (yy_hold_char);
3561
3562
	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3563
		{ /* need to shift things up to make room */
3564
		/* +2 for EOB chars. */
3565
		yy_size_t number_to_move = (yy_n_chars) + 2;
3566
		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3567
					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3568
		char *source =
3569
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3570
3571
		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3572
			*--dest = *--source;
3573
3574
		yy_cp += (int) (dest - source);
3575
		yy_bp += (int) (dest - source);
3576
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3577
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3578
3579
		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3580
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
3581
		}
3582
3583
	*--yy_cp = (char) c;
3584
3585
	(yytext_ptr) = yy_bp;
3586
	(yy_hold_char) = *yy_cp;
3587
	(yy_c_buf_p) = yy_cp;
3588
}
3589
3590
#ifndef YY_NO_INPUT
3591
#ifdef __cplusplus
3592
    static int yyinput (void)
3593
#else
3594
    static int input  (void)
3595
#endif
3596
3597
{
3598
	int c;
3599
3600
	*(yy_c_buf_p) = (yy_hold_char);
3601
3602
	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3603
		{
3604
		/* yy_c_buf_p now points to the character we want to return.
3605
		 * If this occurs *before* the EOB characters, then it's a
3606
		 * valid NUL; if not, then we've hit the end of the buffer.
3607
		 */
3608
		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3609
			/* This was really a NUL. */
3610
			*(yy_c_buf_p) = '\0';
3611
3612
		else
3613
			{ /* need more input */
3614
			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
3615
			++(yy_c_buf_p);
3616
3617
			switch ( yy_get_next_buffer(  ) )
3618
				{
3619
				case EOB_ACT_LAST_MATCH:
3620
					/* This happens because yy_g_n_b()
3621
					 * sees that we've accumulated a
3622
					 * token and flags that we need to
3623
					 * try matching the token before
3624
					 * proceeding.  But for input(),
3625
					 * there's no matching to consider.
3626
					 * So convert the EOB_ACT_LAST_MATCH
3627
					 * to EOB_ACT_END_OF_FILE.
3628
					 */
3629
3630
					/* Reset buffer status. */
3631
					pcap_yyrestart(pcap_yyin );
3632
3633
					/*FALLTHROUGH*/
3634
3635
				case EOB_ACT_END_OF_FILE:
3636
					{
3637
					if ( pcap_yywrap( ) )
3638
						return EOF;
3639
3640
					if ( ! (yy_did_buffer_switch_on_eof) )
3641
						YY_NEW_FILE;
3642
#ifdef __cplusplus
3643
					return yyinput();
3644
#else
3645
					return input();
3646
#endif
3647
					}
3648
3649
				case EOB_ACT_CONTINUE_SCAN:
3650
					(yy_c_buf_p) = (yytext_ptr) + offset;
3651
					break;
3652
				}
3653
			}
3654
		}
3655
3656
	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
3657
	*(yy_c_buf_p) = '\0';	/* preserve pcap_yytext */
3658
	(yy_hold_char) = *++(yy_c_buf_p);
3659
3660
	return c;
3661
}
3662
#endif	/* ifndef YY_NO_INPUT */
3663
3664
/** Immediately switch to a different input stream.
3665
 * @param input_file A readable stream.
3666
 *
3667
 * @note This function does not reset the start condition to @c INITIAL .
3668
 */
3669
    void pcap_yyrestart  (FILE * input_file )
3670
{
3671
3672

10
	if ( ! YY_CURRENT_BUFFER ){
3673
2
        pcap_yyensure_buffer_stack ();
3674
2
		YY_CURRENT_BUFFER_LVALUE =
3675
2
            pcap_yy_create_buffer(pcap_yyin,YY_BUF_SIZE );
3676
2
	}
3677
3678
12
	pcap_yy_init_buffer(YY_CURRENT_BUFFER,input_file );
3679
4
	pcap_yy_load_buffer_state( );
3680
4
}
3681
3682
/** Switch to a different input buffer.
3683
 * @param new_buffer The new input buffer.
3684
 *
3685
 */
3686
    void pcap_yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3687
{
3688
3689
	/* TODO. We should be able to replace this entire function body
3690
	 * with
3691
	 *		pcap_yypop_buffer_state();
3692
	 *		pcap_yypush_buffer_state(new_buffer);
3693
     */
3694
	pcap_yyensure_buffer_stack ();
3695
	if ( YY_CURRENT_BUFFER == new_buffer )
3696
		return;
3697
3698
	if ( YY_CURRENT_BUFFER )
3699
		{
3700
		/* Flush out information for old buffer. */
3701
		*(yy_c_buf_p) = (yy_hold_char);
3702
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3703
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3704
		}
3705
3706
	YY_CURRENT_BUFFER_LVALUE = new_buffer;
3707
	pcap_yy_load_buffer_state( );
3708
3709
	/* We don't actually know whether we did this switch during
3710
	 * EOF (pcap_yywrap()) processing, but the only time this flag
3711
	 * is looked at is after pcap_yywrap() is called, so it's safe
3712
	 * to go ahead and always set it.
3713
	 */
3714
	(yy_did_buffer_switch_on_eof) = 1;
3715
}
3716
3717
static void pcap_yy_load_buffer_state  (void)
3718
{
3719
20
    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3720
10
	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3721
10
	pcap_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3722
10
	(yy_hold_char) = *(yy_c_buf_p);
3723
10
}
3724
3725
/** Allocate and initialize an input buffer state.
3726
 * @param file A readable stream.
3727
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3728
 *
3729
 * @return the allocated buffer state.
3730
 */
3731
    YY_BUFFER_STATE pcap_yy_create_buffer  (FILE * file, int  size )
3732
{
3733
	YY_BUFFER_STATE b;
3734
3735
4
	b = (YY_BUFFER_STATE) pcap_yyalloc(sizeof( struct yy_buffer_state )  );
3736
2
	if ( ! b )
3737
		YY_FATAL_ERROR( "out of dynamic memory in pcap_yy_create_buffer()" );
3738
3739
2
	b->yy_buf_size = size;
3740
3741
	/* yy_ch_buf has to be 2 characters longer than the size given because
3742
	 * we need to put in 2 end-of-buffer characters.
3743
	 */
3744
2
	b->yy_ch_buf = (char *) pcap_yyalloc(b->yy_buf_size + 2  );
3745
2
	if ( ! b->yy_ch_buf )
3746
		YY_FATAL_ERROR( "out of dynamic memory in pcap_yy_create_buffer()" );
3747
3748
2
	b->yy_is_our_buffer = 1;
3749
3750
2
	pcap_yy_init_buffer(b,file );
3751
3752
2
	return b;
3753
}
3754
3755
/** Destroy the buffer.
3756
 * @param b a buffer created with pcap_yy_create_buffer()
3757
 *
3758
 */
3759
    void pcap_yy_delete_buffer (YY_BUFFER_STATE  b )
3760
{
3761
3762
	if ( ! b )
3763
		return;
3764
3765
	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3766
		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3767
3768
	if ( b->yy_is_our_buffer )
3769
		pcap_yyfree((void *) b->yy_ch_buf  );
3770
3771
	pcap_yyfree((void *) b  );
3772
}
3773
3774
/* Initializes or reinitializes a buffer.
3775
 * This function is sometimes called more than once on the same buffer,
3776
 * such as during a pcap_yyrestart() or at EOF.
3777
 */
3778
    static void pcap_yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3779
3780
{
3781
12
	int oerrno = errno;
3782
3783
6
	pcap_yy_flush_buffer(b );
3784
3785
6
	b->yy_input_file = file;
3786
6
	b->yy_fill_buffer = 1;
3787
3788
    /* If b is the current buffer, then pcap_yy_init_buffer was _probably_
3789
     * called from pcap_yyrestart() or through yy_get_next_buffer.
3790
     * In that case, we don't want to reset the lineno or column.
3791
     */
3792

18
    if (b != YY_CURRENT_BUFFER){
3793
2
        b->yy_bs_lineno = 1;
3794
2
        b->yy_bs_column = 0;
3795
2
    }
3796
3797

12
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3798
3799
6
	errno = oerrno;
3800
6
}
3801
3802
/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3803
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3804
 *
3805
 */
3806
    void pcap_yy_flush_buffer (YY_BUFFER_STATE  b )
3807
{
3808
12
    	if ( ! b )
3809
		return;
3810
3811
6
	b->yy_n_chars = 0;
3812
3813
	/* We always need two end-of-buffer characters.  The first causes
3814
	 * a transition to the end-of-buffer state.  The second causes
3815
	 * a jam in that state.
3816
	 */
3817
6
	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3818
6
	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3819
3820
6
	b->yy_buf_pos = &b->yy_ch_buf[0];
3821
3822
6
	b->yy_at_bol = 1;
3823
6
	b->yy_buffer_status = YY_BUFFER_NEW;
3824
3825

18
	if ( b == YY_CURRENT_BUFFER )
3826
4
		pcap_yy_load_buffer_state( );
3827
6
}
3828
3829
/** Pushes the new state onto the stack. The new state becomes
3830
 *  the current state. This function will allocate the stack
3831
 *  if necessary.
3832
 *  @param new_buffer The new state.
3833
 *
3834
 */
3835
void pcap_yypush_buffer_state (YY_BUFFER_STATE new_buffer )
3836
{
3837
    	if (new_buffer == NULL)
3838
		return;
3839
3840
	pcap_yyensure_buffer_stack();
3841
3842
	/* This block is copied from pcap_yy_switch_to_buffer. */
3843
	if ( YY_CURRENT_BUFFER )
3844
		{
3845
		/* Flush out information for old buffer. */
3846
		*(yy_c_buf_p) = (yy_hold_char);
3847
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3848
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3849
		}
3850
3851
	/* Only push if top exists. Otherwise, replace top. */
3852
	if (YY_CURRENT_BUFFER)
3853
		(yy_buffer_stack_top)++;
3854
	YY_CURRENT_BUFFER_LVALUE = new_buffer;
3855
3856
	/* copied from pcap_yy_switch_to_buffer. */
3857
	pcap_yy_load_buffer_state( );
3858
	(yy_did_buffer_switch_on_eof) = 1;
3859
}
3860
3861
/** Removes and deletes the top of the stack, if present.
3862
 *  The next element becomes the new top.
3863
 *
3864
 */
3865
void pcap_yypop_buffer_state (void)
3866
{
3867
    	if (!YY_CURRENT_BUFFER)
3868
		return;
3869
3870
	pcap_yy_delete_buffer(YY_CURRENT_BUFFER );
3871
	YY_CURRENT_BUFFER_LVALUE = NULL;
3872
	if ((yy_buffer_stack_top) > 0)
3873
		--(yy_buffer_stack_top);
3874
3875
	if (YY_CURRENT_BUFFER) {
3876
		pcap_yy_load_buffer_state( );
3877
		(yy_did_buffer_switch_on_eof) = 1;
3878
	}
3879
}
3880
3881
/* Allocates the stack if it does not exist.
3882
 *  Guarantees space for at least one push.
3883
 */
3884
static void pcap_yyensure_buffer_stack (void)
3885
{
3886
	yy_size_t num_to_alloc;
3887
3888
4
	if (!(yy_buffer_stack)) {
3889
3890
		/* First allocation is just for 2 elements, since we don't know if this
3891
		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3892
		 * immediate realloc on the next call.
3893
         */
3894
		num_to_alloc = 1;
3895
2
		(yy_buffer_stack) = (struct yy_buffer_state**)pcap_yyalloc
3896
								(num_to_alloc * sizeof(struct yy_buffer_state*)
3897
								);
3898
2
		if ( ! (yy_buffer_stack) )
3899
			YY_FATAL_ERROR( "out of dynamic memory in pcap_yyensure_buffer_stack()" );
3900
3901
2
		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3902
3903
2
		(yy_buffer_stack_max) = num_to_alloc;
3904
2
		(yy_buffer_stack_top) = 0;
3905
2
		return;
3906
	}
3907
3908
	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3909
3910
		/* Increase the buffer to prepare for a possible push. */
3911
		int grow_size = 8 /* arbitrary grow size */;
3912
3913
		num_to_alloc = (yy_buffer_stack_max) + grow_size;
3914
		(yy_buffer_stack) = (struct yy_buffer_state**)pcap_yyrealloc
3915
								((yy_buffer_stack),
3916
								num_to_alloc * sizeof(struct yy_buffer_state*)
3917
								);
3918
		if ( ! (yy_buffer_stack) )
3919
			YY_FATAL_ERROR( "out of dynamic memory in pcap_yyensure_buffer_stack()" );
3920
3921
		/* zero only the new slots.*/
3922
		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3923
		(yy_buffer_stack_max) = num_to_alloc;
3924
	}
3925
2
}
3926
3927
/** Setup the input buffer state to scan directly from a user-specified character buffer.
3928
 * @param base the character buffer
3929
 * @param size the size in bytes of the character buffer
3930
 *
3931
 * @return the newly allocated buffer state object.
3932
 */
3933
YY_BUFFER_STATE pcap_yy_scan_buffer  (char * base, yy_size_t  size )
3934
{
3935
	YY_BUFFER_STATE b;
3936
3937
	if ( size < 2 ||
3938
	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3939
	     base[size-1] != YY_END_OF_BUFFER_CHAR )
3940
		/* They forgot to leave room for the EOB's. */
3941
		return 0;
3942
3943
	b = (YY_BUFFER_STATE) pcap_yyalloc(sizeof( struct yy_buffer_state )  );
3944
	if ( ! b )
3945
		YY_FATAL_ERROR( "out of dynamic memory in pcap_yy_scan_buffer()" );
3946
3947
	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
3948
	b->yy_buf_pos = b->yy_ch_buf = base;
3949
	b->yy_is_our_buffer = 0;
3950
	b->yy_input_file = 0;
3951
	b->yy_n_chars = b->yy_buf_size;
3952
	b->yy_is_interactive = 0;
3953
	b->yy_at_bol = 1;
3954
	b->yy_fill_buffer = 0;
3955
	b->yy_buffer_status = YY_BUFFER_NEW;
3956
3957
	pcap_yy_switch_to_buffer(b  );
3958
3959
	return b;
3960
}
3961
3962
/** Setup the input buffer state to scan a string. The next call to pcap_yylex() will
3963
 * scan from a @e copy of @a str.
3964
 * @param yystr a NUL-terminated string to scan
3965
 *
3966
 * @return the newly allocated buffer state object.
3967
 * @note If you want to scan bytes that may contain NUL values, then use
3968
 *       pcap_yy_scan_bytes() instead.
3969
 */
3970
YY_BUFFER_STATE pcap_yy_scan_string (yyconst char * yystr )
3971
{
3972
3973
	return pcap_yy_scan_bytes(yystr,strlen(yystr) );
3974
}
3975
3976
/** Setup the input buffer state to scan the given bytes. The next call to pcap_yylex() will
3977
 * scan from a @e copy of @a bytes.
3978
 * @param yybytes the byte buffer to scan
3979
 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3980
 *
3981
 * @return the newly allocated buffer state object.
3982
 */
3983
YY_BUFFER_STATE pcap_yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
3984
{
3985
	YY_BUFFER_STATE b;
3986
	char *buf;
3987
	yy_size_t n;
3988
	yy_size_t i;
3989
3990
	/* Get memory for full buffer, including space for trailing EOB's. */
3991
	n = _yybytes_len + 2;
3992
	buf = (char *) pcap_yyalloc(n  );
3993
	if ( ! buf )
3994
		YY_FATAL_ERROR( "out of dynamic memory in pcap_yy_scan_bytes()" );
3995
3996
	for ( i = 0; i < _yybytes_len; ++i )
3997
		buf[i] = yybytes[i];
3998
3999
	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4000
4001
	b = pcap_yy_scan_buffer(buf,n );
4002
	if ( ! b )
4003
		YY_FATAL_ERROR( "bad buffer in pcap_yy_scan_bytes()" );
4004
4005
	/* It's okay to grow etc. this buffer, and we should throw it
4006
	 * away when we're done.
4007
	 */
4008
	b->yy_is_our_buffer = 1;
4009
4010
	return b;
4011
}
4012
4013
#ifndef YY_EXIT_FAILURE
4014
#define YY_EXIT_FAILURE 2
4015
#endif
4016
4017
static void yy_fatal_error (yyconst char* msg )
4018
{
4019
    	(void) fprintf( stderr, "%s\n", msg );
4020
	exit( YY_EXIT_FAILURE );
4021
}
4022
4023
/* Redefine yyless() so it works in section 3 code. */
4024
4025
#undef yyless
4026
#define yyless(n) \
4027
	do \
4028
		{ \
4029
		/* Undo effects of setting up pcap_yytext. */ \
4030
        int yyless_macro_arg = (n); \
4031
        YY_LESS_LINENO(yyless_macro_arg);\
4032
		pcap_yytext[pcap_yyleng] = (yy_hold_char); \
4033
		(yy_c_buf_p) = pcap_yytext + yyless_macro_arg; \
4034
		(yy_hold_char) = *(yy_c_buf_p); \
4035
		*(yy_c_buf_p) = '\0'; \
4036
		pcap_yyleng = yyless_macro_arg; \
4037
		} \
4038
	while ( 0 )
4039
4040
/* Accessor  methods (get/set functions) to struct members. */
4041
4042
/** Get the current line number.
4043
 *
4044
 */
4045
int pcap_yyget_lineno  (void)
4046
{
4047
4048
    return pcap_yylineno;
4049
}
4050
4051
/** Get the input stream.
4052
 *
4053
 */
4054
FILE *pcap_yyget_in  (void)
4055
{
4056
        return pcap_yyin;
4057
}
4058
4059
/** Get the output stream.
4060
 *
4061
 */
4062
FILE *pcap_yyget_out  (void)
4063
{
4064
        return pcap_yyout;
4065
}
4066
4067
/** Get the length of the current token.
4068
 *
4069
 */
4070
yy_size_t pcap_yyget_leng  (void)
4071
{
4072
        return pcap_yyleng;
4073
}
4074
4075
/** Get the current token.
4076
 *
4077
 */
4078
4079
char *pcap_yyget_text  (void)
4080
{
4081
        return pcap_yytext;
4082
}
4083
4084
/** Set the current line number.
4085
 * @param line_number
4086
 *
4087
 */
4088
void pcap_yyset_lineno (int  line_number )
4089
{
4090
4091
    pcap_yylineno = line_number;
4092
}
4093
4094
/** Set the input stream. This does not discard the current
4095
 * input buffer.
4096
 * @param in_str A readable stream.
4097
 *
4098
 * @see pcap_yy_switch_to_buffer
4099
 */
4100
void pcap_yyset_in (FILE *  in_str )
4101
{
4102
        pcap_yyin = in_str ;
4103
}
4104
4105
void pcap_yyset_out (FILE *  out_str )
4106
{
4107
        pcap_yyout = out_str ;
4108
}
4109
4110
int pcap_yyget_debug  (void)
4111
{
4112
        return pcap_yy_flex_debug;
4113
}
4114
4115
void pcap_yyset_debug (int  bdebug )
4116
{
4117
        pcap_yy_flex_debug = bdebug ;
4118
}
4119
4120
static int yy_init_globals (void)
4121
{
4122
        /* Initialization is the same as for the non-reentrant scanner.
4123
     * This function is called from pcap_yylex_destroy(), so don't allocate here.
4124
     */
4125
4126
    (yy_buffer_stack) = 0;
4127
    (yy_buffer_stack_top) = 0;
4128
    (yy_buffer_stack_max) = 0;
4129
    (yy_c_buf_p) = (char *) 0;
4130
    (yy_init) = 0;
4131
    (yy_start) = 0;
4132
4133
/* Defined in main.c */
4134
#ifdef YY_STDINIT
4135
    pcap_yyin = stdin;
4136
    pcap_yyout = stdout;
4137
#else
4138
    pcap_yyin = (FILE *) 0;
4139
    pcap_yyout = (FILE *) 0;
4140
#endif
4141
4142
    /* For future reference: Set errno on error, since we are called by
4143
     * pcap_yylex_init()
4144
     */
4145
    return 0;
4146
}
4147
4148
/* pcap_yylex_destroy is for both reentrant and non-reentrant scanners. */
4149
int pcap_yylex_destroy  (void)
4150
{
4151
4152
    /* Pop the buffer stack, destroying each element. */
4153
	while(YY_CURRENT_BUFFER){
4154
		pcap_yy_delete_buffer(YY_CURRENT_BUFFER  );
4155
		YY_CURRENT_BUFFER_LVALUE = NULL;
4156
		pcap_yypop_buffer_state();
4157
	}
4158
4159
	/* Destroy the stack itself. */
4160
	pcap_yyfree((yy_buffer_stack) );
4161
	(yy_buffer_stack) = NULL;
4162
4163
    /* Reset the globals. This is important in a non-reentrant scanner so the next time
4164
     * pcap_yylex() is called, initialization will occur. */
4165
    yy_init_globals( );
4166
4167
    return 0;
4168
}
4169
4170
/*
4171
 * Internal utility routines.
4172
 */
4173
4174
#ifndef yytext_ptr
4175
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4176
{
4177
	int i;
4178
	for ( i = 0; i < n; ++i )
4179
		s1[i] = s2[i];
4180
}
4181
#endif
4182
4183
#ifdef YY_NEED_STRLEN
4184
static int yy_flex_strlen (yyconst char * s )
4185
{
4186
	int n;
4187
	for ( n = 0; s[n]; ++n )
4188
		;
4189
4190
	return n;
4191
}
4192
#endif
4193
4194
void *pcap_yyalloc (yy_size_t  size )
4195
{
4196
12
	return (void *) malloc( size );
4197
}
4198
4199
void *pcap_yyrealloc  (void * ptr, yy_size_t  size )
4200
{
4201
	/* The cast to (char *) in the following accommodates both
4202
	 * implementations that use char* generic pointers, and those
4203
	 * that use void* generic pointers.  It works with the latter
4204
	 * because both ANSI C and C++ allow castless assignment from
4205
	 * any pointer type to void*, and deal with argument conversions
4206
	 * as though doing an assignment.
4207
	 */
4208
	return (void *) realloc( (char *) ptr, size );
4209
}
4210
4211
void pcap_yyfree (void * ptr )
4212
{
4213
	free( (char *) ptr );	/* see pcap_yyrealloc() for (char *) cast */
4214
}
4215
4216
#define YYTABLES_NAME "yytables"
4217
4218
#line 315 "scanner.l"
4219
4220
4221
void
4222
lex_init(buf)
4223
	char *buf;
4224
{
4225
	in_buffer = buf;
4226
	pcap_yyrestart(NULL);
4227
}
4228
4229
/*
4230
 * Also define a pcap_yywrap.  Note that if we're using flex, it will
4231
 * define a macro to map this identifier to pcap_wrap.
4232
 */
4233
int
4234
pcap_yywrap()
4235
{
4236
	return 1;
4237
}
4238
4239
/* Hex digit to integer. */
4240
static inline int
4241
xdtoi(c)
4242
	int c;
4243
{
4244
	if (isdigit(c))
4245
		return c - '0';
4246
	else if (islower(c))
4247
		return c - 'a' + 10;
4248
	else
4249
		return c - 'A' + 10;
4250
}
4251
4252
/*
4253
 * Convert string to integer.  Just like atoi(), but checks for
4254
 * preceding 0x or 0 and uses hex or octal instead of decimal.
4255
 */
4256
static int
4257
stoi(s)
4258
	char *s;
4259
{
4260
	int base = 10;
4261
	int n = 0;
4262
4263
	if (*s == '0') {
4264
		if (s[1] == 'x' || s[1] == 'X') {
4265
			s += 2;
4266
			base = 16;
4267
		}
4268
		else {
4269
			base = 8;
4270
			s += 1;
4271
		}
4272
	}
4273
	while (*s)
4274
		n = n * base + xdtoi(*s++);
4275
4276
	return n;
4277
}
4278
4279