NativeEnumerated.c vars NULL init and check
[com/asn1c.git] / libasn1parser / asn1p_l.c
1 #line 2 "asn1p_l.c"
2
3 #line 4 "asn1p_l.c"
4
5 #define  YY_INT_ALIGNED short int
6
7 /* A lexical scanner generated by flex */
8
9 /* %not-for-header */
10
11 /* %if-c-only */
12 /* %if-not-reentrant */
13 #define yy_create_buffer asn1p__create_buffer
14 #define yy_delete_buffer asn1p__delete_buffer
15 #define yy_flex_debug asn1p__flex_debug
16 #define yy_init_buffer asn1p__init_buffer
17 #define yy_flush_buffer asn1p__flush_buffer
18 #define yy_load_buffer_state asn1p__load_buffer_state
19 #define yy_switch_to_buffer asn1p__switch_to_buffer
20 #define yyin asn1p_in
21 #define yyleng asn1p_leng
22 #define yylex asn1p_lex
23 #define yylineno asn1p_lineno
24 #define yyout asn1p_out
25 #define yyrestart asn1p_restart
26 #define yytext asn1p_text
27 #define yywrap asn1p_wrap
28 #define yyalloc asn1p_alloc
29 #define yyrealloc asn1p_realloc
30 #define yyfree asn1p_free
31
32 /* %endif */
33 /* %endif */
34 /* %ok-for-header */
35
36 #define FLEX_SCANNER
37 #define YY_FLEX_MAJOR_VERSION 2
38 #define YY_FLEX_MINOR_VERSION 5
39 #define YY_FLEX_SUBMINOR_VERSION 35
40 #if YY_FLEX_SUBMINOR_VERSION > 0
41 #define FLEX_BETA
42 #endif
43
44 /* %if-c++-only */
45 /* %endif */
46
47 /* %if-c-only */
48     
49 /* %endif */
50
51 /* %if-c-only */
52
53 /* %endif */
54
55 /* First, we deal with  platform-specific or compiler-specific issues. */
56
57 /* begin standard C headers. */
58 /* %if-c-only */
59 #include <stdio.h>
60 #include <string.h>
61 #include <errno.h>
62 #include <stdlib.h>
63 /* %endif */
64
65 /* %if-tables-serialization */
66 /* %endif */
67 /* end standard C headers. */
68
69 /* %if-c-or-c++ */
70 /* flex integer type definitions */
71
72 #ifndef FLEXINT_H
73 #define FLEXINT_H
74
75 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
76
77 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
78
79 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
80  * if you want the limit (max/min) macros for int types. 
81  */
82 #ifndef __STDC_LIMIT_MACROS
83 #define __STDC_LIMIT_MACROS 1
84 #endif
85
86 #include <inttypes.h>
87 typedef int8_t flex_int8_t;
88 typedef uint8_t flex_uint8_t;
89 typedef int16_t flex_int16_t;
90 typedef uint16_t flex_uint16_t;
91 typedef int32_t flex_int32_t;
92 typedef uint32_t flex_uint32_t;
93 typedef uint64_t flex_uint64_t;
94 #else
95 typedef signed char flex_int8_t;
96 typedef short int flex_int16_t;
97 typedef int flex_int32_t;
98 typedef unsigned char flex_uint8_t; 
99 typedef unsigned short int flex_uint16_t;
100 typedef unsigned int flex_uint32_t;
101 #endif /* ! C99 */
102
103 /* Limits of integral types. */
104 #ifndef INT8_MIN
105 #define INT8_MIN               (-128)
106 #endif
107 #ifndef INT16_MIN
108 #define INT16_MIN              (-32767-1)
109 #endif
110 #ifndef INT32_MIN
111 #define INT32_MIN              (-2147483647-1)
112 #endif
113 #ifndef INT8_MAX
114 #define INT8_MAX               (127)
115 #endif
116 #ifndef INT16_MAX
117 #define INT16_MAX              (32767)
118 #endif
119 #ifndef INT32_MAX
120 #define INT32_MAX              (2147483647)
121 #endif
122 #ifndef UINT8_MAX
123 #define UINT8_MAX              (255U)
124 #endif
125 #ifndef UINT16_MAX
126 #define UINT16_MAX             (65535U)
127 #endif
128 #ifndef UINT32_MAX
129 #define UINT32_MAX             (4294967295U)
130 #endif
131
132 #endif /* ! FLEXINT_H */
133
134 /* %endif */
135
136 /* %if-c++-only */
137 /* %endif */
138
139 #ifdef __cplusplus
140
141 /* The "const" storage-class-modifier is valid. */
142 #define YY_USE_CONST
143
144 #else   /* ! __cplusplus */
145
146 /* C99 requires __STDC__ to be defined as 1. */
147 #if defined (__STDC__)
148
149 #define YY_USE_CONST
150
151 #endif  /* defined (__STDC__) */
152 #endif  /* ! __cplusplus */
153
154 #ifdef YY_USE_CONST
155 #define yyconst const
156 #else
157 #define yyconst
158 #endif
159
160 /* %not-for-header */
161
162 /* Returned upon end-of-file. */
163 #define YY_NULL 0
164 /* %ok-for-header */
165
166 /* %not-for-header */
167
168 /* Promotes a possibly negative, possibly signed char to an unsigned
169  * integer for use as an array index.  If the signed char is negative,
170  * we want to instead treat it as an 8-bit unsigned char, hence the
171  * double cast.
172  */
173 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
174 /* %ok-for-header */
175
176 /* %if-reentrant */
177 /* %endif */
178
179 /* %if-not-reentrant */
180
181 /* %endif */
182
183 /* Enter a start condition.  This macro really ought to take a parameter,
184  * but we do it the disgusting crufty way forced on us by the ()-less
185  * definition of BEGIN.
186  */
187 #define BEGIN (yy_start) = 1 + 2 *
188
189 /* Translate the current start state into a value that can be later handed
190  * to BEGIN to return to the state.  The YYSTATE alias is for lex
191  * compatibility.
192  */
193 #define YY_START (((yy_start) - 1) / 2)
194 #define YYSTATE YY_START
195
196 /* Action number for EOF rule of a given start state. */
197 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
198
199 /* Special action meaning "start processing a new file". */
200 #define YY_NEW_FILE asn1p_restart(asn1p_in  )
201
202 #define YY_END_OF_BUFFER_CHAR 0
203
204 /* Size of default input buffer. */
205 #ifndef YY_BUF_SIZE
206 #define YY_BUF_SIZE 16384
207 #endif
208
209 /* The state buf must be large enough to hold one state per character in the main buffer.
210  */
211 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
212
213 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
214 #define YY_TYPEDEF_YY_BUFFER_STATE
215 typedef struct yy_buffer_state *YY_BUFFER_STATE;
216 #endif
217
218 #ifndef YY_TYPEDEF_YY_SIZE_T
219 #define YY_TYPEDEF_YY_SIZE_T
220 typedef size_t yy_size_t;
221 #endif
222
223 /* %if-not-reentrant */
224 extern yy_size_t asn1p_leng;
225 /* %endif */
226
227 /* %if-c-only */
228 /* %if-not-reentrant */
229 extern FILE *asn1p_in, *asn1p_out;
230 /* %endif */
231 /* %endif */
232
233 #define EOB_ACT_CONTINUE_SCAN 0
234 #define EOB_ACT_END_OF_FILE 1
235 #define EOB_ACT_LAST_MATCH 2
236
237     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
238      *       access to the local variable yy_act. Since yyless() is a macro, it would break
239      *       existing scanners that call yyless() from OUTSIDE asn1p_lex. 
240      *       One obvious solution it to make yy_act a global. I tried that, and saw
241      *       a 5% performance hit in a non-asn1p_lineno scanner, because yy_act is
242      *       normally declared as a register variable-- so it is not worth it.
243      */
244     #define  YY_LESS_LINENO(n) \
245             do { \
246                 yy_size_t yyl;\
247                 for ( yyl = n; yyl < asn1p_leng; ++yyl )\
248                     if ( asn1p_text[yyl] == '\n' )\
249                         --asn1p_lineno;\
250             }while(0)
251     
252 /* Return all but the first "n" matched characters back to the input stream. */
253 #define yyless(n) \
254         do \
255                 { \
256                 /* Undo effects of setting up asn1p_text. */ \
257         int yyless_macro_arg = (n); \
258         YY_LESS_LINENO(yyless_macro_arg);\
259                 *yy_cp = (yy_hold_char); \
260                 YY_RESTORE_YY_MORE_OFFSET \
261                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
262                 YY_DO_BEFORE_ACTION; /* set up asn1p_text again */ \
263                 } \
264         while ( 0 )
265
266 #define unput(c) yyunput( c, (yytext_ptr)  )
267
268 #ifndef YY_STRUCT_YY_BUFFER_STATE
269 #define YY_STRUCT_YY_BUFFER_STATE
270 struct yy_buffer_state
271         {
272 /* %if-c-only */
273         FILE *yy_input_file;
274 /* %endif */
275
276 /* %if-c++-only */
277 /* %endif */
278
279         char *yy_ch_buf;                /* input buffer */
280         char *yy_buf_pos;               /* current position in input buffer */
281
282         /* Size of input buffer in bytes, not including room for EOB
283          * characters.
284          */
285         yy_size_t yy_buf_size;
286
287         /* Number of characters read into yy_ch_buf, not including EOB
288          * characters.
289          */
290         yy_size_t yy_n_chars;
291
292         /* Whether we "own" the buffer - i.e., we know we created it,
293          * and can realloc() it to grow it, and should free() it to
294          * delete it.
295          */
296         int yy_is_our_buffer;
297
298         /* Whether this is an "interactive" input source; if so, and
299          * if we're using stdio for input, then we want to use getc()
300          * instead of fread(), to make sure we stop fetching input after
301          * each newline.
302          */
303         int yy_is_interactive;
304
305         /* Whether we're considered to be at the beginning of a line.
306          * If so, '^' rules will be active on the next match, otherwise
307          * not.
308          */
309         int yy_at_bol;
310
311     int yy_bs_lineno; /**< The line count. */
312     int yy_bs_column; /**< The column count. */
313     
314         /* Whether to try to fill the input buffer when we reach the
315          * end of it.
316          */
317         int yy_fill_buffer;
318
319         int yy_buffer_status;
320
321 #define YY_BUFFER_NEW 0
322 #define YY_BUFFER_NORMAL 1
323         /* When an EOF's been seen but there's still some text to process
324          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
325          * shouldn't try reading from the input source any more.  We might
326          * still have a bunch of tokens to match, though, because of
327          * possible backing-up.
328          *
329          * When we actually see the EOF, we change the status to "new"
330          * (via asn1p_restart()), so that the user can continue scanning by
331          * just pointing asn1p_in at a new input file.
332          */
333 #define YY_BUFFER_EOF_PENDING 2
334
335         };
336 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
337
338 /* %if-c-only Standard (non-C++) definition */
339 /* %not-for-header */
340
341 /* %if-not-reentrant */
342
343 /* Stack of input buffers. */
344 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
345 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
346 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
347 /* %endif */
348 /* %ok-for-header */
349
350 /* %endif */
351
352 /* We provide macros for accessing buffer states in case in the
353  * future we want to put the buffer states in a more general
354  * "scanner state".
355  *
356  * Returns the top of the stack, or NULL.
357  */
358 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
359                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
360                           : NULL)
361
362 /* Same as previous macro, but useful when we know that the buffer stack is not
363  * NULL or when we need an lvalue. For internal use only.
364  */
365 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
366
367 /* %if-c-only Standard (non-C++) definition */
368
369 /* %if-not-reentrant */
370 /* %not-for-header */
371
372 /* yy_hold_char holds the character lost when asn1p_text is formed. */
373 static char yy_hold_char;
374 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
375 yy_size_t asn1p_leng;
376
377 /* Points to current character in buffer. */
378 static char *yy_c_buf_p = (char *) 0;
379 static int yy_init = 0;         /* whether we need to initialize */
380 static int yy_start = 0;        /* start state number */
381
382 /* Flag which is used to allow asn1p_wrap()'s to do buffer switches
383  * instead of setting up a fresh asn1p_in.  A bit of a hack ...
384  */
385 static int yy_did_buffer_switch_on_eof;
386 /* %ok-for-header */
387
388 /* %endif */
389
390 void asn1p_restart (FILE *input_file  );
391 void asn1p__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
392 YY_BUFFER_STATE asn1p__create_buffer (FILE *file,int size  );
393 void asn1p__delete_buffer (YY_BUFFER_STATE b  );
394 void asn1p__flush_buffer (YY_BUFFER_STATE b  );
395 void asn1p_push_buffer_state (YY_BUFFER_STATE new_buffer  );
396 void asn1p_pop_buffer_state (void );
397
398 static void asn1p_ensure_buffer_stack (void );
399 static void asn1p__load_buffer_state (void );
400 static void asn1p__init_buffer (YY_BUFFER_STATE b,FILE *file  );
401
402 #define YY_FLUSH_BUFFER asn1p__flush_buffer(YY_CURRENT_BUFFER )
403
404 YY_BUFFER_STATE asn1p__scan_buffer (char *base,yy_size_t size  );
405 YY_BUFFER_STATE asn1p__scan_string (yyconst char *yy_str  );
406 YY_BUFFER_STATE asn1p__scan_bytes (yyconst char *bytes,yy_size_t len  );
407
408 /* %endif */
409
410 void *asn1p_alloc (yy_size_t  );
411 void *asn1p_realloc (void *,yy_size_t  );
412 void asn1p_free (void *  );
413
414 #define yy_new_buffer asn1p__create_buffer
415
416 #define yy_set_interactive(is_interactive) \
417         { \
418         if ( ! YY_CURRENT_BUFFER ){ \
419         asn1p_ensure_buffer_stack (); \
420                 YY_CURRENT_BUFFER_LVALUE =    \
421             asn1p__create_buffer(asn1p_in,YY_BUF_SIZE ); \
422         } \
423         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
424         }
425
426 #define yy_set_bol(at_bol) \
427         { \
428         if ( ! YY_CURRENT_BUFFER ){\
429         asn1p_ensure_buffer_stack (); \
430                 YY_CURRENT_BUFFER_LVALUE =    \
431             asn1p__create_buffer(asn1p_in,YY_BUF_SIZE ); \
432         } \
433         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
434         }
435
436 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
437
438 /* %% [1.0] asn1p_text/asn1p_in/asn1p_out/yy_state_type/asn1p_lineno etc. def's & init go here */
439 /* Begin user sect3 */
440
441 #define asn1p_wrap(n) 1
442 #define YY_SKIP_YYWRAP
443
444 #define FLEX_DEBUG
445
446 typedef unsigned char YY_CHAR;
447
448 FILE *asn1p_in = (FILE *) 0, *asn1p_out = (FILE *) 0;
449
450 typedef int yy_state_type;
451
452 extern int asn1p_lineno;
453
454 int asn1p_lineno = 1;
455
456 extern char *asn1p_text;
457 #define yytext_ptr asn1p_text
458
459 /* %if-c-only Standard (non-C++) definition */
460
461 static yy_state_type yy_get_previous_state (void );
462 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
463 static int yy_get_next_buffer (void );
464 static void yy_fatal_error (yyconst char msg[]  );
465
466 /* %endif */
467
468 /* Done after the current pattern has been matched and before the
469  * corresponding action - sets up asn1p_text.
470  */
471 #define YY_DO_BEFORE_ACTION \
472         (yytext_ptr) = yy_bp; \
473 /* %% [2.0] code to fiddle asn1p_text and asn1p_leng for yymore() goes here \ */\
474         asn1p_leng = (yy_size_t) (yy_cp - yy_bp); \
475         (yy_hold_char) = *yy_cp; \
476         *yy_cp = '\0'; \
477 /* %% [3.0] code to copy yytext_ptr to asn1p_text[] goes here, if %array \ */\
478         (yy_c_buf_p) = yy_cp;
479
480 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
481 #define YY_NUM_RULES 142
482 #define YY_END_OF_BUFFER 143
483 /* This struct is not used in this scanner,
484    but its presence is necessary. */
485 struct yy_trans_info
486         {
487         flex_int32_t yy_verify;
488         flex_int32_t yy_nxt;
489         };
490 static yyconst flex_int16_t yy_acclist[1290] =
491     {   0,
492       143,  141,  142,  134,  141,  142,  134,  142,  139,  141,
493       142,   21,  141,  142,  139,  141,  142,  141,  142,  139,
494       141,  142,  141,  142,  141,  142,  139,  141,  142,  141,
495       142,   35,  141,  142,   34,  141,  142,  139,  141,  142,
496       141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
497       122,  123,  141,  142,  122,  123,  141,  142,  122,  123,
498       141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
499       122,  123,  141,  142,  122,  123,  141,  142,  122,  123,
500       141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
501       122,  123,  141,  142,  122,  123,  141,  142,  122,  123,
502
503       141,  142,  122,  123,  141,  142,  122,  123,  141,  142,
504       122,  123,  141,  142,  122,  123,  141,  142,  139,  141,
505       142,  139,  141,  142,  121,  141,  142,  139,  141,  142,
506       141,  142,   11,  141,  142,    8,  142,    8,  141,  142,
507        10,  141,  142,   10,  141,  142,   13,   15,  141,  142,
508        13,  142,   15,  141,  142,   15,  141,  142,   15,  141,
509       142,   23,  141,  142,   23,  142,   24,  141,  142,   18,
510       141,  142,   18,  142,   20,  141,  142,   20,  141,  142,
511        16,  141,  142,   17,  141,  142,   27,   29,  141,  142,
512        29,  141,  142,   30,  142,   27,   28,   29,  141,  142,
513
514        27,   28,   29,  141,  142,  132,  141,  142,  132,  142,
515       141,  142,  128,  141,  142,  141,  142,  141,  142,  127,
516       141,  142,  130,  141,  142,  131,  141,  142,  129,  141,
517       142,  133,  141,  142,  134,  141,  142,  134,  142,  141,
518       142,  141,  142,  122,  141,  142,  134,   21,   21,  119,
519       120,    7,   33,  126,   12,   36,   34,   36,  122,  123,
520       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
521       123,  122,  123,  122,  123,  122,  123,  122,  123,   46,
522       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
523       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
524
525       123,  123,  122,  123,  122,  123,  122,  123,  122,  123,
526       122,  123,  122,  123,  122,  123,  122,  123,  123,  122,
527       123,  122,  123,   91,  122,  123,  122,  123,  123,  122,
528       123,  122,  123,  122,  123,  122,  123,  123,  122,  123,
529       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
530       122,  123,  122,  123,  123,  122,  123,  122,  123,  123,
531       123,  122,  123,  137,  138,  121,   11,    9,    9,   14,
532        23,   22,   18,   27,   27,   28,   27,   28,  132,    7,
533       127,  122,  140,  119,  120,   33,   36,  125,   36,  124,
534       122,  123,  123,  122,  123,   38,  122,  123,   39,  122,
535
536       123,  122,  123,  122,  123,  122,  123,   43,  122,  123,
537       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
538       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
539        60,  122,  123,  122,  123,  122,  123,  122,  123,  122,
540       123,  122,  123,  122,  123,  123,  123,  122,  123,  122,
541       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
542       123,   83,  122,  123,   84,  122,  123,  122,  123,  123,
543       122,  123,  122,  123,  122,  123,  123,  122,  123,   94,
544       122,  123,  122,  123,  122,  123,  122,  123,  123,  122,
545       123,  122,  123,  122,  123,  102,  122,  123,  122,  123,
546
547       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
548       123,  122,  123,  122,  123,  122,  123,  123,  123,  123,
549       122,  123,  121,    1,    4,   19,   27,   28,   26,   27,
550        28,  127,  122,  119,  120,   32,   31,    3,    2,  122,
551       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
552       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
553       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
554       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
555       123,  122,  123,   68,  122,  123,  123,  123,  122,  123,
556       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
557
558       122,  123,  122,  123,  122,  123,   86,  122,  123,  123,
559       122,  123,  122,  123,  122,  123,  123,  122,  123,  122,
560       123,  122,  123,  122,  123,  123,   99,  122,  123,  122,
561       123,  122,  123,  103,  122,  123,  122,  123,  122,  123,
562       122,  123,  107,  122,  123,  109,  122,  123,  123,  122,
563       123,  122,  123,  122,  123,  122,  123,  122,  123,  123,
564       123,  123,  118,  122,  123,    4,   27,   28,  122,  123,
565       122,  123,  122,  123,   42,  122,  123,  123,  122,  123,
566       122,  123,  122,  123,   49,  122,  123,  122,  123,  122,
567       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
568
569       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
570       123,  122,  123,   67,  122,  123,  123,  123,  123,  122,
571       123,  122,  123,  122,  123,  122,  123,  122,  123,  122,
572       123,  122,  123,  122,  123,  122,  123,  122,  123,  123,
573       122,  123,   90,  122,  123,  122,  123,  123,  122,  123,
574       122,  123,  122,  123,  123,  122,  123,  122,  123,  122,
575       123,  122,  123,  123,  123,  110,  122,  123,  122,  123,
576       122,  123,  123,  122,  123,  123,  123,  123,  135,   27,
577        28,   37,  122,  123,  122,  123,  122,  123,  123,  122,
578       123,  122,  123,   48,  122,  123,  122,  123,  122,  123,
579
580       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
581       122,  123,  122,  123,  122,  123,   62,  122,  123,  122,
582       123,  122,  123,  122,  123,  122,  123,  123,  123,  123,
583       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
584       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
585       123,   88,  122,  123,  122,  123,  123,  122,  123,  122,
586       123,  122,  123,  122,  123,  123,  122,  123,  122,  123,
587       104,  122,  123,  105,  122,  123,  123,  123,  111,  122,
588       123,  122,  123,  123,  123,  123,  123,  123,   27,   28,
589       122,  123,  122,  123,  123,   45,  122,  123,  122,  123,
590
591       122,  123,  122,  123,  122,  123,   54,  122,  123,   55,
592       122,  123,  122,  123,  122,  123,   58,  122,  123,  122,
593       123,  122,  123,  122,  123,   64,  122,  123,  122,  123,
594       122,  123,  123,  123,  123,  122,  123,  122,  123,   75,
595       122,  123,   76,  122,  123,  122,  123,  122,  123,  122,
596       123,   80,  122,  123,  122,  123,  122,  123,  122,  123,
597       123,  122,  123,  123,   93,  122,  123,  122,  123,   96,
598       122,  123,   98,  122,  123,  123,  122,  123,  122,  123,
599       123,  123,  122,  123,  114,  123,  123,  123,  123,  123,
600        27,   28,  122,  123,  122,  123,  123,  122,  123,  122,
601
602       123,  122,  123,  122,  123,  122,  123,   57,  122,  123,
603       122,  123,  122,  123,   63,  122,  123,  122,  123,   66,
604       122,  123,  123,  123,  123,  123,  122,  123,   74,  122,
605       123,   77,  122,  123,   78,  122,  123,  122,  123,  122,
606       123,  123,  122,  123,  123,   92,  122,  123,  123,  122,
607       123,  123,  122,  123,  101,  122,  123,  123,  123,  122,
608       123,  123,  123,  123,  123,   27,   28,  122,  123,   41,
609       122,  123,   44,  123,   47,  122,  123,   50,  122,  123,
610       122,  123,  122,  123,  122,  123,  122,  123,  122,  123,
611       123,  123,  123,   72,  123,  122,  123,  122,  123,  122,
612
613       123,  123,  122,  123,  123,  123,  122,  123,  123,  106,
614       123,  123,  112,  122,  123,  123,  123,  123,  123,  136,
615        27,  122,  123,   51,  122,  123,  122,  123,   53,  122,
616       123,  122,  123,  122,  123,   61,  122,  123,  122,  123,
617       123,  123,  123,   73,  122,  123,  122,  123,  122,  123,
618       123,  122,  123,  123,  123,  122,  123,  123,  122,  123,
619       123,  115,  123,  123,  123,  123,   27,   40,  122,  123,
620        52,  122,  123,   56,  122,  123,  122,  123,  122,  123,
621       123,  123,  123,  122,  123,  122,  123,  123,  122,  123,
622       123,  123,  122,  123,  123,  122,  123,  123,  123,  123,
623
624       123,   27,    6,  122,  123,  122,  123,  123,  123,  123,
625        79,  122,  123,   81,  122,  123,   82,  123,  122,  123,
626       123,  123,  122,  123,  123,  100,  122,  123,  123,  123,
627       123,  123,   27,  122,  123,   65,  122,  123,   70,  123,
628       123,   71,  123,  122,  123,   87,  123,  123,   95,  122,
629       123,  123,  108,  123,  123,  123,  117,  123,   27,  122,
630       123,  123,   85,  122,  123,  123,  123,  123,  116,  123,
631        27,  122,  123,   69,  123,  123,   97,  123,  113,  123,
632        27,   59,  122,  123,   89,  123,   25,   27,    5
633     } ;
634
635 static yyconst flex_int16_t yy_accept[770] =
636     {   0,
637         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
638         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
639         4,    7,    9,   12,   15,   18,   20,   23,   25,   27,
640        30,   32,   35,   38,   41,   43,   47,   51,   55,   59,
641        63,   67,   71,   75,   79,   83,   87,   91,   95,   99,
642       103,  107,  111,  115,  119,  122,  125,  128,  131,  133,
643       136,  138,  141,  144,  147,  151,  153,  156,  159,  162,
644       165,  167,  170,  173,  175,  178,  181,  184,  187,  191,
645       194,  196,  201,  206,  209,  211,  213,  216,  218,  220,
646       223,  226,  229,  232,  235,  238,  240,  242,  244,  247,
647
648       247,  248,  249,  250,  250,  251,  251,  252,  252,  252,
649       252,  253,  254,  255,  256,  256,  257,  257,  259,  259,
650       259,  261,  263,  265,  267,  269,  271,  272,  274,  276,
651       278,  280,  283,  285,  287,  289,  291,  293,  295,  297,
652       299,  301,  302,  303,  305,  307,  309,  311,  313,  315,
653       317,  319,  320,  322,  324,  327,  329,  330,  332,  334,
654       336,  338,  339,  341,  343,  345,  347,  349,  351,  353,
655       355,  356,  358,  360,  361,  362,  364,  365,  366,  366,
656       367,  367,  367,  367,  367,  368,  369,  370,  371,  372,
657       373,  374,  374,  375,  377,  379,  380,  381,  381,  382,
658
659       382,  382,  383,  384,  384,  384,  385,  385,  386,  386,
660       386,  386,  386,  388,  389,  390,  390,  391,  393,  394,
661       396,  399,  402,  404,  406,  406,  408,  411,  413,  415,
662       417,  419,  421,  423,  425,  427,  429,  431,  434,  436,
663       438,  440,  442,  444,  446,  447,  448,  450,  452,  454,
664       456,  458,  460,  462,  465,  468,  470,  471,  473,  475,
665       477,  478,  480,  483,  485,  487,  489,  490,  492,  494,
666       496,  499,  501,  503,  505,  507,  509,  511,  512,  514,
667       516,  518,  519,  520,  521,  523,  524,  524,  524,  525,
668       526,  527,  529,  532,  533,  533,  534,  534,  535,  536,
669
670       537,  538,  539,  540,  540,  540,  540,  542,  544,  546,
671       548,  550,  552,  554,  556,  558,  560,  562,  564,  566,
672       568,  570,  572,  574,  576,  578,  580,  582,  584,  587,
673       588,  589,  591,  593,  595,  597,  599,  601,  603,  605,
674       607,  610,  611,  613,  615,  617,  618,  620,  622,  624,
675       626,  627,  630,  632,  634,  637,  639,  641,  643,  646,
676       649,  650,  652,  654,  656,  658,  660,  661,  662,  663,
677       666,  666,  666,  666,  666,  667,  669,  669,  669,  671,
678       673,  675,  678,  679,  681,  683,  685,  688,  690,  692,
679       694,  696,  698,  700,  702,  704,  706,  708,  710,  712,
680
681       714,  717,  718,  719,  720,  722,  724,  726,  728,  730,
682       732,  734,  736,  738,  740,  741,  743,  746,  748,  749,
683       751,  751,  753,  755,  756,  758,  760,  762,  764,  765,
684       766,  769,  771,  773,  774,  776,  777,  778,  779,  779,
685       779,  780,  782,  782,  782,  785,  787,  789,  790,  792,
686       794,  797,  799,  801,  803,  805,  807,  809,  811,  813,
687       815,  817,  820,  822,  824,  826,  828,  829,  830,  831,
688       833,  835,  837,  839,  841,  843,  845,  847,  849,  851,
689       851,  852,  855,  857,  858,  860,  862,  864,  866,  867,
690       869,  871,  874,  877,  878,  879,  882,  884,  885,  886,
691
692       887,  888,  889,  889,  889,  891,  891,  891,  893,  895,
693       896,  899,  901,  903,  905,  907,  910,  913,  915,  917,
694       920,  922,  924,  926,  929,  931,  933,  934,  935,  936,
695       938,  940,  943,  946,  948,  950,  952,  955,  957,  959,
696       961,  962,  964,  965,  968,  970,  973,  976,  977,  979,
697       981,  982,  983,  985,  987,  988,  989,  990,  991,  991,
698       993,  993,  993,  995,  997,  998, 1000, 1002, 1004, 1006,
699      1008, 1011, 1013, 1015, 1018, 1020, 1023, 1024, 1025, 1026,
700      1027, 1029, 1032, 1035, 1038, 1040, 1042, 1043, 1045, 1046,
701      1049, 1050, 1052, 1053, 1055, 1058, 1059, 1060, 1062, 1063,
702
703      1064, 1065, 1066, 1066, 1066, 1068, 1068, 1068, 1070, 1073,
704      1075, 1078, 1081, 1083, 1085, 1087, 1087, 1089, 1091, 1092,
705      1093, 1094, 1096, 1098, 1100, 1102, 1103, 1105, 1106, 1107,
706      1109, 1110, 1110, 1112, 1113, 1116, 1117, 1118, 1119, 1120,
707      1120, 1121, 1122, 1122, 1122, 1124, 1127, 1129, 1132, 1134,
708      1136, 1139, 1141, 1142, 1143, 1144, 1147, 1149, 1151, 1152,
709      1154, 1155, 1156, 1158, 1159, 1161, 1162, 1164, 1165, 1166,
710      1167, 1168, 1168, 1168, 1171, 1174, 1177, 1179, 1181, 1182,
711      1183, 1184, 1186, 1188, 1189, 1191, 1192, 1193, 1195, 1196,
712      1198, 1199, 1200, 1201, 1202, 1203, 1204, 1204, 1206, 1208,
713
714      1209, 1210, 1211, 1214, 1217, 1219, 1221, 1222, 1223, 1225,
715      1226, 1229, 1230, 1231, 1232, 1233, 1234, 1234, 1236, 1239,
716      1241, 1242, 1244, 1246, 1248, 1249, 1252, 1253, 1255, 1256,
717      1257, 1259, 1260, 1260, 1262, 1263, 1266, 1267, 1268, 1269,
718      1271, 1272, 1272, 1274, 1276, 1277, 1279, 1281, 1282, 1282,
719      1285, 1287, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289,
720      1289, 1289, 1289, 1289, 1289, 1289, 1289, 1290, 1290
721     } ;
722
723 static yyconst flex_int32_t yy_ec[256] =
724     {   0,
725         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
726         4,    4,    5,    1,    1,    1,    1,    1,    1,    1,
727         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
728         1,    6,    7,    8,    9,    1,    1,   10,   11,   12,
729        12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
730        21,   22,   23,   24,   21,   25,   26,   27,   28,   29,
731        30,   31,    1,   12,   32,   33,   34,   35,   36,   37,
732        38,   39,   40,   41,   42,   43,   44,   45,   46,   47,
733        48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
734        58,    1,   59,   60,    1,    1,   61,   62,   63,   64,
735
736        65,   66,   67,   68,   69,   70,   66,   71,   72,   73,
737        74,   75,   66,   76,   77,   78,   79,   80,   66,   81,
738        66,   82,   83,   84,   85,    1,    1,    1,    1,    1,
739         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
740         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
741         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
742         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,   86,    1,    1,    1,
745        87,    1,    1,    1,    1,    1,    1,    1,    1,    1,
746
747         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
748         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
749         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
750         1,    1,    1,    1,    1,    1,    1,    1,   88,    1,
751         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
752         1,    1,    1,    1,    1
753     } ;
754
755 static yyconst flex_int32_t yy_meta[89] =
756     {   0,
757         1,    2,    3,    4,    4,    2,    1,    5,    1,    1,
758         6,    1,    1,    1,    1,    7,    1,    1,    8,    8,
759         8,    8,    8,    8,    8,    8,    9,    1,    1,    9,
760         1,    8,    8,    8,    8,    8,    8,   10,   10,   10,
761        10,   10,   10,   10,   10,   10,   10,   10,   10,   10,
762        10,   10,   10,   10,   10,   10,   10,    1,    1,    1,
763        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
764        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
765        11,   11,   12,    1,   12,    1,    1,    1
766     } ;
767
768 static yyconst flex_int16_t yy_base[796] =
769     {   0,
770         0,    0,   86,   89,   92,   95,  100,  101,   98,  104,
771       106,  107,  192,  280,  368,    0,  455,    0, 1756, 1741,
772       120,  136, 1737, 1735,  530,  146, 4634,  148,  213, 1728,
773       104,  236,  596, 1712, 4634,  646,  279,  303,  285,  482,
774       111,  581,  197,  434,  499,  221,  597,  697,  500,  705,
775       727,  735,  608,  748, 1679,  105, 1715,  799,  177,    0,
776      4634, 4634, 1713, 1712, 4634, 4634, 1704, 1705, 4634,    0,
777         0, 1708,    0,    0, 1687, 4634, 4634, 4634,    0, 4634,
778      4634,  825,  913,  173,  178,  292, 4634, 1696, 1698, 1689,
779      4634, 4634, 4634, 4634,  209,  354, 1670, 1674, 1682, 1687,
780
781       514,    0, 1686, 1680, 1667,   93, 1666,  855, 1668,  869,
782       116,  928, 1660, 4634,  955,  985, 1003, 1013, 1645, 1018,
783       764,  854,  951, 1008, 1009, 1024, 1657, 1025, 1068, 1069,
784      1084, 1090, 1106, 1112, 1123, 1136, 1139, 1159, 1156, 1167,
785      1180,  112,  170, 1195, 1198, 1206, 1221, 1232, 1243, 1249,
786      1260,  145, 1273, 1276, 1289, 1297,  146, 1300, 1313, 1324,
787      1337,  202, 1353, 1359, 1370, 1376, 1387, 1398, 1404, 1415,
788       231, 1421, 1437,  230,  458, 1436, 4634, 4634,    0, 1655,
789       825, 1471, 1483, 1581,    0, 4634, 1643, 4634,    0, 4634,
790         0, 1625,    0, 1606,  299,  551, 4634,    0, 1633, 1608,
791
792         0, 1631, 4634, 1628,    0, 1619,    0, 1618,  308, 1594,
793       301,  641, 1493, 4634, 1084, 1501, 4634, 1543, 1616, 1495,
794      1501, 1517, 1518, 1533, 1615, 1541, 1544, 1593, 1594, 1609,
795      1617, 1620, 1633, 1641, 1657, 1663, 1674, 1680, 1691, 1697,
796      1708, 1714, 1725, 1736,  209,  254, 1749, 1757, 1760, 1775,
797      1778, 1781, 1807, 1799, 1810, 1823,  249, 1831, 1844, 1852,
798       289, 1855, 1868, 1876, 1884, 1892,  572, 1905, 1908, 1916,
799      1929, 1937, 1945, 1953, 1966, 1974, 1987,  297, 1995, 2011,
800      2012,  469,  456,  459, 2027, 1614, 2078, 2086, 4634, 1613,
801      4634,  181, 1583, 1587, 1544, 1578, 1533, 1567, 1566, 4634,
802
803      4634, 4634, 4634,  545,  731, 1525, 2080, 2081, 2096, 2102,
804      2113, 2119, 2135, 2136, 2151, 2159, 2167, 2183, 2180, 2191,
805      2204, 2207, 2222, 2228, 2239, 2245, 2256, 2271, 2277,  111,
806       607, 2288, 2294, 2309, 2310, 2325, 2331, 2346, 2349, 2357,
807      2370,  251, 2378, 2381, 2394,  460, 2402, 2415, 2423, 2431,
808       446, 2439, 2447, 2460, 2468, 2471, 2489, 2486, 2492, 2507,
809       452, 2510, 2513, 2530, 2536, 2547,  573,  632,  642, 2563,
810      2598, 2623, 2631, 2643, 1557,  308, 1565, 1522, 2627, 2642,
811      2648, 2659,  658, 2677, 2680, 2683, 2698, 2701, 2709, 2722,
812      2730, 2743, 2754, 2760, 2771, 2782, 2797, 2803, 2814, 2820,
813
814      2835,  723,  636,  660, 2836, 2856, 2853, 2874, 2873, 2889,
815      2895, 2906, 2919, 2930,  727, 2927, 2943, 2951,  737, 2959,
816       229, 2967, 2980,  738, 2993, 2996, 3004, 3017,  794,  748,
817      3028, 3034, 3045,  742, 3056,  796,  739,  719,  874, 3107,
818      4634,  203, 1507, 1536, 3071, 3092, 3103,  846, 3114, 3120,
819      3131, 3137, 3153, 3154, 3169, 3180, 3186, 3203, 3209, 3220,
820      3226, 3237, 3243, 3254, 3260, 3276,  847,  731,  848, 3277,
821      3292, 3298, 3309, 3315, 3330, 3336, 3347, 3362, 3368,  623,
822       853, 3379, 3395,  619, 3392, 1510, 3403, 3416,  715, 3424,
823      3439, 3442, 3445,  866,  544, 3460, 3463,  891,  857,  790,
824
825       892,  903, 3514, 3506, 1509, 1501, 1515, 3508, 3509,  865,
826      3524, 3530, 3541, 3547, 3558, 3564, 3575, 3581, 3596, 3597,
827      3612, 3618, 3629, 3640, 3646, 3657,  886,  882,  887, 3663,
828      3674, 3685, 3691, 3702, 3708, 3723, 3724, 3739, 3745, 1500,
829       945, 3756,  921, 3762, 1506, 3773, 3779,  894, 3794, 3800,
830       967,  966, 3816, 1525,  923,  951,  950,  997, 3851,  591,
831      1488,    0, 3845, 3817,  947, 3846, 3861, 3872, 3878, 3889,
832      3895, 3910, 3913, 3921, 3934, 3937,  884, 1043, 1046,  999,
833      3952, 3958, 3969, 3975, 3986, 3992,  969, 1498, 1102, 4003,
834       971, 1493,  953, 4014, 4020, 1110, 1118, 4031,  973,  972,
835
836      1112, 1127, 4082, 4107,  611, 1490, 1462, 4046, 4091, 1484,
837      4092, 4107, 4113, 4128, 4129,  749, 4144, 4150, 1144, 1057,
838      1145, 1483, 4161, 4172, 4183, 1116, 1438, 1160, 1124, 1432,
839      1147, 1028, 1460, 1193, 4189, 1131, 1179, 1138, 1221, 1596,
840      4634, 1438, 1418, 1394, 4200, 4206, 4221, 4222, 4237, 1411,
841      4238, 4253, 1155, 1158, 1201, 4259, 4270, 4281, 1162, 1410,
842      1214, 1228, 1400, 1230, 1393, 1241, 1413, 1246, 1283, 1244,
843      1353, 1355, 1306, 4287, 4298, 4304, 1309, 4315, 1258,  104,
844      1264, 4326, 4332, 1271, 1251, 1295, 1284, 1234, 1286, 1232,
845      1299, 1319, 1310, 1301, 1218, 4634, 1185, 1208, 4347, 1323,
846
847      1339, 1334, 4348, 4363, 1232, 1164, 1345, 1313, 1109, 1347,
848         0, 1359, 1367, 1362, 1371, 1099, 1083, 1097, 4364, 1125,
849      1217, 1049,  934,  954, 1375,    0, 1428,  930, 1459, 1398,
850       880,  822,  791,  819, 1381,    0, 1378, 1469, 1523,  782,
851       743,  720,  732,  755, 1348,  753,  751,  723,  689,    0,
852       648,    0,  572,  605,  482,  436,  406,  394,  288,  273,
853       280,  165, 1250, 1566,  130,  119, 4634, 4634, 4416, 4428,
854      4440, 4452, 4464, 4476, 4487, 4489, 4500, 4512, 4524, 4535,
855      4546, 4551, 4556, 4560, 4565, 4569, 4574, 4578, 4582, 4586,
856      4589, 4593, 4604, 4610, 4621
857
858     } ;
859
860 static yyconst flex_int16_t yy_def[796] =
861     {   0,
862       768,    1,  769,  769,  769,  769,  770,  770,  771,  771,
863       772,  772,  773,  773,  768,   15,   15,   17,  768,  768,
864       768,  768,  768,  774,  768,  775,  768,  768,  768,  768,
865       768,  768,  768,  768,  768,  768,   36,   36,   36,   36,
866        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
867        36,   36,   36,   36,  768,  768,  776,  768,  768,  777,
868       768,  768,  768,  768,  768,  768,  768,  768,  768,  778,
869       778,  768,  779,  779,  768,  768,  768,  768,  780,  768,
870       768,  781,  781,  768,  768,   25,  768,  768,  768,  782,
871       768,  768,  768,  768,  768,  768,  768,  768,  783,  768,
872
873       768,  774,  774,  768,  784,  768,  785,  775,  775,  768,
874       768,  768,  768,  768,  768,  768,  768,  768,  768,  786,
875        36,   36,   36,   36,   36,   36,  787,   36,   36,   36,
876        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
877        36,  787,  787,   36,   36,   36,   36,   36,   36,   36,
878        36,  787,   36,   36,   36,   36,  787,   36,   36,   36,
879        36,  787,   36,   36,   36,   36,   36,   36,   36,   36,
880       787,   36,   36,  787,  787,   36,  768,  768,  788,  776,
881       768,  768,  768,  768,  777,  768,  768,  768,  778,  768,
882       779,  768,  780,   83,   83,  768,  768,  789,  782,  768,
883
884       790,  783,  768,  768,  791,  784,  792,  785,  768,  768,
885       793,  768,  768,  768,  768,  768,  768,  786,  794,   36,
886        36,   36,   36,   36,  794,   36,   36,   36,   36,   36,
887        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
888        36,   36,   36,   36,  787,  787,   36,   36,   36,   36,
889        36,   36,   36,   36,   36,   36,  787,   36,   36,   36,
890       787,   36,   36,   36,   36,   36,  787,   36,   36,   36,
891        36,   36,   36,   36,   36,   36,   36,  787,   36,   36,
892        36,  787,  787,  787,   36,  788,  768,  768,  768,  768,
893       768,   83,   83,  789,  768,  790,  768,  791,  792,  768,
894
895       768,  768,  768,  793,  768,  768,   36,   36,   36,   36,
896        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
897        36,   36,   36,   36,   36,   36,   36,   36,   36,  787,
898       787,   36,   36,   36,   36,   36,   36,   36,   36,   36,
899        36,  787,   36,   36,   36,  787,   36,   36,   36,   36,
900       787,   36,   36,   36,   36,   36,   36,   36,   36,   36,
901       787,   36,   36,   36,   36,   36,  787,  787,  787,   36,
902       768,  768,  768,  768,  768,   83,  768,  768,   36,   36,
903        36,   36,  787,   36,   36,   36,   36,   36,   36,   36,
904        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
905
906        36,  787,  787,  787,   36,   36,   36,   36,   36,   36,
907        36,   36,   36,   36,  787,   36,   36,   36,  787,   36,
908       218,   36,   36,  787,   36,   36,   36,   36,  787,  787,
909        36,   36,   36,  787,   36,  787,  787,  787,  768,  768,
910       768,   83,  768,  768,   36,   36,   36,  787,   36,   36,
911        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
912        36,   36,   36,   36,   36,   36,  787,  787,  787,   36,
913        36,   36,   36,   36,   36,   36,   36,   36,   36,  218,
914       787,   36,   36,  787,   36,  218,   36,   36,  787,   36,
915        36,   36,   36,  787,  787,   36,   36,  787,  787,  787,
916
917       787,  787,  768,  768,   83,  768,  768,   36,   36,  787,
918        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
919        36,   36,   36,   36,   36,   36,  787,  787,  787,   36,
920        36,   36,   36,   36,   36,   36,   36,   36,   36,  218,
921       787,   36,  787,   36,  218,   36,   36,  787,   36,   36,
922       787,  787,   36,  787,  787,  787,  787,  787,  768,   83,
923       768,  795,   36,   36,  787,   36,   36,   36,   36,   36,
924        36,   36,   36,   36,   36,   36,  787,  787,  787,  787,
925        36,   36,   36,   36,   36,   36,  787,  218,  787,   36,
926       787,  218,  787,   36,   36,  787,  787,   36,  787,  787,
927
928       787,  787,  768,  768,   83,  768,  768,   36,   36,  787,
929        36,   36,   36,   36,   36,  218,   36,   36,  787,  787,
930       787,  787,   36,   36,   36,  787,  218,  787,  787,  218,
931       787,  218,  787,  787,   36,  787,  787,  787,  787,  768,
932       768,  780,  768,  768,   36,   36,   36,   36,   36,  218,
933        36,   36,  787,  787,  787,   36,   36,   36,  787,  218,
934       787,  787,  218,  787,  218,  787,  787,  787,  787,  787,
935       780,  768,  768,   36,   36,   36,  218,   36,  787,  787,
936       787,   36,   36,  787,  218,  787,  787,  218,  787,  218,
937       787,  787,  787,  787,  780,  768,  768,  218,   36,  787,
938
939       787,  787,   36,   36,  787,  218,  787,  787,  218,  787,
940       218,  787,  787,  787,  787,  780,  768,  218,   36,  787,
941       787,  787,  218,  787,  787,  218,  787,  787,  787,  787,
942       787,  780,  768,  218,  787,  218,  787,  787,  787,  787,
943       780,  768,  218,  787,  787,  787,  787,  780,  768,  218,
944       787,  780,  768,  768,  768,  768,  768,  768,  768,  768,
945       768,  768,  768,  768,  768,  768,  768,    0,  768,  768,
946       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
947       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
948       768,  768,  768,  768,  768
949
950     } ;
951
952 static yyconst flex_int16_t yy_nxt[4723] =
953     {   0,
954        20,   21,   22,   21,   21,   21,   23,   24,   20,   25,
955        26,   27,   20,   28,   27,   29,   30,   31,   32,   33,
956        33,   33,   33,   33,   33,   33,   34,   23,   35,   35,
957        20,   36,   37,   38,   39,   40,   41,   42,   43,   44,
958        43,   43,   43,   45,   46,   47,   48,   43,   49,   50,
959        51,   52,   53,   54,   43,   43,   43,   55,   56,   23,
960        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
961        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
962        57,   57,   58,   23,   27,   20,   20,   59,   61,   62,
963        62,   61,   62,   62,   61,   62,   62,   61,   62,   62,
964
965        71,   63,   66,   66,   63,   72,   71,   64,   74,   74,
966        64,   72,   67,   67,  100,  100,  114,   68,   68,  225,
967       104,  101,  101,  101,  101,  101,  225,  225,   69,   69,
968       100,  211,   75,   75,  767,   76,   76,  101,  101,  101,
969       101,  101,  140,  121,  212,  766,  100,  108,  108,  108,
970       108,  108,  106,  121,  701,  121,  100,  121,  100,  141,
971       225,  225,  121,  178,  108,  108,  110,  110,  110,  110,
972       110,  110,  110,  110,  196,  196,  196,  196,  196,  196,
973       196,  196,  196,  196,  245,  225,  402,  100,   77,   77,
974        78,   78,   79,   80,   81,   80,   80,   80,   79,   79,
975
976        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
977       101,  101,  101,  101,  101,  261,  257,  225,   79,   79,
978        79,   79,   79,  100,  225,  194,  376,   83,  111,  121,
979       246,  110,  112,  112,  112,  112,  112,  112,  112,  121,
980       763,  121,  505,  121,  768,  225,  225,  194,  121,   79,
981        79,   79,  115,  121,  116,  116,  116,  116,  116,  116,
982       116,  116,  184,  121,  225,  121,  225,  121,  486,  225,
983       267,  117,  151,  330,   80,   79,   80,   79,   79,   79,
984        79,   80,   81,   80,   80,   80,   79,   79,   79,   79,
985        79,   79,   79,   79,   79,   79,   79,   79,  282,  152,
986
987       117,  278,  768,  303,  225,  303,   79,   79,   79,   79,
988        79,  121,  225,  342,  128,   83,  304,  121,  129,  768,
989       136,  121,  130,  121,  131,  121,  415,  121,  331,  121,
990       121,  121,  292,  293,  132,  121,  121,   79,   79,   79,
991       300,  133,  442,  194,  762,  134,  301,  121,  135,  121,
992       761,  768,  194,  346,  121,  101,  101,  101,  101,  101,
993       760,  361,   80,   79,   80,   79,   79,   79,   35,   84,
994        85,   84,   84,   84,   35,   35,   35,   86,   35,   35,
995        35,   35,   87,   88,   35,   89,   35,   35,   35,   35,
996        35,   35,   35,   35,   35,   35,   35,   35,   35,   90,
997
998        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
999        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
1000        90,   90,   90,   90,   90,   91,   92,   35,   35,   35,
1001        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1002        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1003        93,   35,   94,   35,   35,   35,   95,   96,   95,   95,
1004        95,  225,  759,   97,   35,  144,  121,  225,  145,   35,
1005        35,  225,   35,  225,  225,  225,  121,  146,  147,  758,
1006       121,   98,  757,  148,  225,  121,   99,   99,   99,   99,
1007        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1008
1009        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
1010        99,   99,   35,   35,  121,  101,  101,  101,  101,  101,
1011       368,  283,  419,  424,  121,  137,  138,  369,  121,  430,
1012       149,  121,  121,  121,  284,  163,  139,   35,  150,   35,
1013       100,  121,  121,  121,  121,  121,  121,  303,  367,  303,
1014       121,  121,  196,  196,  196,  196,  196,  104,  756,  225,
1015       304,  105,  105,  105,  105,  105,  105,  105,  105,  105,
1016       105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
1017       105,  105,  105,  105,  105,  105,  105,  225,  225,  106,
1018       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
1019
1020       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
1021       107,  107,  115,  121,  118,  118,  118,  118,  118,  118,
1022       118,  118,  225,  121,  552,  121,  642,  121,  605,  153,
1023       154,  117,  121,  155,  225,  194,  755,  436,  768,  121,
1024       121,  121,  305,  156,  351,  142,  305,  225,  121,  754,
1025       121,  225,  121,  543,  121,  194,  143,  225,  157,  121,
1026       117,  120,  540,  225,  121,  121,  121,  121,  121,  121,
1027       121,  121,  306,  225,  403,  225,  175,  121,  122,  121,
1028       121,  121,  121,  121,  121,  121,  121,  121,  123,  121,
1029       124,  121,  125,  121,  121,  121,  121,  126,  121,  121,
1030
1031       121,  121,  121,  438,  468,  437,  127,  127,  127,  127,
1032       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
1033       127,  127,  127,  127,  127,  127,  127,  127,  158,  121,
1034       225,  159,  305,  448,  225,  469,  305,  121,  225,  160,
1035       164,  121,  225,  121,  165,  161,  225,  121,  121,  121,
1036       168,  121,  225,  225,  225,  166,  121,  225,  169,  121,
1037       167,  753,  306,  225,  768,  752,  225,  121,  225,  121,
1038       225,  121,  162,  121,  750,  170,  548,  121,  121,  172,
1039       121,  121,  650,  467,  749,  173,  121,  176,  748,  502,
1040       121,  171,  121,  528,  121,  481,  121,  225,  489,  121,
1041
1042       181,  181,  181,  181,  181,  225,  121,  174,  121,  225,
1043       121,  225,  495,  498,  484,  121,  501,  182,  182,  182,
1044       182,  182,  182,  183,  183,  193,  181,  181,  181,  181,
1045       181,  193,  193,  193,  193,  193,  193,  193,  193,  193,
1046       193,  193,  193,  182,  182,  182,  182,  182,  182,  183,
1047       183,  193,  193,  193,  193,  193,  108,  108,  108,  108,
1048       108,  225,  225,  225,  743,  209,  556,  742,  225,  494,
1049       741,  500,  225,  108,  108,  439,  439,  439,  439,  439,
1050       225,  225,  193,  193,  193,  115,  121,  116,  116,  116,
1051       116,  116,  116,  116,  116,  225,  121,  225,  121,  225,
1052
1053       121,  225,  225,  220,  117,  121,  225,  225,  193,  225,
1054       193,  193,  193,  193,  510,  541,  529,  527,  225,  193,
1055       193,  193,  193,  193,  193,  193,  193,  193,  193,  193,
1056       193,  579,  555,  117,  551,  577,  225,  565,  225,  193,
1057       193,  193,  193,  193,  115,  225,  213,  213,  213,  213,
1058       213,  213,  213,  213,  578,  554,  557,  195,  441,  580,
1059       225,  619,  225,  117,  593,  225,  225,  558,  225,  225,
1060       193,  193,  193,  215,  215,  215,  215,  215,  215,  215,
1061       215,  225,  225,  121,  225,  591,  225,  225,  225,  736,
1062       117,  599,  117,  221,  589,  121,  193,  121,  193,  193,
1063
1064       193,  115,  121,  116,  116,  116,  116,  116,  116,  116,
1065       116,  600,  225,  610,  225,  597,  216,  631,  216,  117,
1066       117,  215,  215,  215,  215,  215,  215,  215,  215,  115,
1067       601,  118,  118,  118,  118,  118,  118,  118,  118,  596,
1068       121,  121,  637,  768,  626,  636,  602,  629,  117,  117,
1069       121,  121,  121,  121,  121,  223,  121,  121,  225,  121,
1070       121,  225,  226,  222,  225,  622,  121,  121,  121,  121,
1071       121,  121,  225,  665,  224,  121,  121,  117,  219,  219,
1072       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
1073       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
1074
1075       121,  121,  215,  215,  215,  215,  215,  215,  215,  215,
1076       121,  121,  121,  121,  121,  228,  121,  225,  227,  121,
1077       121,  654,  121,  621,  620,  225,  121,  225,  121,  229,
1078       121,  225,  121,  225,  121,  121,  121,  230,  121,  225,
1079       225,  121,  225,  232,  121,  734,  225,  733,  121,  732,
1080       121,  231,  121,  225,  121,  121,  121,  121,  121,  225,
1081       225,  638,  225,  121,  726,  121,  233,  234,  121,  121,
1082       225,  236,  235,  225,  121,  225,  633,  225,  121,  628,
1083       121,  121,  121,  121,  659,  121,  662,  121,  121,  240,
1084       121,  121,  237,  238,  225,  634,  664,  667,  121,  121,
1085
1086       121,  121,  241,  121,  639,  121,  242,  121,  225,  243,
1087       239,  121,  121,  121,  723,  669,  225,  247,  121,  653,
1088       655,  680,  121,  679,  121,  244,  121,  121,  668,  225,
1089       121,  121,  225,  248,  684,  661,  225,  121,  121,  121,
1090       121,  121,  121,  225,  121,  225,  121,  225,  121,  121,
1091       121,  764,  249,  121,  250,  764,  225,  121,  718,  225,
1092       717,  225,  716,  121,  121,  121,  711,  121,  666,  681,
1093       251,  252,  121,  225,  121,  121,  121,  253,  121,  225,
1094       765,  121,  686,  121,  709,  121,  225,  121,  735,  121,
1095       706,  121,  121,  255,  121,  121,  670,  254,  225,  225,
1096
1097       121,  225,  256,  687,  121,  121,  121,  689,  121,  691,
1098       225,  121,  694,  258,  225,  121,  225,  121,  121,  121,
1099       121,  121,  121,  692,  121,  225,  259,  121,  225,  121,
1100       700,  121,  121,  121,  225,  121,  702,  705,  225,  121,
1101       121,  121,  121,  121,  121,  121,  121,  260,  121,  225,
1102       262,  121,  708,  698,  225,  121,  121,  121,  693,  121,
1103       225,  710,  225,  225,  121,  263,  121,  707,  121,  121,
1104       121,  712,  265,  715,  225,  264,  266,  225,  714,  121,
1105       697,  121,  225,  121,  268,  121,  225,  725,  121,  720,
1106       225,  121,  696,  225,  713,  269,  225,  121,  695,  121,
1107
1108       722,  121,  121,  121,  121,  121,  270,  721,  121,  271,
1109       121,  724,  121,  225,  121,  727,  121,  275,  121,  121,
1110       121,  121,  121,  751,  273,  728,  272,  121,  225,  121,
1111       121,  274,  690,  121,  730,  729,  121,  731,  121,  688,
1112       121,  276,  121,  225,  121,  744,  121,  121,  121,  121,
1113       121,  745,  737,  121,  685,  121,  677,  121,  673,  121,
1114       279,  121,  672,  121,  740,  121,  277,  121,  121,  121,
1115       280,  671,  121,  281,  225,  225,  663,  660,  121,  121,
1116       121,  121,  121,  121,  225,  287,  285,  121,  121,  183,
1117       183,  183,  183,  183,  183,  183,  183,  288,  225,  225,
1118
1119       738,  183,  183,  183,  183,  183,  183,  183,  183,  115,
1120       644,  213,  213,  213,  213,  213,  213,  213,  213,  215,
1121       215,  215,  215,  215,  215,  215,  215,  121,  117,  643,
1122       307,  739,  630,  121,  627,  746,  606,  121,  225,  121,
1123       225,  121,  592,  121,  588,  121,  121,  121,  562,  121,
1124       121,  561,  121,  560,  545,  507,  506,  117,  120,  121,
1125       308,  121,  121,  121,  121,  121,  444,  764,  121,  121,
1126       443,  764,  375,  121,  378,  121,  121,  121,  309,  121,
1127       310,  207,  205,  121,  121,  121,  121,  121,  121,  747,
1128       121,  203,  121,  201,  377,  121,  765,  640,  640,  640,
1129
1130       640,  640,  198,  219,  219,  219,  219,  219,  219,  219,
1131       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
1132       219,  219,  219,  219,  219,  121,  121,  194,  375,  179,
1133       768,  225,  301,  207,  205,  121,  312,  121,  121,  121,
1134       121,  121,  311,  297,  121,  121,  201,  295,  198,  121,
1135       194,  121,  121,  121,  291,  121,  314,  313,  290,  121,
1136       121,  121,  121,  121,  121,  121,  121,  289,  121,  315,
1137       179,  121,  225,  121,  217,  121,  214,  121,  210,  316,
1138       641,  207,  205,  121,  121,  121,  204,  121,  319,  121,
1139       317,  318,  121,  203,  203,  121,  320,  201,  321,  121,
1140
1141       119,  121,  200,  121,  198,  121,  121,  121,  121,  121,
1142       114,  197,  121,  192,  121,  190,  121,  114,  121,  322,
1143       121,  188,  121,  121,  121,  121,  121,  187,  186,  121,
1144       179,  121,  324,  121,  323,  121,  177,  121,  119,  121,
1145       121,  121,  121,  121,  113,  103,  121,  100,  121,  327,
1146       325,  100,  121,  326,  121,  768,  121,  121,  121,  121,
1147       121,  768,  768,  768,  768,  121,  768,  121,  121,  121,
1148       768,  121,  768,  768,  328,  768,  121,  768,  121,  329,
1149       121,  121,  121,  768,  768,  768,  768,  121,  768,  121,
1150       768,  121,  121,  121,  768,  121,  768,  768,  332,  121,
1151
1152       121,  333,  334,  121,  121,  335,  121,  121,  121,  768,
1153       121,  121,  768,  121,  768,  768,  338,  336,  768,  121,
1154       121,  121,  121,  121,  121,  121,  121,  121,  337,  121,
1155       339,  121,  121,  768,  768,  768,  768,  768,  768,  121,
1156       768,  121,  121,  121,  768,  121,  768,  768,  768,  121,
1157       121,  121,  121,  121,  121,  121,  121,  768,  121,  768,
1158       768,  340,  768,  121,  768,  341,  343,  121,  768,  121,
1159       768,  768,  768,  121,  121,  121,  121,  121,  768,  344,
1160       768,  768,  121,  768,  121,  768,  121,  121,  121,  768,
1161       121,  345,  768,  768,  121,  121,  121,  121,  121,  121,
1162
1163       121,  121,  768,  121,  768,  347,  121,  768,  121,  768,
1164       121,  768,  121,  768,  121,  768,  121,  768,  121,  121,
1165       121,  768,  121,  768,  121,  348,  121,  121,  121,  768,
1166       121,  768,  768,  349,  121,  121,  121,  121,  121,  353,
1167       121,  768,  768,  121,  350,  768,  768,  352,  121,  121,
1168       121,  121,  121,  768,  121,  768,  121,  768,  121,  121,
1169       121,  121,  121,  768,  768,  768,  768,  354,  768,  121,
1170       768,  121,  355,  121,  768,  121,  768,  121,  768,  121,
1171       121,  121,  768,  121,  356,  121,  768,  121,  121,  121,
1172       768,  121,  768,  768,  768,  121,  121,  121,  121,  121,
1173
1174       768,  768,  768,  357,  121,  768,  121,  768,  121,  768,
1175       121,  768,  121,  768,  768,  358,  121,  121,  121,  121,
1176       121,  768,  360,  359,  768,  121,  768,  121,  768,  121,
1177       768,  121,  768,  121,  768,  768,  366,  121,  121,  121,
1178       362,  121,  363,  121,  121,  768,  121,  364,  768,  768,
1179       768,  768,  768,  121,  121,  121,  121,  121,  121,  121,
1180       768,  365,  121,  121,  768,  370,  768,  768,  768,  121,
1181       768,  121,  768,  121,  768,  768,  768,  768,  121,  371,
1182       371,  371,  371,  371,  768,  768,  768,  373,  373,  373,
1183       373,  373,  768,  768,  768,  768,  372,  372,  372,  372,
1184
1185       372,  372,  372,  372,  374,  374,  374,  374,  374,  374,
1186       374,  374,  121,  121,  768,  768,  768,  768,  768,  768,
1187       380,  768,  121,  121,  379,  121,  121,  121,  121,  768,
1188       768,  121,  121,  768,  121,  768,  768,  768,  121,  381,
1189       121,  768,  121,  768,  121,  121,  382,  121,  121,  768,
1190       768,  121,  768,  121,  384,  121,  768,  121,  768,  121,
1191       768,  121,  768,  121,  121,  121,  385,  121,  121,  386,
1192       121,  768,  768,  768,  768,  768,  768,  121,  121,  121,
1193       121,  121,  121,  121,  768,  768,  121,  121,  768,  768,
1194       383,  121,  768,  121,  768,  121,  768,  121,  768,  121,
1195
1196       387,  121,  121,  121,  388,  121,  768,  768,  768,  121,
1197       121,  121,  121,  121,  390,  121,  768,  389,  121,  768,
1198       768,  768,  121,  121,  121,  121,  121,  121,  768,  121,
1199       768,  391,  768,  121,  121,  392,  121,  121,  393,  121,
1200       768,  394,  121,  768,  768,  768,  121,  768,  121,  121,
1201       121,  121,  768,  121,  121,  121,  768,  395,  121,  768,
1202       121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
1203       121,  121,  121,  121,  396,  768,  768,  121,  397,  121,
1204       768,  121,  768,  121,  768,  121,  768,  121,  121,  121,
1205       121,  121,  768,  398,  768,  768,  121,  768,  121,  768,
1206
1207       399,  768,  121,  121,  400,  768,  401,  121,  768,  121,
1208       768,  768,  768,  121,  768,  121,  768,  121,  768,  121,
1209       121,  121,  121,  121,  768,  768,  121,  768,  121,  768,
1210       121,  768,  121,  768,  121,  768,  121,  768,  121,  121,
1211       121,  121,  121,  768,  405,  121,  768,  768,  406,  768,
1212       768,  121,  121,  121,  121,  121,  121,  121,  407,  768,
1213       121,  121,  409,  121,  768,  404,  768,  121,  768,  121,
1214       413,  121,  768,  121,  768,  121,  408,  121,  121,  410,
1215       768,  121,  121,  411,  768,  768,  768,  768,  121,  121,
1216       121,  121,  121,  121,  412,  121,  768,  121,  768,  121,
1217
1218       121,  121,  121,  121,  768,  768,  414,  768,  121,  768,
1219       121,  416,  121,  121,  121,  768,  121,  768,  768,  768,
1220       121,  121,  121,  121,  121,  121,  121,  121,  768,  121,
1221       421,  417,  121,  768,  121,  768,  121,  420,  121,  418,
1222       121,  768,  768,  768,  121,  121,  121,  121,  121,  768,
1223       768,  768,  768,  121,  768,  121,  768,  121,  422,  121,
1224       768,  121,  423,  121,  768,  121,  121,  121,  768,  121,
1225       768,  121,  768,  121,  121,  121,  768,  121,  768,  121,
1226       768,  121,  121,  121,  768,  121,  768,  768,  768,  121,
1227       121,  121,  121,  121,  768,  426,  768,  425,  121,  768,
1228
1229       121,  768,  121,  121,  121,  768,  121,  768,  768,  768,
1230       121,  121,  121,  121,  121,  427,  768,  121,  121,  121,
1231       428,  121,  121,  768,  121,  768,  768,  768,  121,  768,
1232       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
1233       121,  768,  121,  121,  768,  121,  768,  768,  768,  121,
1234       768,  121,  121,  121,  431,  121,  121,  121,  121,  121,
1235       768,  121,  121,  429,  432,  433,  768,  768,  121,  768,
1236       768,  768,  121,  768,  121,  768,  121,  768,  121,  121,
1237       121,  121,  121,  768,  768,  768,  768,  121,  768,  121,
1238       768,  121,  768,  121,  768,  121,  435,  768,  121,  371,
1239
1240       371,  371,  371,  371,  434,  121,  768,  121,  768,  121,
1241       768,  768,  768,  768,  121,  768,  372,  372,  372,  372,
1242       372,  372,  372,  372,  439,  439,  439,  439,  439,  768,
1243       768,  768,  373,  373,  373,  373,  373,  440,  768,  768,
1244       768,  372,  372,  372,  372,  372,  372,  372,  372,  374,
1245       374,  374,  374,  374,  374,  374,  374,  440,  768,  121,
1246       768,  374,  374,  374,  374,  374,  374,  374,  374,  121,
1247       768,  121,  768,  121,  121,  446,  768,  445,  121,  447,
1248       121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
1249       121,  121,  121,  121,  121,  768,  768,  768,  768,  121,
1250
1251       768,  121,  768,  121,  768,  121,  768,  441,  449,  121,
1252       121,  768,  121,  450,  768,  121,  768,  768,  451,  121,
1253       768,  121,  121,  121,  121,  121,  121,  121,  121,  121,
1254       121,  121,  768,  121,  121,  768,  768,  768,  768,  768,
1255       121,  121,  121,  121,  121,  452,  768,  121,  768,  121,
1256       768,  121,  121,  121,  121,  121,  768,  453,  768,  768,
1257       121,  454,  121,  768,  121,  768,  121,  768,  121,  768,
1258       768,  768,  455,  121,  121,  121,  121,  768,  456,  768,
1259       768,  121,  457,  768,  768,  121,  121,  121,  458,  121,
1260       768,  768,  121,  768,  121,  459,  121,  768,  121,  460,
1261
1262       121,  768,  121,  121,  121,  121,  121,  768,  768,  768,
1263       768,  121,  768,  121,  121,  121,  768,  121,  768,  461,
1264       768,  768,  121,  768,  121,  768,  121,  768,  121,  121,
1265       463,  768,  462,  121,  768,  121,  768,  768,  768,  121,
1266       768,  121,  768,  121,  768,  121,  121,  121,  121,  121,
1267       768,  768,  121,  464,  121,  768,  121,  768,  121,  768,
1268       121,  768,  121,  465,  466,  121,  121,  121,  121,  768,
1269       768,  121,  768,  768,  768,  470,  768,  121,  121,  121,
1270       121,  121,  121,  768,  768,  121,  121,  121,  121,  471,
1271       768,  472,  768,  768,  768,  121,  768,  121,  121,  121,
1272
1273       121,  768,  121,  473,  121,  121,  121,  121,  474,  768,
1274       768,  768,  768,  768,  768,  121,  121,  475,  121,  121,
1275       121,  121,  768,  768,  121,  121,  768,  121,  768,  768,
1276       477,  121,  768,  121,  768,  121,  768,  121,  121,  121,
1277       476,  121,  479,  768,  768,  480,  121,  768,  121,  768,
1278       121,  121,  121,  768,  768,  478,  768,  121,  768,  121,
1279       768,  121,  121,  121,  768,  121,  768,  768,  768,  121,
1280       121,  121,  121,  121,  121,  121,  121,  482,  121,  768,
1281       768,  121,  768,  121,  768,  121,  768,  121,  768,  121,
1282       768,  121,  768,  121,  121,  483,  768,  121,  768,  121,
1283
1284       768,  121,  121,  121,  768,  121,  768,  485,  768,  121,
1285       121,  487,  121,  121,  768,  768,  768,  768,  121,  768,
1286       768,  768,  121,  768,  121,  121,  121,  768,  121,  768,
1287       488,  121,  490,  768,  768,  121,  121,  121,  121,  121,
1288       491,  492,  121,  768,  121,  768,  121,  121,  121,  121,
1289       121,  768,  768,  768,  768,  121,  768,  768,  768,  121,
1290       121,  121,  768,  121,  768,  768,  121,  768,  121,  496,
1291       121,  493,  121,  768,  121,  768,  121,  121,  121,  121,
1292       121,  768,  768,  768,  768,  121,  768,  121,  121,  121,
1293       768,  121,  768,  497,  768,  768,  121,  768,  121,  768,
1294
1295       121,  768,  121,  121,  768,  768,  768,  121,  503,  503,
1296       503,  503,  503,  121,  768,  121,  768,  121,  768,  768,
1297       768,  768,  121,  508,  121,  504,  504,  504,  504,  504,
1298       504,  504,  504,  499,  121,  121,  121,  768,  121,  768,
1299       768,  768,  768,  121,  768,  121,  121,  121,  768,  121,
1300       768,  768,  121,  509,  121,  768,  121,  768,  511,  768,
1301       121,  768,  121,  121,  121,  121,  121,  768,  768,  121,
1302       512,  121,  513,  121,  768,  121,  768,  121,  768,  121,
1303       768,  121,  121,  121,  514,  121,  121,  768,  121,  768,
1304       768,  768,  768,  768,  768,  121,  121,  121,  515,  121,
1305
1306       121,  121,  768,  768,  121,  121,  768,  768,  768,  768,
1307       768,  121,  121,  121,  517,  121,  768,  768,  121,  516,
1308       121,  768,  121,  768,  121,  768,  121,  768,  121,  768,
1309       121,  121,  121,  768,  768,  121,  518,  121,  519,  768,
1310       768,  121,  768,  520,  768,  121,  768,  121,  768,  121,
1311       768,  121,  121,  121,  121,  121,  768,  522,  121,  768,
1312       121,  768,  121,  768,  521,  768,  121,  768,  121,  121,
1313       121,  121,  121,  768,  768,  121,  768,  121,  768,  121,
1314       768,  121,  523,  121,  768,  121,  121,  121,  121,  121,
1315       768,  768,  121,  768,  121,  768,  121,  768,  121,  525,
1316
1317       121,  768,  121,  524,  121,  121,  121,  526,  121,  121,
1318       768,  121,  768,  530,  768,  768,  768,  768,  121,  121,
1319       121,  121,  121,  121,  121,  768,  768,  121,  121,  768,
1320       121,  531,  532,  768,  121,  768,  121,  768,  121,  768,
1321       121,  121,  121,  121,  121,  768,  768,  121,  768,  121,
1322       534,  121,  768,  121,  768,  121,  768,  121,  533,  121,
1323       121,  121,  121,  535,  768,  768,  121,  768,  121,  536,
1324       768,  768,  121,  768,  121,  768,  121,  768,  121,  121,
1325       121,  121,  121,  768,  768,  768,  768,  121,  768,  121,
1326       768,  121,  768,  121,  121,  537,  768,  538,  121,  768,
1327
1328       121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
1329       121,  121,  121,  121,  121,  768,  768,  539,  768,  121,
1330       768,  121,  768,  121,  121,  121,  542,  121,  768,  768,
1331       121,  768,  768,  768,  121,  121,  544,  121,  121,  121,
1332       768,  121,  768,  121,  768,  121,  121,  121,  121,  121,
1333       768,  547,  768,  546,  121,  768,  121,  768,  121,  768,
1334       121,  768,  121,  768,  768,  768,  121,  121,  121,  768,
1335       121,  121,  550,  768,  121,  121,  549,  121,  768,  768,
1336       768,  121,  768,  121,  121,  121,  121,  121,  121,  121,
1337       121,  121,  121,  121,  768,  121,  121,  768,  768,  768,
1338
1339       768,  768,  121,  768,  121,  121,  121,  121,  768,  121,
1340       768,  121,  553,  768,  121,  503,  503,  503,  503,  503,
1341       559,  768,  768,  768,  504,  504,  504,  504,  504,  504,
1342       504,  504,  504,  504,  504,  504,  504,  504,  504,  504,
1343       121,  121,  768,  768,  768,  768,  768,  768,  564,  768,
1344       121,  121,  121,  121,  121,  121,  121,  768,  563,  121,
1345       121,  768,  121,  768,  768,  566,  121,  768,  121,  768,
1346       121,  768,  121,  121,  121,  121,  121,  768,  768,  121,
1347       768,  121,  768,  121,  768,  567,  568,  121,  768,  121,
1348       121,  121,  121,  121,  768,  768,  121,  569,  121,  768,
1349
1350       121,  768,  121,  768,  121,  768,  121,  121,  121,  121,
1351       121,  768,  768,  121,  768,  121,  768,  121,  768,  121,
1352       570,  121,  768,  121,  768,  121,  121,  121,  121,  121,
1353       571,  768,  121,  768,  768,  768,  768,  768,  121,  121,
1354       121,  121,  121,  121,  121,  768,  768,  121,  121,  572,
1355       121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
1356       121,  121,  121,  121,  121,  768,  768,  768,  573,  121,
1357       768,  121,  121,  121,  768,  121,  768,  768,  575,  574,
1358       121,  768,  121,  768,  121,  768,  121,  768,  121,  121,
1359       121,  121,  121,  768,  768,  121,  768,  121,  768,  576,
1360
1361       768,  121,  581,  121,  768,  121,  121,  121,  121,  121,
1362       768,  768,  768,  768,  121,  768,  121,  121,  121,  768,
1363       121,  768,  768,  121,  582,  121,  768,  121,  768,  121,
1364       768,  121,  768,  121,  121,  121,  121,  121,  768,  768,
1365       121,  768,  121,  584,  121,  768,  121,  768,  121,  768,
1366       121,  583,  121,  121,  121,  121,  121,  768,  768,  121,
1367       768,  768,  768,  768,  768,  121,  121,  121,  121,  121,
1368       121,  121,  586,  585,  121,  121,  768,  121,  768,  768,
1369       768,  121,  768,  121,  768,  121,  768,  121,  121,  121,
1370       121,  121,  768,  768,  121,  768,  121,  768,  590,  768,
1371
1372       121,  768,  121,  768,  121,  121,  121,  121,  121,  768,
1373       768,  121,  768,  121,  768,  121,  768,  121,  768,  121,
1374       768,  121,  587,  121,  121,  121,  121,  768,  768,  594,
1375       121,  768,  121,  768,  768,  595,  121,  768,  121,  768,
1376       121,  768,  121,  768,  121,  121,  121,  598,  121,  121,
1377       609,  121,  603,  603,  603,  603,  603,  768,  121,  121,
1378       121,  121,  121,  121,  768,  768,  768,  121,  121,  604,
1379       604,  604,  604,  604,  604,  604,  604,  121,  121,  768,
1380       768,  768,  768,  768,  608,  768,  768,  121,  121,  121,
1381       121,  121,  121,  121,  611,  768,  121,  121,  768,  768,
1382
1383       768,  768,  768,  121,  121,  121,  768,  121,  768,  768,
1384       121,  612,  121,  768,  121,  768,  613,  768,  121,  768,
1385       121,  121,  614,  121,  121,  616,  768,  121,  768,  121,
1386       768,  121,  768,  121,  615,  121,  768,  121,  768,  121,
1387       121,  121,  121,  768,  768,  121,  121,  768,  617,  768,
1388       768,  768,  121,  121,  121,  121,  121,  121,  768,  121,
1389       768,  121,  768,  121,  121,  121,  121,  121,  768,  121,
1390       768,  768,  121,  618,  768,  768,  121,  768,  121,  121,
1391       121,  121,  768,  121,  121,  121,  768,  623,  121,  768,
1392       121,  768,  768,  768,  121,  768,  121,  768,  121,  768,
1393
1394       121,  121,  121,  121,  121,  768,  768,  121,  768,  121,
1395       768,  121,  768,  121,  768,  121,  768,  121,  121,  121,
1396       121,  121,  768,  768,  121,  624,  121,  768,  121,  632,
1397       121,  768,  121,  768,  121,  121,  121,  121,  121,  768,
1398       768,  768,  625,  121,  768,  121,  121,  121,  768,  121,
1399       768,  768,  121,  768,  121,  768,  121,  768,  121,  768,
1400       121,  768,  121,  121,  121,  121,  121,  768,  768,  768,
1401       768,  121,  768,  635,  768,  121,  768,  121,  121,  768,
1402       768,  768,  121,  603,  603,  603,  603,  603,  121,  768,
1403       121,  645,  121,  768,  768,  768,  768,  121,  768,  768,
1404
1405       604,  604,  604,  604,  604,  604,  604,  604,  640,  640,
1406       640,  640,  640,  768,  768,  768,  768,  768,  768,  768,
1407       768,  768,  768,  121,  121,  604,  604,  604,  604,  604,
1408       604,  604,  604,  121,  121,  121,  121,  121,  121,  121,
1409       768,  768,  121,  121,  768,  121,  768,  768,  647,  121,
1410       768,  121,  768,  121,  768,  121,  646,  121,  121,  121,
1411       121,  121,  768,  768,  121,  648,  768,  768,  768,  768,
1412       121,  121,  121,  649,  121,  121,  121,  768,  651,  121,
1413       121,  768,  121,  768,  768,  768,  121,  768,  121,  768,
1414       121,  641,  652,  121,  121,  121,  121,  768,  768,  768,
1415
1416       768,  121,  768,  121,  121,  121,  768,  121,  768,  656,
1417       768,  768,  121,  768,  121,  121,  121,  657,  121,  768,
1418       768,  121,  658,  121,  768,  121,  768,  121,  768,  121,
1419       768,  121,  121,  121,  121,  121,  768,  768,  121,  768,
1420       121,  768,  121,  768,  674,  768,  121,  768,  121,  768,
1421       121,  121,  121,  121,  121,  675,  768,  121,  768,  768,
1422       768,  768,  768,  121,  121,  121,  121,  121,  121,  121,
1423       121,  768,  121,  121,  768,  768,  768,  768,  768,  121,
1424       121,  121,  121,  121,  121,  121,  676,  768,  121,  121,
1425       768,  121,  678,  768,  768,  121,  768,  121,  768,  121,
1426
1427       768,  121,  121,  121,  121,  121,  768,  768,  768,  768,
1428       121,  768,  121,  121,  682,  768,  121,  768,  768,  121,
1429       768,  121,  768,  121,  768,  121,  683,  121,  768,  121,
1430       121,  121,  121,  121,  768,  768,  121,  768,  121,  768,
1431       121,  768,  121,  768,  121,  768,  121,  121,  121,  121,
1432       121,  768,  768,  768,  768,  121,  768,  121,  121,  121,
1433       768,  121,  768,  768,  121,  699,  121,  768,  121,  768,
1434       121,  768,  121,  768,  121,  703,  704,  121,  121,  121,
1435       121,  768,  768,  121,  768,  768,  768,  768,  768,  121,
1436       121,  121,  121,  121,  121,  121,  121,  768,  121,  121,
1437
1438       768,  768,  719,  768,  768,  121,  121,  121,  121,  121,
1439       121,  768,  768,  768,  121,  121,   60,   60,   60,   60,
1440        60,   60,   60,   60,   60,   60,   60,   60,   65,   65,
1441        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
1442        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
1443        70,   70,   73,   73,   73,   73,   73,   73,   73,   73,
1444        73,   73,   73,   73,   82,   82,   82,   82,   82,   82,
1445        82,   82,   82,   82,   82,   82,  102,  102,  102,  102,
1446       768,  102,  102,  102,  102,  102,  102,  102,  109,  109,
1447       109,  768,  109,  768,  109,  180,  180,  768,  180,  180,
1448
1449       185,  185,  768,  768,  185,  185,  768,  185,  185,  185,
1450       185,  185,  189,  189,  189,  189,  768,  189,  189,  189,
1451       189,  189,  189,  189,  191,  191,  191,  191,  191,  191,
1452       191,  191,  768,  191,  191,  193,  768,  768,  768,  193,
1453       193,  193,  193,  193,  193,  193,  194,  768,  768,  768,
1454       194,  194,  194,  194,  194,  194,  194,  199,  199,  768,
1455       199,  199,  202,  202,  768,  202,  206,  206,  768,  206,
1456       206,  208,  208,  768,  208,  208,  218,  768,  218,  218,
1457       127,  127,  768,  127,  127,  286,  768,  286,  286,  294,
1458       768,  294,  294,  296,  768,  296,  298,  768,  298,  298,
1459
1460       299,  768,  299,  299,  302,  302,  302,  302,  302,  302,
1461       302,  302,  302,  302,  302,  302,  219,  219,  768,  219,
1462       219,  607,  607,  768,  607,  607,  607,  607,  607,  607,
1463       607,  607,  607,   19,  768,  768,  768,  768,  768,  768,
1464       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1465       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1466       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1467       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1468       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1469       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1470
1471       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1472       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1473       768,  768
1474     } ;
1475
1476 static yyconst flex_int16_t yy_chk[4723] =
1477     {   0,
1478         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1479         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1480         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1481         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1482         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1483         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1484         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1485         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1486         1,    1,    1,    1,    1,    1,    1,    1,    3,    3,
1487         3,    4,    4,    4,    5,    5,    5,    6,    6,    6,
1488
1489         9,    3,    7,    8,    4,    9,   10,    5,   11,   12,
1490         6,   10,    7,    8,   31,   56,   31,    7,    8,  680,
1491       106,   21,   21,   21,   21,   21,  330,  142,    7,    8,
1492        21,  111,   11,   12,  766,   11,   12,   22,   22,   22,
1493        22,   22,   41,   41,  111,  765,   22,   26,   26,   26,
1494        26,   26,  106,   41,  680,   41,   26,   41,   28,   41,
1495       152,  157,   41,   56,   26,   26,   28,   28,   28,   28,
1496        28,   28,   28,   28,   84,   84,   84,   84,   84,   85,
1497        85,   85,   85,   85,  142,  143,  330,   59,   11,   12,
1498        11,   12,   13,   13,   13,   13,   13,   13,   13,   13,
1499
1500        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1501        95,   95,   95,   95,   95,  157,  152,  162,   13,   13,
1502        13,   13,   13,   29,  245,  292,  292,   13,   29,   43,
1503       143,   29,   29,   29,   29,   29,   29,   29,   29,   43,
1504       762,   43,  442,   43,  421,  174,  171,  442,   43,   13,
1505        13,   13,   32,   46,   32,   32,   32,   32,   32,   32,
1506        32,   32,   59,   46,  257,   46,  342,   46,  421,  246,
1507       162,   32,   46,  245,   13,   13,   13,   13,   13,   13,
1508        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
1509        14,   14,   14,   14,   14,   14,   14,   14,  174,   46,
1510
1511        32,  171,   86,  211,  261,  211,   14,   14,   14,   14,
1512        14,   37,  278,  257,   37,   14,  211,   39,   37,   86,
1513        39,   37,   37,   37,   37,   37,  342,   39,  246,   39,
1514        37,   39,  195,  195,   37,   38,   39,   14,   14,   14,
1515       209,   38,  376,  195,  761,   38,  209,   38,   38,   38,
1516       760,   86,  376,  261,   38,   96,   96,   96,   96,   96,
1517       759,  278,   14,   14,   14,   14,   14,   14,   15,   15,
1518        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1519        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1520        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1521
1522        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1523        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1524        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1525        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1526        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
1527        15,   15,   15,   15,   15,   15,   17,   17,   17,   17,
1528        17,  351,  758,   17,   17,   44,   44,  361,   44,   17,
1529        17,  283,   17,  175,  284,  346,   44,   44,   44,  757,
1530        44,   17,  756,   44,  282,   44,   17,   17,   17,   17,
1531        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1532
1533        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
1534        17,   17,   17,   17,   40,  101,  101,  101,  101,  101,
1535       283,  175,  346,  351,   40,   40,   40,  284,   40,  361,
1536        45,   45,   49,   40,  175,   49,   40,   17,   45,   17,
1537        25,   45,   49,   45,   49,   45,   49,  304,  282,  304,
1538        45,   49,  196,  196,  196,  196,  196,   25,  755,  495,
1539       304,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1540        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1541        25,   25,   25,   25,   25,   25,   25,  267,  367,   25,
1542        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1543
1544        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1545        25,   25,   33,   42,   33,   33,   33,   33,   33,   33,
1546        33,   33,  331,   42,  495,   42,  605,   42,  560,   47,
1547        47,   33,   42,   47,  484,  560,  754,  367,  480,   47,
1548        53,   47,  212,   47,  267,   42,  212,  368,   47,  753,
1549        53,  403,   53,  484,   53,  605,   42,  369,   47,   53,
1550        33,   36,  480,  751,   36,   36,   36,   36,   36,   36,
1551        36,   36,  212,  383,  331,  404,   53,   36,   36,   36,
1552        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
1553        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
1554
1555        36,   36,   36,  369,  403,  368,   36,   36,   36,   36,
1556        36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
1557        36,   36,   36,   36,   36,   36,   36,   36,   48,   48,
1558       489,   48,  305,  383,  438,  404,  305,   50,  402,   48,
1559        50,   48,  415,   48,   50,   48,  468,   50,   48,   50,
1560        51,   50,  419,  424,  437,   50,   50,  434,   51,   51,
1561        50,  749,  305,  430,  616,  748,  747,   52,  746,   51,
1562       744,   51,   48,   51,  743,   51,  489,   52,   51,   52,
1563        54,   52,  616,  402,  742,   52,   52,   54,  741,  438,
1564        54,   51,   54,  468,   54,  415,  121,  740,  424,   54,
1565
1566        58,   58,   58,   58,   58,  500,  121,   52,  121,  429,
1567       121,  436,  430,  434,  419,  121,  437,   58,   58,   58,
1568        58,   58,   58,   58,   58,   82,  181,  181,  181,  181,
1569       181,   82,   82,   82,   82,   82,   82,   82,   82,   82,
1570        82,   82,   82,  181,  181,  181,  181,  181,  181,  181,
1571       181,   82,   82,   82,   82,   82,  108,  108,  108,  108,
1572       108,  448,  467,  469,  734,  108,  500,  733,  481,  429,
1573       732,  436,  499,  108,  108,  439,  439,  439,  439,  439,
1574       510,  494,   82,   82,   82,  110,  122,  110,  110,  110,
1575       110,  110,  110,  110,  110,  731,  122,  528,  122,  577,
1576
1577       122,  527,  529,  122,  110,  122,  498,  501,   82,  548,
1578        82,   82,   82,   83,  448,  481,  469,  467,  502,   83,
1579        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
1580        83,  528,  499,  110,  494,  527,  543,  510,  555,   83,
1581        83,   83,   83,   83,  112,  728,  112,  112,  112,  112,
1582       112,  112,  112,  112,  527,  498,  501,   83,  439,  529,
1583       541,  577,  565,  112,  548,  557,  556,  502,  593,  724,
1584        83,   83,   83,  115,  115,  115,  115,  115,  115,  115,
1585       115,  552,  551,  123,  587,  543,  591,  600,  599,  723,
1586       115,  555,  112,  123,  541,  123,   83,  123,   83,   83,
1587
1588        83,  116,  123,  116,  116,  116,  116,  116,  116,  116,
1589       116,  556,  558,  565,  580,  552,  117,  593,  117,  115,
1590       116,  117,  117,  117,  117,  117,  117,  117,  117,  118,
1591       557,  118,  118,  118,  118,  118,  118,  118,  118,  551,
1592       124,  125,  600,  632,  587,  599,  558,  591,  118,  116,
1593       124,  125,  124,  125,  124,  125,  126,  128,  578,  124,
1594       125,  579,  128,  124,  722,  580,  126,  128,  126,  128,
1595       126,  128,  620,  632,  126,  126,  128,  118,  120,  120,
1596       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
1597       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
1598
1599       129,  130,  215,  215,  215,  215,  215,  215,  215,  215,
1600       129,  130,  129,  130,  129,  130,  131,  589,  129,  129,
1601       130,  620,  132,  579,  578,  596,  131,  601,  131,  131,
1602       131,  626,  132,  597,  132,  131,  132,  133,  133,  629,
1603       720,  132,  602,  134,  134,  718,  636,  717,  133,  716,
1604       133,  133,  133,  638,  134,  135,  134,  133,  134,  619,
1605       621,  601,  631,  134,  709,  135,  135,  135,  136,  135,
1606       653,  137,  136,  654,  135,  628,  596,  659,  136,  589,
1607       136,  137,  136,  137,  626,  137,  629,  136,  139,  139,
1608       137,  138,  138,  138,  637,  597,  631,  636,  139,  140,
1609
1610       139,  138,  139,  138,  602,  138,  139,  139,  634,  140,
1611       138,  140,  141,  140,  706,  638,  655,  144,  140,  619,
1612       621,  654,  141,  653,  141,  141,  141,  144,  637,  661,
1613       145,  141,  721,  145,  659,  628,  639,  144,  146,  144,
1614       145,  144,  145,  662,  145,  664,  144,  705,  146,  145,
1615       146,  763,  146,  147,  147,  763,  666,  146,  698,  670,
1616       697,  668,  695,  147,  148,  147,  690,  147,  634,  655,
1617       147,  147,  147,  679,  148,  149,  148,  148,  148,  681,
1618       763,  150,  661,  148,  688,  149,  684,  149,  721,  149,
1619       685,  150,  151,  150,  149,  150,  639,  149,  669,  687,
1620
1621       150,  689,  151,  662,  151,  153,  151,  664,  154,  666,
1622       686,  151,  670,  153,  691,  153,  694,  153,  154,  153,
1623       154,  155,  154,  668,  153,  693,  154,  154,  708,  156,
1624       679,  155,  158,  155,  692,  155,  681,  684,  700,  156,
1625       155,  156,  158,  156,  158,  159,  158,  156,  156,  702,
1626       158,  158,  687,  677,  701,  159,  160,  159,  669,  159,
1627       707,  689,  710,  745,  159,  159,  160,  686,  160,  161,
1628       160,  691,  161,  694,  712,  160,  161,  714,  693,  161,
1629       673,  161,  713,  161,  163,  163,  715,  708,  161,  700,
1630       725,  164,  672,  737,  692,  163,  735,  163,  671,  163,
1631
1632       702,  164,  165,  164,  163,  164,  164,  701,  166,  164,
1633       164,  707,  165,  730,  165,  710,  165,  168,  166,  167,
1634       166,  165,  166,  745,  166,  712,  165,  166,  667,  167,
1635       168,  167,  665,  167,  714,  713,  169,  715,  167,  663,
1636       168,  169,  168,  727,  168,  735,  169,  170,  169,  168,
1637       169,  737,  725,  172,  660,  169,  650,  170,  644,  170,
1638       172,  170,  643,  172,  730,  172,  170,  172,  176,  173,
1639       173,  642,  172,  173,  729,  633,  630,  627,  176,  173,
1640       176,  173,  176,  173,  738,  182,  176,  176,  173,  182,
1641       182,  182,  182,  182,  182,  182,  182,  183,  622,  610,
1642
1643       727,  183,  183,  183,  183,  183,  183,  183,  183,  213,
1644       607,  213,  213,  213,  213,  213,  213,  213,  213,  216,
1645       216,  216,  216,  216,  216,  216,  216,  220,  213,  606,
1646       220,  729,  592,  221,  588,  738,  561,  220,  739,  220,
1647       554,  220,  545,  221,  540,  221,  220,  221,  507,  222,
1648       223,  506,  221,  505,  486,  444,  443,  213,  218,  222,
1649       223,  222,  223,  222,  223,  224,  378,  764,  222,  223,
1650       377,  764,  375,  226,  306,  224,  227,  224,  224,  224,
1651       226,  299,  298,  226,  224,  226,  227,  226,  227,  739,
1652       227,  297,  226,  296,  295,  227,  764,  640,  640,  640,
1653
1654       640,  640,  294,  218,  218,  218,  218,  218,  218,  218,
1655       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
1656       218,  218,  218,  218,  218,  228,  229,  293,  290,  286,
1657       225,  219,  210,  208,  206,  228,  229,  228,  229,  228,
1658       229,  230,  228,  204,  228,  229,  202,  200,  199,  231,
1659       194,  230,  232,  230,  192,  230,  231,  230,  187,  231,
1660       230,  231,  232,  231,  232,  233,  232,  184,  231,  232,
1661       180,  232,  127,  234,  119,  233,  113,  233,  109,  233,
1662       640,  107,  105,  234,  233,  234,  104,  234,  235,  235,
1663       234,  234,  234,  103,  100,  236,  235,   99,  236,  235,
1664
1665        98,  235,   97,  235,   90,  236,  237,  236,  235,  236,
1666        89,   88,  238,   75,  236,   72,  237,   68,  237,  237,
1667       237,   67,  238,  239,  238,  237,  238,   64,   63,  240,
1668        57,  238,  240,  239,  239,  239,   55,  239,   34,  240,
1669       241,  240,  239,  240,   30,   24,  242,   23,  240,  242,
1670       241,   20,  241,  241,  241,   19,  242,  243,  242,  241,
1671       242,    0,    0,    0,    0,  242,    0,  243,  244,  243,
1672         0,  243,    0,    0,  243,    0,  243,    0,  244,  244,
1673       244,  247,  244,    0,    0,    0,    0,  244,    0,  248,
1674         0,  247,  249,  247,    0,  247,    0,    0,  247,  248,
1675
1676       247,  248,  249,  248,  249,  249,  249,  250,  248,    0,
1677       251,  249,    0,  252,    0,    0,  252,  250,    0,  250,
1678       251,  250,  251,  252,  251,  252,  250,  252,  251,  251,
1679       253,  254,  252,    0,    0,    0,    0,    0,    0,  253,
1680         0,  254,  255,  254,    0,  254,    0,    0,    0,  253,
1681       254,  253,  255,  253,  255,  256,  255,    0,  253,    0,
1682         0,  255,    0,  258,    0,  256,  258,  256,    0,  256,
1683         0,    0,    0,  258,  256,  258,  259,  258,    0,  259,
1684         0,    0,  258,    0,  260,    0,  259,  262,  259,    0,
1685       259,  260,    0,    0,  260,  259,  260,  262,  260,  262,
1686
1687       263,  262,    0,  260,    0,  262,  262,    0,  264,    0,
1688       263,    0,  263,    0,  263,    0,  265,    0,  264,  263,
1689       264,    0,  264,    0,  266,  264,  265,  264,  265,    0,
1690       265,    0,    0,  265,  266,  265,  266,  268,  266,  269,
1691       269,    0,    0,  266,  266,    0,    0,  268,  270,  268,
1692       269,  268,  269,    0,  269,    0,  268,    0,  270,  269,
1693       270,  271,  270,    0,    0,    0,    0,  270,    0,  272,
1694         0,  271,  272,  271,    0,  271,    0,  273,    0,  272,
1695       271,  272,    0,  272,  273,  274,    0,  273,  272,  273,
1696         0,  273,    0,    0,    0,  274,  273,  274,  275,  274,
1697
1698         0,    0,    0,  274,  274,    0,  276,    0,  275,    0,
1699       275,    0,  275,    0,    0,  275,  276,  275,  276,  277,
1700       276,    0,  277,  276,    0,  276,    0,  279,    0,  277,
1701         0,  277,    0,  277,    0,    0,  281,  279,  277,  279,
1702       279,  279,  279,  280,  281,    0,  279,  279,    0,    0,
1703         0,    0,    0,  280,  281,  280,  281,  280,  281,  285,
1704         0,  280,  280,  281,    0,  285,    0,    0,    0,  285,
1705         0,  285,    0,  285,    0,    0,    0,    0,  285,  287,
1706       287,  287,  287,  287,    0,    0,    0,  288,  288,  288,
1707       288,  288,    0,    0,    0,    0,  287,  287,  287,  287,
1708
1709       287,  287,  287,  287,  288,  288,  288,  288,  288,  288,
1710       288,  288,  307,  308,    0,    0,    0,    0,    0,    0,
1711       308,    0,  307,  308,  307,  308,  307,  308,  309,    0,
1712         0,  307,  308,    0,  310,    0,    0,    0,  309,  309,
1713       309,    0,  309,    0,  310,  311,  310,  309,  310,    0,
1714         0,  312,    0,  310,  312,  311,    0,  311,    0,  311,
1715         0,  312,    0,  312,  311,  312,  313,  313,  314,  314,
1716       312,    0,    0,    0,    0,    0,    0,  313,  314,  313,
1717       314,  313,  314,  315,    0,    0,  313,  314,    0,    0,
1718       311,  316,    0,  315,    0,  315,    0,  315,    0,  317,
1719
1720       315,  316,  315,  316,  316,  316,    0,    0,    0,  317,
1721       316,  317,  319,  317,  318,  318,    0,  317,  317,    0,
1722         0,    0,  319,  320,  319,  318,  319,  318,    0,  318,
1723         0,  319,    0,  320,  318,  320,  321,  320,  321,  322,
1724         0,  322,  320,    0,    0,    0,  321,    0,  321,  322,
1725       321,  322,    0,  322,  323,  321,    0,  323,  322,    0,
1726       324,    0,    0,    0,  323,    0,  323,    0,  323,    0,
1727       324,  325,  324,  323,  324,    0,    0,  326,  325,  324,
1728         0,  325,    0,  325,    0,  325,    0,  326,  327,  326,
1729       325,  326,    0,  326,    0,    0,  326,    0,  327,    0,
1730
1731       327,    0,  327,  328,  327,    0,  328,  327,    0,  329,
1732         0,    0,    0,  328,    0,  328,    0,  328,    0,  329,
1733       332,  329,  328,  329,    0,    0,  333,    0,  329,    0,
1734       332,    0,  332,    0,  332,    0,  333,    0,  333,  332,
1735       333,  334,  335,    0,  333,  333,    0,    0,  334,    0,
1736         0,  334,  335,  334,  335,  334,  335,  336,  335,    0,
1737       334,  335,  337,  337,    0,  332,    0,  336,    0,  336,
1738       339,  336,    0,  337,    0,  337,  336,  337,  338,  337,
1739         0,  339,  337,  338,    0,    0,    0,    0,  338,  340,
1740       338,  339,  338,  339,  338,  339,    0,  338,    0,  340,
1741
1742       339,  340,  341,  340,    0,    0,  340,    0,  340,    0,
1743       343,  343,  341,  344,  341,    0,  341,    0,    0,    0,
1744       343,  341,  343,  344,  343,  344,  345,  344,    0,  343,
1745       348,  344,  344,    0,  347,    0,  345,  347,  345,  345,
1746       345,    0,    0,    0,  347,  345,  347,  348,  347,    0,
1747         0,    0,    0,  347,    0,  349,    0,  348,  349,  348,
1748         0,  348,  350,  350,    0,  349,  348,  349,    0,  349,
1749         0,  352,    0,  350,  349,  350,    0,  350,    0,  353,
1750         0,  352,  350,  352,    0,  352,    0,    0,    0,  353,
1751       352,  353,  354,  353,    0,  354,    0,  353,  353,    0,
1752
1753       355,    0,  354,  356,  354,    0,  354,    0,    0,    0,
1754       355,  354,  355,  356,  355,  356,    0,  356,  358,  355,
1755       357,  357,  356,    0,  359,    0,    0,    0,  358,    0,
1756       358,  357,  358,  357,  359,  357,  359,  358,  359,  360,
1757       357,    0,  362,  359,    0,  363,    0,    0,    0,  360,
1758         0,  360,  362,  360,  362,  363,  362,  363,  360,  363,
1759         0,  362,  364,  358,  363,  364,    0,    0,  365,    0,
1760         0,    0,  364,    0,  364,    0,  364,    0,  365,  366,
1761       365,  364,  365,    0,    0,    0,    0,  365,    0,  366,
1762         0,  366,    0,  366,    0,  370,  366,    0,  366,  371,
1763
1764       371,  371,  371,  371,  365,  370,    0,  370,    0,  370,
1765         0,    0,    0,    0,  370,    0,  371,  371,  371,  371,
1766       371,  371,  371,  371,  372,  372,  372,  372,  372,    0,
1767         0,    0,  373,  373,  373,  373,  373,  372,    0,    0,
1768         0,  372,  372,  372,  372,  372,  372,  372,  372,  373,
1769       373,  373,  373,  373,  373,  373,  373,  374,    0,  379,
1770         0,  374,  374,  374,  374,  374,  374,  374,  374,  379,
1771         0,  379,    0,  379,  380,  380,    0,  379,  379,  381,
1772       381,    0,    0,    0,  380,    0,  380,    0,  380,    0,
1773       381,  382,  381,  380,  381,    0,    0,    0,    0,  381,
1774
1775         0,  382,    0,  382,    0,  382,    0,  372,  384,  384,
1776       382,    0,  385,  385,    0,  386,    0,    0,  386,  384,
1777         0,  384,  385,  384,  385,  386,  385,  386,  384,  386,
1778       387,  385,    0,  388,  386,    0,    0,    0,    0,    0,
1779       387,  389,  387,  388,  387,  388,    0,  388,    0,  387,
1780         0,  389,  388,  389,  390,  389,    0,  389,    0,    0,
1781       389,  390,  391,    0,  390,    0,  390,    0,  390,    0,
1782         0,    0,  391,  390,  391,  392,  391,    0,  392,    0,
1783         0,  391,  392,    0,    0,  392,  393,  392,  393,  392,
1784         0,    0,  394,    0,  392,  394,  393,    0,  393,  394,
1785
1786       393,    0,  394,  395,  394,  393,  394,    0,    0,    0,
1787         0,  394,    0,  395,  396,  395,    0,  395,    0,  395,
1788         0,    0,  395,    0,  396,    0,  396,    0,  396,  397,
1789       397,    0,  396,  396,    0,  398,    0,    0,    0,  397,
1790         0,  397,    0,  397,    0,  398,  399,  398,  397,  398,
1791         0,    0,  400,  398,  398,    0,  399,    0,  399,    0,
1792       399,    0,  400,  399,  400,  399,  400,  401,  405,    0,
1793         0,  400,    0,    0,    0,  405,    0,  401,  405,  401,
1794       405,  401,  405,    0,    0,  407,  401,  405,  406,  406,
1795         0,  406,    0,    0,    0,  407,    0,  407,  406,  407,
1796
1797       406,    0,  406,  407,  407,  409,  408,  406,  408,    0,
1798         0,    0,    0,    0,    0,  409,  408,  409,  408,  409,
1799       408,  410,    0,    0,  409,  408,    0,  411,    0,    0,
1800       411,  410,    0,  410,    0,  410,    0,  411,  412,  411,
1801       410,  411,  413,    0,    0,  414,  411,    0,  412,    0,
1802       412,  413,  412,    0,    0,  412,    0,  412,    0,  416,
1803         0,  413,  414,  413,    0,  413,    0,    0,    0,  416,
1804       413,  416,  414,  416,  414,  417,  414,  416,  416,    0,
1805         0,  414,    0,  418,    0,  417,    0,  417,    0,  417,
1806         0,  420,    0,  418,  417,  418,    0,  418,    0,  422,
1807
1808         0,  420,  418,  420,    0,  420,    0,  420,    0,  422,
1809       420,  422,  423,  422,    0,    0,    0,    0,  422,    0,
1810         0,    0,  423,    0,  423,  425,  423,    0,  426,    0,
1811       423,  423,  425,    0,    0,  425,  427,  425,  426,  425,
1812       426,  427,  426,    0,  425,    0,  427,  426,  427,  428,
1813       427,    0,    0,    0,    0,  427,    0,    0,    0,  428,
1814       431,  428,    0,  428,    0,    0,  432,    0,  428,  432,
1815       431,  428,  431,    0,  431,    0,  432,  433,  432,  431,
1816       432,    0,    0,    0,    0,  432,    0,  433,  435,  433,
1817         0,  433,    0,  433,    0,    0,  433,    0,  435,    0,
1818
1819       435,    0,  435,  445,    0,    0,    0,  435,  440,  440,
1820       440,  440,  440,  445,    0,  445,    0,  445,    0,    0,
1821         0,    0,  445,  446,  446,  440,  440,  440,  440,  440,
1822       440,  440,  440,  435,  446,  447,  446,    0,  446,    0,
1823         0,    0,    0,  446,    0,  447,  449,  447,    0,  447,
1824         0,    0,  450,  447,  447,    0,  449,    0,  449,    0,
1825       449,    0,  450,  451,  450,  449,  450,    0,    0,  452,
1826       450,  450,  452,  451,    0,  451,    0,  451,    0,  452,
1827         0,  452,  451,  452,  453,  453,  454,    0,  452,    0,
1828         0,    0,    0,    0,    0,  453,  454,  453,  454,  453,
1829
1830       454,  455,    0,    0,  453,  454,    0,    0,    0,    0,
1831         0,  455,  456,  455,  456,  455,    0,    0,  457,  455,
1832       455,    0,  456,    0,  456,    0,  456,    0,  457,    0,
1833       457,  456,  457,    0,    0,  458,  457,  457,  458,    0,
1834         0,  459,    0,  459,    0,  458,    0,  458,    0,  458,
1835         0,  459,  460,  459,  458,  459,    0,  461,  461,    0,
1836       459,    0,  460,    0,  460,    0,  460,    0,  461,  462,
1837       461,  460,  461,    0,    0,  463,    0,  461,    0,  462,
1838         0,  462,  463,  462,    0,  463,  464,  463,  462,  463,
1839         0,    0,  465,    0,  463,    0,  464,    0,  464,  465,
1840
1841       464,    0,  465,  464,  465,  464,  465,  466,  466,  470,
1842         0,  465,    0,  470,    0,    0,    0,    0,  466,  470,
1843       466,  470,  466,  470,  471,    0,    0,  466,  470,    0,
1844       472,  471,  472,    0,  471,    0,  471,    0,  471,    0,
1845       472,  473,  472,  471,  472,    0,    0,  474,    0,  472,
1846       474,  473,    0,  473,    0,  473,    0,  474,  473,  474,
1847       473,  474,  475,  475,    0,    0,  474,    0,  476,  476,
1848         0,    0,  475,    0,  475,    0,  475,    0,  476,  477,
1849       476,  475,  476,    0,    0,    0,    0,  476,    0,  477,
1850         0,  477,    0,  477,  478,  477,    0,  478,  477,    0,
1851
1852       479,    0,    0,    0,  478,    0,  478,    0,  478,    0,
1853       479,  482,  479,  478,  479,    0,    0,  479,    0,  479,
1854         0,  482,    0,  482,  485,  482,  483,  483,    0,    0,
1855       482,    0,    0,    0,  485,  487,  485,  483,  485,  483,
1856         0,  483,    0,  485,    0,  487,  483,  487,  488,  487,
1857         0,  488,    0,  487,  487,    0,  490,    0,  488,    0,
1858       488,    0,  488,    0,    0,    0,  490,  488,  490,    0,
1859       490,  491,  491,    0,  492,  490,  490,  493,    0,    0,
1860         0,  491,    0,  491,  492,  491,  492,  493,  492,  493,
1861       491,  493,  496,  492,    0,  497,  493,    0,    0,    0,
1862
1863         0,    0,  496,    0,  496,  497,  496,  497,    0,  497,
1864         0,  496,  497,    0,  497,  503,  503,  503,  503,  503,
1865       504,    0,    0,    0,  504,  504,  504,  504,  504,  504,
1866       504,  504,  503,  503,  503,  503,  503,  503,  503,  503,
1867       508,  509,    0,    0,    0,    0,    0,    0,  509,    0,
1868       508,  509,  508,  509,  508,  509,  511,    0,  508,  508,
1869       509,    0,  512,    0,    0,  512,  511,    0,  511,    0,
1870       511,    0,  512,  513,  512,  511,  512,    0,    0,  514,
1871         0,  512,    0,  513,    0,  513,  514,  513,    0,  514,
1872       515,  514,  513,  514,    0,    0,  516,  515,  514,    0,
1873
1874       515,    0,  515,    0,  515,    0,  516,  517,  516,  515,
1875       516,    0,    0,  518,    0,  516,    0,  517,    0,  517,
1876       518,  517,    0,  518,    0,  518,  517,  518,  519,  520,
1877       519,    0,  518,    0,    0,    0,    0,    0,  519,  520,
1878       519,  520,  519,  520,  521,    0,    0,  519,  520,  521,
1879       522,    0,    0,    0,  521,    0,  521,    0,  521,    0,
1880       522,  523,  522,  521,  522,    0,    0,    0,  522,  522,
1881         0,  523,  524,  523,    0,  523,    0,    0,  525,  523,
1882       523,    0,  524,    0,  524,    0,  524,    0,  525,  526,
1883       525,  524,  525,    0,    0,  530,    0,  525,    0,  526,
1884
1885         0,  526,  530,  526,    0,  530,  531,  530,  526,  530,
1886         0,    0,    0,    0,  530,    0,  531,  532,  531,    0,
1887       531,    0,    0,  533,  531,  531,    0,  532,    0,  532,
1888         0,  532,    0,  533,  534,  533,  532,  533,    0,    0,
1889       535,    0,  533,  535,  534,    0,  534,    0,  534,    0,
1890       535,  534,  535,  534,  535,  536,  537,    0,    0,  535,
1891         0,    0,    0,    0,    0,  536,  537,  536,  537,  536,
1892       537,  538,  538,  536,  536,  537,    0,  539,    0,    0,
1893         0,  538,    0,  538,    0,  538,    0,  539,  542,  539,
1894       538,  539,    0,    0,  544,    0,  539,    0,  542,    0,
1895
1896       542,    0,  542,    0,  544,  546,  544,  542,  544,    0,
1897         0,  547,    0,  544,    0,  546,    0,  546,    0,  546,
1898         0,  547,  539,  547,  546,  547,  549,    0,    0,  549,
1899       547,    0,  550,    0,    0,  550,  549,    0,  549,    0,
1900       549,    0,  550,    0,  550,  549,  550,  553,  553,  564,
1901       564,  550,  559,  559,  559,  559,  559,    0,  553,  564,
1902       553,  564,  553,  564,    0,    0,    0,  553,  564,  559,
1903       559,  559,  559,  559,  559,  559,  559,  563,  566,    0,
1904         0,    0,    0,    0,  563,    0,    0,  563,  566,  563,
1905       566,  563,  566,  567,  566,    0,  563,  566,    0,    0,
1906
1907         0,    0,    0,  567,  568,  567,    0,  567,    0,    0,
1908       569,  567,  567,    0,  568,    0,  568,    0,  568,    0,
1909       569,  570,  569,  568,  569,  572,    0,  571,    0,  569,
1910         0,  570,    0,  570,  570,  570,    0,  571,    0,  571,
1911       570,  571,  572,    0,    0,  573,  571,    0,  573,    0,
1912         0,    0,  572,  574,  572,  573,  572,  573,    0,  573,
1913         0,  572,    0,  574,  573,  574,  575,  574,    0,  576,
1914         0,    0,  574,  575,    0,    0,  575,    0,  575,  576,
1915       575,  576,    0,  576,  581,  575,    0,  581,  576,    0,
1916       582,    0,    0,    0,  581,    0,  581,    0,  581,    0,
1917
1918       582,  583,  582,  581,  582,    0,    0,  584,    0,  582,
1919         0,  583,    0,  583,    0,  583,    0,  584,  585,  584,
1920       583,  584,    0,    0,  586,  585,  584,    0,  585,  594,
1921       585,    0,  585,    0,  586,  590,  586,  585,  586,    0,
1922         0,    0,  586,  586,    0,  590,  594,  590,    0,  590,
1923         0,    0,  595,    0,  590,    0,  594,    0,  594,    0,
1924       594,    0,  595,  598,  595,  594,  595,    0,    0,    0,
1925         0,  595,    0,  598,    0,  598,    0,  598,  608,    0,
1926         0,    0,  598,  603,  603,  603,  603,  603,  608,    0,
1927       608,  608,  608,    0,    0,    0,    0,  608,    0,    0,
1928
1929       603,  603,  603,  603,  603,  603,  603,  603,  604,  604,
1930       604,  604,  604,    0,    0,    0,    0,    0,    0,    0,
1931         0,    0,    0,  609,  611,  604,  604,  604,  604,  604,
1932       604,  604,  604,  609,  611,  609,  611,  609,  611,  612,
1933         0,    0,  609,  611,    0,  613,    0,    0,  613,  612,
1934         0,  612,    0,  612,    0,  613,  612,  613,  612,  613,
1935       614,  615,    0,    0,  613,  614,    0,    0,    0,    0,
1936       614,  615,  614,  615,  614,  615,  617,    0,  617,  614,
1937       615,    0,  618,    0,    0,    0,  617,    0,  617,    0,
1938       617,  604,  618,  623,  618,  617,  618,    0,    0,    0,
1939
1940         0,  618,    0,  623,  624,  623,    0,  623,    0,  623,
1941         0,    0,  623,    0,  624,  625,  624,  624,  624,    0,
1942         0,  635,  625,  624,    0,  625,    0,  625,    0,  625,
1943         0,  635,  645,  635,  625,  635,    0,    0,  646,    0,
1944       635,    0,  645,    0,  645,    0,  645,    0,  646,    0,
1945       646,  645,  646,  647,  648,  647,    0,  646,    0,    0,
1946         0,    0,    0,  647,  648,  647,  648,  647,  648,  649,
1947       651,    0,  647,  648,    0,    0,    0,    0,    0,  649,
1948       651,  649,  651,  649,  651,  652,  649,    0,  649,  651,
1949         0,  656,  652,    0,    0,  652,    0,  652,    0,  652,
1950
1951         0,  656,  657,  656,  652,  656,    0,    0,    0,    0,
1952       656,    0,  657,  658,  657,    0,  657,    0,    0,  674,
1953         0,  657,    0,  658,    0,  658,  658,  658,    0,  674,
1954       675,  674,  658,  674,    0,    0,  676,    0,  674,    0,
1955       675,    0,  675,    0,  675,    0,  676,  678,  676,  675,
1956       676,    0,    0,    0,    0,  676,    0,  678,  682,  678,
1957         0,  678,    0,    0,  683,  678,  678,    0,  682,    0,
1958       682,    0,  682,    0,  683,  682,  683,  682,  683,  699,
1959       703,    0,    0,  683,    0,    0,    0,    0,    0,  699,
1960       703,  699,  703,  699,  703,  704,  719,    0,  699,  703,
1961
1962         0,    0,  699,    0,    0,  704,  719,  704,  719,  704,
1963       719,    0,    0,    0,  704,  719,  769,  769,  769,  769,
1964       769,  769,  769,  769,  769,  769,  769,  769,  770,  770,
1965       770,  770,  770,  770,  770,  770,  770,  770,  770,  770,
1966       771,  771,  771,  771,  771,  771,  771,  771,  771,  771,
1967       771,  771,  772,  772,  772,  772,  772,  772,  772,  772,
1968       772,  772,  772,  772,  773,  773,  773,  773,  773,  773,
1969       773,  773,  773,  773,  773,  773,  774,  774,  774,  774,
1970         0,  774,  774,  774,  774,  774,  774,  774,  775,  775,
1971       775,    0,  775,    0,  775,  776,  776,    0,  776,  776,
1972
1973       777,  777,    0,    0,  777,  777,    0,  777,  777,  777,
1974       777,  777,  778,  778,  778,  778,    0,  778,  778,  778,
1975       778,  778,  778,  778,  779,  779,  779,  779,  779,  779,
1976       779,  779,    0,  779,  779,  780,    0,    0,    0,  780,
1977       780,  780,  780,  780,  780,  780,  781,    0,    0,    0,
1978       781,  781,  781,  781,  781,  781,  781,  782,  782,    0,
1979       782,  782,  783,  783,    0,  783,  784,  784,    0,  784,
1980       784,  785,  785,    0,  785,  785,  786,    0,  786,  786,
1981       787,  787,    0,  787,  787,  788,    0,  788,  788,  789,
1982         0,  789,  789,  790,    0,  790,  791,    0,  791,  791,
1983
1984       792,    0,  792,  792,  793,  793,  793,  793,  793,  793,
1985       793,  793,  793,  793,  793,  793,  794,  794,    0,  794,
1986       794,  795,  795,    0,  795,  795,  795,  795,  795,  795,
1987       795,  795,  795,  768,  768,  768,  768,  768,  768,  768,
1988       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1989       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1990       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1991       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1992       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1993       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1994
1995       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1996       768,  768,  768,  768,  768,  768,  768,  768,  768,  768,
1997       768,  768
1998     } ;
1999
2000 /* Table of booleans, true if rule could match eol. */
2001 static yyconst flex_int32_t yy_rule_can_match_eol[143] =
2002     {   0,
2003 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 
2004     0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 
2005     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2006     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2007     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2008     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
2009     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 
2010     1, 0, 0,     };
2011
2012 extern int asn1p__flex_debug;
2013 int asn1p__flex_debug = 1;
2014
2015 static yyconst flex_int16_t yy_rule_linenum[142] =
2016     {   0,
2017        98,  100,  101,  103,  106,  109,  115,  118,  120,  121,
2018       122,  125,  127,  128,  129,  141,  148,  155,  161,  170,
2019       178,  186,  187,  189,  208,  214,  215,  216,  217,  218,
2020       221,  227,  234,  241,  248,  255,  262,  263,  264,  272,
2021       273,  274,  280,  281,  286,  287,  288,  289,  290,  291,
2022       292,  293,  294,  295,  296,  305,  306,  307,  308,  309,
2023       315,  316,  317,  318,  319,  320,  321,  322,  323,  324,
2024       325,  326,  327,  328,  329,  330,  331,  332,  333,  334,
2025       335,  336,  337,  338,  339,  340,  341,  342,  343,  344,
2026       345,  346,  347,  348,  349,  350,  351,  352,  353,  354,
2027
2028       355,  356,  357,  358,  359,  360,  361,  362,  363,  364,
2029       365,  366,  367,  372,  373,  378,  379,  380,  383,  388,
2030       394,  402,  412,  417,  419,  420,  424,  429,  434,  440,
2031       441,  443,  449,  462,  465,  490,  534,  535,  537,  539,
2032       550
2033     } ;
2034
2035 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
2036 static char *yy_full_match;
2037 static int yy_lp;
2038 #define REJECT \
2039 { \
2040 *yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */ \
2041 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
2042 ++(yy_lp); \
2043 goto find_rule; \
2044 }
2045
2046 #define yymore() yymore_used_but_not_detected
2047 #define YY_MORE_ADJ 0
2048 #define YY_RESTORE_YY_MORE_OFFSET
2049 char *asn1p_text;
2050 #line 1 "asn1p_l.l"
2051 #line 2 "asn1p_l.l"
2052
2053 #include <string.h>
2054 #include <errno.h>
2055 #include <assert.h>
2056
2057 #include "asn1parser.h"
2058 #include "asn1p_y.h"
2059
2060 int asn1p_lex(void);
2061 void asn1p_lexer_hack_push_opaque_state(void);          /* Used in .y */
2062 void asn1p_lexer_hack_enable_with_syntax(void);         /* Used in .y */
2063 void asn1p_lexer_hack_push_encoding_control(void);      /* Used in .y */
2064
2065 #define YY_FATAL_ERROR(msg)     do {                    \
2066                 fprintf(stderr,                         \
2067                         "lexer error at line %d, "      \
2068                         "text \"%s\"\n",                \
2069                         asn1p_lineno, asn1p_text);              \
2070                 exit(1);                                \
2071         } while(0)
2072
2073 int asn1p_lexer_pedantic_1990 = 0;
2074 int asn1p_lexer_types_year = 0;
2075 int asn1p_lexer_constructs_year = 0;
2076 int asn1p_lexer_extended_values = 0;
2077
2078 int asn1p_as_pointer;
2079
2080 static asn1c_integer_t _lex_atoi(const char *ptr);
2081 static double          _lex_atod(const char *ptr);
2082
2083 /*
2084  * Check that the type is defined in the year of the standard choosen.
2085  */
2086 #define TYPE_LIFETIME(fyr, lyr)                         \
2087         (!asn1p_lexer_types_year                        \
2088         || (fyr && fyr <= asn1p_lexer_types_year)       \
2089         || (lyr && lyr  > asn1p_lexer_types_year))
2090
2091 /*
2092  * Check the the construction (or concept, i.e. CLASS) is defined in
2093  * a given year.
2094  */
2095 #define CONSTRUCT_LIFETIME(fyr, lyr)                    \
2096         (!asn1p_lexer_constructs_year                   \
2097         || (fyr && fyr <= asn1p_lexer_constructs_year)  \
2098         || (lyr && lyr  > asn1p_lexer_constructs_year))
2099
2100 /*
2101  * Append quoted string.
2102  */
2103 #define QAPPEND(text, tlen)     do {                            \
2104                 char *prev_text = asn1p_lval.tv_opaque.buf;     \
2105                 int prev_len = asn1p_lval.tv_opaque.len;        \
2106                 char *p;                                        \
2107                                                                 \
2108                 p = malloc((tlen) + prev_len + 1);              \
2109                 if(p == NULL) return -1;                        \
2110                                                                 \
2111                 if(prev_text) memcpy(p, prev_text, prev_len);   \
2112                 memcpy(p + prev_len, text, tlen);               \
2113                 p[prev_len + (tlen)] = '\0';                    \
2114                                                                 \
2115                 free(asn1p_lval.tv_opaque.buf);                 \
2116                 asn1p_lval.tv_opaque.buf = p;                   \
2117                 asn1p_lval.tv_opaque.len = (tlen) + prev_len;   \
2118         } while(0)
2119
2120 #define YY_NO_INPUT 1
2121 /* Performance penalty is OK */
2122 /* Controlled from within application */
2123
2124
2125
2126
2127
2128
2129
2130
2131 /* Newline */
2132 /* White-space */
2133 #line 2134 "asn1p_l.c"
2134
2135 #define INITIAL 0
2136 #define dash_comment 1
2137 #define idash_comment 2
2138 #define cpp_comment 3
2139 #define quoted 4
2140 #define opaque 5
2141 #define encoding_control 6
2142 #define with_syntax 7
2143 #define extended_values 8
2144
2145 #ifndef YY_NO_UNISTD_H
2146 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2147  * down here because we want the user's section 1 to have been scanned first.
2148  * The user has a chance to override it with an option.
2149  */
2150 /* %if-c-only */
2151 #include <unistd.h>
2152 /* %endif */
2153 /* %if-c++-only */
2154 /* %endif */
2155 #endif
2156
2157 #ifndef YY_EXTRA_TYPE
2158 #define YY_EXTRA_TYPE void *
2159 #endif
2160
2161 /* %if-c-only Reentrant structure and macros (non-C++). */
2162 /* %if-reentrant */
2163 /* %if-c-only */
2164
2165 static int yy_init_globals (void );
2166
2167 /* %endif */
2168 /* %if-reentrant */
2169 /* %endif */
2170 /* %endif End reentrant structures and macros. */
2171
2172 /* Accessor methods to globals.
2173    These are made visible to non-reentrant scanners for convenience. */
2174
2175 int asn1p_lex_destroy (void );
2176
2177 int asn1p_get_debug (void );
2178
2179 void asn1p_set_debug (int debug_flag  );
2180
2181 YY_EXTRA_TYPE asn1p_get_extra (void );
2182
2183 void asn1p_set_extra (YY_EXTRA_TYPE user_defined  );
2184
2185 FILE *asn1p_get_in (void );
2186
2187 void asn1p_set_in  (FILE * in_str  );
2188
2189 FILE *asn1p_get_out (void );
2190
2191 void asn1p_set_out  (FILE * out_str  );
2192
2193 yy_size_t asn1p_get_leng (void );
2194
2195 char *asn1p_get_text (void );
2196
2197 int asn1p_get_lineno (void );
2198
2199 void asn1p_set_lineno (int line_number  );
2200
2201 /* %if-bison-bridge */
2202 /* %endif */
2203
2204 /* Macros after this point can all be overridden by user definitions in
2205  * section 1.
2206  */
2207
2208 #ifndef YY_SKIP_YYWRAP
2209 #ifdef __cplusplus
2210 extern "C" int asn1p_wrap (void );
2211 #else
2212 extern int asn1p_wrap (void );
2213 #endif
2214 #endif
2215
2216 /* %not-for-header */
2217
2218     static void yyunput (int c,char *buf_ptr  );
2219     
2220 /* %ok-for-header */
2221
2222 /* %endif */
2223
2224 #ifndef yytext_ptr
2225 static void yy_flex_strncpy (char *,yyconst char *,int );
2226 #endif
2227
2228 #ifdef YY_NEED_STRLEN
2229 static int yy_flex_strlen (yyconst char * );
2230 #endif
2231
2232 #ifndef YY_NO_INPUT
2233 /* %if-c-only Standard (non-C++) definition */
2234 /* %not-for-header */
2235
2236 #ifdef __cplusplus
2237 static int yyinput (void );
2238 #else
2239 static int input (void );
2240 #endif
2241 /* %ok-for-header */
2242
2243 /* %endif */
2244 #endif
2245
2246 /* %if-c-only */
2247
2248         static int yy_start_stack_ptr = 0;
2249         static int yy_start_stack_depth = 0;
2250         static int *yy_start_stack = NULL;
2251     
2252     static void yy_push_state (int new_state );
2253     
2254     static void yy_pop_state (void );
2255     
2256     static int yy_top_state (void );
2257     
2258 /* %endif */
2259
2260 /* Amount of stuff to slurp up with each read. */
2261 #ifndef YY_READ_BUF_SIZE
2262 #define YY_READ_BUF_SIZE 8192
2263 #endif
2264
2265 /* Copy whatever the last rule matched to the standard output. */
2266 #ifndef ECHO
2267 /* %if-c-only Standard (non-C++) definition */
2268 /* This used to be an fputs(), but since the string might contain NUL's,
2269  * we now use fwrite().
2270  */
2271 #define ECHO fwrite( asn1p_text, asn1p_leng, 1, asn1p_out )
2272 /* %endif */
2273 /* %if-c++-only C++ definition */
2274 /* %endif */
2275 #endif
2276
2277 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2278  * is returned in "result".
2279  */
2280 #ifndef YY_INPUT
2281 #define YY_INPUT(buf,result,max_size) \
2282 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2283         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2284                 { \
2285                 int c = '*'; \
2286                 yy_size_t n; \
2287                 for ( n = 0; n < max_size && \
2288                              (c = getc( asn1p_in )) != EOF && c != '\n'; ++n ) \
2289                         buf[n] = (char) c; \
2290                 if ( c == '\n' ) \
2291                         buf[n++] = (char) c; \
2292                 if ( c == EOF && ferror( asn1p_in ) ) \
2293                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
2294                 result = n; \
2295                 } \
2296         else \
2297                 { \
2298                 errno=0; \
2299                 while ( (result = fread(buf, 1, max_size, asn1p_in))==0 && ferror(asn1p_in)) \
2300                         { \
2301                         if( errno != EINTR) \
2302                                 { \
2303                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2304                                 break; \
2305                                 } \
2306                         errno=0; \
2307                         clearerr(asn1p_in); \
2308                         } \
2309                 }\
2310 \
2311 /* %if-c++-only C++ definition \ */\
2312 /* %endif */
2313
2314 #endif
2315
2316 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2317  * we don't want an extra ';' after the "return" because that will cause
2318  * some compilers to complain about unreachable statements.
2319  */
2320 #ifndef yyterminate
2321 #define yyterminate() return YY_NULL
2322 #endif
2323
2324 /* Number of entries by which start-condition stack grows. */
2325 #ifndef YY_START_STACK_INCR
2326 #define YY_START_STACK_INCR 25
2327 #endif
2328
2329 /* Report a fatal error. */
2330 #ifndef YY_FATAL_ERROR
2331 /* %if-c-only */
2332 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2333 /* %endif */
2334 /* %if-c++-only */
2335 /* %endif */
2336 #endif
2337
2338 /* %if-tables-serialization structures and prototypes */
2339 /* %not-for-header */
2340
2341 /* %ok-for-header */
2342
2343 /* %not-for-header */
2344
2345 /* %tables-yydmap generated elements */
2346 /* %endif */
2347 /* end tables serialization structures and prototypes */
2348
2349 /* %ok-for-header */
2350
2351 /* Default declaration of generated scanner - a define so the user can
2352  * easily add parameters.
2353  */
2354 #ifndef YY_DECL
2355 #define YY_DECL_IS_OURS 1
2356 /* %if-c-only Standard (non-C++) definition */
2357
2358 extern int asn1p_lex (void);
2359
2360 #define YY_DECL int asn1p_lex (void)
2361 /* %endif */
2362 /* %if-c++-only C++ definition */
2363 /* %endif */
2364 #endif /* !YY_DECL */
2365
2366 /* Code executed at the beginning of each rule, after asn1p_text and asn1p_leng
2367  * have been set up.
2368  */
2369 #ifndef YY_USER_ACTION
2370 #define YY_USER_ACTION
2371 #endif
2372
2373 /* Code executed at the end of each rule. */
2374 #ifndef YY_BREAK
2375 #define YY_BREAK break;
2376 #endif
2377
2378 /* %% [6.0] YY_RULE_SETUP definition goes here */
2379 #define YY_RULE_SETUP \
2380         YY_USER_ACTION
2381
2382 /* %not-for-header */
2383
2384 /** The main scanner function which does all the work.
2385  */
2386 YY_DECL
2387 {
2388         register yy_state_type yy_current_state;
2389         register char *yy_cp, *yy_bp;
2390         register int yy_act;
2391     
2392 /* %% [7.0] user's declarations go here */
2393 #line 96 "asn1p_l.l"
2394
2395
2396 #line 2397 "asn1p_l.c"
2397
2398         if ( !(yy_init) )
2399                 {
2400                 (yy_init) = 1;
2401
2402 #ifdef YY_USER_INIT
2403                 YY_USER_INIT;
2404 #endif
2405
2406         /* Create the reject buffer large enough to save one state per allowed character. */
2407         if ( ! (yy_state_buf) )
2408             (yy_state_buf) = (yy_state_type *)asn1p_alloc(YY_STATE_BUF_SIZE  );
2409             if ( ! (yy_state_buf) )
2410                 YY_FATAL_ERROR( "out of dynamic memory in asn1p_lex()" );
2411
2412                 if ( ! (yy_start) )
2413                         (yy_start) = 1; /* first start state */
2414
2415                 if ( ! asn1p_in )
2416 /* %if-c-only */
2417                         asn1p_in = stdin;
2418 /* %endif */
2419 /* %if-c++-only */
2420 /* %endif */
2421
2422                 if ( ! asn1p_out )
2423 /* %if-c-only */
2424                         asn1p_out = stdout;
2425 /* %endif */
2426 /* %if-c++-only */
2427 /* %endif */
2428
2429                 if ( ! YY_CURRENT_BUFFER ) {
2430                         asn1p_ensure_buffer_stack ();
2431                         YY_CURRENT_BUFFER_LVALUE =
2432                                 asn1p__create_buffer(asn1p_in,YY_BUF_SIZE );
2433                 }
2434
2435                 asn1p__load_buffer_state( );
2436                 }
2437
2438         while ( 1 )             /* loops until end-of-file is reached */
2439                 {
2440 /* %% [8.0] yymore()-related code goes here */
2441                 yy_cp = (yy_c_buf_p);
2442
2443                 /* Support of asn1p_text. */
2444                 *yy_cp = (yy_hold_char);
2445
2446                 /* yy_bp points to the position in yy_ch_buf of the start of
2447                  * the current run.
2448                  */
2449                 yy_bp = yy_cp;
2450
2451 /* %% [9.0] code to set up and find next match goes here */
2452                 yy_current_state = (yy_start);
2453
2454                 (yy_state_ptr) = (yy_state_buf);
2455                 *(yy_state_ptr)++ = yy_current_state;
2456
2457 yy_match:
2458                 do
2459                         {
2460                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2461                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2462                                 {
2463                                 yy_current_state = (int) yy_def[yy_current_state];
2464                                 if ( yy_current_state >= 769 )
2465                                         yy_c = yy_meta[(unsigned int) yy_c];
2466                                 }
2467                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2468                         *(yy_state_ptr)++ = yy_current_state;
2469                         ++yy_cp;
2470                         }
2471                 while ( yy_current_state != 768 );
2472
2473 yy_find_action:
2474 /* %% [10.0] code to find the action number goes here */
2475                 yy_current_state = *--(yy_state_ptr);
2476                 (yy_lp) = yy_accept[yy_current_state];
2477 goto find_rule; /* Shut up GCC warning -Wall */
2478 find_rule: /* we branch to this label when backing up */
2479                 for ( ; ; ) /* until we find what rule we matched */
2480                         {
2481                         if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
2482                                 {
2483                                 yy_act = yy_acclist[(yy_lp)];
2484                                         {
2485                                         (yy_full_match) = yy_cp;
2486                                         break;
2487                                         }
2488                                 }
2489                         --yy_cp;
2490                         yy_current_state = *--(yy_state_ptr);
2491                         (yy_lp) = yy_accept[yy_current_state];
2492                         }
2493
2494                 YY_DO_BEFORE_ACTION;
2495
2496 /* %% [11.0] code for asn1p_lineno update goes here */
2497
2498                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2499                         {
2500                         yy_size_t yyl;
2501                         for ( yyl = 0; yyl < asn1p_leng; ++yyl )
2502                                 if ( asn1p_text[yyl] == '\n' )
2503                                            
2504     asn1p_lineno++;
2505 ;
2506                         }
2507
2508 do_action:      /* This label is used only to access EOF actions. */
2509
2510 /* %% [12.0] debug code goes here */
2511                 if ( asn1p__flex_debug )
2512                         {
2513                         if ( yy_act == 0 )
2514                                 fprintf( stderr, "--scanner backing up\n" );
2515                         else if ( yy_act < 142 )
2516                                 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2517                                          (long)yy_rule_linenum[yy_act], asn1p_text );
2518                         else if ( yy_act == 142 )
2519                                 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2520                                          asn1p_text );
2521                         else if ( yy_act == 143 )
2522                                 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2523                         else
2524                                 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2525                         }
2526
2527                 switch ( yy_act )
2528         { /* beginning of action switch */
2529 /* %% [13.0] actions go here */
2530 case 1:
2531 YY_RULE_SETUP
2532 #line 98 "asn1p_l.l"
2533 return UTF8_BOM;
2534         YY_BREAK
2535 case 2:
2536 /* rule 2 can match eol */
2537 *yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */
2538 (yy_c_buf_p) = yy_cp -= 1;
2539 YY_DO_BEFORE_ACTION; /* set up asn1p_text again */
2540 YY_RULE_SETUP
2541 #line 100 "asn1p_l.l"
2542 /* Immediately terminated long comment */
2543         YY_BREAK
2544 case 3:
2545 *yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */
2546 (yy_c_buf_p) = yy_cp -= 1;
2547 YY_DO_BEFORE_ACTION; /* set up asn1p_text again */
2548 YY_RULE_SETUP
2549 #line 101 "asn1p_l.l"
2550 yy_push_state(idash_comment);   /* Incorrect, but acceptable */
2551         YY_BREAK
2552
2553 case 4:
2554 YY_RULE_SETUP
2555 #line 103 "asn1p_l.l"
2556 yy_pop_state(); /* Acceptable end of comment */
2557         YY_BREAK
2558
2559 case 5:
2560 YY_RULE_SETUP
2561 #line 106 "asn1p_l.l"
2562 asn1p_as_pointer = 1;
2563         YY_BREAK
2564
2565 case 6:
2566 YY_RULE_SETUP
2567 #line 109 "asn1p_l.l"
2568 {
2569         yy_pop_state();
2570         return TOK_ExtValue_BIT_STRING;
2571     }
2572         YY_BREAK
2573
2574 case 7:
2575 YY_RULE_SETUP
2576 #line 115 "asn1p_l.l"
2577 yy_push_state(dash_comment);
2578         YY_BREAK
2579
2580 case 8:
2581 /* rule 8 can match eol */
2582 YY_RULE_SETUP
2583 #line 118 "asn1p_l.l"
2584 yy_pop_state();
2585         YY_BREAK
2586 case 9:
2587 YY_RULE_SETUP
2588 #line 120 "asn1p_l.l"
2589 yy_pop_state(); /* End of comment */
2590         YY_BREAK
2591 case 10:
2592 YY_RULE_SETUP
2593 #line 121 "asn1p_l.l"
2594 /* Eat single dash */
2595         YY_BREAK
2596 case 11:
2597 YY_RULE_SETUP
2598 #line 122 "asn1p_l.l"
2599 /* Eat */
2600         YY_BREAK
2601
2602 case 12:
2603 YY_RULE_SETUP
2604 #line 125 "asn1p_l.l"
2605 yy_push_state(cpp_comment);
2606         YY_BREAK
2607
2608 case 13:
2609 /* rule 13 can match eol */
2610 YY_RULE_SETUP
2611 #line 127 "asn1p_l.l"
2612 /* Eat */
2613         YY_BREAK
2614 case 14:
2615 YY_RULE_SETUP
2616 #line 128 "asn1p_l.l"
2617 yy_pop_state();
2618         YY_BREAK
2619 case 15:
2620 YY_RULE_SETUP
2621 #line 129 "asn1p_l.l"
2622 /* Eat */
2623         YY_BREAK
2624
2625 /*
2626          * This is state is being set from corresponding .y module when
2627          * higher-level data is necessary to make proper parsing of the
2628          * underlying data. Thus, we enter the <opaque> state and save
2629          * everything for later processing.
2630          */
2631
2632 case 16:
2633 YY_RULE_SETUP
2634 #line 141 "asn1p_l.l"
2635 {
2636                         yy_push_state(opaque);
2637                         asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
2638                         asn1p_lval.tv_opaque.len = asn1p_leng;
2639                         return TOK_opaque;
2640                 }
2641         YY_BREAK
2642 case 17:
2643 YY_RULE_SETUP
2644 #line 148 "asn1p_l.l"
2645 {
2646                         yy_pop_state();
2647                         asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
2648                         asn1p_lval.tv_opaque.len = asn1p_leng;
2649                         return TOK_opaque;
2650                 }
2651         YY_BREAK
2652 case 18:
2653 /* rule 18 can match eol */
2654 YY_RULE_SETUP
2655 #line 155 "asn1p_l.l"
2656 {
2657                         asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
2658                         asn1p_lval.tv_opaque.len = asn1p_leng;
2659                         return TOK_opaque;
2660                 }
2661         YY_BREAK
2662 case 19:
2663 YY_RULE_SETUP
2664 #line 161 "asn1p_l.l"
2665 {
2666                         fprintf(stderr,
2667                                 "ASN.1 Parser synchronization failure: "
2668                                 "\"%s\" at line %d must not appear "
2669                                 "inside value definition\n",
2670                                 asn1p_text, asn1p_lineno);
2671                         return -1;
2672                 }
2673         YY_BREAK
2674 case 20:
2675 YY_RULE_SETUP
2676 #line 170 "asn1p_l.l"
2677 {
2678                         asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
2679                         asn1p_lval.tv_opaque.len = asn1p_leng;
2680                         return TOK_opaque;
2681                 }
2682         YY_BREAK
2683
2684 case 21:
2685 /* rule 21 can match eol */
2686 YY_RULE_SETUP
2687 #line 178 "asn1p_l.l"
2688 {
2689                         asn1p_lval.tv_opaque.buf = 0;
2690                         asn1p_lval.tv_opaque.len = 0;
2691                         QAPPEND(asn1p_text+1, asn1p_leng-1);
2692                         yy_push_state(quoted);
2693                 }
2694         YY_BREAK
2695
2696 case 22:
2697 YY_RULE_SETUP
2698 #line 186 "asn1p_l.l"
2699 { QAPPEND(asn1p_text, asn1p_leng-1); }  /* Add a single quote */
2700         YY_BREAK
2701 case 23:
2702 /* rule 23 can match eol */
2703 YY_RULE_SETUP
2704 #line 187 "asn1p_l.l"
2705 { QAPPEND(asn1p_text, asn1p_leng); }
2706         YY_BREAK
2707 case 24:
2708 YY_RULE_SETUP
2709 #line 189 "asn1p_l.l"
2710 {
2711                         yy_pop_state();
2712                         /* Do not append last quote:
2713                         // QAPPEND(asn1p_text, asn1p_leng); */
2714
2715                         if(asn1p_lexer_pedantic_1990
2716                         && strchr(asn1p_text, '\n')) {
2717                                 fprintf(stderr, "%s: "
2718                                 "Newlines are prohibited by ASN.1:1990\n",
2719                                 asn1p_lval.tv_opaque.buf);
2720                                 return -1;
2721                         }
2722
2723                         return TOK_cstring;
2724                 }
2725         YY_BREAK
2726
2727
2728 case 25:
2729 YY_RULE_SETUP
2730 #line 208 "asn1p_l.l"
2731 {
2732                         const char *s = "ENCODING-CONTROL";
2733                         const char *p = s + sizeof("ENCODING-CONTROL") - 2;
2734                         for(; p >= s; p--) unput(*p);
2735                         yy_pop_state();
2736                 }
2737         YY_BREAK
2738 case 26:
2739 YY_RULE_SETUP
2740 #line 214 "asn1p_l.l"
2741 unput('D'); unput('N'); unput('E'); yy_pop_state();
2742         YY_BREAK
2743 case 27:
2744 YY_RULE_SETUP
2745 #line 215 "asn1p_l.l"
2746
2747         YY_BREAK
2748 case 28:
2749 YY_RULE_SETUP
2750 #line 216 "asn1p_l.l"
2751
2752         YY_BREAK
2753 case 29:
2754 YY_RULE_SETUP
2755 #line 217 "asn1p_l.l"
2756 /* Eat everything else */
2757         YY_BREAK
2758 case 30:
2759 /* rule 30 can match eol */
2760 YY_RULE_SETUP
2761 #line 218 "asn1p_l.l"
2762
2763         YY_BREAK
2764
2765 case 31:
2766 /* rule 31 can match eol */
2767 YY_RULE_SETUP
2768 #line 221 "asn1p_l.l"
2769 {
2770                 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2771                 asn1p_lval.tv_str = strdup(asn1p_text);
2772                 return TOK_hstring;
2773         }
2774         YY_BREAK
2775 case 32:
2776 /* rule 32 can match eol */
2777 YY_RULE_SETUP
2778 #line 227 "asn1p_l.l"
2779 {
2780                 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2781                 asn1p_lval.tv_str = strdup(asn1p_text);
2782                 return TOK_bstring;
2783         }
2784         YY_BREAK
2785 case 33:
2786 YY_RULE_SETUP
2787 #line 234 "asn1p_l.l"
2788 {
2789                 asn1p_lval.a_int = _lex_atoi(asn1p_text);
2790                 if(errno == ERANGE)
2791                         return -1;
2792                 return TOK_number_negative;
2793         }
2794         YY_BREAK
2795 case 34:
2796 YY_RULE_SETUP
2797 #line 241 "asn1p_l.l"
2798 {
2799                 asn1p_lval.a_int = _lex_atoi(asn1p_text);
2800                 if(errno == ERANGE)
2801                         return -1;
2802                 return TOK_number;
2803         }
2804         YY_BREAK
2805 case 35:
2806 YY_RULE_SETUP
2807 #line 248 "asn1p_l.l"
2808 {
2809                 asn1p_lval.a_int = _lex_atoi(asn1p_text);
2810                 if(errno == ERANGE)
2811                         return -1;
2812                 return TOK_number;
2813         }
2814         YY_BREAK
2815 case 36:
2816 YY_RULE_SETUP
2817 #line 255 "asn1p_l.l"
2818 {
2819                 asn1p_lval.a_dbl = _lex_atod(asn1p_text);
2820                 if(errno == ERANGE)
2821                         return -1;
2822                 return TOK_realnumber;
2823         }
2824         YY_BREAK
2825 case 37:
2826 YY_RULE_SETUP
2827 #line 262 "asn1p_l.l"
2828 return TOK_ABSENT;
2829         YY_BREAK
2830 case 38:
2831 YY_RULE_SETUP
2832 #line 263 "asn1p_l.l"
2833 return TOK_ALL;
2834         YY_BREAK
2835 case 39:
2836 YY_RULE_SETUP
2837 #line 264 "asn1p_l.l"
2838 {
2839                                 /* Appeared in 1990, removed in 1997 */
2840                                 if(TYPE_LIFETIME(1990, 1997))
2841                                         return TOK_ANY; 
2842                                 fprintf(stderr, "Keyword \"%s\" at line %d "
2843                                         "is obsolete\n", asn1p_text, asn1p_lineno);
2844                                 REJECT;
2845                         }
2846         YY_BREAK
2847 case 40:
2848 YY_RULE_SETUP
2849 #line 272 "asn1p_l.l"
2850 return TOK_APPLICATION;
2851         YY_BREAK
2852 case 41:
2853 YY_RULE_SETUP
2854 #line 273 "asn1p_l.l"
2855 return TOK_AUTOMATIC;
2856         YY_BREAK
2857 case 42:
2858 YY_RULE_SETUP
2859 #line 274 "asn1p_l.l"
2860 {
2861         if(asn1p_lexer_extended_values) {
2862             yy_push_state(extended_values);
2863         }
2864         return TOK_BEGIN;
2865     }
2866         YY_BREAK
2867 case 43:
2868 YY_RULE_SETUP
2869 #line 280 "asn1p_l.l"
2870 return TOK_BIT;
2871         YY_BREAK
2872 case 44:
2873 YY_RULE_SETUP
2874 #line 281 "asn1p_l.l"
2875 {
2876                                 if(TYPE_LIFETIME(1994, 0))
2877                                         return TOK_BMPString;
2878                                 REJECT;
2879                         }
2880         YY_BREAK
2881 case 45:
2882 YY_RULE_SETUP
2883 #line 286 "asn1p_l.l"
2884 return TOK_BOOLEAN;
2885         YY_BREAK
2886 case 46:
2887 YY_RULE_SETUP
2888 #line 287 "asn1p_l.l"
2889 return TOK_BY;
2890         YY_BREAK
2891 case 47:
2892 YY_RULE_SETUP
2893 #line 288 "asn1p_l.l"
2894 return TOK_CHARACTER;
2895         YY_BREAK
2896 case 48:
2897 YY_RULE_SETUP
2898 #line 289 "asn1p_l.l"
2899 return TOK_CHOICE;
2900         YY_BREAK
2901 case 49:
2902 YY_RULE_SETUP
2903 #line 290 "asn1p_l.l"
2904 return TOK_CLASS;
2905         YY_BREAK
2906 case 50:
2907 YY_RULE_SETUP
2908 #line 291 "asn1p_l.l"
2909 return TOK_COMPONENT;
2910         YY_BREAK
2911 case 51:
2912 YY_RULE_SETUP
2913 #line 292 "asn1p_l.l"
2914 return TOK_COMPONENTS;
2915         YY_BREAK
2916 case 52:
2917 YY_RULE_SETUP
2918 #line 293 "asn1p_l.l"
2919 return TOK_CONSTRAINED;
2920         YY_BREAK
2921 case 53:
2922 YY_RULE_SETUP
2923 #line 294 "asn1p_l.l"
2924 return TOK_CONTAINING;
2925         YY_BREAK
2926 case 54:
2927 YY_RULE_SETUP
2928 #line 295 "asn1p_l.l"
2929 return TOK_DEFAULT;
2930         YY_BREAK
2931 case 55:
2932 YY_RULE_SETUP
2933 #line 296 "asn1p_l.l"
2934 {
2935                                 /* Appeared in 1990, removed in 1997 */
2936                                 if(TYPE_LIFETIME(1990, 1997))
2937                                         return TOK_DEFINED;
2938                                 fprintf(stderr, "Keyword \"%s\" at line %d "
2939                                         "is obsolete\n", asn1p_text, asn1p_lineno);
2940                                 /* Deprecated since */
2941                                 REJECT;
2942                         }
2943         YY_BREAK
2944 case 56:
2945 YY_RULE_SETUP
2946 #line 305 "asn1p_l.l"
2947 return TOK_DEFINITIONS;
2948         YY_BREAK
2949 case 57:
2950 YY_RULE_SETUP
2951 #line 306 "asn1p_l.l"
2952 return TOK_EMBEDDED;
2953         YY_BREAK
2954 case 58:
2955 YY_RULE_SETUP
2956 #line 307 "asn1p_l.l"
2957 return TOK_ENCODED;
2958         YY_BREAK
2959 case 59:
2960 YY_RULE_SETUP
2961 #line 308 "asn1p_l.l"
2962 return TOK_ENCODING_CONTROL;
2963         YY_BREAK
2964 case 60:
2965 YY_RULE_SETUP
2966 #line 309 "asn1p_l.l"
2967 {
2968                     if(YYSTATE == extended_values) {
2969                 yy_pop_state();
2970             }
2971             return TOK_END;
2972         }
2973         YY_BREAK
2974 case 61:
2975 YY_RULE_SETUP
2976 #line 315 "asn1p_l.l"
2977 return TOK_ENUMERATED;
2978         YY_BREAK
2979 case 62:
2980 YY_RULE_SETUP
2981 #line 316 "asn1p_l.l"
2982 return TOK_EXCEPT;
2983         YY_BREAK
2984 case 63:
2985 YY_RULE_SETUP
2986 #line 317 "asn1p_l.l"
2987 return TOK_EXPLICIT;
2988         YY_BREAK
2989 case 64:
2990 YY_RULE_SETUP
2991 #line 318 "asn1p_l.l"
2992 return TOK_EXPORTS;
2993         YY_BREAK
2994 case 65:
2995 YY_RULE_SETUP
2996 #line 319 "asn1p_l.l"
2997 return TOK_EXTENSIBILITY;
2998         YY_BREAK
2999 case 66:
3000 YY_RULE_SETUP
3001 #line 320 "asn1p_l.l"
3002 return TOK_EXTERNAL;
3003         YY_BREAK
3004 case 67:
3005 YY_RULE_SETUP
3006 #line 321 "asn1p_l.l"
3007 return TOK_FALSE;
3008         YY_BREAK
3009 case 68:
3010 YY_RULE_SETUP
3011 #line 322 "asn1p_l.l"
3012 return TOK_FROM;
3013         YY_BREAK
3014 case 69:
3015 YY_RULE_SETUP
3016 #line 323 "asn1p_l.l"
3017 return TOK_GeneralizedTime;
3018         YY_BREAK
3019 case 70:
3020 YY_RULE_SETUP
3021 #line 324 "asn1p_l.l"
3022 return TOK_GeneralString;
3023         YY_BREAK
3024 case 71:
3025 YY_RULE_SETUP
3026 #line 325 "asn1p_l.l"
3027 return TOK_GraphicString;
3028         YY_BREAK
3029 case 72:
3030 YY_RULE_SETUP
3031 #line 326 "asn1p_l.l"
3032 return TOK_IA5String;
3033         YY_BREAK
3034 case 73:
3035 YY_RULE_SETUP
3036 #line 327 "asn1p_l.l"
3037 return TOK_IDENTIFIER;
3038         YY_BREAK
3039 case 74:
3040 YY_RULE_SETUP
3041 #line 328 "asn1p_l.l"
3042 return TOK_IMPLICIT;
3043         YY_BREAK
3044 case 75:
3045 YY_RULE_SETUP
3046 #line 329 "asn1p_l.l"
3047 return TOK_IMPLIED;
3048         YY_BREAK
3049 case 76:
3050 YY_RULE_SETUP
3051 #line 330 "asn1p_l.l"
3052 return TOK_IMPORTS;
3053         YY_BREAK
3054 case 77:
3055 YY_RULE_SETUP
3056 #line 331 "asn1p_l.l"
3057 return TOK_INCLUDES;
3058         YY_BREAK
3059 case 78:
3060 YY_RULE_SETUP
3061 #line 332 "asn1p_l.l"
3062 return TOK_INSTANCE;
3063         YY_BREAK
3064 case 79:
3065 YY_RULE_SETUP
3066 #line 333 "asn1p_l.l"
3067 return TOK_INSTRUCTIONS;
3068         YY_BREAK
3069 case 80:
3070 YY_RULE_SETUP
3071 #line 334 "asn1p_l.l"
3072 return TOK_INTEGER;
3073         YY_BREAK
3074 case 81:
3075 YY_RULE_SETUP
3076 #line 335 "asn1p_l.l"
3077 return TOK_INTERSECTION;
3078         YY_BREAK
3079 case 82:
3080 YY_RULE_SETUP
3081 #line 336 "asn1p_l.l"
3082 return TOK_ISO646String;
3083         YY_BREAK
3084 case 83:
3085 YY_RULE_SETUP
3086 #line 337 "asn1p_l.l"
3087 return TOK_MAX;
3088         YY_BREAK
3089 case 84:
3090 YY_RULE_SETUP
3091 #line 338 "asn1p_l.l"
3092 return TOK_MIN;
3093         YY_BREAK
3094 case 85:
3095 YY_RULE_SETUP
3096 #line 339 "asn1p_l.l"
3097 return TOK_MINUS_INFINITY;
3098         YY_BREAK
3099 case 86:
3100 YY_RULE_SETUP
3101 #line 340 "asn1p_l.l"
3102 return TOK_NULL;
3103         YY_BREAK
3104 case 87:
3105 YY_RULE_SETUP
3106 #line 341 "asn1p_l.l"
3107 return TOK_NumericString;
3108         YY_BREAK
3109 case 88:
3110 YY_RULE_SETUP
3111 #line 342 "asn1p_l.l"
3112 return TOK_OBJECT;
3113         YY_BREAK
3114 case 89:
3115 YY_RULE_SETUP
3116 #line 343 "asn1p_l.l"
3117 return TOK_ObjectDescriptor;
3118         YY_BREAK
3119 case 90:
3120 YY_RULE_SETUP
3121 #line 344 "asn1p_l.l"
3122 return TOK_OCTET;
3123         YY_BREAK
3124 case 91:
3125 YY_RULE_SETUP
3126 #line 345 "asn1p_l.l"
3127 return TOK_OF;
3128         YY_BREAK
3129 case 92:
3130 YY_RULE_SETUP
3131 #line 346 "asn1p_l.l"
3132 return TOK_OPTIONAL;
3133         YY_BREAK
3134 case 93:
3135 YY_RULE_SETUP
3136 #line 347 "asn1p_l.l"
3137 return TOK_PATTERN;
3138         YY_BREAK
3139 case 94:
3140 YY_RULE_SETUP
3141 #line 348 "asn1p_l.l"
3142 return TOK_PDV;
3143         YY_BREAK
3144 case 95:
3145 YY_RULE_SETUP
3146 #line 349 "asn1p_l.l"
3147 return TOK_PLUS_INFINITY;
3148         YY_BREAK
3149 case 96:
3150 YY_RULE_SETUP
3151 #line 350 "asn1p_l.l"
3152 return TOK_PRESENT;
3153         YY_BREAK
3154 case 97:
3155 YY_RULE_SETUP
3156 #line 351 "asn1p_l.l"
3157 return TOK_PrintableString;
3158         YY_BREAK
3159 case 98:
3160 YY_RULE_SETUP
3161 #line 352 "asn1p_l.l"
3162 return TOK_PRIVATE;
3163         YY_BREAK
3164 case 99:
3165 YY_RULE_SETUP
3166 #line 353 "asn1p_l.l"
3167 return TOK_REAL;
3168         YY_BREAK
3169 case 100:
3170 YY_RULE_SETUP
3171 #line 354 "asn1p_l.l"
3172 return TOK_RELATIVE_OID;
3173         YY_BREAK
3174 case 101:
3175 YY_RULE_SETUP
3176 #line 355 "asn1p_l.l"
3177 return TOK_SEQUENCE;
3178         YY_BREAK
3179 case 102:
3180 YY_RULE_SETUP
3181 #line 356 "asn1p_l.l"
3182 return TOK_SET;
3183         YY_BREAK
3184 case 103:
3185 YY_RULE_SETUP
3186 #line 357 "asn1p_l.l"
3187 return TOK_SIZE;
3188         YY_BREAK
3189 case 104:
3190 YY_RULE_SETUP
3191 #line 358 "asn1p_l.l"
3192 return TOK_STRING;
3193         YY_BREAK
3194 case 105:
3195 YY_RULE_SETUP
3196 #line 359 "asn1p_l.l"
3197 return TOK_SYNTAX;
3198         YY_BREAK
3199 case 106:
3200 YY_RULE_SETUP
3201 #line 360 "asn1p_l.l"
3202 return TOK_T61String;
3203         YY_BREAK
3204 case 107:
3205 YY_RULE_SETUP
3206 #line 361 "asn1p_l.l"
3207 return TOK_TAGS;
3208         YY_BREAK
3209 case 108:
3210 YY_RULE_SETUP
3211 #line 362 "asn1p_l.l"
3212 return TOK_TeletexString;
3213         YY_BREAK
3214 case 109:
3215 YY_RULE_SETUP
3216 #line 363 "asn1p_l.l"
3217 return TOK_TRUE;
3218         YY_BREAK
3219 case 110:
3220 YY_RULE_SETUP
3221 #line 364 "asn1p_l.l"
3222 return TOK_UNION;
3223         YY_BREAK
3224 case 111:
3225 YY_RULE_SETUP
3226 #line 365 "asn1p_l.l"
3227 return TOK_UNIQUE;
3228         YY_BREAK
3229 case 112:
3230 YY_RULE_SETUP
3231 #line 366 "asn1p_l.l"
3232 return TOK_UNIVERSAL;
3233         YY_BREAK
3234 case 113:
3235 YY_RULE_SETUP
3236 #line 367 "asn1p_l.l"
3237 {
3238                                 if(TYPE_LIFETIME(1994, 0))
3239                                         return TOK_UniversalString;
3240                                 REJECT;
3241                         }
3242         YY_BREAK
3243 case 114:
3244 YY_RULE_SETUP
3245 #line 372 "asn1p_l.l"
3246 return TOK_UTCTime;
3247         YY_BREAK
3248 case 115:
3249 YY_RULE_SETUP
3250 #line 373 "asn1p_l.l"
3251 {
3252                                 if(TYPE_LIFETIME(1994, 0))
3253                                         return TOK_UTF8String;
3254                                 REJECT;
3255                         }
3256         YY_BREAK
3257 case 116:
3258 YY_RULE_SETUP
3259 #line 378 "asn1p_l.l"
3260 return TOK_VideotexString;
3261         YY_BREAK
3262 case 117:
3263 YY_RULE_SETUP
3264 #line 379 "asn1p_l.l"
3265 return TOK_VisibleString;
3266         YY_BREAK
3267 case 118:
3268 YY_RULE_SETUP
3269 #line 380 "asn1p_l.l"
3270 return TOK_WITH;
3271         YY_BREAK
3272 case 119:
3273 YY_RULE_SETUP
3274 #line 383 "asn1p_l.l"
3275 {
3276                 asn1p_lval.tv_str = strdup(asn1p_text);
3277                 return TOK_typefieldreference;
3278         }
3279         YY_BREAK
3280 case 120:
3281 YY_RULE_SETUP
3282 #line 388 "asn1p_l.l"
3283 {
3284                 asn1p_lval.tv_str = strdup(asn1p_text);
3285                 return TOK_valuefieldreference;
3286         }
3287         YY_BREAK
3288 case 121:
3289 YY_RULE_SETUP
3290 #line 394 "asn1p_l.l"
3291 {
3292                 asn1p_lval.tv_str = strdup(asn1p_text);
3293                 return TOK_identifier;
3294         }
3295         YY_BREAK
3296 /*
3297          * objectclassreference
3298          */
3299 case 122:
3300 YY_RULE_SETUP
3301 #line 402 "asn1p_l.l"
3302 {
3303                 asn1p_lval.tv_str = strdup(asn1p_text);
3304                 return TOK_capitalreference;
3305         }
3306         YY_BREAK
3307 /*
3308          * typereference, modulereference
3309          * NOTE: TOK_objectclassreference must be combined
3310          * with this token to produce true typereference.
3311          */
3312 case 123:
3313 YY_RULE_SETUP
3314 #line 412 "asn1p_l.l"
3315 {
3316                 asn1p_lval.tv_str = strdup(asn1p_text);
3317                 return TOK_typereference;
3318         }
3319         YY_BREAK
3320 case 124:
3321 YY_RULE_SETUP
3322 #line 417 "asn1p_l.l"
3323 return TOK_PPEQ;
3324         YY_BREAK
3325 case 125:
3326 YY_RULE_SETUP
3327 #line 419 "asn1p_l.l"
3328 return TOK_ThreeDots;
3329         YY_BREAK
3330 case 126:
3331 YY_RULE_SETUP
3332 #line 420 "asn1p_l.l"
3333 return TOK_TwoDots;
3334         YY_BREAK
3335
3336 case 127:
3337 YY_RULE_SETUP
3338 #line 424 "asn1p_l.l"
3339 {
3340                                 asn1p_lval.tv_str = strdup(asn1p_text);
3341                                 return TOK_Literal;
3342                         }
3343         YY_BREAK
3344 case 128:
3345 YY_RULE_SETUP
3346 #line 429 "asn1p_l.l"
3347 {
3348                                 asn1p_lval.tv_str = strdup(asn1p_text);
3349                                 return TOK_Literal;
3350                         }
3351         YY_BREAK
3352 case 129:
3353 YY_RULE_SETUP
3354 #line 434 "asn1p_l.l"
3355 {
3356                                 yy_push_state(with_syntax);
3357                                 asn1p_lval.tv_str = strdup(asn1p_text);
3358                                 return TOK_Literal;
3359                         }
3360         YY_BREAK
3361 case 130:
3362 YY_RULE_SETUP
3363 #line 440 "asn1p_l.l"
3364 return '[';
3365         YY_BREAK
3366 case 131:
3367 YY_RULE_SETUP
3368 #line 441 "asn1p_l.l"
3369 return ']';
3370         YY_BREAK
3371 case 132:
3372 /* rule 132 can match eol */
3373 YY_RULE_SETUP
3374 #line 443 "asn1p_l.l"
3375 {
3376                         asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
3377                         asn1p_lval.tv_opaque.len = asn1p_leng;
3378                         return TOK_whitespace;
3379                         }
3380         YY_BREAK
3381 case 133:
3382 YY_RULE_SETUP
3383 #line 449 "asn1p_l.l"
3384 {
3385                                 yy_pop_state();
3386                                 if(YYSTATE == with_syntax) {
3387                                         asn1p_lval.tv_str = strdup(asn1p_text);
3388                                         return TOK_Literal;
3389                                 } else {
3390                                         return '}';
3391                                 }
3392                         }
3393         YY_BREAK
3394
3395 case 134:
3396 /* rule 134 can match eol */
3397 YY_RULE_SETUP
3398 #line 462 "asn1p_l.l"
3399 /* Ignore whitespace */
3400         YY_BREAK
3401 case 135:
3402 /* rule 135 can match eol */
3403 YY_RULE_SETUP
3404 #line 465 "asn1p_l.l"
3405 {
3406                 asn1c_integer_t v1 = -1, v2 = -1;
3407                 char *p;
3408                 for(p = asn1p_text; *p; p++)
3409                         if(*p >= '0' && *p <= '9')
3410                         { v1 = _lex_atoi(p); break; }
3411                 while(*p >= '0' && *p <= '9') p++;      /* Skip digits */
3412                 for(; *p; p++) if(*p >= '0' && *p <= '9')
3413                         { v2 = _lex_atoi(p); break; }
3414                 if(v1 < 0 || v1 > 7) {
3415                         fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
3416                                 "mandates 0..7 range for Tuple's TableColumn\n",
3417                                 asn1p_text, asn1p_lineno);
3418                         return -1;
3419                 }
3420                 if(v2 < 0 || v2 > 15) {
3421                         fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
3422                                 "mandates 0..15 range for Tuple's TableRow\n",
3423                                 asn1p_text, asn1p_lineno);
3424                         return -1;
3425                 }
3426                 asn1p_lval.a_int = (v1 << 4) + v2;
3427                 return TOK_tuple;
3428         }
3429         YY_BREAK
3430 case 136:
3431 /* rule 136 can match eol */
3432 YY_RULE_SETUP
3433 #line 490 "asn1p_l.l"
3434 {
3435                 asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1;
3436                 char *p;
3437                 for(p = asn1p_text; *p; p++)
3438                         if(*p >= '0' && *p <= '9')
3439                         { v1 = _lex_atoi(p); break; }
3440                 while(*p >= '0' && *p <= '9') p++;      /* Skip digits */
3441                 for(; *p; p++) if(*p >= '0' && *p <= '9')
3442                         { v2 = _lex_atoi(p); break; }
3443                 while(*p >= '0' && *p <= '9') p++;
3444                 for(; *p; p++) if(*p >= '0' && *p <= '9')
3445                         { v3 = _lex_atoi(p); break; }
3446                 while(*p >= '0' && *p <= '9') p++;
3447                 for(; *p; p++) if(*p >= '0' && *p <= '9')
3448                         { v4 = _lex_atoi(p); break; }
3449                 if(v1 < 0 || v1 > 127) {
3450                         fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
3451                                 "mandates 0..127 range for Quadruple's Group\n",
3452                                 asn1p_text, asn1p_lineno);
3453                         return -1;
3454                 }
3455                 if(v2 < 0 || v2 > 255) {
3456                         fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
3457                                 "mandates 0..255 range for Quadruple's Plane\n",
3458                                 asn1p_text, asn1p_lineno);
3459                         return -1;
3460                 }
3461                 if(v3 < 0 || v3 > 255) {
3462                         fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
3463                                 "mandates 0..255 range for Quadruple's Row\n",
3464                                 asn1p_text, asn1p_lineno);
3465                         return -1;
3466                 }
3467                 if(v4 < 0 || v4 > 255) {
3468                         fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
3469                                 "mandates 0..255 range for Quadruple's Cell\n",
3470                                 asn1p_text, asn1p_lineno);
3471                         return -1;
3472                 }
3473                 asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4;
3474                 return TOK_quadruple;
3475         }
3476         YY_BREAK
3477 case 137:
3478 YY_RULE_SETUP
3479 #line 534 "asn1p_l.l"
3480 return TOK_VBracketLeft;
3481         YY_BREAK
3482 case 138:
3483 YY_RULE_SETUP
3484 #line 535 "asn1p_l.l"
3485 return TOK_VBracketRight;
3486         YY_BREAK
3487 case 139:
3488 YY_RULE_SETUP
3489 #line 537 "asn1p_l.l"
3490 return asn1p_text[0];
3491         YY_BREAK
3492 case 140:
3493 /* rule 140 can match eol */
3494 YY_RULE_SETUP
3495 #line 539 "asn1p_l.l"
3496 {
3497                 if(TYPE_LIFETIME(1994, 0))
3498                         fprintf(stderr, "ERROR: ");
3499                 fprintf(stderr,
3500                 "Symbol '%c' at line %d is prohibited "
3501                 "by ASN.1:1994 and ASN.1:1997\n",
3502                         asn1p_text[0], asn1p_lineno);
3503                 if(TYPE_LIFETIME(1994, 0))
3504                         return -1;
3505         }
3506         YY_BREAK
3507 case 141:
3508 YY_RULE_SETUP
3509 #line 550 "asn1p_l.l"
3510 {
3511                 fprintf(stderr,
3512                         "Unexpected token at line %d: \"%s\"\n",
3513                         asn1p_lineno, asn1p_text);
3514                 while(YYSTATE != INITIAL)
3515                         yy_pop_state();
3516                 if(0) {
3517                         yy_top_state(); /* Just to use this function. */
3518                         yy_fatal_error("Parse error");
3519                 }
3520                 return -1;
3521 }
3522         YY_BREAK
3523 case YY_STATE_EOF(INITIAL):
3524 case YY_STATE_EOF(dash_comment):
3525 case YY_STATE_EOF(idash_comment):
3526 case YY_STATE_EOF(cpp_comment):
3527 case YY_STATE_EOF(quoted):
3528 case YY_STATE_EOF(opaque):
3529 case YY_STATE_EOF(encoding_control):
3530 case YY_STATE_EOF(with_syntax):
3531 case YY_STATE_EOF(extended_values):
3532 #line 563 "asn1p_l.l"
3533 {
3534                 while(YYSTATE != INITIAL)
3535                         yy_pop_state();
3536                 yyterminate();
3537         }
3538         YY_BREAK
3539 case 142:
3540 YY_RULE_SETUP
3541 #line 570 "asn1p_l.l"
3542 YY_FATAL_ERROR( "flex scanner jammed" );
3543         YY_BREAK
3544 #line 3545 "asn1p_l.c"
3545
3546         case YY_END_OF_BUFFER:
3547                 {
3548                 /* Amount of text matched not including the EOB char. */
3549                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3550
3551                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3552                 *yy_cp = (yy_hold_char);
3553                 YY_RESTORE_YY_MORE_OFFSET
3554
3555                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3556                         {
3557                         /* We're scanning a new file or input source.  It's
3558                          * possible that this happened because the user
3559                          * just pointed asn1p_in at a new source and called
3560                          * asn1p_lex().  If so, then we have to assure
3561                          * consistency between YY_CURRENT_BUFFER and our
3562                          * globals.  Here is the right place to do so, because
3563                          * this is the first action (other than possibly a
3564                          * back-up) that will match for the new input source.
3565                          */
3566                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3567                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = asn1p_in;
3568                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3569                         }
3570
3571                 /* Note that here we test for yy_c_buf_p "<=" to the position
3572                  * of the first EOB in the buffer, since yy_c_buf_p will
3573                  * already have been incremented past the NUL character
3574                  * (since all states make transitions on EOB to the
3575                  * end-of-buffer state).  Contrast this with the test
3576                  * in input().
3577                  */
3578                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3579                         { /* This was really a NUL. */
3580                         yy_state_type yy_next_state;
3581
3582                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3583
3584                         yy_current_state = yy_get_previous_state(  );
3585
3586                         /* Okay, we're now positioned to make the NUL
3587                          * transition.  We couldn't have
3588                          * yy_get_previous_state() go ahead and do it
3589                          * for us because it doesn't know how to deal
3590                          * with the possibility of jamming (and we don't
3591                          * want to build jamming into it because then it
3592                          * will run more slowly).
3593                          */
3594
3595                         yy_next_state = yy_try_NUL_trans( yy_current_state );
3596
3597                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3598
3599                         if ( yy_next_state )
3600                                 {
3601                                 /* Consume the NUL. */
3602                                 yy_cp = ++(yy_c_buf_p);
3603                                 yy_current_state = yy_next_state;
3604                                 goto yy_match;
3605                                 }
3606
3607                         else
3608                                 {
3609 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
3610                                 yy_cp = (yy_c_buf_p);
3611                                 goto yy_find_action;
3612                                 }
3613                         }
3614
3615                 else switch ( yy_get_next_buffer(  ) )
3616                         {
3617                         case EOB_ACT_END_OF_FILE:
3618                                 {
3619                                 (yy_did_buffer_switch_on_eof) = 0;
3620
3621                                 if ( asn1p_wrap( ) )
3622                                         {
3623                                         /* Note: because we've taken care in
3624                                          * yy_get_next_buffer() to have set up
3625                                          * asn1p_text, we can now set up
3626                                          * yy_c_buf_p so that if some total
3627                                          * hoser (like flex itself) wants to
3628                                          * call the scanner after we return the
3629                                          * YY_NULL, it'll still work - another
3630                                          * YY_NULL will get returned.
3631                                          */
3632                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3633
3634                                         yy_act = YY_STATE_EOF(YY_START);
3635                                         goto do_action;
3636                                         }
3637
3638                                 else
3639                                         {
3640                                         if ( ! (yy_did_buffer_switch_on_eof) )
3641                                                 YY_NEW_FILE;
3642                                         }
3643                                 break;
3644                                 }
3645
3646                         case EOB_ACT_CONTINUE_SCAN:
3647                                 (yy_c_buf_p) =
3648                                         (yytext_ptr) + yy_amount_of_matched_text;
3649
3650                                 yy_current_state = yy_get_previous_state(  );
3651
3652                                 yy_cp = (yy_c_buf_p);
3653                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3654                                 goto yy_match;
3655
3656                         case EOB_ACT_LAST_MATCH:
3657                                 (yy_c_buf_p) =
3658                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3659
3660                                 yy_current_state = yy_get_previous_state(  );
3661
3662                                 yy_cp = (yy_c_buf_p);
3663                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3664                                 goto yy_find_action;
3665                         }
3666                 break;
3667                 }
3668
3669         default:
3670                 YY_FATAL_ERROR(
3671                         "fatal flex scanner internal error--no action found" );
3672         } /* end of action switch */
3673                 } /* end of scanning one token */
3674 } /* end of asn1p_lex */
3675 /* %ok-for-header */
3676
3677 /* %if-c++-only */
3678 /* %not-for-header */
3679
3680 /* %ok-for-header */
3681
3682 /* %endif */
3683
3684 /* yy_get_next_buffer - try to read in a new buffer
3685  *
3686  * Returns a code representing an action:
3687  *      EOB_ACT_LAST_MATCH -
3688  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3689  *      EOB_ACT_END_OF_FILE - end of file
3690  */
3691 /* %if-c-only */
3692 static int yy_get_next_buffer (void)
3693 /* %endif */
3694 /* %if-c++-only */
3695 /* %endif */
3696 {
3697         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3698         register char *source = (yytext_ptr);
3699         register int number_to_move, i;
3700         int ret_val;
3701
3702         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3703                 YY_FATAL_ERROR(
3704                 "fatal flex scanner internal error--end of buffer missed" );
3705
3706         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3707                 { /* Don't try to fill the buffer, so this is an EOF. */
3708                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3709                         {
3710                         /* We matched a single character, the EOB, so
3711                          * treat this as a final EOF.
3712                          */
3713                         return EOB_ACT_END_OF_FILE;
3714                         }
3715
3716                 else
3717                         {
3718                         /* We matched some text prior to the EOB, first
3719                          * process it.
3720                          */
3721                         return EOB_ACT_LAST_MATCH;
3722                         }
3723                 }
3724
3725         /* Try to read more data. */
3726
3727         /* First move last chars to start of buffer. */
3728         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3729
3730         for ( i = 0; i < number_to_move; ++i )
3731                 *(dest++) = *(source++);
3732
3733         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3734                 /* don't do the read, it's not guaranteed to return an EOF,
3735                  * just force an EOF
3736                  */
3737                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3738
3739         else
3740                 {
3741                         yy_size_t num_to_read =
3742                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3743
3744                 while ( num_to_read <= 0 )
3745                         { /* Not enough room in the buffer - grow it. */
3746
3747                         YY_FATAL_ERROR(
3748 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3749
3750                         }
3751
3752                 if ( num_to_read > YY_READ_BUF_SIZE )
3753                         num_to_read = YY_READ_BUF_SIZE;
3754
3755                 /* Read in more data. */
3756                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3757                         (yy_n_chars), num_to_read );
3758
3759                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3760                 }
3761
3762         if ( (yy_n_chars) == 0 )
3763                 {
3764                 if ( number_to_move == YY_MORE_ADJ )
3765                         {
3766                         ret_val = EOB_ACT_END_OF_FILE;
3767                         asn1p_restart(asn1p_in  );
3768                         }
3769
3770                 else
3771                         {
3772                         ret_val = EOB_ACT_LAST_MATCH;
3773                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3774                                 YY_BUFFER_EOF_PENDING;
3775                         }
3776                 }
3777
3778         else
3779                 ret_val = EOB_ACT_CONTINUE_SCAN;
3780
3781         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3782                 /* Extend the array by 50%, plus the number we really need. */
3783                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3784                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) asn1p_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3785                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3786                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3787         }
3788
3789         (yy_n_chars) += number_to_move;
3790         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3791         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3792
3793         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3794
3795         return ret_val;
3796 }
3797
3798 /* yy_get_previous_state - get the state just before the EOB char was reached */
3799
3800 /* %if-c-only */
3801 /* %not-for-header */
3802
3803     static yy_state_type yy_get_previous_state (void)
3804 /* %endif */
3805 /* %if-c++-only */
3806 /* %endif */
3807 {
3808         register yy_state_type yy_current_state;
3809         register char *yy_cp;
3810     
3811 /* %% [15.0] code to get the start state into yy_current_state goes here */
3812         yy_current_state = (yy_start);
3813
3814         (yy_state_ptr) = (yy_state_buf);
3815         *(yy_state_ptr)++ = yy_current_state;
3816
3817         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3818                 {
3819 /* %% [16.0] code to find the next state goes here */
3820                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3821                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3822                         {
3823                         yy_current_state = (int) yy_def[yy_current_state];
3824                         if ( yy_current_state >= 769 )
3825                                 yy_c = yy_meta[(unsigned int) yy_c];
3826                         }
3827                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3828                 *(yy_state_ptr)++ = yy_current_state;
3829                 }
3830
3831         return yy_current_state;
3832 }
3833
3834 /* yy_try_NUL_trans - try to make a transition on the NUL character
3835  *
3836  * synopsis
3837  *      next_state = yy_try_NUL_trans( current_state );
3838  */
3839 /* %if-c-only */
3840     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3841 /* %endif */
3842 /* %if-c++-only */
3843 /* %endif */
3844 {
3845         register int yy_is_jam;
3846     /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
3847
3848         register YY_CHAR yy_c = 1;
3849         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3850                 {
3851                 yy_current_state = (int) yy_def[yy_current_state];
3852                 if ( yy_current_state >= 769 )
3853                         yy_c = yy_meta[(unsigned int) yy_c];
3854                 }
3855         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3856         yy_is_jam = (yy_current_state == 768);
3857         if ( ! yy_is_jam )
3858                 *(yy_state_ptr)++ = yy_current_state;
3859
3860         return yy_is_jam ? 0 : yy_current_state;
3861 }
3862
3863 /* %if-c-only */
3864
3865     static void yyunput (int c, register char * yy_bp )
3866 /* %endif */
3867 /* %if-c++-only */
3868 /* %endif */
3869 {
3870         register char *yy_cp;
3871     
3872     yy_cp = (yy_c_buf_p);
3873
3874         /* undo effects of setting up asn1p_text */
3875         *yy_cp = (yy_hold_char);
3876
3877         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3878                 { /* need to shift things up to make room */
3879                 /* +2 for EOB chars. */
3880                 register yy_size_t number_to_move = (yy_n_chars) + 2;
3881                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3882                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3883                 register char *source =
3884                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3885
3886                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3887                         *--dest = *--source;
3888
3889                 yy_cp += (int) (dest - source);
3890                 yy_bp += (int) (dest - source);
3891                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3892                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3893
3894                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3895                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
3896                 }
3897
3898         *--yy_cp = (char) c;
3899
3900 /* %% [18.0] update asn1p_lineno here */
3901
3902     if ( c == '\n' ){
3903         --asn1p_lineno;
3904     }
3905
3906         (yytext_ptr) = yy_bp;
3907         (yy_hold_char) = *yy_cp;
3908         (yy_c_buf_p) = yy_cp;
3909 }
3910 /* %if-c-only */
3911
3912 /* %endif */
3913
3914 /* %if-c-only */
3915 #ifndef YY_NO_INPUT
3916 #ifdef __cplusplus
3917     static int yyinput (void)
3918 #else
3919     static int input  (void)
3920 #endif
3921
3922 /* %endif */
3923 /* %if-c++-only */
3924 /* %endif */
3925 {
3926         int c;
3927     
3928         *(yy_c_buf_p) = (yy_hold_char);
3929
3930         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3931                 {
3932                 /* yy_c_buf_p now points to the character we want to return.
3933                  * If this occurs *before* the EOB characters, then it's a
3934                  * valid NUL; if not, then we've hit the end of the buffer.
3935                  */
3936                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3937                         /* This was really a NUL. */
3938                         *(yy_c_buf_p) = '\0';
3939
3940                 else
3941                         { /* need more input */
3942                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
3943                         ++(yy_c_buf_p);
3944
3945                         switch ( yy_get_next_buffer(  ) )
3946                                 {
3947                                 case EOB_ACT_LAST_MATCH:
3948                                         /* This happens because yy_g_n_b()
3949                                          * sees that we've accumulated a
3950                                          * token and flags that we need to
3951                                          * try matching the token before
3952                                          * proceeding.  But for input(),
3953                                          * there's no matching to consider.
3954                                          * So convert the EOB_ACT_LAST_MATCH
3955                                          * to EOB_ACT_END_OF_FILE.
3956                                          */
3957
3958                                         /* Reset buffer status. */
3959                                         asn1p_restart(asn1p_in );
3960
3961                                         /*FALLTHROUGH*/
3962
3963                                 case EOB_ACT_END_OF_FILE:
3964                                         {
3965                                         if ( asn1p_wrap( ) )
3966                                                 return 0;
3967
3968                                         if ( ! (yy_did_buffer_switch_on_eof) )
3969                                                 YY_NEW_FILE;
3970 #ifdef __cplusplus
3971                                         return yyinput();
3972 #else
3973                                         return input();
3974 #endif
3975                                         }
3976
3977                                 case EOB_ACT_CONTINUE_SCAN:
3978                                         (yy_c_buf_p) = (yytext_ptr) + offset;
3979                                         break;
3980                                 }
3981                         }
3982                 }
3983
3984         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
3985         *(yy_c_buf_p) = '\0';   /* preserve asn1p_text */
3986         (yy_hold_char) = *++(yy_c_buf_p);
3987
3988 /* %% [19.0] update BOL and asn1p_lineno */
3989         if ( c == '\n' )
3990                    
3991     asn1p_lineno++;
3992 ;
3993
3994         return c;
3995 }
3996 /* %if-c-only */
3997 #endif  /* ifndef YY_NO_INPUT */
3998 /* %endif */
3999
4000 /** Immediately switch to a different input stream.
4001  * @param input_file A readable stream.
4002  * 
4003  * @note This function does not reset the start condition to @c INITIAL .
4004  */
4005 /* %if-c-only */
4006     void asn1p_restart  (FILE * input_file )
4007 /* %endif */
4008 /* %if-c++-only */
4009 /* %endif */
4010 {
4011     
4012         if ( ! YY_CURRENT_BUFFER ){
4013         asn1p_ensure_buffer_stack ();
4014                 YY_CURRENT_BUFFER_LVALUE =
4015             asn1p__create_buffer(asn1p_in,YY_BUF_SIZE );
4016         }
4017
4018         asn1p__init_buffer(YY_CURRENT_BUFFER,input_file );
4019         asn1p__load_buffer_state( );
4020 }
4021
4022 /** Switch to a different input buffer.
4023  * @param new_buffer The new input buffer.
4024  * 
4025  */
4026 /* %if-c-only */
4027     void asn1p__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4028 /* %endif */
4029 /* %if-c++-only */
4030 /* %endif */
4031 {
4032     
4033         /* TODO. We should be able to replace this entire function body
4034          * with
4035          *              asn1p_pop_buffer_state();
4036          *              asn1p_push_buffer_state(new_buffer);
4037      */
4038         asn1p_ensure_buffer_stack ();
4039         if ( YY_CURRENT_BUFFER == new_buffer )
4040                 return;
4041
4042         if ( YY_CURRENT_BUFFER )
4043                 {
4044                 /* Flush out information for old buffer. */
4045                 *(yy_c_buf_p) = (yy_hold_char);
4046                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4047                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4048                 }
4049
4050         YY_CURRENT_BUFFER_LVALUE = new_buffer;
4051         asn1p__load_buffer_state( );
4052
4053         /* We don't actually know whether we did this switch during
4054          * EOF (asn1p_wrap()) processing, but the only time this flag
4055          * is looked at is after asn1p_wrap() is called, so it's safe
4056          * to go ahead and always set it.
4057          */
4058         (yy_did_buffer_switch_on_eof) = 1;
4059 }
4060
4061 /* %if-c-only */
4062 static void asn1p__load_buffer_state  (void)
4063 /* %endif */
4064 /* %if-c++-only */
4065 /* %endif */
4066 {
4067         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4068         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4069         asn1p_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4070         (yy_hold_char) = *(yy_c_buf_p);
4071 }
4072
4073 /** Allocate and initialize an input buffer state.
4074  * @param file A readable stream.
4075  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4076  * 
4077  * @return the allocated buffer state.
4078  */
4079 /* %if-c-only */
4080     YY_BUFFER_STATE asn1p__create_buffer  (FILE * file, int  size )
4081 /* %endif */
4082 /* %if-c++-only */
4083 /* %endif */
4084 {
4085         YY_BUFFER_STATE b;
4086     
4087         b = (YY_BUFFER_STATE) asn1p_alloc(sizeof( struct yy_buffer_state )  );
4088         if ( ! b )
4089                 YY_FATAL_ERROR( "out of dynamic memory in asn1p__create_buffer()" );
4090
4091         b->yy_buf_size = size;
4092
4093         /* yy_ch_buf has to be 2 characters longer than the size given because
4094          * we need to put in 2 end-of-buffer characters.
4095          */
4096         b->yy_ch_buf = (char *) asn1p_alloc(b->yy_buf_size + 2  );
4097         if ( ! b->yy_ch_buf )
4098                 YY_FATAL_ERROR( "out of dynamic memory in asn1p__create_buffer()" );
4099
4100         b->yy_is_our_buffer = 1;
4101
4102         asn1p__init_buffer(b,file );
4103
4104         return b;
4105 }
4106
4107 /** Destroy the buffer.
4108  * @param b a buffer created with asn1p__create_buffer()
4109  * 
4110  */
4111 /* %if-c-only */
4112     void asn1p__delete_buffer (YY_BUFFER_STATE  b )
4113 /* %endif */
4114 /* %if-c++-only */
4115 /* %endif */
4116 {
4117     
4118         if ( ! b )
4119                 return;
4120
4121         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4122                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4123
4124         if ( b->yy_is_our_buffer )
4125                 asn1p_free((void *) b->yy_ch_buf  );
4126
4127         asn1p_free((void *) b  );
4128 }
4129
4130 /* %if-c-only */
4131
4132 /* %endif */
4133
4134 /* %if-c++-only */
4135 /* %endif */
4136
4137 /* Initializes or reinitializes a buffer.
4138  * This function is sometimes called more than once on the same buffer,
4139  * such as during a asn1p_restart() or at EOF.
4140  */
4141 /* %if-c-only */
4142     static void asn1p__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4143 /* %endif */
4144 /* %if-c++-only */
4145 /* %endif */
4146
4147 {
4148         int oerrno = errno;
4149     
4150         asn1p__flush_buffer(b );
4151
4152         b->yy_input_file = file;
4153         b->yy_fill_buffer = 1;
4154
4155     /* If b is the current buffer, then asn1p__init_buffer was _probably_
4156      * called from asn1p_restart() or through yy_get_next_buffer.
4157      * In that case, we don't want to reset the lineno or column.
4158      */
4159     if (b != YY_CURRENT_BUFFER){
4160         b->yy_bs_lineno = 1;
4161         b->yy_bs_column = 0;
4162     }
4163
4164 /* %if-c-only */
4165
4166         b->yy_is_interactive = 0;
4167     
4168 /* %endif */
4169 /* %if-c++-only */
4170 /* %endif */
4171         errno = oerrno;
4172 }
4173
4174 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4175  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4176  * 
4177  */
4178 /* %if-c-only */
4179     void asn1p__flush_buffer (YY_BUFFER_STATE  b )
4180 /* %endif */
4181 /* %if-c++-only */
4182 /* %endif */
4183 {
4184         if ( ! b )
4185                 return;
4186
4187         b->yy_n_chars = 0;
4188
4189         /* We always need two end-of-buffer characters.  The first causes
4190          * a transition to the end-of-buffer state.  The second causes
4191          * a jam in that state.
4192          */
4193         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4194         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4195
4196         b->yy_buf_pos = &b->yy_ch_buf[0];
4197
4198         b->yy_at_bol = 1;
4199         b->yy_buffer_status = YY_BUFFER_NEW;
4200
4201         if ( b == YY_CURRENT_BUFFER )
4202                 asn1p__load_buffer_state( );
4203 }
4204
4205 /* %if-c-or-c++ */
4206 /** Pushes the new state onto the stack. The new state becomes
4207  *  the current state. This function will allocate the stack
4208  *  if necessary.
4209  *  @param new_buffer The new state.
4210  *  
4211  */
4212 /* %if-c-only */
4213 void asn1p_push_buffer_state (YY_BUFFER_STATE new_buffer )
4214 /* %endif */
4215 /* %if-c++-only */
4216 /* %endif */
4217 {
4218         if (new_buffer == NULL)
4219                 return;
4220
4221         asn1p_ensure_buffer_stack();
4222
4223         /* This block is copied from asn1p__switch_to_buffer. */
4224         if ( YY_CURRENT_BUFFER )
4225                 {
4226                 /* Flush out information for old buffer. */
4227                 *(yy_c_buf_p) = (yy_hold_char);
4228                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4229                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4230                 }
4231
4232         /* Only push if top exists. Otherwise, replace top. */
4233         if (YY_CURRENT_BUFFER)
4234                 (yy_buffer_stack_top)++;
4235         YY_CURRENT_BUFFER_LVALUE = new_buffer;
4236
4237         /* copied from asn1p__switch_to_buffer. */
4238         asn1p__load_buffer_state( );
4239         (yy_did_buffer_switch_on_eof) = 1;
4240 }
4241 /* %endif */
4242
4243 /* %if-c-or-c++ */
4244 /** Removes and deletes the top of the stack, if present.
4245  *  The next element becomes the new top.
4246  *  
4247  */
4248 /* %if-c-only */
4249 void asn1p_pop_buffer_state (void)
4250 /* %endif */
4251 /* %if-c++-only */
4252 /* %endif */
4253 {
4254         if (!YY_CURRENT_BUFFER)
4255                 return;
4256
4257         asn1p__delete_buffer(YY_CURRENT_BUFFER );
4258         YY_CURRENT_BUFFER_LVALUE = NULL;
4259         if ((yy_buffer_stack_top) > 0)
4260                 --(yy_buffer_stack_top);
4261
4262         if (YY_CURRENT_BUFFER) {
4263                 asn1p__load_buffer_state( );
4264                 (yy_did_buffer_switch_on_eof) = 1;
4265         }
4266 }
4267 /* %endif */
4268
4269 /* %if-c-or-c++ */
4270 /* Allocates the stack if it does not exist.
4271  *  Guarantees space for at least one push.
4272  */
4273 /* %if-c-only */
4274 static void asn1p_ensure_buffer_stack (void)
4275 /* %endif */
4276 /* %if-c++-only */
4277 /* %endif */
4278 {
4279         yy_size_t num_to_alloc;
4280     
4281         if (!(yy_buffer_stack)) {
4282
4283                 /* First allocation is just for 2 elements, since we don't know if this
4284                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
4285                  * immediate realloc on the next call.
4286          */
4287                 num_to_alloc = 1;
4288                 (yy_buffer_stack) = (struct yy_buffer_state**)asn1p_alloc
4289                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
4290                                                                 );
4291                 if ( ! (yy_buffer_stack) )
4292                         YY_FATAL_ERROR( "out of dynamic memory in asn1p_ensure_buffer_stack()" );
4293                                                                   
4294                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4295                                 
4296                 (yy_buffer_stack_max) = num_to_alloc;
4297                 (yy_buffer_stack_top) = 0;
4298                 return;
4299         }
4300
4301         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4302
4303                 /* Increase the buffer to prepare for a possible push. */
4304                 int grow_size = 8 /* arbitrary grow size */;
4305
4306                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4307                 (yy_buffer_stack) = (struct yy_buffer_state**)asn1p_realloc
4308                                                                 ((yy_buffer_stack),
4309                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
4310                                                                 );
4311                 if ( ! (yy_buffer_stack) )
4312                         YY_FATAL_ERROR( "out of dynamic memory in asn1p_ensure_buffer_stack()" );
4313
4314                 /* zero only the new slots.*/
4315                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4316                 (yy_buffer_stack_max) = num_to_alloc;
4317         }
4318 }
4319 /* %endif */
4320
4321 /* %if-c-only */
4322 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4323  * @param base the character buffer
4324  * @param size the size in bytes of the character buffer
4325  * 
4326  * @return the newly allocated buffer state object. 
4327  */
4328 YY_BUFFER_STATE asn1p__scan_buffer  (char * base, yy_size_t  size )
4329 {
4330         YY_BUFFER_STATE b;
4331     
4332         if ( size < 2 ||
4333              base[size-2] != YY_END_OF_BUFFER_CHAR ||
4334              base[size-1] != YY_END_OF_BUFFER_CHAR )
4335                 /* They forgot to leave room for the EOB's. */
4336                 return 0;
4337
4338         b = (YY_BUFFER_STATE) asn1p_alloc(sizeof( struct yy_buffer_state )  );
4339         if ( ! b )
4340                 YY_FATAL_ERROR( "out of dynamic memory in asn1p__scan_buffer()" );
4341
4342         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
4343         b->yy_buf_pos = b->yy_ch_buf = base;
4344         b->yy_is_our_buffer = 0;
4345         b->yy_input_file = 0;
4346         b->yy_n_chars = b->yy_buf_size;
4347         b->yy_is_interactive = 0;
4348         b->yy_at_bol = 1;
4349         b->yy_fill_buffer = 0;
4350         b->yy_buffer_status = YY_BUFFER_NEW;
4351
4352         asn1p__switch_to_buffer(b  );
4353
4354         return b;
4355 }
4356 /* %endif */
4357
4358 /* %if-c-only */
4359 /** Setup the input buffer state to scan a string. The next call to asn1p_lex() will
4360  * scan from a @e copy of @a str.
4361  * @param yystr a NUL-terminated string to scan
4362  * 
4363  * @return the newly allocated buffer state object.
4364  * @note If you want to scan bytes that may contain NUL values, then use
4365  *       asn1p__scan_bytes() instead.
4366  */
4367 YY_BUFFER_STATE asn1p__scan_string (yyconst char * yystr )
4368 {
4369     
4370         return asn1p__scan_bytes(yystr,strlen(yystr) );
4371 }
4372 /* %endif */
4373
4374 /* %if-c-only */
4375 /** Setup the input buffer state to scan the given bytes. The next call to asn1p_lex() will
4376  * scan from a @e copy of @a bytes.
4377  * @param bytes the byte buffer to scan
4378  * @param len the number of bytes in the buffer pointed to by @a bytes.
4379  * 
4380  * @return the newly allocated buffer state object.
4381  */
4382 YY_BUFFER_STATE asn1p__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
4383 {
4384         YY_BUFFER_STATE b;
4385         char *buf;
4386         yy_size_t n, i;
4387     
4388         /* Get memory for full buffer, including space for trailing EOB's. */
4389         n = _yybytes_len + 2;
4390         buf = (char *) asn1p_alloc(n  );
4391         if ( ! buf )
4392                 YY_FATAL_ERROR( "out of dynamic memory in asn1p__scan_bytes()" );
4393
4394         for ( i = 0; i < _yybytes_len; ++i )
4395                 buf[i] = yybytes[i];
4396
4397         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4398
4399         b = asn1p__scan_buffer(buf,n );
4400         if ( ! b )
4401                 YY_FATAL_ERROR( "bad buffer in asn1p__scan_bytes()" );
4402
4403         /* It's okay to grow etc. this buffer, and we should throw it
4404          * away when we're done.
4405          */
4406         b->yy_is_our_buffer = 1;
4407
4408         return b;
4409 }
4410 /* %endif */
4411
4412 /* %if-c-only */
4413     static void yy_push_state (int  new_state )
4414 /* %endif */
4415 /* %if-c++-only */
4416 /* %endif */
4417 {
4418         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4419                 {
4420                 yy_size_t new_size;
4421
4422                 (yy_start_stack_depth) += YY_START_STACK_INCR;
4423                 new_size = (yy_start_stack_depth) * sizeof( int );
4424
4425                 if ( ! (yy_start_stack) )
4426                         (yy_start_stack) = (int *) asn1p_alloc(new_size  );
4427
4428                 else
4429                         (yy_start_stack) = (int *) asn1p_realloc((void *) (yy_start_stack),new_size  );
4430
4431                 if ( ! (yy_start_stack) )
4432                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
4433                 }
4434
4435         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4436
4437         BEGIN(new_state);
4438 }
4439
4440 /* %if-c-only */
4441     static void yy_pop_state  (void)
4442 /* %endif */
4443 /* %if-c++-only */
4444 /* %endif */
4445 {
4446         if ( --(yy_start_stack_ptr) < 0 )
4447                 YY_FATAL_ERROR( "start-condition stack underflow" );
4448
4449         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4450 }
4451
4452 /* %if-c-only */
4453     static int yy_top_state  (void)
4454 /* %endif */
4455 /* %if-c++-only */
4456 /* %endif */
4457 {
4458         return (yy_start_stack)[(yy_start_stack_ptr) - 1];
4459 }
4460
4461 #ifndef YY_EXIT_FAILURE
4462 #define YY_EXIT_FAILURE 2
4463 #endif
4464
4465 /* %if-c-only */
4466 static void yy_fatal_error (yyconst char* msg )
4467 {
4468         (void) fprintf( stderr, "%s\n", msg );
4469         exit( YY_EXIT_FAILURE );
4470 }
4471 /* %endif */
4472 /* %if-c++-only */
4473 /* %endif */
4474
4475 /* Redefine yyless() so it works in section 3 code. */
4476
4477 #undef yyless
4478 #define yyless(n) \
4479         do \
4480                 { \
4481                 /* Undo effects of setting up asn1p_text. */ \
4482         int yyless_macro_arg = (n); \
4483         YY_LESS_LINENO(yyless_macro_arg);\
4484                 asn1p_text[asn1p_leng] = (yy_hold_char); \
4485                 (yy_c_buf_p) = asn1p_text + yyless_macro_arg; \
4486                 (yy_hold_char) = *(yy_c_buf_p); \
4487                 *(yy_c_buf_p) = '\0'; \
4488                 asn1p_leng = yyless_macro_arg; \
4489                 } \
4490         while ( 0 )
4491
4492 /* Accessor  methods (get/set functions) to struct members. */
4493
4494 /* %if-c-only */
4495 /* %if-reentrant */
4496 /* %endif */
4497
4498 /** Get the current line number.
4499  * 
4500  */
4501 int asn1p_get_lineno  (void)
4502 {
4503         
4504     return asn1p_lineno;
4505 }
4506
4507 /** Get the input stream.
4508  * 
4509  */
4510 FILE *asn1p_get_in  (void)
4511 {
4512         return asn1p_in;
4513 }
4514
4515 /** Get the output stream.
4516  * 
4517  */
4518 FILE *asn1p_get_out  (void)
4519 {
4520         return asn1p_out;
4521 }
4522
4523 /** Get the length of the current token.
4524  * 
4525  */
4526 yy_size_t asn1p_get_leng  (void)
4527 {
4528         return asn1p_leng;
4529 }
4530
4531 /** Get the current token.
4532  * 
4533  */
4534
4535 char *asn1p_get_text  (void)
4536 {
4537         return asn1p_text;
4538 }
4539
4540 /* %if-reentrant */
4541 /* %endif */
4542
4543 /** Set the current line number.
4544  * @param line_number
4545  * 
4546  */
4547 void asn1p_set_lineno (int  line_number )
4548 {
4549     
4550     asn1p_lineno = line_number;
4551 }
4552
4553 /** Set the input stream. This does not discard the current
4554  * input buffer.
4555  * @param in_str A readable stream.
4556  * 
4557  * @see asn1p__switch_to_buffer
4558  */
4559 void asn1p_set_in (FILE *  in_str )
4560 {
4561         asn1p_in = in_str ;
4562 }
4563
4564 void asn1p_set_out (FILE *  out_str )
4565 {
4566         asn1p_out = out_str ;
4567 }
4568
4569 int asn1p_get_debug  (void)
4570 {
4571         return asn1p__flex_debug;
4572 }
4573
4574 void asn1p_set_debug (int  bdebug )
4575 {
4576         asn1p__flex_debug = bdebug ;
4577 }
4578
4579 /* %endif */
4580
4581 /* %if-reentrant */
4582 /* %if-bison-bridge */
4583 /* %endif */
4584 /* %endif if-c-only */
4585
4586 /* %if-c-only */
4587 static int yy_init_globals (void)
4588 {
4589         /* Initialization is the same as for the non-reentrant scanner.
4590      * This function is called from asn1p_lex_destroy(), so don't allocate here.
4591      */
4592
4593     /* We do not touch asn1p_lineno unless the option is enabled. */
4594     asn1p_lineno =  1;
4595     
4596     (yy_buffer_stack) = 0;
4597     (yy_buffer_stack_top) = 0;
4598     (yy_buffer_stack_max) = 0;
4599     (yy_c_buf_p) = (char *) 0;
4600     (yy_init) = 0;
4601     (yy_start) = 0;
4602
4603     (yy_start_stack_ptr) = 0;
4604     (yy_start_stack_depth) = 0;
4605     (yy_start_stack) =  NULL;
4606
4607     (yy_state_buf) = 0;
4608     (yy_state_ptr) = 0;
4609     (yy_full_match) = 0;
4610     (yy_lp) = 0;
4611
4612 /* Defined in main.c */
4613 #ifdef YY_STDINIT
4614     asn1p_in = stdin;
4615     asn1p_out = stdout;
4616 #else
4617     asn1p_in = (FILE *) 0;
4618     asn1p_out = (FILE *) 0;
4619 #endif
4620
4621     /* For future reference: Set errno on error, since we are called by
4622      * asn1p_lex_init()
4623      */
4624     return 0;
4625 }
4626 /* %endif */
4627
4628 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
4629 /* asn1p_lex_destroy is for both reentrant and non-reentrant scanners. */
4630 int asn1p_lex_destroy  (void)
4631 {
4632     
4633     /* Pop the buffer stack, destroying each element. */
4634         while(YY_CURRENT_BUFFER){
4635                 asn1p__delete_buffer(YY_CURRENT_BUFFER  );
4636                 YY_CURRENT_BUFFER_LVALUE = NULL;
4637                 asn1p_pop_buffer_state();
4638         }
4639
4640         /* Destroy the stack itself. */
4641         asn1p_free((yy_buffer_stack) );
4642         (yy_buffer_stack) = NULL;
4643
4644     /* Destroy the start condition stack. */
4645         asn1p_free((yy_start_stack)  );
4646         (yy_start_stack) = NULL;
4647
4648     asn1p_free ( (yy_state_buf) );
4649     (yy_state_buf)  = NULL;
4650
4651     /* Reset the globals. This is important in a non-reentrant scanner so the next time
4652      * asn1p_lex() is called, initialization will occur. */
4653     yy_init_globals( );
4654
4655 /* %if-reentrant */
4656 /* %endif */
4657     return 0;
4658 }
4659 /* %endif */
4660
4661 /*
4662  * Internal utility routines.
4663  */
4664
4665 #ifndef yytext_ptr
4666 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4667 {
4668         register int i;
4669         for ( i = 0; i < n; ++i )
4670                 s1[i] = s2[i];
4671 }
4672 #endif
4673
4674 #ifdef YY_NEED_STRLEN
4675 static int yy_flex_strlen (yyconst char * s )
4676 {
4677         register int n;
4678         for ( n = 0; s[n]; ++n )
4679                 ;
4680
4681         return n;
4682 }
4683 #endif
4684
4685 void *asn1p_alloc (yy_size_t  size )
4686 {
4687         return (void *) malloc( size );
4688 }
4689
4690 void *asn1p_realloc  (void * ptr, yy_size_t  size )
4691 {
4692         /* The cast to (char *) in the following accommodates both
4693          * implementations that use char* generic pointers, and those
4694          * that use void* generic pointers.  It works with the latter
4695          * because both ANSI C and C++ allow castless assignment from
4696          * any pointer type to void*, and deal with argument conversions
4697          * as though doing an assignment.
4698          */
4699         return (void *) realloc( (char *) ptr, size );
4700 }
4701
4702 void asn1p_free (void * ptr )
4703 {
4704         free( (char *) ptr );   /* see asn1p_realloc() for (char *) cast */
4705 }
4706
4707 /* %if-tables-serialization definitions */
4708 /* %define-yytables   The name for this specific scanner's tables. */
4709 #define YYTABLES_NAME "yytables"
4710 /* %endif */
4711
4712 /* %ok-for-header */
4713
4714 #line 570 "asn1p_l.l"
4715
4716
4717
4718 /*
4719  * Very dirty but wonderful hack allowing to rule states from within .y file.
4720  */
4721 void asn1p_lexer_hack_push_opaque_state() { yy_push_state(opaque); }
4722
4723 /*
4724  * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
4725  */
4726 void asn1p_lexer_hack_enable_with_syntax() { yy_push_state(with_syntax); }
4727
4728 /* Yet another */
4729 void asn1p_lexer_hack_push_encoding_control() {
4730         yy_push_state(encoding_control);
4731 }
4732
4733 static asn1c_integer_t
4734 _lex_atoi(const char *ptr) {
4735         asn1c_integer_t value;
4736         if(asn1p_atoi(ptr, &value)) {
4737                 fprintf(stderr,
4738                         "Value \"%s\" at line %d is too large "
4739                         "for this compiler! Please contact the asn1c author.\n",
4740                         ptr, asn1p_lineno);
4741                 errno = ERANGE;
4742         }
4743         return value;
4744 }
4745
4746 static double
4747 _lex_atod(const char *ptr) {
4748         double value;
4749         errno = 0;
4750         value = strtod(ptr, 0);
4751         if(errno) {
4752                 fprintf(stderr,
4753                         "Value \"%s\" at line %d is outside of `double` range "
4754                         "in this compiler! Please contact the asn1c author.\n",
4755                         ptr, asn1p_lineno);
4756                 errno = ERANGE;
4757         }
4758         return value;
4759 }
4760
4761