blob: 8d4c7f6ac581a381a75c32091501c06bf7d859d3 [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001#define yy_create_buffer asn1p__create_buffer
2#define yy_delete_buffer asn1p__delete_buffer
3#define yy_scan_buffer asn1p__scan_buffer
4#define yy_scan_string asn1p__scan_string
5#define yy_scan_bytes asn1p__scan_bytes
6#define yy_flex_debug asn1p__flex_debug
7#define yy_init_buffer asn1p__init_buffer
8#define yy_flush_buffer asn1p__flush_buffer
9#define yy_load_buffer_state asn1p__load_buffer_state
10#define yy_switch_to_buffer asn1p__switch_to_buffer
11#define yyin asn1p_in
12#define yyleng asn1p_leng
13#define yylex asn1p_lex
14#define yyout asn1p_out
15#define yyrestart asn1p_restart
16#define yytext asn1p_text
17#define yylineno asn1p_lineno
18
Lev Walkinf59d0752004-08-18 04:59:12 +000019#line 20 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +000020/* A lexical scanner generated by flex */
21
22/* Scanner skeleton version:
23 * $Header$
24 */
25
26#define FLEX_SCANNER
27#define YY_FLEX_MAJOR_VERSION 2
28#define YY_FLEX_MINOR_VERSION 5
29
30#include <stdio.h>
31
32
33/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
34#ifdef c_plusplus
35#ifndef __cplusplus
36#define __cplusplus
37#endif
38#endif
39
40
41#ifdef __cplusplus
42
43#include <stdlib.h>
44#include <unistd.h>
45
46/* Use prototypes in function declarations. */
47#define YY_USE_PROTOS
48
49/* The "const" storage-class-modifier is valid. */
50#define YY_USE_CONST
51
52#else /* ! __cplusplus */
53
54#if __STDC__
55
56#define YY_USE_PROTOS
57#define YY_USE_CONST
58
59#endif /* __STDC__ */
60#endif /* ! __cplusplus */
61
62#ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65#include <io.h>
66#include <stdlib.h>
67#define YY_USE_CONST
68#define YY_USE_PROTOS
69#endif
70
71#ifdef YY_USE_CONST
72#define yyconst const
73#else
74#define yyconst
75#endif
76
77
78#ifdef YY_USE_PROTOS
79#define YY_PROTO(proto) proto
80#else
81#define YY_PROTO(proto) ()
82#endif
83
84/* Returned upon end-of-file. */
85#define YY_NULL 0
86
87/* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
91 */
92#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
93
94/* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
97 */
98#define BEGIN yy_start = 1 + 2 *
99
100/* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
102 * compatibility.
103 */
104#define YY_START ((yy_start - 1) / 2)
105#define YYSTATE YY_START
106
107/* Action number for EOF rule of a given start state. */
108#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110/* Special action meaning "start processing a new file". */
111#define YY_NEW_FILE yyrestart( yyin )
112
113#define YY_END_OF_BUFFER_CHAR 0
114
115/* Size of default input buffer. */
116#define YY_BUF_SIZE 16384
117
118typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120extern int yyleng;
121extern FILE *yyin, *yyout;
122
123#define EOB_ACT_CONTINUE_SCAN 0
124#define EOB_ACT_END_OF_FILE 1
125#define EOB_ACT_LAST_MATCH 2
126
127/* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
130 *
131 * if ( condition_holds )
132 * yyless( 5 );
133 * else
134 * do_something_else();
135 *
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
139 */
140
141/* Return all but the first 'n' matched characters back to the input stream. */
142
143#define yyless(n) \
144 do \
145 { \
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151 } \
152 while ( 0 )
153
154#define unput(c) yyunput( c, yytext_ptr )
155
156/* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
159 */
160typedef unsigned int yy_size_t;
161
162
163struct yy_buffer_state
164 {
165 FILE *yy_input_file;
166
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
169
170 /* Size of input buffer in bytes, not including room for EOB
171 * characters.
172 */
173 yy_size_t yy_buf_size;
174
175 /* Number of characters read into yy_ch_buf, not including EOB
176 * characters.
177 */
178 int yy_n_chars;
179
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
182 * delete it.
183 */
184 int yy_is_our_buffer;
185
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
189 * each newline.
190 */
191 int yy_is_interactive;
192
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
195 * not.
196 */
197 int yy_at_bol;
198
199 /* Whether to try to fill the input buffer when we reach the
200 * end of it.
201 */
202 int yy_fill_buffer;
203
204 int yy_buffer_status;
205#define YY_BUFFER_NEW 0
206#define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
212 *
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
216 */
217#define YY_BUFFER_EOF_PENDING 2
218 };
219
220static YY_BUFFER_STATE yy_current_buffer = 0;
221
222/* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
225 */
226#define YY_CURRENT_BUFFER yy_current_buffer
227
228
229/* yy_hold_char holds the character lost when yytext is formed. */
230static char yy_hold_char;
231
232static int yy_n_chars; /* number of characters read into yy_ch_buf */
233
234
235int yyleng;
236
237/* Points to current character in buffer. */
238static char *yy_c_buf_p = (char *) 0;
239static int yy_init = 1; /* whether we need to initialize */
240static int yy_start = 0; /* start state number */
241
242/* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
244 */
245static int yy_did_buffer_switch_on_eof;
246
247void yyrestart YY_PROTO(( FILE *input_file ));
248
249void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250void yy_load_buffer_state YY_PROTO(( void ));
251YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
256
257YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
260
261static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263static void yy_flex_free YY_PROTO(( void * ));
264
265#define yy_new_buffer yy_create_buffer
266
267#define yy_set_interactive(is_interactive) \
268 { \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
272 }
273
274#define yy_set_bol(at_bol) \
275 { \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
279 }
280
281#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
284#define YY_USES_REJECT
285
286#define yywrap() 1
287#define YY_SKIP_YYWRAP
288
289#define FLEX_DEBUG
290typedef unsigned char YY_CHAR;
291FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
292typedef int yy_state_type;
293
294#define FLEX_DEBUG
295extern int yylineno;
296int yylineno = 1;
297extern char *yytext;
298#define yytext_ptr yytext
299
300static yy_state_type yy_get_previous_state YY_PROTO(( void ));
301static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
302static int yy_get_next_buffer YY_PROTO(( void ));
303static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
304
305/* Done after the current pattern has been matched and before the
306 * corresponding action - sets up yytext.
307 */
308#define YY_DO_BEFORE_ACTION \
309 yytext_ptr = yy_bp; \
310 yyleng = (int) (yy_cp - yy_bp); \
311 yy_hold_char = *yy_cp; \
312 *yy_cp = '\0'; \
313 yy_c_buf_p = yy_cp;
314
Lev Walkinc603f102005-01-23 09:51:44 +0000315#define YY_NUM_RULES 129
316#define YY_END_OF_BUFFER 130
317static yyconst short int yy_acclist[1259] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000318 { 0,
Lev Walkinc603f102005-01-23 09:51:44 +0000319 130, 128, 129, 121, 128, 129, 121, 129, 122, 128,
320 129, 15, 128, 129, 122, 128, 129, 128, 129, 122,
321 128, 129, 128, 129, 122, 128, 129, 128, 129, 29,
322 128, 129, 28, 128, 129, 122, 128, 129, 128, 129,
323 116, 117, 128, 129, 116, 117, 128, 129, 116, 117,
324 128, 129, 116, 117, 128, 129, 116, 117, 128, 129,
325 116, 117, 128, 129, 116, 117, 128, 129, 116, 117,
326 128, 129, 116, 117, 128, 129, 116, 117, 128, 129,
327 116, 117, 128, 129, 116, 117, 128, 129, 116, 117,
328 128, 129, 116, 117, 128, 129, 116, 117, 128, 129,
Lev Walkinf15320b2004-06-03 03:38:44 +0000329
Lev Walkinc603f102005-01-23 09:51:44 +0000330 116, 117, 128, 129, 116, 117, 128, 129, 116, 117,
331 128, 129, 116, 117, 128, 129, 127, 128, 129, 115,
332 128, 129, 122, 127, 128, 129, 5, 128, 129, 2,
333 129, 2, 128, 129, 4, 128, 129, 7, 9, 128,
334 129, 7, 129, 9, 128, 129, 9, 128, 129, 17,
335 128, 129, 17, 129, 18, 128, 129, 12, 128, 129,
336 12, 129, 14, 128, 129, 14, 128, 129, 10, 128,
337 129, 11, 128, 129, 21, 23, 128, 129, 23, 128,
338 129, 24, 129, 21, 22, 23, 128, 129, 21, 22,
339 23, 128, 129, 124, 128, 129, 125, 128, 129, 125,
Lev Walkinf15320b2004-06-03 03:38:44 +0000340
Lev Walkinc603f102005-01-23 09:51:44 +0000341 129, 128, 129, 126, 128, 129, 121, 15, 15, 113,
342 114, 1, 27, 120, 6, 28, 116, 117, 116, 117,
343 116, 117, 116, 117, 116, 117, 116, 117, 117, 116,
344 117, 116, 117, 116, 117, 116, 117, 39, 116, 117,
345 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
346 116, 117, 116, 117, 116, 117, 116, 117, 117, 117,
347 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
348 116, 117, 116, 117, 116, 117, 117, 116, 117, 116,
349 117, 84, 116, 117, 116, 117, 117, 116, 117, 116,
350 117, 116, 117, 116, 117, 117, 116, 117, 116, 117,
Lev Walkinf15320b2004-06-03 03:38:44 +0000351
Lev Walkinc603f102005-01-23 09:51:44 +0000352 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
353 116, 117, 116, 117, 117, 116, 117, 116, 117, 117,
354 117, 116, 117, 115, 5, 3, 8, 17, 16, 12,
355 21, 21, 22, 21, 22, 124, 125, 123, 113, 114,
356 27, 119, 118, 116, 117, 31, 116, 117, 32, 116,
357 117, 116, 117, 116, 117, 116, 117, 36, 116, 117,
358 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
359 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
360 53, 116, 117, 116, 117, 116, 117, 116, 117, 116,
361 117, 116, 117, 116, 117, 117, 117, 116, 117, 116,
Lev Walkinf15320b2004-06-03 03:38:44 +0000362
Lev Walkinc603f102005-01-23 09:51:44 +0000363 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
364 117, 76, 116, 117, 77, 116, 117, 116, 117, 117,
365 116, 117, 116, 117, 116, 117, 117, 116, 117, 87,
366 116, 117, 116, 117, 116, 117, 116, 117, 117, 116,
367 117, 116, 117, 116, 117, 95, 116, 117, 116, 117,
368 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
369 116, 117, 117, 116, 117, 116, 117, 116, 117, 117,
370 117, 117, 116, 117, 13, 21, 22, 20, 21, 22,
371 26, 25, 116, 117, 116, 117, 116, 117, 116, 117,
372 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
Lev Walkinf15320b2004-06-03 03:38:44 +0000373
Lev Walkinc603f102005-01-23 09:51:44 +0000374 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
375 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
376 116, 117, 116, 117, 116, 117, 61, 116, 117, 117,
377 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
378 117, 116, 117, 116, 117, 116, 117, 116, 117, 79,
379 116, 117, 117, 116, 117, 116, 117, 116, 117, 117,
380 116, 117, 116, 117, 116, 117, 116, 117, 117, 92,
381 116, 117, 116, 117, 116, 117, 96, 116, 117, 116,
382 117, 116, 117, 116, 117, 100, 116, 117, 102, 116,
383 117, 116, 117, 117, 116, 117, 116, 117, 116, 117,
Lev Walkinf15320b2004-06-03 03:38:44 +0000384
Lev Walkinc603f102005-01-23 09:51:44 +0000385 116, 117, 116, 117, 117, 117, 117, 112, 116, 117,
386 21, 22, 116, 117, 116, 117, 116, 117, 35, 116,
387 117, 117, 116, 117, 116, 117, 116, 117, 42, 116,
388 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
389 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
390 117, 116, 117, 116, 117, 116, 117, 60, 116, 117,
391 117, 117, 117, 116, 117, 116, 117, 116, 117, 116,
392 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
393 117, 116, 117, 117, 116, 117, 83, 116, 117, 116,
394 117, 117, 116, 117, 116, 117, 116, 117, 116, 117,
Lev Walkinf15320b2004-06-03 03:38:44 +0000395
Lev Walkinc603f102005-01-23 09:51:44 +0000396 117, 116, 117, 116, 117, 116, 117, 116, 117, 117,
397 116, 117, 117, 104, 116, 117, 116, 117, 116, 117,
398 117, 116, 117, 117, 117, 117, 21, 22, 30, 116,
399 117, 116, 117, 116, 117, 117, 116, 117, 116, 117,
400 41, 116, 117, 116, 117, 116, 117, 116, 117, 116,
401 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
402 117, 116, 117, 55, 116, 117, 116, 117, 116, 117,
403 116, 117, 116, 117, 117, 117, 117, 116, 117, 116,
404 117, 116, 117, 116, 117, 116, 117, 116, 117, 116,
405 117, 116, 117, 116, 117, 116, 117, 116, 117, 117,
Lev Walkinf15320b2004-06-03 03:38:44 +0000406
Lev Walkinc603f102005-01-23 09:51:44 +0000407 81, 116, 117, 116, 117, 117, 116, 117, 116, 117,
408 116, 117, 116, 117, 117, 116, 117, 116, 117, 97,
409 116, 117, 98, 116, 117, 117, 116, 117, 117, 105,
410 116, 117, 116, 117, 117, 117, 117, 117, 117, 21,
411 22, 116, 117, 116, 117, 117, 38, 116, 117, 116,
412 117, 116, 117, 116, 117, 116, 117, 47, 116, 117,
413 48, 116, 117, 116, 117, 116, 117, 51, 116, 117,
414 116, 117, 116, 117, 116, 117, 57, 116, 117, 116,
415 117, 116, 117, 117, 117, 117, 116, 117, 116, 117,
416 68, 116, 117, 69, 116, 117, 116, 117, 116, 117,
Lev Walkinf15320b2004-06-03 03:38:44 +0000417
Lev Walkinc603f102005-01-23 09:51:44 +0000418 116, 117, 73, 116, 117, 116, 117, 116, 117, 116,
419 117, 117, 116, 117, 117, 86, 116, 117, 116, 117,
420 89, 116, 117, 91, 116, 117, 117, 116, 117, 116,
421 117, 117, 116, 117, 117, 116, 117, 108, 117, 117,
422 117, 117, 117, 21, 22, 116, 117, 116, 117, 117,
423 116, 117, 116, 117, 116, 117, 116, 117, 116, 117,
424 50, 116, 117, 116, 117, 116, 117, 56, 116, 117,
425 116, 117, 59, 116, 117, 117, 117, 117, 117, 116,
426 117, 67, 116, 117, 70, 116, 117, 71, 116, 117,
427 116, 117, 116, 117, 117, 116, 117, 117, 85, 116,
Lev Walkinf15320b2004-06-03 03:38:44 +0000428
Lev Walkinc603f102005-01-23 09:51:44 +0000429 117, 117, 116, 117, 117, 116, 117, 94, 116, 117,
430 117, 116, 117, 117, 116, 117, 117, 117, 117, 117,
431 21, 22, 116, 117, 34, 116, 117, 37, 117, 40,
432 116, 117, 43, 116, 117, 116, 117, 116, 117, 116,
433 117, 116, 117, 116, 117, 116, 117, 117, 117, 117,
434 65, 117, 116, 117, 116, 117, 116, 117, 117, 116,
435 117, 117, 117, 116, 117, 117, 116, 117, 99, 117,
436 116, 117, 117, 106, 116, 117, 117, 117, 117, 117,
437 21, 116, 117, 44, 116, 117, 45, 116, 117, 46,
438 116, 117, 116, 117, 116, 117, 54, 116, 117, 116,
Lev Walkinf15320b2004-06-03 03:38:44 +0000439
Lev Walkinc603f102005-01-23 09:51:44 +0000440 117, 117, 117, 117, 66, 116, 117, 116, 117, 116,
441 117, 117, 116, 117, 117, 117, 116, 117, 117, 116,
442 117, 116, 117, 117, 109, 117, 117, 117, 117, 21,
443 33, 116, 117, 49, 116, 117, 116, 117, 116, 117,
444 117, 117, 117, 116, 117, 116, 117, 117, 116, 117,
445 117, 117, 116, 117, 117, 116, 117, 116, 117, 117,
446 117, 117, 117, 21, 116, 117, 116, 117, 117, 117,
447 117, 72, 116, 117, 74, 116, 117, 75, 117, 116,
448 117, 117, 117, 116, 117, 117, 93, 116, 117, 116,
449 117, 117, 117, 117, 117, 21, 116, 117, 58, 116,
Lev Walkinf15320b2004-06-03 03:38:44 +0000450
Lev Walkinc603f102005-01-23 09:51:44 +0000451 117, 63, 117, 117, 64, 117, 116, 117, 80, 117,
452 117, 88, 116, 117, 117, 116, 117, 101, 117, 117,
453 117, 111, 117, 21, 116, 117, 117, 78, 116, 117,
454 117, 117, 116, 117, 117, 110, 117, 21, 116, 117,
455 62, 117, 117, 90, 117, 103, 116, 117, 107, 117,
456 21, 52, 116, 117, 82, 117, 19, 21
Lev Walkinf15320b2004-06-03 03:38:44 +0000457 } ;
458
Lev Walkinc603f102005-01-23 09:51:44 +0000459static yyconst short int yy_accept[671] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000460 { 0,
461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Lev Walkinf59d0752004-08-18 04:59:12 +0000462 1, 1, 1, 1, 1, 2, 4, 7, 9, 12,
463 15, 18, 20, 23, 25, 28, 30, 33, 36, 39,
464 41, 45, 49, 53, 57, 61, 65, 69, 73, 77,
465 81, 85, 89, 93, 97, 101, 105, 109, 113, 117,
Lev Walkinc603f102005-01-23 09:51:44 +0000466 120, 123, 127, 130, 132, 135, 138, 142, 144, 147,
467 150, 153, 155, 158, 161, 163, 166, 169, 172, 175,
468 179, 182, 184, 189, 194, 197, 200, 202, 204, 207,
469 207, 208, 209, 210, 210, 211, 211, 212, 212, 212,
470 213, 214, 215, 216, 217, 217, 219, 221, 223, 225,
Lev Walkinf15320b2004-06-03 03:38:44 +0000471
Lev Walkinc603f102005-01-23 09:51:44 +0000472 227, 229, 230, 232, 234, 236, 238, 241, 243, 245,
473 247, 249, 251, 253, 255, 257, 259, 260, 261, 263,
474 265, 267, 269, 271, 273, 275, 277, 278, 280, 282,
475 285, 287, 288, 290, 292, 294, 296, 297, 299, 301,
476 303, 305, 307, 309, 311, 313, 315, 316, 318, 320,
477 321, 322, 324, 325, 326, 327, 328, 329, 330, 331,
478 331, 332, 334, 336, 337, 338, 339, 339, 340, 341,
479 341, 341, 342, 343, 344, 346, 349, 352, 354, 356,
480 358, 361, 363, 365, 367, 369, 371, 373, 375, 377,
481 379, 381, 384, 386, 388, 390, 392, 394, 396, 397,
Lev Walkinf15320b2004-06-03 03:38:44 +0000482
Lev Walkinc603f102005-01-23 09:51:44 +0000483 398, 400, 402, 404, 406, 408, 410, 412, 415, 418,
484 420, 421, 423, 425, 427, 428, 430, 433, 435, 437,
485 439, 440, 442, 444, 446, 449, 451, 453, 455, 457,
486 459, 461, 463, 464, 466, 468, 470, 471, 472, 473,
487 475, 476, 478, 481, 481, 482, 483, 485, 487, 489,
488 491, 493, 495, 497, 499, 501, 503, 505, 507, 509,
489 511, 513, 515, 517, 519, 521, 523, 525, 527, 530,
490 531, 532, 534, 536, 538, 540, 542, 544, 546, 548,
491 550, 553, 554, 556, 558, 560, 561, 563, 565, 567,
492 569, 570, 573, 575, 577, 580, 582, 584, 586, 589,
Lev Walkinf15320b2004-06-03 03:38:44 +0000493
Lev Walkinc603f102005-01-23 09:51:44 +0000494 592, 594, 595, 597, 599, 601, 603, 605, 606, 607,
495 608, 611, 613, 615, 617, 619, 622, 623, 625, 627,
496 629, 632, 634, 636, 638, 640, 642, 644, 646, 648,
497 650, 652, 654, 656, 658, 661, 662, 663, 664, 666,
498 668, 670, 672, 674, 676, 678, 680, 682, 684, 685,
499 687, 690, 692, 693, 695, 697, 699, 701, 702, 704,
500 706, 708, 710, 711, 713, 714, 717, 719, 721, 722,
501 724, 725, 726, 727, 729, 732, 734, 736, 737, 739,
502 741, 744, 746, 748, 750, 752, 754, 756, 758, 760,
503 762, 764, 767, 769, 771, 773, 775, 776, 777, 778,
Lev Walkinf15320b2004-06-03 03:38:44 +0000504
Lev Walkinc603f102005-01-23 09:51:44 +0000505 780, 782, 784, 786, 788, 790, 792, 794, 796, 798,
506 800, 801, 804, 806, 807, 809, 811, 813, 815, 816,
507 818, 820, 823, 826, 827, 829, 830, 833, 835, 836,
508 837, 838, 839, 840, 842, 844, 846, 847, 850, 852,
509 854, 856, 858, 861, 864, 866, 868, 871, 873, 875,
510 877, 880, 882, 884, 885, 886, 887, 889, 891, 894,
511 897, 899, 901, 903, 906, 908, 910, 912, 913, 915,
512 916, 919, 921, 924, 927, 928, 930, 932, 933, 935,
513 936, 938, 940, 941, 942, 943, 944, 946, 948, 950,
514 951, 953, 955, 957, 959, 961, 964, 966, 968, 971,
Lev Walkinf15320b2004-06-03 03:38:44 +0000515
Lev Walkinc603f102005-01-23 09:51:44 +0000516 973, 976, 977, 978, 979, 980, 982, 985, 988, 991,
517 993, 995, 996, 998, 999, 1002, 1003, 1005, 1006, 1008,
518 1011, 1012, 1014, 1015, 1017, 1018, 1019, 1020, 1021, 1023,
519 1025, 1028, 1030, 1033, 1036, 1038, 1040, 1042, 1044, 1046,
520 1048, 1049, 1050, 1051, 1053, 1055, 1057, 1059, 1060, 1062,
521 1063, 1064, 1066, 1067, 1069, 1071, 1073, 1074, 1077, 1078,
522 1079, 1080, 1081, 1082, 1084, 1087, 1090, 1093, 1095, 1097,
523 1100, 1102, 1103, 1104, 1105, 1108, 1110, 1112, 1113, 1115,
524 1116, 1117, 1119, 1120, 1122, 1124, 1125, 1127, 1128, 1129,
525 1130, 1131, 1134, 1137, 1139, 1141, 1142, 1143, 1144, 1146,
Lev Walkinf15320b2004-06-03 03:38:44 +0000526
Lev Walkinc603f102005-01-23 09:51:44 +0000527 1148, 1149, 1151, 1152, 1153, 1155, 1156, 1158, 1160, 1161,
528 1162, 1163, 1164, 1165, 1167, 1169, 1170, 1171, 1172, 1175,
529 1178, 1180, 1182, 1183, 1184, 1186, 1187, 1190, 1192, 1193,
530 1194, 1195, 1196, 1197, 1199, 1202, 1204, 1205, 1207, 1209,
531 1211, 1212, 1215, 1216, 1218, 1220, 1221, 1222, 1224, 1225,
532 1227, 1228, 1231, 1232, 1233, 1235, 1236, 1238, 1239, 1241,
533 1243, 1244, 1246, 1249, 1251, 1252, 1255, 1257, 1259, 1259
Lev Walkinf15320b2004-06-03 03:38:44 +0000534 } ;
535
536static yyconst int yy_ec[256] =
537 { 0,
538 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
539 4, 4, 4, 1, 1, 1, 1, 1, 1, 1,
540 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541 1, 2, 5, 6, 1, 1, 1, 7, 8, 9,
542 9, 10, 1, 9, 11, 12, 13, 14, 15, 16,
543 16, 17, 18, 19, 16, 20, 16, 21, 22, 23,
544 24, 1, 1, 9, 25, 26, 27, 28, 29, 30,
545 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
546 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
Lev Walkinc603f102005-01-23 09:51:44 +0000547 9, 1, 51, 52, 1, 1, 53, 54, 55, 56,
Lev Walkinf15320b2004-06-03 03:38:44 +0000548
Lev Walkinc603f102005-01-23 09:51:44 +0000549 57, 58, 59, 60, 61, 62, 58, 63, 64, 65,
550 66, 67, 58, 68, 69, 70, 71, 72, 58, 73,
551 58, 74, 75, 76, 77, 1, 1, 1, 1, 1,
Lev Walkinf15320b2004-06-03 03:38:44 +0000552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565 1, 1, 1, 1, 1
566 } ;
567
Lev Walkinc603f102005-01-23 09:51:44 +0000568static yyconst int yy_meta[78] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000569 { 0,
570 1, 2, 3, 3, 1, 4, 5, 6, 1, 1,
571 7, 1, 1, 8, 8, 8, 8, 8, 8, 8,
572 9, 1, 1, 9, 8, 8, 8, 8, 8, 8,
573 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
574 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
Lev Walkinc603f102005-01-23 09:51:44 +0000575 1, 1, 10, 10, 10, 10, 10, 10, 10, 10,
576 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
577 10, 10, 10, 10, 11, 1, 11
Lev Walkinf15320b2004-06-03 03:38:44 +0000578 } ;
579
Lev Walkinc603f102005-01-23 09:51:44 +0000580static yyconst short int yy_base[688] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000581 { 0,
Lev Walkinc603f102005-01-23 09:51:44 +0000582 0, 0, 75, 77, 79, 80, 81, 88, 82, 92,
583 169, 246, 108, 119, 797, 777, 94, 97, 775, 774,
584 316, 116, 4249, 117, 767, 99, 4249, 124, 751, 4249,
585 380, 173, 191, 120, 236, 254, 269, 188, 275, 430,
586 431, 447, 453, 468, 474, 490, 498, 514, 515, 762,
587 0, 760, 0, 4249, 4249, 756, 4249, 4249, 753, 754,
588 0, 0, 757, 0, 0, 740, 4249, 4249, 4249, 0,
589 4249, 4249, 575, 651, 0, 148, 151, 256, 4249, 746,
590 159, 0, 745, 743, 0, 95, 0, 325, 739, 4249,
591 223, 733, 4249, 550, 715, 564, 565, 580, 593, 596,
Lev Walkinf15320b2004-06-03 03:38:44 +0000592
Lev Walkinc603f102005-01-23 09:51:44 +0000593 609, 0, 640, 643, 656, 669, 680, 696, 704, 717,
594 720, 733, 748, 754, 751, 769, 673, 684, 784, 787,
595 795, 810, 821, 832, 838, 849, 669, 862, 865, 878,
596 886, 669, 889, 902, 913, 926, 667, 942, 948, 959,
597 965, 976, 991, 992, 1007, 1008, 663, 1023, 1024, 663,
598 58, 1039, 0, 0, 4249, 4249, 0, 4249, 0, 699,
599 0, 681, 159, 0, 201, 4249, 706, 0, 0, 163,
600 683, 1071, 4249, 4249, 1066, 1067, 1082, 1083, 1098, 1106,
601 1109, 1122, 1130, 1138, 1146, 1159, 1167, 1170, 1191, 1192,
602 1207, 1213, 1224, 1230, 1241, 1247, 1258, 1269, 656, 645,
Lev Walkinf15320b2004-06-03 03:38:44 +0000603
Lev Walkinc603f102005-01-23 09:51:44 +0000604 1282, 1290, 1293, 1308, 1311, 1314, 1338, 1332, 1335, 1353,
605 654, 1356, 1371, 1377, 653, 1388, 1399, 1405, 1416, 1427,
606 639, 1438, 1444, 1455, 1461, 1476, 1477, 1492, 1503, 1509,
607 1524, 1530, 643, 1541, 1552, 1563, 627, 641, 636, 1574,
608 4249, 162, 655, 640, 4249, 4249, 1585, 1591, 1602, 1608,
609 1619, 1625, 1641, 1642, 1657, 1665, 1673, 1681, 1694, 1697,
610 1710, 1721, 1727, 1738, 1744, 1755, 1766, 1781, 1787, 622,
611 626, 1798, 1804, 1819, 1820, 1835, 1841, 1856, 1859, 1867,
612 1880, 616, 1888, 1891, 1904, 622, 1912, 1928, 1927, 1944,
613 600, 1945, 1960, 1973, 1981, 1984, 2002, 1999, 2005, 2020,
Lev Walkinf15320b2004-06-03 03:38:44 +0000614
Lev Walkinc603f102005-01-23 09:51:44 +0000615 2023, 598, 2026, 2041, 2044, 2052, 2065, 610, 599, 601,
616 2076, 187, 2089, 2092, 2110, 2113, 582, 2116, 2133, 2136,
617 2144, 2157, 2160, 2168, 2181, 2189, 2202, 2210, 2218, 2226,
618 2241, 2247, 2258, 2264, 2279, 595, 585, 576, 2280, 2300,
619 2297, 2318, 2317, 2333, 2339, 2350, 2361, 2372, 582, 2378,
620 2389, 2395, 570, 2406, 2417, 2423, 2434, 586, 2447, 2450,
621 2458, 2471, 569, 2482, 573, 2488, 2503, 2504, 564, 2519,
622 556, 553, 558, 227, 2525, 2541, 2547, 556, 2558, 2564,
623 2575, 2581, 2592, 2598, 2609, 2620, 2626, 2643, 2649, 2660,
624 2666, 2677, 2683, 2694, 2700, 2716, 552, 559, 552, 2717,
Lev Walkinf15320b2004-06-03 03:38:44 +0000625
Lev Walkinc603f102005-01-23 09:51:44 +0000626 2732, 2738, 2749, 2755, 2770, 2776, 2787, 2802, 2808, 2819,
627 557, 2830, 2836, 583, 2847, 2853, 2864, 2877, 553, 2885,
628 2900, 2903, 2906, 534, 2921, 521, 2924, 2927, 536, 524,
629 520, 522, 521, 539, 2942, 2955, 509, 2958, 2973, 2979,
630 2990, 2996, 3007, 3013, 3024, 3035, 3041, 3052, 3058, 3069,
631 3080, 3086, 3097, 105, 530, 507, 3103, 3114, 3125, 3131,
632 3142, 3148, 3163, 3164, 3179, 3185, 3196, 528, 3202, 505,
633 3213, 3224, 3230, 3241, 498, 3247, 3262, 493, 3268, 514,
634 3284, 0, 495, 496, 473, 502, 251, 3285, 3300, 485,
635 3306, 3317, 3330, 3338, 3341, 3356, 3362, 3377, 3359, 3383,
Lev Walkinf15320b2004-06-03 03:38:44 +0000636
Lev Walkinc603f102005-01-23 09:51:44 +0000637 3394, 467, 459, 461, 470, 3400, 3411, 3417, 3428, 3434,
638 3445, 459, 3456, 455, 3462, 453, 3473, 463, 3484, 3490,
639 458, 3501, 441, 3507, 440, 436, 453, 420, 196, 3518,
640 3524, 0, 3535, 3541, 3557, 3556, 3572, 3573, 3588, 3589,
641 420, 429, 416, 0, 3604, 3612, 3627, 421, 3628, 412,
642 417, 3643, 422, 3651, 0, 3659, 396, 3672, 403, 418,
643 390, 391, 431, 3675, 3683, 3696, 3699, 3707, 3720, 3728,
644 3736, 371, 375, 343, 3744, 3752, 3760, 338, 3768, 341,
645 333, 3776, 323, 3784, 3792, 331, 0, 297, 268, 274,
646 295, 3800, 3808, 3816, 3824, 267, 287, 265, 3837, 3845,
Lev Walkinf15320b2004-06-03 03:38:44 +0000647
Lev Walkinc603f102005-01-23 09:51:44 +0000648 266, 3853, 254, 256, 3861, 248, 3874, 3877, 245, 238,
649 243, 237, 255, 3885, 3898, 232, 227, 228, 3901, 3914,
650 0, 3922, 227, 218, 3925, 222, 3942, 3943, 218, 210,
651 201, 204, 217, 3958, 3959, 0, 171, 0, 3975, 0,
652 162, 3976, 154, 3993, 0, 151, 149, 0, 146, 4001,
653 127, 4009, 102, 105, 4017, 86, 0, 90, 4025, 0,
654 40, 0, 4038, 0, 68, 4041, 0, 0, 4249, 4086,
655 4097, 4108, 4119, 4130, 4141, 4152, 4162, 4164, 4174, 4185,
656 4196, 4206, 4216, 4226, 4230, 4234, 4238
Lev Walkinf15320b2004-06-03 03:38:44 +0000657 } ;
658
Lev Walkinc603f102005-01-23 09:51:44 +0000659static yyconst short int yy_def[688] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000660 { 0,
Lev Walkinc603f102005-01-23 09:51:44 +0000661 669, 1, 670, 670, 671, 671, 672, 672, 673, 673,
662 674, 674, 675, 675, 669, 669, 669, 669, 669, 676,
663 669, 677, 669, 669, 669, 669, 669, 669, 669, 669,
664 669, 31, 31, 31, 31, 31, 31, 31, 31, 31,
665 31, 31, 31, 31, 31, 31, 31, 31, 31, 669,
666 678, 669, 679, 669, 669, 669, 669, 669, 669, 669,
667 680, 680, 669, 681, 681, 669, 669, 669, 669, 682,
668 669, 669, 683, 683, 684, 669, 669, 21, 669, 669,
669 669, 676, 676, 669, 685, 669, 686, 677, 677, 669,
670 669, 669, 669, 669, 669, 31, 31, 31, 31, 31,
Lev Walkinf15320b2004-06-03 03:38:44 +0000671
Lev Walkinc603f102005-01-23 09:51:44 +0000672 31, 687, 31, 31, 31, 31, 31, 31, 31, 31,
673 31, 31, 31, 31, 31, 31, 687, 687, 31, 31,
674 31, 31, 31, 31, 31, 31, 687, 31, 31, 31,
675 31, 687, 31, 31, 31, 31, 687, 31, 31, 31,
676 31, 31, 31, 31, 31, 31, 687, 31, 31, 687,
677 687, 31, 678, 679, 669, 669, 680, 669, 681, 669,
678 682, 74, 74, 684, 669, 669, 669, 685, 686, 669,
679 669, 669, 669, 669, 31, 31, 31, 31, 31, 31,
Lev Walkinf59d0752004-08-18 04:59:12 +0000680 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinc603f102005-01-23 09:51:44 +0000681 31, 31, 31, 31, 31, 31, 31, 31, 687, 687,
Lev Walkinf15320b2004-06-03 03:38:44 +0000682
Lev Walkinf59d0752004-08-18 04:59:12 +0000683 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinc603f102005-01-23 09:51:44 +0000684 687, 31, 31, 31, 687, 31, 31, 31, 31, 31,
685 687, 31, 31, 31, 31, 31, 31, 31, 31, 31,
686 31, 31, 687, 31, 31, 31, 687, 687, 687, 31,
687 669, 74, 74, 669, 669, 669, 31, 31, 31, 31,
Lev Walkinf59d0752004-08-18 04:59:12 +0000688 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinc603f102005-01-23 09:51:44 +0000689 31, 31, 31, 31, 31, 31, 31, 31, 31, 687,
690 687, 31, 31, 31, 31, 31, 31, 31, 31, 31,
691 31, 687, 31, 31, 31, 687, 31, 31, 31, 31,
692 687, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinf15320b2004-06-03 03:38:44 +0000693
Lev Walkinc603f102005-01-23 09:51:44 +0000694 31, 687, 31, 31, 31, 31, 31, 687, 687, 687,
695 31, 74, 31, 31, 31, 31, 687, 31, 31, 31,
696 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
697 31, 31, 31, 31, 31, 687, 687, 687, 31, 31,
698 31, 31, 31, 31, 31, 31, 31, 31, 687, 31,
699 31, 31, 687, 31, 31, 31, 31, 687, 31, 31,
700 31, 31, 687, 31, 687, 31, 31, 31, 687, 31,
701 687, 687, 687, 74, 31, 31, 31, 687, 31, 31,
702 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
703 31, 31, 31, 31, 31, 31, 687, 687, 687, 31,
Lev Walkinf59d0752004-08-18 04:59:12 +0000704
Lev Walkinc603f102005-01-23 09:51:44 +0000705 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
706 687, 31, 31, 687, 31, 31, 31, 31, 687, 31,
707 31, 31, 31, 687, 31, 687, 31, 31, 687, 687,
708 687, 687, 687, 74, 31, 31, 687, 31, 31, 31,
709 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
710 31, 31, 31, 687, 687, 687, 31, 31, 31, 31,
711 31, 31, 31, 31, 31, 31, 31, 687, 31, 687,
712 31, 31, 31, 31, 687, 31, 31, 687, 31, 687,
713 31, 687, 687, 687, 687, 687, 74, 31, 31, 687,
714 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkin9c974182004-09-15 11:59:51 +0000715
Lev Walkinc603f102005-01-23 09:51:44 +0000716 31, 687, 687, 687, 687, 31, 31, 31, 31, 31,
717 31, 687, 31, 687, 31, 687, 31, 687, 31, 31,
718 687, 31, 687, 31, 687, 687, 687, 687, 74, 31,
719 31, 687, 31, 31, 31, 31, 31, 31, 31, 31,
720 687, 687, 687, 687, 31, 31, 31, 687, 31, 687,
721 687, 31, 687, 31, 687, 31, 687, 31, 687, 687,
722 687, 687, 682, 31, 31, 31, 31, 31, 31, 31,
723 31, 687, 687, 687, 31, 31, 31, 687, 31, 687,
724 687, 31, 687, 31, 31, 687, 687, 687, 687, 687,
725 682, 31, 31, 31, 31, 687, 687, 687, 31, 31,
726
727 687, 31, 687, 687, 31, 687, 31, 31, 687, 687,
728 687, 687, 682, 31, 31, 687, 687, 687, 31, 31,
729 687, 31, 687, 687, 31, 687, 31, 31, 687, 687,
730 687, 687, 682, 31, 31, 687, 687, 687, 31, 687,
731 687, 31, 687, 31, 687, 687, 687, 687, 682, 31,
732 687, 31, 687, 687, 31, 687, 687, 682, 31, 687,
733 687, 687, 31, 687, 682, 31, 687, 682, 0, 669,
734 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
735 669, 669, 669, 669, 669, 669, 669
Lev Walkinf15320b2004-06-03 03:38:44 +0000736 } ;
737
Lev Walkinc603f102005-01-23 09:51:44 +0000738static yyconst short int yy_nxt[4327] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000739 { 0,
Lev Walkinf59d0752004-08-18 04:59:12 +0000740 16, 17, 18, 17, 19, 20, 21, 22, 23, 16,
741 24, 25, 26, 27, 28, 28, 28, 28, 28, 28,
742 29, 19, 30, 30, 31, 32, 33, 34, 35, 36,
743 37, 38, 39, 38, 38, 38, 40, 41, 42, 43,
744 38, 44, 45, 46, 47, 48, 49, 38, 38, 38,
Lev Walkinc603f102005-01-23 09:51:44 +0000745 19, 50, 51, 51, 51, 51, 51, 51, 51, 51,
746 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
747 51, 51, 51, 51, 23, 52, 23, 54, 55, 54,
748 55, 58, 58, 62, 65, 56, 63, 56, 59, 59,
749 62, 60, 60, 63, 65, 81, 81, 81, 81, 81,
Lev Walkinf15320b2004-06-03 03:38:44 +0000750
Lev Walkinc603f102005-01-23 09:51:44 +0000751 81, 80, 66, 668, 80, 67, 80, 667, 93, 76,
752 77, 76, 66, 238, 78, 67, 84, 88, 88, 88,
753 76, 77, 76, 80, 80, 78, 239, 90, 665, 88,
754 88, 91, 91, 91, 91, 91, 91, 94, 94, 94,
755 94, 94, 94, 94, 664, 96, 86, 502, 111, 165,
756 165, 165, 165, 165, 165, 96, 68, 96, 69, 96,
757 81, 81, 81, 662, 96, 503, 68, 661, 69, 70,
758 71, 72, 71, 70, 70, 70, 70, 70, 70, 70,
759 70, 70, 30, 660, 79, 242, 243, 658, 245, 70,
760 70, 70, 70, 30, 246, 79, 162, 74, 96, 162,
Lev Walkinf15320b2004-06-03 03:38:44 +0000761
Lev Walkinc603f102005-01-23 09:51:44 +0000762 312, 103, 165, 165, 165, 104, 563, 657, 96, 105,
763 96, 106, 96, 96, 374, 656, 96, 96, 654, 70,
764 70, 107, 108, 96, 162, 96, 109, 96, 96, 110,
765 96, 653, 96, 162, 651, 96, 172, 172, 172, 172,
766 172, 172, 172, 71, 70, 71, 70, 71, 72, 71,
767 70, 70, 70, 70, 70, 70, 70, 70, 70, 434,
768 649, 96, 648, 669, 162, 647, 70, 70, 70, 70,
769 646, 96, 112, 113, 74, 96, 645, 669, 115, 96,
770 96, 529, 643, 114, 641, 640, 638, 637, 162, 96,
771 636, 96, 633, 96, 96, 116, 70, 70, 96, 119,
Lev Walkinf15320b2004-06-03 03:38:44 +0000772
Lev Walkinc603f102005-01-23 09:51:44 +0000773 96, 632, 120, 631, 96, 630, 96, 669, 96, 629,
774 96, 121, 122, 96, 96, 626, 624, 123, 623, 96,
775 71, 70, 71, 80, 621, 117, 88, 88, 88, 618,
776 617, 616, 170, 613, 612, 611, 118, 84, 88, 88,
777 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
778 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
779 85, 85, 85, 85, 85, 85, 610, 86, 87, 87,
780 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
781 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
782 96, 609, 606, 96, 96, 96, 96, 96, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000783
Lev Walkinc603f102005-01-23 09:51:44 +0000784 604, 603, 601, 598, 96, 97, 96, 96, 96, 96,
785 96, 96, 96, 96, 96, 98, 96, 99, 96, 100,
786 96, 96, 96, 96, 101, 96, 96, 96, 96, 96,
787 597, 596, 102, 102, 102, 102, 102, 102, 102, 102,
788 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
789 102, 102, 102, 102, 124, 96, 96, 591, 590, 589,
790 588, 587, 125, 586, 583, 96, 96, 96, 96, 96,
791 96, 581, 128, 129, 96, 126, 130, 133, 96, 580,
792 134, 578, 96, 574, 96, 573, 131, 572, 135, 562,
793 96, 96, 96, 96, 136, 561, 138, 96, 560, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000794
Lev Walkinc603f102005-01-23 09:51:44 +0000795 132, 127, 139, 96, 559, 96, 140, 96, 143, 96,
796 557, 96, 96, 96, 144, 96, 555, 141, 96, 553,
797 137, 551, 142, 96, 550, 96, 548, 96, 544, 96,
798 543, 145, 542, 96, 96, 148, 541, 96, 146, 96,
799 96, 149, 96, 532, 528, 527, 147, 152, 526, 96,
800 96, 96, 96, 96, 96, 525, 523, 521, 96, 96,
801 518, 516, 150, 94, 94, 94, 94, 94, 94, 94,
802 514, 505, 504, 490, 151, 161, 487, 486, 485, 161,
803 161, 161, 161, 161, 161, 161, 161, 161, 484, 96,
804 96, 483, 482, 480, 478, 161, 161, 161, 161, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000805
Lev Walkinc603f102005-01-23 09:51:44 +0000806 96, 96, 96, 96, 96, 96, 475, 175, 96, 96,
807 470, 468, 456, 455, 454, 176, 437, 96, 96, 96,
808 433, 96, 432, 431, 96, 161, 161, 429, 96, 426,
809 96, 96, 96, 96, 96, 178, 424, 96, 419, 414,
810 96, 177, 411, 399, 96, 398, 96, 397, 96, 378,
811 161, 161, 179, 96, 373, 161, 161, 161, 161, 161,
812 161, 161, 161, 161, 372, 96, 371, 365, 96, 358,
813 180, 161, 161, 161, 161, 96, 353, 96, 96, 96,
814 96, 96, 96, 349, 96, 337, 181, 96, 163, 336,
815 166, 96, 162, 96, 96, 182, 310, 309, 308, 302,
Lev Walkinf15320b2004-06-03 03:38:44 +0000816
Lev Walkinc603f102005-01-23 09:51:44 +0000817 96, 161, 161, 291, 96, 96, 96, 183, 96, 286,
818 282, 271, 270, 96, 246, 96, 244, 96, 162, 96,
819 184, 96, 241, 237, 96, 233, 161, 221, 186, 96,
820 215, 96, 211, 96, 185, 96, 200, 199, 174, 96,
821 96, 96, 96, 96, 173, 96, 171, 167, 96, 189,
822 166, 166, 96, 187, 188, 96, 96, 96, 190, 96,
823 160, 96, 158, 93, 96, 156, 155, 80, 96, 80,
824 96, 95, 96, 96, 191, 192, 96, 96, 92, 96,
825 194, 83, 80, 96, 80, 96, 197, 96, 96, 96,
826 96, 96, 193, 195, 96, 96, 669, 196, 96, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000827
Lev Walkinc603f102005-01-23 09:51:44 +0000828 669, 201, 669, 669, 96, 669, 96, 198, 96, 96,
829 669, 669, 96, 96, 669, 202, 669, 669, 669, 96,
830 96, 96, 96, 96, 96, 669, 96, 669, 96, 669,
831 96, 96, 96, 669, 203, 96, 204, 669, 669, 96,
832 669, 669, 669, 669, 669, 96, 96, 96, 669, 96,
833 669, 669, 205, 206, 96, 669, 96, 96, 96, 207,
834 96, 669, 669, 96, 669, 96, 669, 96, 669, 96,
835 669, 96, 669, 96, 96, 209, 96, 96, 669, 208,
836 669, 669, 96, 669, 210, 669, 96, 96, 96, 669,
837 96, 669, 669, 96, 669, 212, 669, 96, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000838
Lev Walkinc603f102005-01-23 09:51:44 +0000839 96, 96, 96, 96, 96, 669, 96, 669, 213, 96,
840 669, 96, 669, 96, 96, 96, 669, 96, 669, 669,
841 669, 96, 96, 96, 96, 96, 96, 96, 96, 214,
842 96, 669, 216, 96, 669, 669, 669, 96, 96, 96,
843 669, 96, 669, 669, 669, 669, 96, 217, 96, 669,
844 96, 96, 96, 669, 219, 669, 669, 218, 220, 669,
845 669, 96, 669, 96, 669, 96, 222, 96, 669, 669,
846 96, 669, 669, 96, 669, 669, 669, 223, 669, 96,
847 669, 96, 669, 96, 96, 96, 96, 96, 224, 669,
848 96, 225, 96, 669, 96, 669, 96, 669, 96, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000849
Lev Walkinc603f102005-01-23 09:51:44 +0000850 96, 96, 96, 96, 96, 229, 227, 669, 226, 96,
851 669, 96, 669, 228, 669, 96, 96, 96, 669, 669,
852 96, 669, 230, 669, 669, 669, 96, 96, 96, 96,
853 96, 96, 96, 96, 669, 96, 96, 669, 669, 669,
854 669, 669, 96, 96, 96, 96, 96, 232, 96, 96,
855 235, 231, 96, 236, 669, 234, 669, 669, 96, 96,
856 96, 96, 96, 96, 96, 669, 669, 96, 96, 669,
857 669, 669, 669, 669, 96, 669, 96, 669, 96, 669,
858 669, 669, 240, 96, 172, 172, 172, 172, 172, 172,
859 172, 96, 96, 669, 247, 669, 669, 669, 669, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000860
Lev Walkinc603f102005-01-23 09:51:44 +0000861 669, 96, 96, 96, 96, 96, 96, 96, 96, 669,
862 96, 96, 669, 669, 669, 669, 669, 96, 248, 96,
863 96, 96, 96, 96, 669, 669, 96, 96, 669, 669,
864 669, 96, 669, 96, 96, 96, 249, 96, 250, 669,
865 669, 96, 96, 96, 96, 96, 96, 96, 96, 669,
866 96, 669, 669, 96, 669, 96, 669, 96, 669, 96,
867 669, 96, 669, 96, 251, 252, 96, 96, 669, 96,
868 669, 96, 669, 96, 96, 96, 669, 96, 254, 253,
869 669, 96, 96, 96, 96, 96, 669, 669, 669, 669,
870 96, 669, 96, 669, 96, 96, 96, 669, 96, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000871
Lev Walkinc603f102005-01-23 09:51:44 +0000872 669, 255, 96, 96, 96, 96, 256, 96, 669, 96,
873 669, 96, 257, 258, 96, 259, 96, 96, 669, 669,
874 261, 669, 669, 260, 669, 669, 96, 96, 96, 96,
875 96, 96, 96, 669, 669, 96, 96, 669, 96, 669,
876 669, 669, 96, 669, 96, 262, 96, 669, 96, 96,
877 96, 96, 96, 669, 669, 96, 669, 96, 264, 96,
878 263, 96, 669, 96, 669, 96, 96, 96, 96, 96,
879 669, 669, 96, 669, 96, 267, 265, 669, 96, 266,
880 96, 669, 96, 96, 96, 96, 96, 669, 669, 669,
881 669, 96, 669, 96, 96, 96, 669, 96, 669, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000882
Lev Walkinc603f102005-01-23 09:51:44 +0000883 268, 669, 96, 669, 96, 269, 96, 96, 96, 669,
884 669, 669, 669, 96, 669, 96, 669, 96, 96, 96,
885 669, 96, 669, 669, 272, 96, 96, 273, 274, 96,
886 96, 275, 96, 96, 96, 669, 96, 96, 669, 96,
887 669, 669, 278, 276, 669, 96, 96, 96, 96, 96,
888 96, 96, 96, 96, 277, 96, 279, 96, 96, 669,
889 96, 669, 669, 96, 669, 669, 669, 96, 669, 96,
890 96, 96, 96, 96, 96, 96, 96, 96, 96, 280,
891 669, 96, 96, 669, 283, 669, 669, 669, 281, 669,
892 96, 96, 96, 96, 669, 96, 96, 96, 669, 284,
Lev Walkinf15320b2004-06-03 03:38:44 +0000893
Lev Walkinc603f102005-01-23 09:51:44 +0000894 96, 669, 96, 669, 669, 669, 96, 669, 96, 285,
895 96, 669, 96, 96, 96, 96, 96, 669, 669, 669,
896 669, 96, 669, 96, 96, 96, 669, 96, 669, 669,
897 96, 287, 96, 669, 96, 669, 96, 669, 96, 669,
898 96, 96, 96, 96, 96, 669, 669, 288, 669, 96,
899 669, 96, 96, 96, 669, 96, 669, 669, 289, 669,
900 96, 669, 96, 96, 96, 669, 96, 669, 293, 96,
901 669, 96, 290, 292, 669, 96, 669, 96, 669, 96,
902 96, 96, 96, 96, 669, 669, 96, 669, 96, 669,
903 96, 669, 96, 669, 96, 669, 96, 669, 96, 294,
Lev Walkinf15320b2004-06-03 03:38:44 +0000904
Lev Walkinc603f102005-01-23 09:51:44 +0000905 96, 96, 96, 669, 295, 96, 669, 669, 669, 296,
906 669, 96, 96, 96, 96, 96, 96, 96, 669, 669,
907 96, 96, 669, 669, 669, 669, 669, 96, 96, 96,
908 669, 96, 669, 669, 96, 297, 96, 669, 96, 669,
909 96, 669, 96, 669, 96, 298, 96, 96, 96, 96,
910 669, 299, 300, 96, 669, 96, 669, 669, 301, 96,
911 669, 96, 669, 96, 669, 96, 96, 96, 96, 96,
912 669, 669, 669, 669, 96, 669, 96, 96, 96, 303,
913 96, 304, 307, 669, 669, 96, 305, 96, 96, 96,
914 669, 96, 669, 669, 669, 306, 96, 669, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000915
Lev Walkinc603f102005-01-23 09:51:44 +0000916 96, 669, 96, 669, 669, 311, 669, 96, 669, 96,
917 96, 96, 669, 96, 669, 669, 96, 669, 96, 669,
918 96, 669, 313, 314, 96, 669, 96, 96, 96, 96,
919 96, 669, 669, 96, 669, 96, 669, 96, 315, 96,
920 669, 96, 669, 96, 96, 316, 96, 96, 669, 669,
921 96, 669, 96, 318, 96, 669, 96, 669, 96, 669,
922 96, 669, 96, 96, 96, 319, 96, 96, 320, 96,
923 669, 669, 669, 669, 669, 669, 96, 96, 96, 96,
924 96, 96, 96, 669, 669, 96, 96, 669, 317, 669,
925 96, 669, 96, 669, 96, 669, 96, 669, 96, 321,
Lev Walkinf15320b2004-06-03 03:38:44 +0000926
Lev Walkinc603f102005-01-23 09:51:44 +0000927 96, 96, 96, 322, 96, 324, 96, 669, 96, 96,
928 96, 669, 96, 669, 323, 669, 96, 96, 96, 96,
929 96, 669, 96, 669, 669, 96, 669, 669, 669, 96,
930 669, 96, 96, 96, 326, 96, 96, 327, 325, 669,
931 669, 96, 669, 669, 669, 96, 96, 96, 328, 96,
932 669, 669, 96, 669, 96, 329, 96, 669, 96, 669,
933 96, 669, 96, 96, 96, 96, 96, 669, 669, 96,
934 669, 96, 669, 96, 669, 96, 331, 330, 669, 96,
935 96, 96, 96, 96, 669, 669, 669, 669, 96, 669,
936 96, 96, 96, 669, 96, 669, 332, 669, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000937
Lev Walkinc603f102005-01-23 09:51:44 +0000938 669, 96, 669, 333, 669, 96, 96, 334, 669, 335,
939 96, 669, 96, 669, 669, 669, 96, 669, 96, 669,
940 96, 669, 96, 96, 96, 96, 96, 669, 669, 96,
941 669, 96, 669, 96, 669, 96, 669, 96, 669, 96,
942 669, 96, 96, 96, 96, 96, 669, 339, 96, 669,
943 669, 340, 669, 669, 96, 96, 96, 96, 96, 96,
944 96, 341, 669, 96, 96, 343, 96, 338, 669, 669,
945 96, 669, 96, 669, 96, 347, 96, 669, 96, 342,
946 96, 96, 344, 669, 96, 96, 345, 669, 669, 669,
947 669, 96, 96, 96, 96, 96, 96, 346, 96, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000948
Lev Walkinc603f102005-01-23 09:51:44 +0000949 96, 669, 96, 96, 96, 96, 96, 669, 669, 348,
950 669, 96, 669, 96, 350, 96, 96, 96, 669, 96,
951 669, 669, 669, 96, 96, 96, 96, 96, 96, 96,
952 96, 669, 96, 669, 351, 96, 669, 96, 355, 96,
953 354, 96, 352, 96, 669, 669, 669, 96, 96, 96,
954 669, 96, 96, 96, 669, 356, 96, 669, 669, 669,
955 669, 669, 96, 96, 96, 96, 96, 96, 357, 96,
956 96, 96, 96, 669, 669, 669, 669, 669, 669, 96,
957 96, 96, 96, 96, 96, 96, 669, 669, 96, 96,
958 669, 669, 669, 669, 669, 96, 669, 96, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000959
Lev Walkinc603f102005-01-23 09:51:44 +0000960 669, 360, 669, 359, 96, 669, 96, 669, 96, 96,
961 96, 669, 96, 669, 669, 669, 96, 96, 96, 96,
962 96, 361, 669, 96, 96, 96, 362, 96, 96, 669,
963 96, 669, 669, 364, 96, 669, 96, 96, 96, 96,
964 96, 96, 96, 96, 96, 96, 96, 669, 96, 96,
965 669, 96, 669, 669, 669, 96, 669, 96, 96, 96,
966 96, 96, 96, 366, 96, 96, 96, 96, 363, 96,
967 96, 669, 368, 669, 669, 669, 96, 96, 96, 96,
968 96, 96, 669, 96, 669, 367, 669, 96, 96, 96,
969 96, 96, 669, 669, 669, 669, 96, 669, 669, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +0000970
Lev Walkinc603f102005-01-23 09:51:44 +0000971 96, 96, 96, 669, 96, 669, 669, 370, 669, 96,
972 669, 96, 369, 96, 96, 96, 669, 96, 376, 669,
973 96, 669, 669, 669, 96, 669, 96, 96, 96, 96,
974 669, 96, 375, 96, 377, 96, 96, 669, 96, 669,
975 379, 96, 669, 669, 669, 96, 669, 96, 96, 96,
976 96, 96, 96, 96, 96, 96, 669, 96, 96, 380,
977 96, 96, 669, 669, 381, 669, 669, 669, 96, 96,
978 96, 96, 96, 96, 669, 96, 669, 96, 669, 96,
979 96, 96, 96, 96, 383, 96, 669, 669, 96, 669,
980 669, 669, 96, 96, 382, 96, 96, 96, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000981
Lev Walkinc603f102005-01-23 09:51:44 +0000982 384, 96, 669, 96, 96, 96, 96, 96, 669, 669,
983 669, 669, 96, 669, 96, 669, 385, 386, 96, 669,
984 96, 387, 669, 669, 96, 96, 96, 96, 96, 388,
985 669, 669, 669, 96, 669, 96, 669, 96, 389, 96,
986 669, 96, 390, 96, 669, 96, 96, 96, 669, 96,
987 669, 96, 669, 96, 96, 96, 669, 96, 669, 391,
988 669, 96, 96, 96, 669, 96, 96, 393, 669, 392,
989 96, 669, 96, 669, 669, 669, 96, 669, 96, 669,
990 96, 669, 96, 96, 96, 96, 96, 669, 669, 96,
991 394, 96, 669, 96, 669, 96, 669, 96, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +0000992
Lev Walkinc603f102005-01-23 09:51:44 +0000993 395, 396, 96, 96, 96, 96, 669, 669, 96, 669,
994 669, 669, 400, 669, 96, 96, 96, 96, 96, 96,
995 669, 669, 96, 96, 96, 96, 401, 669, 402, 669,
996 669, 669, 96, 669, 96, 96, 96, 96, 669, 96,
997 403, 96, 96, 96, 96, 404, 669, 669, 669, 669,
998 669, 669, 96, 96, 405, 96, 96, 96, 96, 669,
999 669, 96, 96, 669, 96, 669, 669, 407, 96, 669,
1000 96, 669, 96, 669, 96, 96, 96, 406, 96, 409,
1001 669, 669, 410, 96, 669, 96, 96, 96, 669, 96,
1002 669, 669, 408, 669, 96, 669, 96, 96, 96, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +00001003
Lev Walkinc603f102005-01-23 09:51:44 +00001004 96, 669, 669, 96, 669, 96, 669, 96, 669, 96,
1005 669, 96, 669, 96, 96, 96, 96, 96, 669, 669,
1006 96, 412, 96, 669, 96, 669, 96, 669, 96, 669,
1007 96, 96, 413, 96, 96, 669, 669, 669, 669, 96,
1008 669, 96, 96, 96, 669, 96, 669, 415, 96, 416,
1009 96, 669, 96, 669, 96, 669, 96, 669, 96, 96,
1010 417, 96, 96, 669, 669, 669, 669, 96, 669, 96,
1011 669, 96, 96, 96, 669, 96, 669, 418, 96, 420,
1012 669, 669, 96, 96, 96, 96, 96, 421, 422, 96,
1013 669, 96, 669, 96, 96, 96, 96, 96, 669, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +00001014
Lev Walkinc603f102005-01-23 09:51:44 +00001015 669, 669, 96, 669, 669, 669, 96, 96, 96, 669,
1016 96, 669, 669, 96, 425, 96, 669, 96, 423, 96,
1017 669, 96, 669, 96, 669, 96, 96, 96, 96, 96,
1018 669, 427, 96, 669, 669, 669, 669, 669, 96, 96,
1019 96, 96, 96, 96, 96, 428, 669, 96, 96, 669,
1020 96, 669, 669, 669, 96, 669, 96, 669, 96, 669,
1021 96, 669, 96, 96, 96, 435, 96, 669, 669, 96,
1022 669, 669, 96, 669, 669, 669, 96, 669, 96, 669,
1023 96, 669, 96, 96, 96, 96, 96, 669, 430, 96,
1024 436, 96, 669, 96, 669, 438, 669, 96, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001025
Lev Walkinc603f102005-01-23 09:51:44 +00001026 96, 96, 96, 96, 669, 669, 96, 439, 96, 440,
1027 96, 669, 96, 669, 96, 669, 96, 96, 96, 96,
1028 96, 669, 669, 96, 441, 96, 669, 96, 669, 96,
1029 669, 96, 669, 96, 96, 442, 96, 96, 669, 669,
1030 669, 669, 96, 669, 96, 96, 96, 444, 96, 669,
1031 669, 96, 443, 96, 669, 96, 669, 96, 669, 96,
1032 669, 96, 669, 96, 96, 96, 669, 669, 96, 445,
1033 96, 446, 669, 669, 96, 669, 447, 669, 96, 669,
1034 96, 669, 96, 669, 96, 96, 96, 96, 96, 669,
1035 449, 96, 669, 96, 669, 96, 669, 448, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001036
Lev Walkinc603f102005-01-23 09:51:44 +00001037 669, 96, 96, 96, 96, 96, 669, 669, 96, 669,
1038 96, 669, 96, 669, 96, 450, 96, 669, 96, 96,
1039 96, 96, 96, 669, 669, 96, 669, 96, 669, 96,
1040 669, 96, 452, 96, 669, 96, 451, 96, 96, 96,
1041 453, 96, 96, 669, 96, 669, 457, 669, 669, 669,
1042 669, 96, 96, 96, 96, 96, 96, 96, 669, 669,
1043 96, 96, 669, 96, 458, 459, 669, 96, 669, 96,
1044 669, 96, 669, 96, 96, 96, 96, 96, 669, 669,
1045 96, 669, 96, 461, 96, 669, 96, 669, 96, 669,
1046 96, 460, 96, 96, 96, 96, 462, 669, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001047
Lev Walkinc603f102005-01-23 09:51:44 +00001048 669, 96, 463, 669, 669, 96, 669, 96, 669, 96,
1049 669, 96, 96, 96, 96, 96, 669, 669, 669, 669,
1050 96, 669, 96, 669, 96, 669, 96, 96, 464, 669,
1051 465, 96, 669, 96, 669, 669, 669, 96, 669, 96,
1052 669, 96, 669, 96, 96, 96, 96, 96, 669, 669,
1053 466, 467, 96, 669, 96, 96, 96, 669, 96, 669,
1054 469, 96, 669, 96, 669, 96, 669, 96, 669, 96,
1055 669, 96, 96, 96, 96, 96, 669, 669, 96, 669,
1056 96, 669, 96, 669, 471, 669, 96, 669, 96, 96,
1057 472, 96, 96, 669, 669, 669, 669, 96, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001058
Lev Walkinc603f102005-01-23 09:51:44 +00001059 669, 96, 96, 96, 669, 474, 669, 473, 96, 669,
1060 96, 669, 96, 669, 96, 669, 96, 669, 669, 669,
1061 96, 96, 96, 669, 96, 96, 477, 669, 96, 96,
1062 476, 96, 669, 669, 669, 96, 669, 96, 96, 96,
1063 96, 96, 96, 96, 96, 96, 96, 96, 479, 96,
1064 96, 669, 96, 669, 669, 669, 96, 669, 96, 96,
1065 96, 96, 96, 96, 96, 96, 96, 96, 96, 481,
1066 669, 96, 669, 669, 669, 669, 669, 96, 669, 96,
1067 96, 96, 669, 96, 669, 488, 96, 489, 669, 669,
1068 96, 669, 96, 96, 96, 96, 669, 96, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001069
Lev Walkinc603f102005-01-23 09:51:44 +00001070 669, 491, 96, 669, 96, 669, 669, 669, 96, 669,
1071 96, 669, 96, 669, 96, 96, 492, 96, 96, 669,
1072 669, 96, 669, 96, 669, 96, 669, 493, 494, 96,
1073 669, 96, 96, 96, 96, 96, 669, 669, 96, 669,
1074 96, 669, 96, 669, 96, 669, 96, 669, 96, 96,
1075 96, 96, 96, 669, 669, 669, 495, 96, 669, 96,
1076 96, 96, 496, 96, 669, 669, 96, 669, 96, 669,
1077 96, 669, 96, 669, 96, 669, 96, 96, 96, 96,
1078 96, 669, 497, 96, 669, 96, 669, 96, 669, 96,
1079 669, 96, 669, 96, 96, 96, 96, 96, 669, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +00001080
Lev Walkinc603f102005-01-23 09:51:44 +00001081 669, 498, 96, 669, 96, 96, 96, 669, 96, 669,
1082 669, 500, 499, 96, 669, 96, 669, 96, 669, 96,
1083 669, 96, 96, 96, 96, 96, 669, 669, 96, 669,
1084 96, 669, 501, 669, 96, 506, 96, 669, 96, 96,
1085 96, 96, 96, 669, 669, 669, 669, 96, 669, 96,
1086 96, 96, 669, 96, 669, 669, 96, 507, 96, 669,
1087 96, 669, 96, 669, 96, 669, 96, 96, 96, 96,
1088 96, 669, 669, 96, 669, 96, 509, 96, 669, 96,
1089 669, 96, 669, 96, 508, 96, 96, 96, 96, 96,
1090 669, 669, 96, 669, 669, 669, 669, 669, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001091
Lev Walkinc603f102005-01-23 09:51:44 +00001092 96, 96, 96, 96, 96, 511, 510, 96, 96, 669,
1093 96, 669, 669, 669, 96, 669, 96, 669, 96, 669,
1094 96, 96, 96, 96, 96, 669, 669, 96, 669, 96,
1095 669, 96, 669, 513, 669, 96, 669, 515, 96, 96,
1096 96, 96, 669, 669, 669, 669, 96, 669, 96, 96,
1097 96, 669, 96, 517, 512, 96, 669, 96, 669, 96,
1098 669, 96, 669, 96, 669, 96, 96, 96, 96, 96,
1099 669, 669, 96, 669, 96, 519, 96, 669, 96, 669,
1100 96, 669, 96, 669, 96, 96, 96, 96, 669, 669,
1101 520, 96, 669, 96, 669, 669, 522, 96, 669, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001102
Lev Walkinc603f102005-01-23 09:51:44 +00001103 669, 96, 669, 96, 669, 96, 96, 96, 524, 96,
1104 96, 669, 96, 669, 669, 669, 669, 530, 669, 96,
1105 96, 96, 96, 96, 96, 96, 531, 669, 96, 96,
1106 669, 96, 669, 669, 669, 96, 669, 96, 669, 96,
1107 669, 96, 96, 96, 96, 96, 669, 533, 669, 669,
1108 96, 669, 96, 669, 96, 96, 96, 669, 535, 669,
1109 534, 96, 669, 96, 669, 96, 96, 96, 669, 96,
1110 669, 669, 538, 96, 96, 536, 96, 96, 96, 537,
1111 96, 96, 96, 669, 96, 96, 669, 96, 669, 669,
1112 669, 96, 669, 96, 96, 96, 96, 96, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001113
Lev Walkinc603f102005-01-23 09:51:44 +00001114 96, 96, 96, 96, 669, 539, 96, 669, 96, 669,
1115 669, 669, 96, 669, 96, 540, 96, 669, 96, 96,
1116 96, 96, 96, 669, 669, 96, 669, 96, 545, 96,
1117 669, 96, 669, 96, 669, 96, 96, 96, 96, 96,
1118 669, 669, 96, 669, 96, 669, 96, 669, 96, 669,
1119 96, 669, 96, 96, 96, 96, 96, 669, 669, 96,
1120 669, 96, 669, 96, 669, 96, 546, 96, 669, 96,
1121 96, 96, 96, 96, 669, 669, 669, 669, 96, 669,
1122 96, 96, 96, 669, 96, 549, 669, 96, 547, 96,
1123 669, 96, 669, 96, 554, 96, 669, 96, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001124
Lev Walkinc603f102005-01-23 09:51:44 +00001125 96, 96, 669, 669, 669, 552, 96, 669, 96, 96,
1126 96, 669, 96, 669, 669, 96, 669, 96, 669, 96,
1127 669, 96, 669, 96, 669, 96, 96, 96, 96, 96,
1128 669, 669, 96, 669, 96, 669, 96, 669, 556, 669,
1129 96, 669, 558, 96, 96, 96, 96, 669, 669, 96,
1130 669, 96, 669, 96, 669, 96, 564, 96, 669, 96,
1131 96, 96, 96, 96, 669, 669, 96, 669, 96, 669,
1132 96, 669, 96, 669, 96, 669, 96, 669, 96, 96,
1133 96, 96, 96, 565, 566, 96, 567, 669, 669, 669,
1134 669, 96, 96, 96, 96, 96, 96, 96, 96, 569,
Lev Walkinf15320b2004-06-03 03:38:44 +00001135
Lev Walkinc603f102005-01-23 09:51:44 +00001136 96, 96, 669, 669, 669, 669, 669, 96, 96, 568,
1137 96, 96, 96, 96, 96, 570, 96, 96, 669, 669,
1138 669, 669, 669, 96, 571, 96, 96, 96, 96, 96,
1139 669, 669, 96, 96, 669, 669, 669, 96, 669, 96,
1140 669, 96, 669, 96, 669, 575, 669, 96, 96, 96,
1141 576, 96, 96, 96, 669, 669, 96, 669, 669, 577,
1142 579, 669, 96, 96, 96, 96, 96, 96, 96, 669,
1143 669, 96, 96, 669, 669, 669, 96, 669, 96, 669,
1144 582, 669, 96, 669, 96, 669, 96, 96, 96, 584,
1145 96, 669, 669, 669, 96, 96, 96, 96, 96, 669,
Lev Walkinf15320b2004-06-03 03:38:44 +00001146
Lev Walkinc603f102005-01-23 09:51:44 +00001147 96, 669, 585, 96, 669, 669, 669, 96, 96, 96,
1148 96, 96, 592, 669, 96, 669, 96, 669, 96, 96,
1149 96, 96, 96, 669, 96, 669, 669, 96, 669, 669,
1150 669, 96, 96, 96, 96, 96, 96, 669, 96, 669,
1151 96, 669, 96, 96, 96, 96, 96, 669, 669, 593,
1152 669, 96, 669, 96, 669, 96, 669, 96, 594, 96,
1153 669, 96, 669, 96, 96, 96, 669, 96, 595, 96,
1154 669, 96, 96, 96, 669, 96, 669, 96, 669, 96,
1155 96, 96, 669, 96, 669, 96, 669, 96, 96, 599,
1156 669, 96, 669, 96, 669, 96, 96, 96, 600, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001157
Lev Walkinc603f102005-01-23 09:51:44 +00001158 669, 96, 669, 96, 96, 602, 669, 96, 605, 96,
1159 669, 96, 96, 96, 669, 96, 607, 96, 669, 96,
1160 96, 96, 669, 96, 608, 96, 669, 96, 96, 96,
1161 669, 96, 669, 96, 669, 96, 96, 96, 669, 96,
1162 669, 96, 669, 96, 96, 96, 669, 96, 669, 96,
1163 669, 96, 96, 614, 669, 96, 669, 669, 669, 96,
1164 96, 96, 96, 96, 669, 669, 669, 615, 96, 669,
1165 96, 669, 96, 669, 96, 669, 96, 669, 96, 619,
1166 96, 96, 620, 669, 96, 622, 96, 669, 96, 96,
1167 96, 669, 96, 669, 669, 669, 96, 96, 96, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001168
Lev Walkinc603f102005-01-23 09:51:44 +00001169 96, 627, 96, 669, 625, 96, 628, 669, 669, 96,
1170 96, 96, 96, 96, 96, 669, 96, 669, 96, 669,
1171 96, 96, 96, 96, 96, 669, 96, 669, 634, 96,
1172 669, 669, 669, 96, 669, 96, 96, 96, 96, 96,
1173 96, 669, 96, 669, 669, 96, 635, 96, 669, 96,
1174 96, 96, 669, 96, 669, 669, 669, 96, 96, 96,
1175 96, 96, 96, 669, 96, 639, 96, 96, 96, 96,
1176 669, 669, 669, 642, 669, 644, 669, 96, 96, 96,
1177 96, 96, 96, 96, 96, 669, 96, 96, 669, 669,
1178 669, 669, 669, 96, 96, 96, 96, 96, 96, 650,
Lev Walkinf15320b2004-06-03 03:38:44 +00001179
Lev Walkinc603f102005-01-23 09:51:44 +00001180 96, 96, 96, 96, 669, 669, 669, 669, 669, 669,
1181 96, 96, 96, 96, 96, 96, 669, 669, 96, 96,
1182 96, 655, 669, 652, 669, 669, 96, 669, 96, 669,
1183 96, 669, 96, 669, 96, 669, 96, 96, 96, 659,
1184 96, 669, 96, 669, 96, 96, 96, 669, 96, 669,
1185 96, 669, 96, 96, 96, 669, 96, 669, 663, 669,
1186 666, 96, 96, 96, 96, 669, 96, 669, 669, 96,
1187 669, 669, 669, 96, 669, 96, 96, 96, 96, 669,
1188 96, 669, 96, 669, 669, 96, 53, 53, 53, 53,
1189 53, 53, 53, 53, 53, 53, 53, 57, 57, 57,
Lev Walkinf15320b2004-06-03 03:38:44 +00001190
Lev Walkinc603f102005-01-23 09:51:44 +00001191 57, 57, 57, 57, 57, 57, 57, 57, 61, 61,
1192 61, 61, 61, 61, 61, 61, 61, 61, 61, 64,
1193 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
1194 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1195 73, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1196 75, 75, 82, 82, 82, 669, 82, 82, 82, 82,
1197 82, 82, 82, 89, 89, 669, 669, 89, 669, 89,
1198 153, 153, 669, 153, 154, 154, 669, 154, 154, 154,
1199 669, 154, 154, 154, 154, 157, 157, 157, 669, 157,
1200 157, 157, 157, 157, 157, 157, 159, 159, 159, 159,
Lev Walkinf15320b2004-06-03 03:38:44 +00001201
Lev Walkinc603f102005-01-23 09:51:44 +00001202 159, 159, 159, 159, 669, 159, 161, 669, 669, 161,
1203 161, 161, 161, 161, 161, 161, 162, 669, 669, 162,
1204 162, 162, 162, 162, 162, 162, 164, 669, 669, 164,
1205 669, 164, 164, 164, 164, 164, 168, 168, 669, 168,
1206 169, 169, 669, 169, 102, 102, 669, 102, 15, 669,
1207 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1208 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1209 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1210 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1211 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
Lev Walkinf59d0752004-08-18 04:59:12 +00001212
Lev Walkinc603f102005-01-23 09:51:44 +00001213 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1214 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1215 669, 669, 669, 669, 669, 669
Lev Walkinf15320b2004-06-03 03:38:44 +00001216 } ;
1217
Lev Walkinc603f102005-01-23 09:51:44 +00001218static yyconst short int yy_chk[4327] =
Lev Walkinf15320b2004-06-03 03:38:44 +00001219 { 0,
1220 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1221 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1222 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1223 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1224 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1225 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1226 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Lev Walkinc603f102005-01-23 09:51:44 +00001227 1, 1, 1, 1, 1, 1, 1, 3, 3, 4,
1228 4, 5, 6, 7, 9, 3, 7, 4, 5, 6,
1229 8, 5, 6, 8, 10, 17, 17, 17, 18, 18,
Lev Walkinf15320b2004-06-03 03:38:44 +00001230
Lev Walkinc603f102005-01-23 09:51:44 +00001231 18, 17, 9, 665, 18, 9, 26, 661, 26, 13,
1232 13, 13, 10, 151, 13, 10, 86, 22, 22, 22,
1233 14, 14, 14, 22, 24, 14, 151, 24, 658, 22,
1234 22, 24, 24, 24, 24, 24, 24, 28, 28, 28,
1235 28, 28, 28, 28, 656, 34, 86, 454, 34, 76,
1236 76, 76, 77, 77, 77, 34, 9, 34, 9, 34,
1237 81, 81, 81, 654, 34, 454, 10, 653, 10, 11,
1238 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1239 11, 11, 13, 651, 13, 163, 163, 649, 170, 11,
1240 11, 11, 11, 14, 170, 14, 163, 11, 32, 242,
Lev Walkinf15320b2004-06-03 03:38:44 +00001241
Lev Walkinc603f102005-01-23 09:51:44 +00001242 242, 32, 165, 165, 165, 32, 529, 647, 32, 32,
1243 32, 32, 32, 38, 312, 646, 33, 32, 643, 11,
1244 11, 32, 33, 38, 312, 38, 33, 38, 33, 33,
1245 33, 641, 38, 529, 637, 33, 91, 91, 91, 91,
1246 91, 91, 91, 11, 11, 11, 12, 12, 12, 12,
1247 12, 12, 12, 12, 12, 12, 12, 12, 12, 374,
1248 633, 35, 632, 78, 374, 631, 12, 12, 12, 12,
1249 630, 35, 35, 35, 12, 35, 629, 78, 36, 36,
1250 35, 487, 626, 35, 624, 623, 618, 617, 487, 36,
1251 616, 36, 613, 36, 37, 36, 12, 12, 36, 39,
Lev Walkinf15320b2004-06-03 03:38:44 +00001252
Lev Walkinc603f102005-01-23 09:51:44 +00001253 39, 612, 39, 611, 37, 610, 37, 78, 37, 609,
1254 39, 39, 39, 37, 39, 606, 604, 39, 603, 39,
1255 12, 12, 12, 21, 601, 37, 88, 88, 88, 598,
1256 597, 596, 88, 591, 590, 589, 37, 21, 88, 88,
Lev Walkinf59d0752004-08-18 04:59:12 +00001257 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1258 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
Lev Walkinc603f102005-01-23 09:51:44 +00001259 21, 21, 21, 21, 21, 21, 588, 21, 21, 21,
Lev Walkinf59d0752004-08-18 04:59:12 +00001260 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
Lev Walkinc603f102005-01-23 09:51:44 +00001261 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1262 31, 586, 583, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinf15320b2004-06-03 03:38:44 +00001263
Lev Walkinc603f102005-01-23 09:51:44 +00001264 581, 580, 578, 574, 31, 31, 31, 31, 31, 31,
Lev Walkinf59d0752004-08-18 04:59:12 +00001265 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
1266 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinc603f102005-01-23 09:51:44 +00001267 573, 572, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinf59d0752004-08-18 04:59:12 +00001268 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
Lev Walkinc603f102005-01-23 09:51:44 +00001269 31, 31, 31, 31, 40, 40, 41, 563, 562, 561,
1270 560, 559, 40, 557, 553, 40, 41, 40, 41, 40,
1271 41, 551, 42, 42, 40, 41, 42, 43, 43, 550,
1272 43, 548, 42, 543, 42, 542, 42, 541, 43, 528,
1273 43, 42, 43, 44, 43, 527, 44, 43, 526, 45,
Lev Walkinf15320b2004-06-03 03:38:44 +00001274
Lev Walkinc603f102005-01-23 09:51:44 +00001275 42, 41, 45, 44, 525, 44, 45, 44, 46, 45,
1276 523, 45, 44, 45, 46, 46, 521, 45, 45, 518,
1277 43, 516, 45, 47, 514, 46, 512, 46, 505, 46,
1278 504, 46, 503, 47, 46, 47, 502, 47, 46, 48,
1279 49, 47, 47, 490, 486, 485, 46, 49, 484, 48,
1280 49, 48, 49, 48, 49, 483, 480, 478, 48, 49,
1281 475, 470, 47, 94, 94, 94, 94, 94, 94, 94,
1282 468, 456, 455, 437, 48, 73, 434, 433, 432, 73,
1283 73, 73, 73, 73, 73, 73, 73, 73, 431, 96,
1284 97, 430, 429, 426, 424, 73, 73, 73, 73, 96,
Lev Walkinf15320b2004-06-03 03:38:44 +00001285
Lev Walkinc603f102005-01-23 09:51:44 +00001286 97, 96, 97, 96, 97, 98, 419, 97, 96, 97,
1287 414, 411, 399, 398, 397, 98, 378, 98, 99, 98,
1288 373, 100, 372, 371, 98, 73, 73, 369, 99, 365,
1289 99, 100, 99, 100, 101, 100, 363, 99, 358, 353,
1290 100, 99, 349, 338, 101, 337, 101, 336, 101, 317,
1291 73, 74, 101, 101, 310, 74, 74, 74, 74, 74,
1292 74, 74, 74, 74, 309, 103, 308, 302, 104, 291,
1293 103, 74, 74, 74, 74, 103, 286, 103, 104, 103,
1294 104, 105, 104, 282, 103, 271, 104, 104, 74, 270,
1295 244, 105, 243, 105, 106, 105, 239, 238, 237, 233,
Lev Walkinf15320b2004-06-03 03:38:44 +00001296
Lev Walkinc603f102005-01-23 09:51:44 +00001297 105, 74, 74, 221, 106, 107, 106, 106, 106, 215,
1298 211, 200, 199, 106, 171, 107, 167, 107, 162, 107,
1299 108, 108, 160, 150, 107, 147, 74, 137, 109, 109,
1300 132, 108, 127, 108, 108, 108, 118, 117, 95, 109,
1301 108, 109, 110, 109, 92, 111, 89, 84, 109, 111,
1302 83, 80, 110, 110, 110, 111, 110, 111, 112, 111,
1303 66, 110, 63, 60, 111, 59, 56, 52, 112, 50,
1304 112, 29, 112, 113, 113, 113, 115, 112, 25, 114,
1305 114, 20, 19, 113, 16, 113, 115, 113, 115, 114,
1306 115, 114, 113, 114, 116, 115, 15, 114, 114, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001307
Lev Walkinc603f102005-01-23 09:51:44 +00001308 0, 119, 0, 0, 116, 0, 116, 116, 116, 119,
1309 0, 0, 120, 116, 0, 120, 0, 0, 0, 119,
1310 121, 119, 120, 119, 120, 0, 120, 0, 119, 0,
1311 121, 120, 121, 0, 121, 122, 122, 0, 0, 121,
1312 0, 0, 0, 0, 0, 122, 123, 122, 0, 122,
1313 0, 0, 122, 122, 122, 0, 123, 124, 123, 123,
1314 123, 0, 0, 125, 0, 123, 0, 124, 0, 124,
1315 0, 124, 0, 125, 126, 125, 124, 125, 0, 124,
1316 0, 0, 125, 0, 126, 0, 126, 128, 126, 0,
1317 129, 0, 0, 126, 0, 128, 0, 128, 0, 128,
Lev Walkinf15320b2004-06-03 03:38:44 +00001318
Lev Walkinc603f102005-01-23 09:51:44 +00001319 129, 128, 129, 130, 129, 0, 128, 0, 129, 129,
1320 0, 131, 0, 130, 133, 130, 0, 130, 0, 0,
1321 0, 131, 130, 131, 133, 131, 133, 134, 133, 131,
1322 131, 0, 133, 133, 0, 0, 0, 134, 135, 134,
1323 0, 134, 0, 0, 0, 0, 134, 134, 135, 0,
1324 135, 136, 135, 0, 136, 0, 0, 135, 136, 0,
1325 0, 136, 0, 136, 0, 136, 138, 138, 0, 0,
1326 136, 0, 0, 139, 0, 0, 0, 138, 0, 138,
1327 0, 138, 0, 139, 140, 139, 138, 139, 139, 0,
1328 141, 139, 139, 0, 140, 0, 140, 0, 140, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001329
Lev Walkinc603f102005-01-23 09:51:44 +00001330 141, 142, 141, 140, 141, 143, 141, 0, 140, 141,
1331 0, 142, 0, 142, 0, 142, 143, 144, 0, 0,
1332 142, 0, 144, 0, 0, 0, 143, 144, 143, 144,
1333 143, 144, 145, 146, 0, 143, 144, 0, 0, 0,
1334 0, 0, 145, 146, 145, 146, 145, 146, 148, 149,
1335 149, 145, 146, 149, 0, 148, 0, 0, 148, 149,
1336 148, 149, 148, 149, 152, 0, 0, 148, 149, 0,
1337 0, 0, 0, 0, 152, 0, 152, 0, 152, 0,
1338 0, 0, 152, 152, 172, 172, 172, 172, 172, 172,
1339 172, 175, 176, 0, 175, 0, 0, 0, 0, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001340
Lev Walkinc603f102005-01-23 09:51:44 +00001341 0, 175, 176, 175, 176, 175, 176, 177, 178, 0,
1342 175, 176, 0, 0, 0, 0, 0, 177, 178, 177,
1343 178, 177, 178, 179, 0, 0, 177, 178, 0, 0,
1344 0, 180, 0, 179, 181, 179, 179, 179, 180, 0,
1345 0, 180, 179, 180, 181, 180, 181, 182, 181, 0,
1346 180, 0, 0, 181, 0, 183, 0, 182, 0, 182,
1347 0, 182, 0, 184, 182, 183, 182, 183, 0, 183,
1348 0, 185, 0, 184, 183, 184, 0, 184, 185, 184,
1349 0, 185, 184, 185, 186, 185, 0, 0, 0, 0,
1350 185, 0, 187, 0, 186, 188, 186, 0, 186, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001351
Lev Walkinc603f102005-01-23 09:51:44 +00001352 0, 186, 187, 186, 187, 188, 187, 188, 0, 188,
1353 0, 187, 188, 188, 188, 189, 189, 190, 0, 0,
1354 190, 0, 0, 189, 0, 0, 189, 190, 189, 190,
1355 189, 190, 191, 0, 0, 189, 190, 0, 192, 0,
1356 0, 0, 191, 0, 191, 191, 191, 0, 192, 193,
1357 192, 191, 192, 0, 0, 194, 0, 192, 194, 193,
1358 193, 193, 0, 193, 0, 194, 195, 194, 193, 194,
1359 0, 0, 196, 0, 194, 196, 195, 0, 195, 195,
1360 195, 0, 196, 197, 196, 195, 196, 0, 0, 0,
1361 0, 196, 0, 197, 198, 197, 0, 197, 0, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001362
Lev Walkinc603f102005-01-23 09:51:44 +00001363 197, 0, 197, 0, 198, 198, 198, 201, 198, 0,
1364 0, 0, 0, 198, 0, 202, 0, 201, 203, 201,
1365 0, 201, 0, 0, 201, 202, 201, 202, 203, 202,
1366 203, 203, 203, 204, 202, 0, 205, 203, 0, 206,
1367 0, 0, 206, 204, 0, 204, 205, 204, 205, 206,
1368 205, 206, 204, 206, 205, 205, 207, 208, 206, 0,
1369 209, 0, 0, 207, 0, 0, 0, 208, 0, 208,
1370 209, 208, 209, 207, 209, 207, 208, 207, 210, 209,
1371 0, 212, 207, 0, 212, 0, 0, 0, 210, 0,
1372 210, 212, 210, 212, 0, 212, 213, 210, 0, 213,
Lev Walkinf15320b2004-06-03 03:38:44 +00001373
Lev Walkinc603f102005-01-23 09:51:44 +00001374 212, 0, 214, 0, 0, 0, 213, 0, 213, 214,
1375 213, 0, 214, 216, 214, 213, 214, 0, 0, 0,
1376 0, 214, 0, 216, 217, 216, 0, 216, 0, 0,
1377 218, 216, 216, 0, 217, 0, 217, 0, 217, 0,
1378 218, 219, 218, 217, 218, 0, 0, 218, 0, 218,
1379 0, 219, 220, 219, 0, 219, 0, 0, 219, 0,
1380 219, 0, 220, 222, 220, 0, 220, 0, 223, 223,
1381 0, 220, 220, 222, 0, 222, 0, 222, 0, 223,
1382 224, 223, 222, 223, 0, 0, 225, 0, 223, 0,
1383 224, 0, 224, 0, 224, 0, 225, 0, 225, 224,
Lev Walkinf15320b2004-06-03 03:38:44 +00001384
Lev Walkinc603f102005-01-23 09:51:44 +00001385 225, 226, 227, 0, 226, 225, 0, 0, 0, 227,
1386 0, 226, 227, 226, 227, 226, 227, 228, 0, 0,
1387 226, 227, 0, 0, 0, 0, 0, 228, 229, 228,
1388 0, 228, 0, 0, 230, 228, 228, 0, 229, 0,
1389 229, 0, 229, 0, 230, 229, 230, 229, 230, 231,
1390 0, 230, 231, 230, 0, 232, 0, 0, 232, 231,
1391 0, 231, 0, 231, 0, 232, 234, 232, 231, 232,
1392 0, 0, 0, 0, 232, 0, 234, 235, 234, 234,
1393 234, 234, 236, 0, 0, 234, 234, 235, 236, 235,
1394 0, 235, 0, 0, 0, 235, 235, 0, 236, 240,
Lev Walkinf15320b2004-06-03 03:38:44 +00001395
Lev Walkinc603f102005-01-23 09:51:44 +00001396 236, 0, 236, 0, 0, 240, 0, 236, 0, 240,
1397 247, 240, 0, 240, 0, 0, 248, 0, 240, 0,
1398 247, 0, 247, 248, 247, 0, 248, 249, 248, 247,
1399 248, 0, 0, 250, 0, 248, 0, 249, 249, 249,
1400 0, 249, 0, 250, 251, 250, 249, 250, 0, 0,
1401 252, 0, 250, 252, 251, 0, 251, 0, 251, 0,
1402 252, 0, 252, 251, 252, 253, 253, 254, 254, 252,
1403 0, 0, 0, 0, 0, 0, 253, 254, 253, 254,
1404 253, 254, 255, 0, 0, 253, 254, 0, 251, 0,
1405 256, 0, 255, 0, 255, 0, 255, 0, 257, 255,
Lev Walkinf15320b2004-06-03 03:38:44 +00001406
Lev Walkinc603f102005-01-23 09:51:44 +00001407 256, 255, 256, 256, 256, 258, 258, 0, 257, 256,
1408 257, 0, 257, 0, 257, 0, 258, 257, 258, 259,
1409 258, 0, 260, 0, 0, 258, 0, 0, 0, 259,
1410 0, 259, 260, 259, 260, 261, 260, 261, 259, 0,
1411 0, 260, 0, 0, 0, 261, 262, 261, 262, 261,
1412 0, 0, 263, 0, 261, 263, 262, 0, 262, 0,
1413 262, 0, 263, 264, 263, 262, 263, 0, 0, 265,
1414 0, 263, 0, 264, 0, 264, 265, 264, 0, 265,
1415 266, 265, 264, 265, 0, 0, 0, 0, 265, 0,
1416 266, 267, 266, 0, 266, 0, 266, 0, 0, 266,
Lev Walkinf15320b2004-06-03 03:38:44 +00001417
Lev Walkinc603f102005-01-23 09:51:44 +00001418 0, 267, 0, 267, 0, 267, 268, 267, 0, 268,
1419 267, 0, 269, 0, 0, 0, 268, 0, 268, 0,
1420 268, 0, 269, 272, 269, 268, 269, 0, 0, 273,
1421 0, 269, 0, 272, 0, 272, 0, 272, 0, 273,
1422 0, 273, 272, 273, 274, 275, 0, 273, 273, 0,
1423 0, 274, 0, 0, 274, 275, 274, 275, 274, 275,
1424 276, 275, 0, 274, 275, 277, 277, 272, 0, 0,
1425 276, 0, 276, 0, 276, 279, 277, 0, 277, 276,
1426 277, 278, 277, 0, 279, 277, 278, 0, 0, 0,
1427 0, 278, 280, 278, 279, 278, 279, 278, 279, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001428
Lev Walkinc603f102005-01-23 09:51:44 +00001429 278, 0, 280, 279, 280, 281, 280, 0, 0, 280,
1430 0, 280, 0, 283, 283, 281, 284, 281, 0, 281,
1431 0, 0, 0, 283, 281, 283, 284, 283, 284, 285,
1432 284, 0, 283, 0, 284, 284, 0, 287, 288, 285,
1433 287, 285, 285, 285, 0, 0, 0, 287, 285, 287,
1434 0, 287, 289, 288, 0, 289, 287, 0, 0, 0,
1435 0, 0, 289, 288, 289, 288, 289, 288, 290, 290,
1436 292, 289, 288, 0, 0, 0, 0, 0, 0, 290,
1437 292, 290, 292, 290, 292, 293, 0, 0, 290, 292,
1438 0, 0, 0, 0, 0, 293, 0, 293, 294, 293,
Lev Walkinf15320b2004-06-03 03:38:44 +00001439
Lev Walkinc603f102005-01-23 09:51:44 +00001440 0, 294, 0, 293, 293, 0, 295, 0, 294, 296,
1441 294, 0, 294, 0, 0, 0, 295, 294, 295, 296,
1442 295, 296, 0, 296, 298, 295, 297, 297, 296, 0,
1443 299, 0, 0, 301, 298, 0, 298, 297, 298, 297,
1444 299, 297, 299, 298, 299, 300, 297, 0, 301, 299,
1445 0, 303, 0, 0, 0, 300, 0, 300, 301, 300,
1446 301, 303, 301, 303, 300, 303, 304, 301, 298, 305,
1447 303, 0, 305, 0, 0, 0, 304, 306, 304, 305,
1448 304, 305, 0, 305, 0, 304, 0, 306, 305, 306,
1449 307, 306, 0, 0, 0, 0, 306, 0, 0, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001450
Lev Walkinc603f102005-01-23 09:51:44 +00001451 307, 311, 307, 0, 307, 0, 0, 307, 0, 307,
1452 0, 311, 306, 311, 313, 311, 0, 314, 314, 0,
1453 311, 0, 0, 0, 313, 0, 313, 314, 313, 314,
1454 0, 314, 313, 313, 315, 315, 314, 0, 316, 0,
1455 318, 318, 0, 0, 0, 315, 0, 315, 316, 315,
1456 316, 318, 316, 318, 315, 318, 0, 316, 319, 319,
1457 318, 320, 0, 0, 320, 0, 0, 0, 319, 321,
1458 319, 320, 319, 320, 0, 320, 0, 319, 0, 321,
1459 320, 321, 322, 321, 323, 323, 0, 0, 321, 0,
1460 0, 0, 322, 324, 322, 323, 322, 323, 0, 323,
Lev Walkinf15320b2004-06-03 03:38:44 +00001461
Lev Walkinc603f102005-01-23 09:51:44 +00001462 324, 322, 0, 324, 323, 324, 325, 324, 0, 0,
1463 0, 0, 324, 0, 326, 0, 325, 326, 325, 0,
1464 325, 326, 0, 0, 326, 325, 326, 327, 326, 327,
1465 0, 0, 0, 326, 0, 328, 0, 327, 328, 327,
1466 0, 327, 328, 329, 0, 328, 327, 328, 0, 328,
1467 0, 330, 0, 329, 328, 329, 0, 329, 0, 329,
1468 0, 330, 329, 330, 0, 330, 331, 331, 0, 330,
1469 330, 0, 332, 0, 0, 0, 331, 0, 331, 0,
1470 331, 0, 332, 333, 332, 331, 332, 0, 0, 334,
1471 332, 332, 0, 333, 0, 333, 0, 333, 0, 334,
Lev Walkinf15320b2004-06-03 03:38:44 +00001472
Lev Walkinc603f102005-01-23 09:51:44 +00001473 333, 334, 333, 334, 335, 339, 0, 0, 334, 0,
1474 0, 0, 339, 0, 335, 339, 335, 339, 335, 339,
1475 0, 0, 341, 335, 339, 340, 340, 0, 340, 0,
1476 0, 0, 341, 0, 341, 340, 341, 340, 0, 340,
1477 341, 341, 343, 342, 340, 342, 0, 0, 0, 0,
1478 0, 0, 343, 342, 343, 342, 343, 342, 344, 0,
1479 0, 343, 342, 0, 345, 0, 0, 345, 344, 0,
1480 344, 0, 344, 0, 345, 346, 345, 344, 345, 347,
1481 0, 0, 348, 345, 0, 346, 347, 346, 0, 346,
1482 0, 0, 346, 0, 346, 0, 347, 348, 347, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001483
Lev Walkinc603f102005-01-23 09:51:44 +00001484 347, 0, 0, 350, 0, 347, 0, 348, 0, 348,
1485 0, 348, 0, 350, 351, 350, 348, 350, 0, 0,
1486 352, 350, 350, 0, 351, 0, 351, 0, 351, 0,
1487 352, 354, 352, 351, 352, 0, 0, 0, 0, 352,
1488 0, 354, 355, 354, 0, 354, 0, 354, 356, 355,
1489 354, 0, 355, 0, 355, 0, 355, 0, 356, 357,
1490 356, 355, 356, 0, 0, 0, 0, 356, 0, 357,
1491 0, 357, 359, 357, 0, 360, 0, 357, 357, 359,
1492 0, 0, 359, 361, 359, 360, 359, 360, 361, 360,
1493 0, 359, 0, 361, 360, 361, 362, 361, 0, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001494
Lev Walkinc603f102005-01-23 09:51:44 +00001495 0, 0, 361, 0, 0, 0, 362, 364, 362, 0,
1496 362, 0, 0, 366, 364, 362, 0, 364, 362, 364,
1497 0, 364, 0, 366, 0, 366, 364, 366, 367, 368,
1498 0, 367, 366, 0, 0, 0, 0, 0, 367, 368,
1499 367, 368, 367, 368, 370, 368, 0, 367, 368, 0,
1500 375, 0, 0, 0, 370, 0, 370, 0, 370, 0,
1501 375, 0, 375, 370, 375, 376, 376, 0, 0, 375,
1502 0, 0, 377, 0, 0, 0, 376, 0, 376, 0,
1503 376, 0, 377, 379, 377, 376, 377, 0, 370, 380,
1504 377, 377, 0, 379, 0, 379, 0, 379, 0, 380,
Lev Walkinf15320b2004-06-03 03:38:44 +00001505
Lev Walkinc603f102005-01-23 09:51:44 +00001506 381, 380, 379, 380, 0, 0, 382, 380, 380, 382,
1507 381, 0, 381, 0, 381, 0, 382, 383, 382, 381,
1508 382, 0, 0, 384, 383, 382, 0, 383, 0, 383,
1509 0, 383, 0, 384, 385, 384, 383, 384, 0, 0,
1510 0, 0, 384, 0, 385, 386, 385, 386, 385, 0,
1511 0, 387, 385, 385, 0, 386, 0, 386, 0, 386,
1512 0, 387, 0, 387, 386, 387, 0, 0, 388, 387,
1513 387, 388, 0, 0, 389, 0, 389, 0, 388, 0,
1514 388, 0, 388, 0, 389, 390, 389, 388, 389, 0,
1515 391, 391, 0, 389, 0, 390, 0, 390, 0, 390,
Lev Walkinf15320b2004-06-03 03:38:44 +00001516
Lev Walkinc603f102005-01-23 09:51:44 +00001517 0, 391, 392, 391, 390, 391, 0, 0, 393, 0,
1518 391, 0, 392, 0, 392, 393, 392, 0, 393, 394,
1519 393, 392, 393, 0, 0, 395, 0, 393, 0, 394,
1520 0, 394, 395, 394, 0, 395, 394, 395, 394, 395,
1521 396, 396, 400, 0, 395, 0, 400, 0, 0, 0,
1522 0, 396, 400, 396, 400, 396, 400, 401, 0, 0,
1523 396, 400, 0, 402, 401, 402, 0, 401, 0, 401,
1524 0, 401, 0, 402, 403, 402, 401, 402, 0, 0,
1525 404, 0, 402, 404, 403, 0, 403, 0, 403, 0,
1526 404, 403, 404, 403, 404, 405, 405, 0, 0, 404,
Lev Walkinf15320b2004-06-03 03:38:44 +00001527
Lev Walkinc603f102005-01-23 09:51:44 +00001528 0, 406, 406, 0, 0, 405, 0, 405, 0, 405,
1529 0, 406, 407, 406, 405, 406, 0, 0, 0, 0,
1530 406, 0, 407, 0, 407, 0, 407, 408, 407, 0,
1531 408, 407, 0, 409, 0, 0, 0, 408, 0, 408,
1532 0, 408, 0, 409, 410, 409, 408, 409, 0, 0,
1533 409, 410, 409, 0, 410, 412, 410, 0, 410, 0,
1534 413, 413, 0, 410, 0, 412, 0, 412, 0, 412,
1535 0, 413, 415, 413, 412, 413, 0, 0, 416, 0,
1536 413, 0, 415, 0, 415, 0, 415, 0, 416, 417,
1537 416, 415, 416, 0, 0, 0, 0, 416, 0, 417,
Lev Walkinf15320b2004-06-03 03:38:44 +00001538
Lev Walkinc603f102005-01-23 09:51:44 +00001539 0, 417, 418, 417, 0, 418, 0, 417, 417, 0,
1540 420, 0, 418, 0, 418, 0, 418, 0, 0, 0,
1541 420, 418, 420, 0, 420, 421, 421, 0, 422, 420,
1542 420, 423, 0, 0, 0, 421, 0, 421, 422, 421,
1543 422, 423, 422, 423, 421, 423, 425, 422, 425, 427,
1544 423, 0, 428, 0, 0, 0, 425, 0, 425, 427,
1545 425, 427, 428, 427, 428, 425, 428, 435, 427, 428,
1546 0, 428, 0, 0, 0, 0, 0, 435, 0, 435,
1547 436, 435, 0, 438, 0, 435, 435, 436, 0, 0,
1548 436, 0, 436, 438, 436, 438, 0, 438, 439, 436,
Lev Walkinf15320b2004-06-03 03:38:44 +00001549
Lev Walkinc603f102005-01-23 09:51:44 +00001550 0, 439, 438, 0, 440, 0, 0, 0, 439, 0,
1551 439, 0, 439, 0, 440, 441, 440, 439, 440, 0,
1552 0, 442, 0, 440, 0, 441, 0, 441, 442, 441,
1553 0, 442, 443, 442, 441, 442, 0, 0, 444, 0,
1554 442, 0, 443, 0, 443, 0, 443, 0, 444, 445,
1555 444, 443, 444, 0, 0, 0, 445, 444, 0, 445,
1556 446, 445, 446, 445, 0, 0, 447, 0, 445, 0,
1557 446, 0, 446, 0, 446, 0, 447, 448, 447, 446,
1558 447, 0, 448, 449, 0, 447, 0, 448, 0, 448,
1559 0, 448, 0, 449, 450, 449, 448, 449, 0, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001560
Lev Walkinc603f102005-01-23 09:51:44 +00001561 0, 449, 449, 0, 450, 451, 450, 0, 450, 0,
1562 0, 452, 450, 450, 0, 451, 0, 451, 0, 451,
1563 0, 452, 453, 452, 451, 452, 0, 0, 457, 0,
1564 452, 0, 453, 0, 453, 457, 453, 0, 457, 458,
1565 457, 453, 457, 0, 0, 0, 0, 457, 0, 458,
1566 459, 458, 0, 458, 0, 0, 460, 458, 458, 0,
1567 459, 0, 459, 0, 459, 0, 460, 461, 460, 459,
1568 460, 0, 0, 462, 0, 460, 462, 461, 0, 461,
1569 0, 461, 0, 462, 461, 462, 461, 462, 463, 464,
1570 0, 0, 462, 0, 0, 0, 0, 0, 463, 464,
Lev Walkinf15320b2004-06-03 03:38:44 +00001571
Lev Walkinc603f102005-01-23 09:51:44 +00001572 463, 464, 463, 464, 465, 465, 463, 463, 464, 0,
1573 466, 0, 0, 0, 465, 0, 465, 0, 465, 0,
1574 466, 467, 466, 465, 466, 0, 0, 469, 0, 466,
1575 0, 467, 0, 467, 0, 467, 0, 469, 471, 469,
1576 467, 469, 0, 0, 0, 0, 469, 0, 471, 472,
1577 471, 0, 471, 472, 466, 473, 0, 471, 0, 472,
1578 0, 472, 0, 472, 0, 473, 474, 473, 472, 473,
1579 0, 0, 476, 0, 473, 476, 474, 0, 474, 0,
1580 474, 0, 476, 0, 476, 474, 476, 477, 0, 0,
1581 477, 476, 0, 479, 0, 0, 479, 477, 0, 477,
Lev Walkinf15320b2004-06-03 03:38:44 +00001582
Lev Walkinc603f102005-01-23 09:51:44 +00001583 0, 477, 0, 479, 0, 479, 477, 479, 481, 481,
1584 488, 0, 479, 0, 0, 0, 0, 488, 0, 481,
1585 488, 481, 488, 481, 488, 489, 489, 0, 481, 488,
1586 0, 491, 0, 0, 0, 489, 0, 489, 0, 489,
1587 0, 491, 492, 491, 489, 491, 0, 491, 0, 0,
1588 491, 0, 492, 0, 492, 493, 492, 0, 493, 0,
1589 492, 492, 0, 494, 0, 493, 495, 493, 0, 493,
1590 0, 0, 497, 494, 493, 494, 495, 494, 495, 495,
1591 495, 496, 494, 0, 499, 495, 0, 497, 0, 0,
1592 0, 496, 0, 496, 499, 496, 499, 497, 499, 497,
Lev Walkinf15320b2004-06-03 03:38:44 +00001593
Lev Walkinc603f102005-01-23 09:51:44 +00001594 496, 497, 498, 499, 0, 498, 497, 0, 500, 0,
1595 0, 0, 498, 0, 498, 500, 498, 0, 500, 501,
1596 500, 498, 500, 0, 0, 506, 0, 500, 506, 501,
1597 0, 501, 0, 501, 0, 506, 507, 506, 501, 506,
1598 0, 0, 508, 0, 506, 0, 507, 0, 507, 0,
1599 507, 0, 508, 509, 508, 507, 508, 0, 0, 510,
1600 0, 508, 0, 509, 0, 509, 510, 509, 0, 510,
1601 511, 510, 509, 510, 0, 0, 0, 0, 510, 0,
1602 511, 513, 511, 0, 511, 513, 0, 515, 511, 511,
1603 0, 513, 0, 513, 519, 513, 0, 515, 517, 515,
Lev Walkinf15320b2004-06-03 03:38:44 +00001604
Lev Walkinc603f102005-01-23 09:51:44 +00001605 513, 515, 0, 0, 0, 517, 515, 0, 517, 519,
1606 517, 0, 517, 0, 0, 520, 0, 517, 0, 519,
1607 0, 519, 0, 519, 0, 520, 522, 520, 519, 520,
1608 0, 0, 524, 0, 520, 0, 522, 0, 522, 0,
1609 522, 0, 524, 530, 524, 522, 524, 0, 0, 531,
1610 0, 524, 0, 530, 0, 530, 530, 530, 0, 531,
1611 533, 531, 530, 531, 0, 0, 534, 0, 531, 0,
1612 533, 0, 533, 0, 533, 0, 534, 0, 534, 533,
1613 534, 536, 535, 534, 535, 534, 536, 0, 0, 0,
1614 0, 536, 535, 536, 535, 536, 535, 537, 538, 538,
Lev Walkinf15320b2004-06-03 03:38:44 +00001615
Lev Walkinc603f102005-01-23 09:51:44 +00001616 536, 535, 0, 0, 0, 0, 0, 537, 538, 537,
1617 538, 537, 538, 539, 540, 539, 537, 538, 0, 0,
1618 0, 0, 0, 539, 540, 539, 540, 539, 540, 545,
1619 0, 0, 539, 540, 0, 0, 0, 546, 0, 545,
1620 0, 545, 0, 545, 0, 545, 0, 546, 545, 546,
1621 546, 546, 547, 549, 0, 0, 546, 0, 0, 547,
1622 549, 0, 547, 549, 547, 549, 547, 549, 552, 0,
1623 0, 547, 549, 0, 0, 0, 554, 0, 552, 0,
1624 552, 0, 552, 0, 556, 0, 554, 552, 554, 554,
1625 554, 0, 0, 0, 556, 554, 556, 558, 556, 0,
Lev Walkinf15320b2004-06-03 03:38:44 +00001626
Lev Walkinc603f102005-01-23 09:51:44 +00001627 564, 0, 556, 556, 0, 0, 0, 558, 565, 558,
1628 564, 558, 564, 0, 564, 0, 558, 0, 565, 564,
1629 565, 566, 565, 0, 567, 0, 0, 565, 0, 0,
1630 0, 566, 568, 566, 567, 566, 567, 0, 567, 0,
1631 566, 0, 568, 567, 568, 569, 568, 0, 0, 568,
1632 0, 568, 0, 570, 0, 569, 0, 569, 569, 569,
1633 0, 571, 0, 570, 569, 570, 0, 570, 571, 575,
1634 0, 571, 570, 571, 0, 571, 0, 576, 0, 575,
1635 571, 575, 0, 575, 0, 577, 0, 576, 575, 576,
1636 0, 576, 0, 579, 0, 577, 576, 577, 577, 577,
Lev Walkinf15320b2004-06-03 03:38:44 +00001637
Lev Walkinc603f102005-01-23 09:51:44 +00001638 0, 582, 0, 579, 577, 579, 0, 579, 582, 584,
1639 0, 582, 579, 582, 0, 582, 584, 585, 0, 584,
1640 582, 584, 0, 584, 585, 592, 0, 585, 584, 585,
1641 0, 585, 0, 593, 0, 592, 585, 592, 0, 592,
1642 0, 594, 0, 593, 592, 593, 0, 593, 0, 595,
1643 0, 594, 593, 594, 0, 594, 0, 0, 0, 595,
1644 594, 595, 599, 595, 0, 0, 0, 595, 595, 0,
1645 600, 0, 599, 0, 599, 0, 599, 0, 602, 599,
1646 600, 599, 600, 0, 600, 602, 605, 0, 602, 600,
1647 602, 0, 602, 0, 0, 0, 605, 602, 605, 607,
Lev Walkinf15320b2004-06-03 03:38:44 +00001648
Lev Walkinc603f102005-01-23 09:51:44 +00001649 605, 607, 608, 0, 605, 605, 608, 0, 0, 607,
1650 614, 607, 608, 607, 608, 0, 608, 0, 607, 0,
1651 614, 608, 614, 615, 614, 0, 619, 0, 614, 614,
1652 0, 0, 0, 615, 0, 615, 619, 615, 619, 620,
1653 619, 0, 615, 0, 0, 619, 615, 622, 0, 620,
1654 625, 620, 0, 620, 0, 0, 0, 622, 620, 622,
1655 625, 622, 625, 0, 625, 622, 622, 627, 628, 625,
1656 0, 0, 0, 625, 0, 628, 0, 627, 628, 627,
1657 628, 627, 628, 634, 635, 0, 627, 628, 0, 0,
1658 0, 0, 0, 634, 635, 634, 635, 634, 635, 634,
Lev Walkinf15320b2004-06-03 03:38:44 +00001659
Lev Walkinc603f102005-01-23 09:51:44 +00001660 639, 642, 634, 635, 0, 0, 0, 0, 0, 0,
1661 639, 642, 639, 642, 639, 642, 0, 0, 644, 639,
1662 642, 644, 0, 639, 0, 0, 650, 0, 644, 0,
1663 644, 0, 644, 0, 652, 0, 650, 644, 650, 650,
1664 650, 0, 655, 0, 652, 650, 652, 0, 652, 0,
1665 659, 0, 655, 652, 655, 0, 655, 0, 655, 0,
1666 659, 655, 659, 663, 659, 0, 666, 0, 0, 659,
1667 0, 0, 0, 663, 0, 663, 666, 663, 666, 0,
1668 666, 0, 663, 0, 0, 666, 670, 670, 670, 670,
1669 670, 670, 670, 670, 670, 670, 670, 671, 671, 671,
Lev Walkinf15320b2004-06-03 03:38:44 +00001670
Lev Walkinc603f102005-01-23 09:51:44 +00001671 671, 671, 671, 671, 671, 671, 671, 671, 672, 672,
1672 672, 672, 672, 672, 672, 672, 672, 672, 672, 673,
1673 673, 673, 673, 673, 673, 673, 673, 673, 673, 673,
1674 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1675 674, 675, 675, 675, 675, 675, 675, 675, 675, 675,
1676 675, 675, 676, 676, 676, 0, 676, 676, 676, 676,
1677 676, 676, 676, 677, 677, 0, 0, 677, 0, 677,
1678 678, 678, 0, 678, 679, 679, 0, 679, 679, 679,
1679 0, 679, 679, 679, 679, 680, 680, 680, 0, 680,
1680 680, 680, 680, 680, 680, 680, 681, 681, 681, 681,
Lev Walkinf15320b2004-06-03 03:38:44 +00001681
Lev Walkinc603f102005-01-23 09:51:44 +00001682 681, 681, 681, 681, 0, 681, 682, 0, 0, 682,
1683 682, 682, 682, 682, 682, 682, 683, 0, 0, 683,
1684 683, 683, 683, 683, 683, 683, 684, 0, 0, 684,
1685 0, 684, 684, 684, 684, 684, 685, 685, 0, 685,
1686 686, 686, 0, 686, 687, 687, 0, 687, 669, 669,
1687 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1688 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1689 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1690 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1691 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
Lev Walkinf59d0752004-08-18 04:59:12 +00001692
Lev Walkinc603f102005-01-23 09:51:44 +00001693 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1694 669, 669, 669, 669, 669, 669, 669, 669, 669, 669,
1695 669, 669, 669, 669, 669, 669
Lev Walkinf15320b2004-06-03 03:38:44 +00001696 } ;
1697
1698extern int yy_flex_debug;
1699int yy_flex_debug = 1;
1700
Lev Walkinc603f102005-01-23 09:51:44 +00001701static yyconst short int yy_rule_linenum[129] =
Lev Walkinf15320b2004-06-03 03:38:44 +00001702 { 0,
Lev Walkinf59d0752004-08-18 04:59:12 +00001703 103, 106, 108, 109, 110, 113, 115, 116, 117, 129,
1704 136, 143, 149, 158, 166, 174, 175, 177, 196, 202,
Lev Walkinc603f102005-01-23 09:51:44 +00001705 203, 204, 205, 206, 209, 215, 222, 229, 236, 243,
1706 247, 248, 256, 257, 258, 259, 260, 265, 266, 267,
1707 268, 269, 270, 271, 272, 273, 274, 275, 284, 285,
1708 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
1709 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1710 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
1711 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1712 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
Lev Walkinf15320b2004-06-03 03:38:44 +00001713
Lev Walkinc603f102005-01-23 09:51:44 +00001714 336, 337, 338, 339, 340, 341, 342, 347, 348, 353,
1715 354, 355, 358, 364, 371, 380, 391, 397, 399, 400,
1716 402, 404, 406, 419, 425, 431, 438, 440
Lev Walkinf15320b2004-06-03 03:38:44 +00001717 } ;
1718
1719static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
1720static char *yy_full_match;
1721static int yy_lp;
1722#define REJECT \
1723{ \
1724*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
1725yy_cp = yy_full_match; /* restore poss. backed-over text */ \
1726++yy_lp; \
1727goto find_rule; \
1728}
1729#define yymore() yymore_used_but_not_detected
1730#define YY_MORE_ADJ 0
1731#define YY_RESTORE_YY_MORE_OFFSET
1732char *yytext;
1733#line 1 "asn1p_l.l"
1734#define INITIAL 0
1735#line 2 "asn1p_l.l"
1736
1737#include <string.h>
1738#include <errno.h>
1739#include <assert.h>
1740
1741#include "asn1parser.h"
1742#include "asn1p_y.h"
1743
1744int asn1p_lex(void);
1745void asn1p_lexer_hack_push_opaque_state(void); /* Used in .y */
1746void asn1p_lexer_hack_enable_with_syntax(void); /* Used in .y */
Lev Walkinf59d0752004-08-18 04:59:12 +00001747void asn1p_lexer_hack_push_encoding_control(void); /* Used in .y */
Lev Walkinf15320b2004-06-03 03:38:44 +00001748
1749#define YY_FATAL_ERROR(msg) do { \
1750 fprintf(stderr, \
1751 "lexer error at line %d, " \
1752 "text \"%s\"\n", \
1753 yylineno, yytext); \
1754 exit(1); \
1755 } while(0)
1756
1757int asn1p_lexer_pedantic_1990 = 0;
1758int asn1p_lexer_types_year = 0;
1759int asn1p_lexer_constructs_year = 0;
1760static int _check_dashes(char *ptr);
Lev Walkind21c5052004-09-29 13:18:09 +00001761static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
Lev Walkinf15320b2004-06-03 03:38:44 +00001762
1763/*
1764 * Check that the type is defined in the year of the standard choosen.
1765 */
1766#define TYPE_LIFETIME(fyr, lyr) \
1767 (!asn1p_lexer_types_year \
1768 || (fyr && fyr <= asn1p_lexer_types_year) \
1769 || (lyr && lyr > asn1p_lexer_types_year))
1770
1771/*
1772 * Check the the construction (or concept, i.e. CLASS) is defined in
1773 * a given year.
1774 */
1775#define CONSTRUCT_LIFETIME(fyr, lyr) \
1776 (!asn1p_lexer_constructs_year \
1777 || (fyr && fyr <= asn1p_lexer_constructs_year) \
1778 || (lyr && lyr > asn1p_lexer_constructs_year))
1779
1780/*
1781 * Make sure that the label is compliant with the naming rules.
1782 */
1783#define CHECK_DASHES do { \
1784 if(_check_dashes(yytext)) { \
1785 fprintf(stderr, \
1786 "%s: Identifier format invalid: " \
1787 "Improper dash location\n", yytext); \
1788 return -1; \
1789 } } while(0)
1790
1791/*
1792 * Append quoted string.
1793 */
1794#define QAPPEND(text, tlen) do { \
1795 char *prev_text = asn1p_lval.tv_opaque.buf; \
1796 int prev_len = asn1p_lval.tv_opaque.len; \
1797 char *p; \
1798 \
1799 p = malloc((tlen) + prev_len + 1); \
1800 if(p == NULL) return -1; \
1801 \
1802 if(prev_text) memcpy(p, prev_text, prev_len); \
1803 memcpy(p + prev_len, text, tlen); \
1804 p[prev_len + (tlen)] = '\0'; \
1805 \
1806 free(asn1p_lval.tv_opaque.buf); \
1807 asn1p_lval.tv_opaque.buf = p; \
1808 asn1p_lval.tv_opaque.len = (tlen) + prev_len; \
1809 } while(0)
1810
1811#define YY_NEVER_INTERACTIVE 1
1812#define YY_NO_INPUT 1
Lev Walkinf15320b2004-06-03 03:38:44 +00001813#define YY_STACK_USED 1
1814/* Performance penalty is OK */
1815/* Controlled from within application */
1816#define dash_comment 1
1817
1818#define cpp_comment 2
1819
1820#define quoted 3
1821
1822#define opaque 4
1823
Lev Walkinf59d0752004-08-18 04:59:12 +00001824#define encoding_control 5
1825
1826#define with_syntax 6
Lev Walkinf15320b2004-06-03 03:38:44 +00001827
1828/* Newline */
1829/* White-space */
Lev Walkinc603f102005-01-23 09:51:44 +00001830#line 1831 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00001831
1832/* Macros after this point can all be overridden by user definitions in
1833 * section 1.
1834 */
1835
1836#ifndef YY_SKIP_YYWRAP
1837#ifdef __cplusplus
1838extern "C" int yywrap YY_PROTO(( void ));
1839#else
1840extern int yywrap YY_PROTO(( void ));
1841#endif
1842#endif
1843
1844#ifndef YY_NO_UNPUT
1845static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1846#endif
1847
1848#ifndef yytext_ptr
1849static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1850#endif
1851
1852#ifdef YY_NEED_STRLEN
1853static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1854#endif
1855
1856#ifndef YY_NO_INPUT
1857#ifdef __cplusplus
1858static int yyinput YY_PROTO(( void ));
1859#else
1860static int input YY_PROTO(( void ));
1861#endif
1862#endif
1863
1864#if YY_STACK_USED
1865static int yy_start_stack_ptr = 0;
1866static int yy_start_stack_depth = 0;
1867static int *yy_start_stack = 0;
1868#ifndef YY_NO_PUSH_STATE
1869static void yy_push_state YY_PROTO(( int new_state ));
1870#endif
1871#ifndef YY_NO_POP_STATE
1872static void yy_pop_state YY_PROTO(( void ));
1873#endif
1874#ifndef YY_NO_TOP_STATE
1875static int yy_top_state YY_PROTO(( void ));
1876#endif
1877
1878#else
1879#define YY_NO_PUSH_STATE 1
1880#define YY_NO_POP_STATE 1
1881#define YY_NO_TOP_STATE 1
1882#endif
1883
1884#ifdef YY_MALLOC_DECL
1885YY_MALLOC_DECL
1886#else
1887#if __STDC__
1888#ifndef __cplusplus
1889#include <stdlib.h>
1890#endif
1891#else
1892/* Just try to get by without declaring the routines. This will fail
1893 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1894 * or sizeof(void*) != sizeof(int).
1895 */
1896#endif
1897#endif
1898
1899/* Amount of stuff to slurp up with each read. */
1900#ifndef YY_READ_BUF_SIZE
1901#define YY_READ_BUF_SIZE 8192
1902#endif
1903
1904/* Copy whatever the last rule matched to the standard output. */
1905
1906#ifndef ECHO
1907/* This used to be an fputs(), but since the string might contain NUL's,
1908 * we now use fwrite().
1909 */
1910#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1911#endif
1912
1913/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1914 * is returned in "result".
1915 */
1916#ifndef YY_INPUT
1917#define YY_INPUT(buf,result,max_size) \
1918 if ( yy_current_buffer->yy_is_interactive ) \
1919 { \
1920 int c = '*', n; \
1921 for ( n = 0; n < max_size && \
1922 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1923 buf[n] = (char) c; \
1924 if ( c == '\n' ) \
1925 buf[n++] = (char) c; \
1926 if ( c == EOF && ferror( yyin ) ) \
1927 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1928 result = n; \
1929 } \
1930 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1931 && ferror( yyin ) ) \
1932 YY_FATAL_ERROR( "input in flex scanner failed" );
1933#endif
1934
1935/* No semi-colon after return; correct usage is to write "yyterminate();" -
1936 * we don't want an extra ';' after the "return" because that will cause
1937 * some compilers to complain about unreachable statements.
1938 */
1939#ifndef yyterminate
1940#define yyterminate() return YY_NULL
1941#endif
1942
1943/* Number of entries by which start-condition stack grows. */
1944#ifndef YY_START_STACK_INCR
1945#define YY_START_STACK_INCR 25
1946#endif
1947
1948/* Report a fatal error. */
1949#ifndef YY_FATAL_ERROR
1950#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1951#endif
1952
1953/* Default declaration of generated scanner - a define so the user can
1954 * easily add parameters.
1955 */
1956#ifndef YY_DECL
1957#define YY_DECL int yylex YY_PROTO(( void ))
1958#endif
1959
1960/* Code executed at the beginning of each rule, after yytext and yyleng
1961 * have been set up.
1962 */
1963#ifndef YY_USER_ACTION
1964#define YY_USER_ACTION
1965#endif
1966
1967/* Code executed at the end of each rule. */
1968#ifndef YY_BREAK
1969#define YY_BREAK break;
1970#endif
1971
1972#define YY_RULE_SETUP \
1973 YY_USER_ACTION
1974
1975YY_DECL
1976 {
1977 register yy_state_type yy_current_state;
1978 register char *yy_cp, *yy_bp;
1979 register int yy_act;
1980
Lev Walkinf59d0752004-08-18 04:59:12 +00001981#line 101 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00001982
1983
Lev Walkinc603f102005-01-23 09:51:44 +00001984#line 1985 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00001985
1986 if ( yy_init )
1987 {
1988 yy_init = 0;
1989
1990#ifdef YY_USER_INIT
1991 YY_USER_INIT;
1992#endif
1993
1994 if ( ! yy_start )
1995 yy_start = 1; /* first start state */
1996
1997 if ( ! yyin )
1998 yyin = stdin;
1999
2000 if ( ! yyout )
2001 yyout = stdout;
2002
2003 if ( ! yy_current_buffer )
2004 yy_current_buffer =
2005 yy_create_buffer( yyin, YY_BUF_SIZE );
2006
2007 yy_load_buffer_state();
2008 }
2009
2010 while ( 1 ) /* loops until end-of-file is reached */
2011 {
2012 yy_cp = yy_c_buf_p;
2013
2014 /* Support of yytext. */
2015 *yy_cp = yy_hold_char;
2016
2017 /* yy_bp points to the position in yy_ch_buf of the start of
2018 * the current run.
2019 */
2020 yy_bp = yy_cp;
2021
2022 yy_current_state = yy_start;
2023 yy_state_ptr = yy_state_buf;
2024 *yy_state_ptr++ = yy_current_state;
2025yy_match:
2026 do
2027 {
2028 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2029 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2030 {
2031 yy_current_state = (int) yy_def[yy_current_state];
Lev Walkinc603f102005-01-23 09:51:44 +00002032 if ( yy_current_state >= 670 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002033 yy_c = yy_meta[(unsigned int) yy_c];
2034 }
2035 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2036 *yy_state_ptr++ = yy_current_state;
2037 ++yy_cp;
2038 }
Lev Walkinc603f102005-01-23 09:51:44 +00002039 while ( yy_base[yy_current_state] != 4249 );
Lev Walkinf15320b2004-06-03 03:38:44 +00002040
2041yy_find_action:
2042 yy_current_state = *--yy_state_ptr;
2043 yy_lp = yy_accept[yy_current_state];
2044find_rule: /* we branch to this label when backing up */
2045 for ( ; ; ) /* until we find what rule we matched */
2046 {
2047 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
2048 {
2049 yy_act = yy_acclist[yy_lp];
2050 {
2051 yy_full_match = yy_cp;
2052 break;
2053 }
2054 }
2055 --yy_cp;
2056 yy_current_state = *--yy_state_ptr;
2057 yy_lp = yy_accept[yy_current_state];
2058 }
2059
2060 YY_DO_BEFORE_ACTION;
2061
2062 if ( yy_act != YY_END_OF_BUFFER )
2063 {
2064 int yyl;
2065 for ( yyl = 0; yyl < yyleng; ++yyl )
2066 if ( yytext[yyl] == '\n' )
2067 ++yylineno;
2068 }
2069
2070do_action: /* This label is used only to access EOF actions. */
2071
2072 if ( yy_flex_debug )
2073 {
2074 if ( yy_act == 0 )
2075 fprintf( stderr, "--scanner backing up\n" );
Lev Walkinc603f102005-01-23 09:51:44 +00002076 else if ( yy_act < 129 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002077 fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
2078 yy_rule_linenum[yy_act], yytext );
Lev Walkinc603f102005-01-23 09:51:44 +00002079 else if ( yy_act == 129 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002080 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2081 yytext );
Lev Walkinc603f102005-01-23 09:51:44 +00002082 else if ( yy_act == 130 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002083 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2084 else
2085 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2086 }
2087
2088 switch ( yy_act )
2089 { /* beginning of action switch */
2090case 1:
2091YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002092#line 103 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002093yy_push_state(dash_comment);
2094 YY_BREAK
2095
2096case 2:
2097YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002098#line 106 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002099yy_pop_state();
2100 YY_BREAK
2101case 3:
2102YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002103#line 108 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002104yy_pop_state(); /* End of comment */
2105 YY_BREAK
2106case 4:
2107YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002108#line 109 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002109/* Eat single dash */
2110 YY_BREAK
2111case 5:
2112YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002113#line 110 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002114/* Eat */
2115 YY_BREAK
2116
2117case 6:
2118YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002119#line 113 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002120yy_push_state(cpp_comment);
2121 YY_BREAK
2122
2123case 7:
2124YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002125#line 115 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002126/* Eat */
2127 YY_BREAK
2128case 8:
2129YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002130#line 116 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002131yy_pop_state();
2132 YY_BREAK
2133case 9:
2134YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002135#line 117 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002136/* Eat */
2137 YY_BREAK
2138
2139/*
2140 * This is state is being set from corresponding .y module when
2141 * higher-level data is necessary to make proper parsing of the
2142 * underlying data. Thus, we enter the <opaque> state and save
2143 * everything for later processing.
2144 */
2145
2146case 10:
2147YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002148#line 129 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002149{
2150 yy_push_state(opaque);
2151 asn1p_lval.tv_opaque.buf = strdup(yytext);
2152 asn1p_lval.tv_opaque.len = yyleng;
2153 return TOK_opaque;
2154 }
2155 YY_BREAK
2156case 11:
2157YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002158#line 136 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002159{
2160 yy_pop_state();
2161 asn1p_lval.tv_opaque.buf = strdup(yytext);
2162 asn1p_lval.tv_opaque.len = yyleng;
2163 return TOK_opaque;
2164 }
2165 YY_BREAK
2166case 12:
2167YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002168#line 143 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002169{
2170 asn1p_lval.tv_opaque.buf = strdup(yytext);
2171 asn1p_lval.tv_opaque.len = yyleng;
2172 return TOK_opaque;
2173 }
2174 YY_BREAK
2175case 13:
2176YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002177#line 149 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002178{
2179 fprintf(stderr,
2180 "ASN.1 Parser syncronization failure: "
2181 "\"%s\" at line %d must not appear "
2182 "inside value definition\n",
2183 yytext, yylineno);
2184 return -1;
2185 }
2186 YY_BREAK
2187case 14:
2188YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002189#line 158 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002190{
2191 asn1p_lval.tv_opaque.buf = strdup(yytext);
2192 asn1p_lval.tv_opaque.len = yyleng;
2193 return TOK_opaque;
2194 }
2195 YY_BREAK
2196
2197case 15:
2198YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002199#line 166 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002200{
2201 asn1p_lval.tv_opaque.buf = 0;
2202 asn1p_lval.tv_opaque.len = 0;
2203 QAPPEND(yytext+1, yyleng-1);
2204 yy_push_state(quoted);
2205 }
2206 YY_BREAK
2207
2208case 16:
2209YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002210#line 174 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002211{ QAPPEND(yytext, yyleng-1); } /* Add a single quote */
2212 YY_BREAK
2213case 17:
2214YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002215#line 175 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002216{ QAPPEND(yytext, yyleng); }
2217 YY_BREAK
2218case 18:
2219YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002220#line 177 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002221{
2222 yy_pop_state();
2223 /* Do not append last quote:
2224 // QAPPEND(yytext, yyleng); */
2225
2226 if(asn1p_lexer_pedantic_1990
2227 && strchr(yytext, '\n')) {
2228 fprintf(stderr, "%s: "
2229 "Newlines are prohibited by ASN.1:1990\n",
2230 asn1p_lval.tv_opaque.buf);
2231 return -1;
2232 }
2233
2234 return TOK_cstring;
2235 }
2236 YY_BREAK
2237
Lev Walkinf59d0752004-08-18 04:59:12 +00002238
Lev Walkinf15320b2004-06-03 03:38:44 +00002239case 19:
2240YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002241#line 196 "asn1p_l.l"
2242{
2243 const char *s = "ENCODING-CONTROL";
2244 const char *p = s + sizeof("ENCODING-CONTROL") - 2;
2245 for(; p >= s; p--) unput(*p);
2246 yy_pop_state();
2247 }
2248 YY_BREAK
2249case 20:
2250YY_RULE_SETUP
2251#line 202 "asn1p_l.l"
2252unput('D'); unput('N'); unput('E'); yy_pop_state();
2253 YY_BREAK
2254case 21:
2255YY_RULE_SETUP
2256#line 203 "asn1p_l.l"
2257
2258 YY_BREAK
2259case 22:
2260YY_RULE_SETUP
2261#line 204 "asn1p_l.l"
2262
2263 YY_BREAK
2264case 23:
2265YY_RULE_SETUP
2266#line 205 "asn1p_l.l"
2267/* Eat everything else */
2268 YY_BREAK
2269case 24:
2270YY_RULE_SETUP
2271#line 206 "asn1p_l.l"
2272
2273 YY_BREAK
2274
2275case 25:
2276YY_RULE_SETUP
2277#line 209 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002278{
2279 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2280 asn1p_lval.tv_str = yytext;
2281 return TOK_hstring;
2282 }
2283 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002284case 26:
Lev Walkinf15320b2004-06-03 03:38:44 +00002285YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002286#line 215 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002287{
2288 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2289 asn1p_lval.tv_str = strdup(yytext);
2290 return TOK_bstring;
2291 }
2292 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002293case 27:
Lev Walkinf15320b2004-06-03 03:38:44 +00002294YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002295#line 222 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002296{
2297 asn1p_lval.a_int = asn1p_atoi(yytext);
2298 if(errno == ERANGE)
2299 return -1;
2300 return TOK_number_negative;
2301 }
2302 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002303case 28:
Lev Walkinf15320b2004-06-03 03:38:44 +00002304YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002305#line 229 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002306{
2307 asn1p_lval.a_int = asn1p_atoi(yytext);
2308 if(errno == ERANGE)
2309 return -1;
2310 return TOK_number;
2311 }
2312 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002313case 29:
Lev Walkinf15320b2004-06-03 03:38:44 +00002314YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002315#line 236 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002316{
2317 asn1p_lval.a_int = asn1p_atoi(yytext);
2318 if(errno == ERANGE)
2319 return -1;
2320 return TOK_number;
2321 }
2322 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002323case 30:
Lev Walkinf15320b2004-06-03 03:38:44 +00002324YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002325#line 243 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002326return TOK_ABSENT;
2327 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002328/*
2329ABSTRACT-SYNTAX return TOK_ABSTRACT_SYNTAX;
2330 */
Lev Walkinc603f102005-01-23 09:51:44 +00002331case 31:
Lev Walkinf15320b2004-06-03 03:38:44 +00002332YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002333#line 247 "asn1p_l.l"
Lev Walkin9c974182004-09-15 11:59:51 +00002334return TOK_ALL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002335 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002336case 32:
Lev Walkinf15320b2004-06-03 03:38:44 +00002337YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002338#line 248 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002339{
2340 /* Appeared in 1990, removed in 1997 */
2341 if(TYPE_LIFETIME(1990, 1997))
2342 return TOK_ANY;
2343 fprintf(stderr, "Keyword \"%s\" at line %d "
2344 "is obsolete\n", yytext, yylineno);
2345 REJECT;
2346 }
2347 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002348case 33:
2349YY_RULE_SETUP
2350#line 256 "asn1p_l.l"
2351return TOK_APPLICATION;
2352 YY_BREAK
2353case 34:
2354YY_RULE_SETUP
2355#line 257 "asn1p_l.l"
2356return TOK_AUTOMATIC;
2357 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002358case 35:
2359YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002360#line 258 "asn1p_l.l"
2361return TOK_BEGIN;
Lev Walkin9c974182004-09-15 11:59:51 +00002362 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002363case 36:
Lev Walkinf15320b2004-06-03 03:38:44 +00002364YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002365#line 259 "asn1p_l.l"
2366return TOK_BIT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002367 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002368case 37:
Lev Walkinf15320b2004-06-03 03:38:44 +00002369YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002370#line 260 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002371{
2372 if(TYPE_LIFETIME(1994, 0))
2373 return TOK_BMPString;
2374 REJECT;
2375 }
2376 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002377case 38:
2378YY_RULE_SETUP
2379#line 265 "asn1p_l.l"
2380return TOK_BOOLEAN;
2381 YY_BREAK
2382case 39:
2383YY_RULE_SETUP
2384#line 266 "asn1p_l.l"
2385return TOK_BY;
2386 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002387case 40:
2388YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002389#line 267 "asn1p_l.l"
2390return TOK_CHARACTER;
Lev Walkin9c974182004-09-15 11:59:51 +00002391 YY_BREAK
Lev Walkinf15320b2004-06-03 03:38:44 +00002392case 41:
2393YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002394#line 268 "asn1p_l.l"
2395return TOK_CHOICE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002396 YY_BREAK
2397case 42:
2398YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002399#line 269 "asn1p_l.l"
2400return TOK_CLASS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002401 YY_BREAK
2402case 43:
2403YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002404#line 270 "asn1p_l.l"
2405return TOK_COMPONENT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002406 YY_BREAK
2407case 44:
2408YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002409#line 271 "asn1p_l.l"
2410return TOK_COMPONENTS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002411 YY_BREAK
2412case 45:
2413YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002414#line 272 "asn1p_l.l"
2415return TOK_CONSTRAINED;
Lev Walkinf59d0752004-08-18 04:59:12 +00002416 YY_BREAK
2417case 46:
2418YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002419#line 273 "asn1p_l.l"
2420return TOK_CONTAINING;
Lev Walkinf59d0752004-08-18 04:59:12 +00002421 YY_BREAK
2422case 47:
2423YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002424#line 274 "asn1p_l.l"
2425return TOK_DEFAULT;
Lev Walkinf59d0752004-08-18 04:59:12 +00002426 YY_BREAK
2427case 48:
2428YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002429#line 275 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002430{
2431 /* Appeared in 1990, removed in 1997 */
2432 if(TYPE_LIFETIME(1990, 1997))
2433 return TOK_DEFINED;
2434 fprintf(stderr, "Keyword \"%s\" at line %d "
2435 "is obsolete\n", yytext, yylineno);
2436 /* Deprecated since */
2437 REJECT;
2438 }
2439 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002440case 49:
2441YY_RULE_SETUP
2442#line 284 "asn1p_l.l"
2443return TOK_DEFINITIONS;
2444 YY_BREAK
2445case 50:
2446YY_RULE_SETUP
2447#line 285 "asn1p_l.l"
2448return TOK_EMBEDDED;
2449 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002450case 51:
2451YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002452#line 286 "asn1p_l.l"
2453return TOK_ENCODED;
Lev Walkin9c974182004-09-15 11:59:51 +00002454 YY_BREAK
Lev Walkinf15320b2004-06-03 03:38:44 +00002455case 52:
2456YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002457#line 287 "asn1p_l.l"
2458return TOK_ENCODING_CONTROL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002459 YY_BREAK
2460case 53:
2461YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002462#line 288 "asn1p_l.l"
2463return TOK_END;
Lev Walkinf15320b2004-06-03 03:38:44 +00002464 YY_BREAK
2465case 54:
2466YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002467#line 289 "asn1p_l.l"
2468return TOK_ENUMERATED;
Lev Walkinf15320b2004-06-03 03:38:44 +00002469 YY_BREAK
2470case 55:
2471YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002472#line 290 "asn1p_l.l"
2473return TOK_EXCEPT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002474 YY_BREAK
2475case 56:
2476YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002477#line 291 "asn1p_l.l"
2478return TOK_EXPLICIT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002479 YY_BREAK
2480case 57:
2481YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002482#line 292 "asn1p_l.l"
2483return TOK_EXPORTS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002484 YY_BREAK
2485case 58:
2486YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002487#line 293 "asn1p_l.l"
2488return TOK_EXTENSIBILITY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002489 YY_BREAK
2490case 59:
2491YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002492#line 294 "asn1p_l.l"
2493return TOK_EXTERNAL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002494 YY_BREAK
2495case 60:
2496YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002497#line 295 "asn1p_l.l"
2498return TOK_FALSE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002499 YY_BREAK
2500case 61:
2501YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002502#line 296 "asn1p_l.l"
2503return TOK_FROM;
Lev Walkinf15320b2004-06-03 03:38:44 +00002504 YY_BREAK
2505case 62:
2506YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002507#line 297 "asn1p_l.l"
2508return TOK_GeneralizedTime;
Lev Walkinf15320b2004-06-03 03:38:44 +00002509 YY_BREAK
2510case 63:
2511YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002512#line 298 "asn1p_l.l"
2513return TOK_GeneralString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002514 YY_BREAK
2515case 64:
2516YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002517#line 299 "asn1p_l.l"
2518return TOK_GraphicString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002519 YY_BREAK
2520case 65:
2521YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002522#line 300 "asn1p_l.l"
2523return TOK_IA5String;
Lev Walkinf15320b2004-06-03 03:38:44 +00002524 YY_BREAK
2525case 66:
2526YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002527#line 301 "asn1p_l.l"
2528return TOK_IDENTIFIER;
Lev Walkinf15320b2004-06-03 03:38:44 +00002529 YY_BREAK
2530case 67:
2531YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002532#line 302 "asn1p_l.l"
2533return TOK_IMPLICIT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002534 YY_BREAK
2535case 68:
2536YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002537#line 303 "asn1p_l.l"
2538return TOK_IMPLIED;
Lev Walkinf15320b2004-06-03 03:38:44 +00002539 YY_BREAK
2540case 69:
2541YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002542#line 304 "asn1p_l.l"
2543return TOK_IMPORTS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002544 YY_BREAK
2545case 70:
2546YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002547#line 305 "asn1p_l.l"
2548return TOK_INCLUDES;
Lev Walkinf15320b2004-06-03 03:38:44 +00002549 YY_BREAK
2550case 71:
2551YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002552#line 306 "asn1p_l.l"
2553return TOK_INSTANCE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002554 YY_BREAK
2555case 72:
2556YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002557#line 307 "asn1p_l.l"
2558return TOK_INSTRUCTIONS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002559 YY_BREAK
2560case 73:
2561YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002562#line 308 "asn1p_l.l"
2563return TOK_INTEGER;
Lev Walkinf15320b2004-06-03 03:38:44 +00002564 YY_BREAK
2565case 74:
2566YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002567#line 309 "asn1p_l.l"
2568return TOK_INTERSECTION;
Lev Walkinf15320b2004-06-03 03:38:44 +00002569 YY_BREAK
2570case 75:
2571YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002572#line 310 "asn1p_l.l"
2573return TOK_ISO646String;
Lev Walkinf15320b2004-06-03 03:38:44 +00002574 YY_BREAK
2575case 76:
2576YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002577#line 311 "asn1p_l.l"
2578return TOK_MAX;
Lev Walkinf15320b2004-06-03 03:38:44 +00002579 YY_BREAK
2580case 77:
2581YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002582#line 312 "asn1p_l.l"
2583return TOK_MIN;
Lev Walkinf15320b2004-06-03 03:38:44 +00002584 YY_BREAK
2585case 78:
2586YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002587#line 313 "asn1p_l.l"
2588return TOK_MINUS_INFINITY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002589 YY_BREAK
2590case 79:
2591YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002592#line 314 "asn1p_l.l"
2593return TOK_NULL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002594 YY_BREAK
2595case 80:
2596YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002597#line 315 "asn1p_l.l"
2598return TOK_NumericString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002599 YY_BREAK
2600case 81:
2601YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002602#line 316 "asn1p_l.l"
2603return TOK_OBJECT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002604 YY_BREAK
2605case 82:
2606YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002607#line 317 "asn1p_l.l"
2608return TOK_ObjectDescriptor;
Lev Walkinf15320b2004-06-03 03:38:44 +00002609 YY_BREAK
2610case 83:
2611YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002612#line 318 "asn1p_l.l"
2613return TOK_OCTET;
Lev Walkinf15320b2004-06-03 03:38:44 +00002614 YY_BREAK
2615case 84:
2616YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002617#line 319 "asn1p_l.l"
2618return TOK_OF;
Lev Walkinf15320b2004-06-03 03:38:44 +00002619 YY_BREAK
2620case 85:
2621YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002622#line 320 "asn1p_l.l"
2623return TOK_OPTIONAL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002624 YY_BREAK
2625case 86:
2626YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002627#line 321 "asn1p_l.l"
2628return TOK_PATTERN;
Lev Walkinf15320b2004-06-03 03:38:44 +00002629 YY_BREAK
2630case 87:
2631YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002632#line 322 "asn1p_l.l"
2633return TOK_PDV;
Lev Walkinf15320b2004-06-03 03:38:44 +00002634 YY_BREAK
2635case 88:
2636YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002637#line 323 "asn1p_l.l"
2638return TOK_PLUS_INFINITY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002639 YY_BREAK
2640case 89:
2641YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002642#line 324 "asn1p_l.l"
2643return TOK_PRESENT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002644 YY_BREAK
2645case 90:
2646YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002647#line 325 "asn1p_l.l"
2648return TOK_PrintableString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002649 YY_BREAK
2650case 91:
2651YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002652#line 326 "asn1p_l.l"
2653return TOK_PRIVATE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002654 YY_BREAK
2655case 92:
2656YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002657#line 327 "asn1p_l.l"
2658return TOK_REAL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002659 YY_BREAK
2660case 93:
2661YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002662#line 328 "asn1p_l.l"
2663return TOK_RELATIVE_OID;
Lev Walkinf15320b2004-06-03 03:38:44 +00002664 YY_BREAK
2665case 94:
2666YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002667#line 329 "asn1p_l.l"
2668return TOK_SEQUENCE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002669 YY_BREAK
2670case 95:
2671YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002672#line 330 "asn1p_l.l"
2673return TOK_SET;
Lev Walkinf15320b2004-06-03 03:38:44 +00002674 YY_BREAK
2675case 96:
2676YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002677#line 331 "asn1p_l.l"
2678return TOK_SIZE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002679 YY_BREAK
2680case 97:
2681YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002682#line 332 "asn1p_l.l"
2683return TOK_STRING;
Lev Walkinf15320b2004-06-03 03:38:44 +00002684 YY_BREAK
2685case 98:
2686YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002687#line 333 "asn1p_l.l"
2688return TOK_SYNTAX;
Lev Walkinf15320b2004-06-03 03:38:44 +00002689 YY_BREAK
2690case 99:
2691YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002692#line 334 "asn1p_l.l"
2693return TOK_T61String;
Lev Walkinf15320b2004-06-03 03:38:44 +00002694 YY_BREAK
2695case 100:
2696YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002697#line 335 "asn1p_l.l"
2698return TOK_TAGS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002699 YY_BREAK
2700case 101:
2701YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002702#line 336 "asn1p_l.l"
2703return TOK_TeletexString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002704 YY_BREAK
2705case 102:
2706YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002707#line 337 "asn1p_l.l"
2708return TOK_TRUE;
Lev Walkinf59d0752004-08-18 04:59:12 +00002709 YY_BREAK
2710case 103:
2711YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002712#line 338 "asn1p_l.l"
2713return TOK_TYPE_IDENTIFIER;
Lev Walkinf59d0752004-08-18 04:59:12 +00002714 YY_BREAK
2715case 104:
2716YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002717#line 339 "asn1p_l.l"
2718return TOK_UNION;
Lev Walkinf59d0752004-08-18 04:59:12 +00002719 YY_BREAK
2720case 105:
2721YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002722#line 340 "asn1p_l.l"
2723return TOK_UNIQUE;
Lev Walkinf59d0752004-08-18 04:59:12 +00002724 YY_BREAK
2725case 106:
2726YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002727#line 341 "asn1p_l.l"
2728return TOK_UNIVERSAL;
Lev Walkinf59d0752004-08-18 04:59:12 +00002729 YY_BREAK
2730case 107:
2731YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002732#line 342 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002733{
2734 if(TYPE_LIFETIME(1994, 0))
2735 return TOK_UniversalString;
2736 REJECT;
2737 }
2738 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002739case 108:
Lev Walkinf15320b2004-06-03 03:38:44 +00002740YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002741#line 347 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002742return TOK_UTCTime;
2743 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002744case 109:
Lev Walkinf15320b2004-06-03 03:38:44 +00002745YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002746#line 348 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002747{
2748 if(TYPE_LIFETIME(1994, 0))
2749 return TOK_UTF8String;
2750 REJECT;
2751 }
2752 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002753case 110:
2754YY_RULE_SETUP
2755#line 353 "asn1p_l.l"
2756return TOK_VideotexString;
2757 YY_BREAK
2758case 111:
2759YY_RULE_SETUP
2760#line 354 "asn1p_l.l"
2761return TOK_VisibleString;
2762 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002763case 112:
2764YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002765#line 355 "asn1p_l.l"
2766return TOK_WITH;
Lev Walkin9c974182004-09-15 11:59:51 +00002767 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002768case 113:
Lev Walkinf15320b2004-06-03 03:38:44 +00002769YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002770#line 358 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002771{
2772 CHECK_DASHES;
2773 asn1p_lval.tv_str = strdup(yytext);
2774 return TOK_typefieldreference;
2775 }
2776 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002777case 114:
Lev Walkinf15320b2004-06-03 03:38:44 +00002778YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002779#line 364 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002780{
2781 CHECK_DASHES;
2782 asn1p_lval.tv_str = strdup(yytext);
2783 return TOK_valuefieldreference;
2784 }
2785 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002786case 115:
Lev Walkinf15320b2004-06-03 03:38:44 +00002787YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002788#line 371 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002789{
2790 CHECK_DASHES;
2791 asn1p_lval.tv_str = strdup(yytext);
2792 return TOK_identifier;
2793 }
2794 YY_BREAK
2795/*
2796 * objectclassreference
2797 */
Lev Walkinc603f102005-01-23 09:51:44 +00002798case 116:
Lev Walkinf15320b2004-06-03 03:38:44 +00002799YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002800#line 380 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002801{
2802 CHECK_DASHES;
2803 asn1p_lval.tv_str = strdup(yytext);
Lev Walkinf59d0752004-08-18 04:59:12 +00002804 return TOK_capitalreference;
Lev Walkinf15320b2004-06-03 03:38:44 +00002805 }
2806 YY_BREAK
2807/*
2808 * typereference, modulereference
2809 * NOTE: TOK_objectclassreference must be combined
2810 * with this token to produce true typereference.
2811 */
Lev Walkinc603f102005-01-23 09:51:44 +00002812case 117:
Lev Walkinf15320b2004-06-03 03:38:44 +00002813YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002814#line 391 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002815{
2816 CHECK_DASHES;
2817 asn1p_lval.tv_str = strdup(yytext);
2818 return TOK_typereference;
2819 }
2820 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002821case 118:
2822YY_RULE_SETUP
2823#line 397 "asn1p_l.l"
2824return TOK_PPEQ;
2825 YY_BREAK
2826case 119:
2827YY_RULE_SETUP
2828#line 399 "asn1p_l.l"
2829return TOK_ThreeDots;
2830 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002831case 120:
2832YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002833#line 400 "asn1p_l.l"
2834return TOK_TwoDots;
Lev Walkin9c974182004-09-15 11:59:51 +00002835 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002836case 121:
Lev Walkinf15320b2004-06-03 03:38:44 +00002837YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002838#line 402 "asn1p_l.l"
2839/* Ignore whitespace */
Lev Walkinf15320b2004-06-03 03:38:44 +00002840 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002841case 122:
Lev Walkinf15320b2004-06-03 03:38:44 +00002842YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002843#line 404 "asn1p_l.l"
2844return yytext[0];
Lev Walkinf15320b2004-06-03 03:38:44 +00002845 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002846case 123:
Lev Walkinf15320b2004-06-03 03:38:44 +00002847YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002848#line 406 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002849{
2850 if(TYPE_LIFETIME(1994, 0))
2851 fprintf(stderr, "ERROR: ");
2852 fprintf(stderr,
2853 "Symbol '%c' at line %d is prohibited "
2854 "by ASN.1:1994 and ASN.1:1997\n",
2855 yytext[0], yylineno);
2856 if(TYPE_LIFETIME(1994, 0))
2857 return -1;
2858 }
2859 YY_BREAK
2860
Lev Walkinc603f102005-01-23 09:51:44 +00002861case 124:
2862YY_RULE_SETUP
2863#line 419 "asn1p_l.l"
2864{
2865 asn1p_lval.tv_opaque.buf = strdup(yytext);
2866 asn1p_lval.tv_opaque.len = yyleng;
2867 return TOK_opaque;
2868 }
2869 YY_BREAK
2870case 125:
2871YY_RULE_SETUP
2872#line 425 "asn1p_l.l"
2873{
2874 asn1p_lval.tv_opaque.buf = strdup(yytext);
2875 asn1p_lval.tv_opaque.len = yyleng;
2876 return TOK_opaque;
2877 }
2878 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002879case 126:
2880YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002881#line 431 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002882{
2883 yy_pop_state();
2884 return '}';
2885 }
2886 YY_BREAK
2887
Lev Walkinc603f102005-01-23 09:51:44 +00002888case 127:
Lev Walkinf59d0752004-08-18 04:59:12 +00002889YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002890#line 438 "asn1p_l.l"
Lev Walkin9c974182004-09-15 11:59:51 +00002891return yytext[0]; /* Union, Intersection */
2892 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002893case 128:
Lev Walkin9c974182004-09-15 11:59:51 +00002894YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002895#line 440 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002896{
2897 fprintf(stderr,
2898 "Unexpected token at line %d: \"%s\"\n",
2899 yylineno, yytext);
2900 while(YYSTATE != INITIAL)
2901 yy_pop_state();
Lev Walkin9c974182004-09-15 11:59:51 +00002902 if(0) {
2903 yy_top_state(); /* Just to use this function. */
2904 yy_fatal_error("Parse error");
2905 }
Lev Walkinf15320b2004-06-03 03:38:44 +00002906 return -1;
2907}
2908 YY_BREAK
2909case YY_STATE_EOF(INITIAL):
2910case YY_STATE_EOF(dash_comment):
2911case YY_STATE_EOF(cpp_comment):
2912case YY_STATE_EOF(quoted):
2913case YY_STATE_EOF(opaque):
Lev Walkinf59d0752004-08-18 04:59:12 +00002914case YY_STATE_EOF(encoding_control):
Lev Walkinf15320b2004-06-03 03:38:44 +00002915case YY_STATE_EOF(with_syntax):
Lev Walkinc603f102005-01-23 09:51:44 +00002916#line 453 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002917{
2918 while(YYSTATE != INITIAL)
2919 yy_pop_state();
2920 yyterminate();
2921 }
2922 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002923case 129:
Lev Walkinf15320b2004-06-03 03:38:44 +00002924YY_RULE_SETUP
Lev Walkinc603f102005-01-23 09:51:44 +00002925#line 460 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002926YY_FATAL_ERROR( "flex scanner jammed" );
2927 YY_BREAK
Lev Walkinc603f102005-01-23 09:51:44 +00002928#line 2929 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00002929
2930 case YY_END_OF_BUFFER:
2931 {
2932 /* Amount of text matched not including the EOB char. */
2933 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2934
2935 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2936 *yy_cp = yy_hold_char;
2937 YY_RESTORE_YY_MORE_OFFSET
2938
2939 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2940 {
2941 /* We're scanning a new file or input source. It's
2942 * possible that this happened because the user
2943 * just pointed yyin at a new source and called
2944 * yylex(). If so, then we have to assure
2945 * consistency between yy_current_buffer and our
2946 * globals. Here is the right place to do so, because
2947 * this is the first action (other than possibly a
2948 * back-up) that will match for the new input source.
2949 */
2950 yy_n_chars = yy_current_buffer->yy_n_chars;
2951 yy_current_buffer->yy_input_file = yyin;
2952 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2953 }
2954
2955 /* Note that here we test for yy_c_buf_p "<=" to the position
2956 * of the first EOB in the buffer, since yy_c_buf_p will
2957 * already have been incremented past the NUL character
2958 * (since all states make transitions on EOB to the
2959 * end-of-buffer state). Contrast this with the test
2960 * in input().
2961 */
2962 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2963 { /* This was really a NUL. */
2964 yy_state_type yy_next_state;
2965
2966 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2967
2968 yy_current_state = yy_get_previous_state();
2969
2970 /* Okay, we're now positioned to make the NUL
2971 * transition. We couldn't have
2972 * yy_get_previous_state() go ahead and do it
2973 * for us because it doesn't know how to deal
2974 * with the possibility of jamming (and we don't
2975 * want to build jamming into it because then it
2976 * will run more slowly).
2977 */
2978
2979 yy_next_state = yy_try_NUL_trans( yy_current_state );
2980
2981 yy_bp = yytext_ptr + YY_MORE_ADJ;
2982
2983 if ( yy_next_state )
2984 {
2985 /* Consume the NUL. */
2986 yy_cp = ++yy_c_buf_p;
2987 yy_current_state = yy_next_state;
2988 goto yy_match;
2989 }
2990
2991 else
2992 {
2993 yy_cp = yy_c_buf_p;
2994 goto yy_find_action;
2995 }
2996 }
2997
2998 else switch ( yy_get_next_buffer() )
2999 {
3000 case EOB_ACT_END_OF_FILE:
3001 {
3002 yy_did_buffer_switch_on_eof = 0;
3003
3004 if ( yywrap() )
3005 {
3006 /* Note: because we've taken care in
3007 * yy_get_next_buffer() to have set up
3008 * yytext, we can now set up
3009 * yy_c_buf_p so that if some total
3010 * hoser (like flex itself) wants to
3011 * call the scanner after we return the
3012 * YY_NULL, it'll still work - another
3013 * YY_NULL will get returned.
3014 */
3015 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
3016
3017 yy_act = YY_STATE_EOF(YY_START);
3018 goto do_action;
3019 }
3020
3021 else
3022 {
3023 if ( ! yy_did_buffer_switch_on_eof )
3024 YY_NEW_FILE;
3025 }
3026 break;
3027 }
3028
3029 case EOB_ACT_CONTINUE_SCAN:
3030 yy_c_buf_p =
3031 yytext_ptr + yy_amount_of_matched_text;
3032
3033 yy_current_state = yy_get_previous_state();
3034
3035 yy_cp = yy_c_buf_p;
3036 yy_bp = yytext_ptr + YY_MORE_ADJ;
3037 goto yy_match;
3038
3039 case EOB_ACT_LAST_MATCH:
3040 yy_c_buf_p =
3041 &yy_current_buffer->yy_ch_buf[yy_n_chars];
3042
3043 yy_current_state = yy_get_previous_state();
3044
3045 yy_cp = yy_c_buf_p;
3046 yy_bp = yytext_ptr + YY_MORE_ADJ;
3047 goto yy_find_action;
3048 }
3049 break;
3050 }
3051
3052 default:
3053 YY_FATAL_ERROR(
3054 "fatal flex scanner internal error--no action found" );
3055 } /* end of action switch */
3056 } /* end of scanning one token */
3057 } /* end of yylex */
3058
3059
3060/* yy_get_next_buffer - try to read in a new buffer
3061 *
3062 * Returns a code representing an action:
3063 * EOB_ACT_LAST_MATCH -
3064 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3065 * EOB_ACT_END_OF_FILE - end of file
3066 */
3067
3068static int yy_get_next_buffer()
3069 {
3070 register char *dest = yy_current_buffer->yy_ch_buf;
3071 register char *source = yytext_ptr;
3072 register int number_to_move, i;
3073 int ret_val;
3074
3075 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
3076 YY_FATAL_ERROR(
3077 "fatal flex scanner internal error--end of buffer missed" );
3078
3079 if ( yy_current_buffer->yy_fill_buffer == 0 )
3080 { /* Don't try to fill the buffer, so this is an EOF. */
3081 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
3082 {
3083 /* We matched a single character, the EOB, so
3084 * treat this as a final EOF.
3085 */
3086 return EOB_ACT_END_OF_FILE;
3087 }
3088
3089 else
3090 {
3091 /* We matched some text prior to the EOB, first
3092 * process it.
3093 */
3094 return EOB_ACT_LAST_MATCH;
3095 }
3096 }
3097
3098 /* Try to read more data. */
3099
3100 /* First move last chars to start of buffer. */
3101 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
3102
3103 for ( i = 0; i < number_to_move; ++i )
3104 *(dest++) = *(source++);
3105
3106 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3107 /* don't do the read, it's not guaranteed to return an EOF,
3108 * just force an EOF
3109 */
3110 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
3111
3112 else
3113 {
3114 int num_to_read =
3115 yy_current_buffer->yy_buf_size - number_to_move - 1;
3116
3117 while ( num_to_read <= 0 )
3118 { /* Not enough room in the buffer - grow it. */
3119#ifdef YY_USES_REJECT
3120 YY_FATAL_ERROR(
3121"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3122#else
3123
3124 /* just a shorter name for the current buffer */
3125 YY_BUFFER_STATE b = yy_current_buffer;
3126
3127 int yy_c_buf_p_offset =
3128 (int) (yy_c_buf_p - b->yy_ch_buf);
3129
3130 if ( b->yy_is_our_buffer )
3131 {
3132 int new_size = b->yy_buf_size * 2;
3133
3134 if ( new_size <= 0 )
3135 b->yy_buf_size += b->yy_buf_size / 8;
3136 else
3137 b->yy_buf_size *= 2;
3138
3139 b->yy_ch_buf = (char *)
3140 /* Include room in for 2 EOB chars. */
3141 yy_flex_realloc( (void *) b->yy_ch_buf,
3142 b->yy_buf_size + 2 );
3143 }
3144 else
3145 /* Can't grow it, we don't own it. */
3146 b->yy_ch_buf = 0;
3147
3148 if ( ! b->yy_ch_buf )
3149 YY_FATAL_ERROR(
3150 "fatal error - scanner input buffer overflow" );
3151
3152 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
3153
3154 num_to_read = yy_current_buffer->yy_buf_size -
3155 number_to_move - 1;
3156#endif
3157 }
3158
3159 if ( num_to_read > YY_READ_BUF_SIZE )
3160 num_to_read = YY_READ_BUF_SIZE;
3161
3162 /* Read in more data. */
3163 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
3164 yy_n_chars, num_to_read );
3165
3166 yy_current_buffer->yy_n_chars = yy_n_chars;
3167 }
3168
3169 if ( yy_n_chars == 0 )
3170 {
3171 if ( number_to_move == YY_MORE_ADJ )
3172 {
3173 ret_val = EOB_ACT_END_OF_FILE;
3174 yyrestart( yyin );
3175 }
3176
3177 else
3178 {
3179 ret_val = EOB_ACT_LAST_MATCH;
3180 yy_current_buffer->yy_buffer_status =
3181 YY_BUFFER_EOF_PENDING;
3182 }
3183 }
3184
3185 else
3186 ret_val = EOB_ACT_CONTINUE_SCAN;
3187
3188 yy_n_chars += number_to_move;
3189 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3190 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3191
3192 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3193
3194 return ret_val;
3195 }
3196
3197
3198/* yy_get_previous_state - get the state just before the EOB char was reached */
3199
3200static yy_state_type yy_get_previous_state()
3201 {
3202 register yy_state_type yy_current_state;
3203 register char *yy_cp;
3204
3205 yy_current_state = yy_start;
3206 yy_state_ptr = yy_state_buf;
3207 *yy_state_ptr++ = yy_current_state;
3208
3209 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3210 {
3211 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3212 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3213 {
3214 yy_current_state = (int) yy_def[yy_current_state];
Lev Walkinc603f102005-01-23 09:51:44 +00003215 if ( yy_current_state >= 670 )
Lev Walkinf15320b2004-06-03 03:38:44 +00003216 yy_c = yy_meta[(unsigned int) yy_c];
3217 }
3218 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3219 *yy_state_ptr++ = yy_current_state;
3220 }
3221
3222 return yy_current_state;
3223 }
3224
3225
3226/* yy_try_NUL_trans - try to make a transition on the NUL character
3227 *
3228 * synopsis
3229 * next_state = yy_try_NUL_trans( current_state );
3230 */
3231
3232#ifdef YY_USE_PROTOS
3233static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3234#else
3235static yy_state_type yy_try_NUL_trans( yy_current_state )
3236yy_state_type yy_current_state;
3237#endif
3238 {
3239 register int yy_is_jam;
3240
3241 register YY_CHAR yy_c = 1;
3242 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3243 {
3244 yy_current_state = (int) yy_def[yy_current_state];
Lev Walkinc603f102005-01-23 09:51:44 +00003245 if ( yy_current_state >= 670 )
Lev Walkinf15320b2004-06-03 03:38:44 +00003246 yy_c = yy_meta[(unsigned int) yy_c];
3247 }
3248 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Lev Walkinc603f102005-01-23 09:51:44 +00003249 yy_is_jam = (yy_current_state == 669);
Lev Walkinf15320b2004-06-03 03:38:44 +00003250 if ( ! yy_is_jam )
3251 *yy_state_ptr++ = yy_current_state;
3252
3253 return yy_is_jam ? 0 : yy_current_state;
3254 }
3255
3256
3257#ifndef YY_NO_UNPUT
3258#ifdef YY_USE_PROTOS
3259static void yyunput( int c, register char *yy_bp )
3260#else
3261static void yyunput( c, yy_bp )
3262int c;
3263register char *yy_bp;
3264#endif
3265 {
3266 register char *yy_cp = yy_c_buf_p;
3267
3268 /* undo effects of setting up yytext */
3269 *yy_cp = yy_hold_char;
3270
3271 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3272 { /* need to shift things up to make room */
3273 /* +2 for EOB chars. */
3274 register int number_to_move = yy_n_chars + 2;
3275 register char *dest = &yy_current_buffer->yy_ch_buf[
3276 yy_current_buffer->yy_buf_size + 2];
3277 register char *source =
3278 &yy_current_buffer->yy_ch_buf[number_to_move];
3279
3280 while ( source > yy_current_buffer->yy_ch_buf )
3281 *--dest = *--source;
3282
3283 yy_cp += (int) (dest - source);
3284 yy_bp += (int) (dest - source);
3285 yy_current_buffer->yy_n_chars =
3286 yy_n_chars = yy_current_buffer->yy_buf_size;
3287
3288 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3289 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3290 }
3291
3292 *--yy_cp = (char) c;
3293
3294 if ( c == '\n' )
3295 --yylineno;
3296
3297 yytext_ptr = yy_bp;
3298 yy_hold_char = *yy_cp;
3299 yy_c_buf_p = yy_cp;
3300 }
3301#endif /* ifndef YY_NO_UNPUT */
3302
3303
3304#ifdef __cplusplus
3305static int yyinput()
3306#else
3307static int input()
3308#endif
3309 {
3310 int c;
3311
3312 *yy_c_buf_p = yy_hold_char;
3313
3314 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3315 {
3316 /* yy_c_buf_p now points to the character we want to return.
3317 * If this occurs *before* the EOB characters, then it's a
3318 * valid NUL; if not, then we've hit the end of the buffer.
3319 */
3320 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3321 /* This was really a NUL. */
3322 *yy_c_buf_p = '\0';
3323
3324 else
3325 { /* need more input */
3326 int offset = yy_c_buf_p - yytext_ptr;
3327 ++yy_c_buf_p;
3328
3329 switch ( yy_get_next_buffer() )
3330 {
3331 case EOB_ACT_LAST_MATCH:
3332 /* This happens because yy_g_n_b()
3333 * sees that we've accumulated a
3334 * token and flags that we need to
3335 * try matching the token before
3336 * proceeding. But for input(),
3337 * there's no matching to consider.
3338 * So convert the EOB_ACT_LAST_MATCH
3339 * to EOB_ACT_END_OF_FILE.
3340 */
3341
3342 /* Reset buffer status. */
3343 yyrestart( yyin );
3344
3345 /* fall through */
3346
3347 case EOB_ACT_END_OF_FILE:
3348 {
3349 if ( yywrap() )
3350 return EOF;
3351
3352 if ( ! yy_did_buffer_switch_on_eof )
3353 YY_NEW_FILE;
3354#ifdef __cplusplus
3355 return yyinput();
3356#else
3357 return input();
3358#endif
3359 }
3360
3361 case EOB_ACT_CONTINUE_SCAN:
3362 yy_c_buf_p = yytext_ptr + offset;
3363 break;
3364 }
3365 }
3366 }
3367
3368 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3369 *yy_c_buf_p = '\0'; /* preserve yytext */
3370 yy_hold_char = *++yy_c_buf_p;
3371
3372 if ( c == '\n' )
3373 ++yylineno;
3374
3375 return c;
3376 }
3377
3378
3379#ifdef YY_USE_PROTOS
3380void yyrestart( FILE *input_file )
3381#else
3382void yyrestart( input_file )
3383FILE *input_file;
3384#endif
3385 {
3386 if ( ! yy_current_buffer )
3387 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3388
3389 yy_init_buffer( yy_current_buffer, input_file );
3390 yy_load_buffer_state();
3391 }
3392
3393
3394#ifdef YY_USE_PROTOS
3395void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3396#else
3397void yy_switch_to_buffer( new_buffer )
3398YY_BUFFER_STATE new_buffer;
3399#endif
3400 {
3401 if ( yy_current_buffer == new_buffer )
3402 return;
3403
3404 if ( yy_current_buffer )
3405 {
3406 /* Flush out information for old buffer. */
3407 *yy_c_buf_p = yy_hold_char;
3408 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3409 yy_current_buffer->yy_n_chars = yy_n_chars;
3410 }
3411
3412 yy_current_buffer = new_buffer;
3413 yy_load_buffer_state();
3414
3415 /* We don't actually know whether we did this switch during
3416 * EOF (yywrap()) processing, but the only time this flag
3417 * is looked at is after yywrap() is called, so it's safe
3418 * to go ahead and always set it.
3419 */
3420 yy_did_buffer_switch_on_eof = 1;
3421 }
3422
3423
3424#ifdef YY_USE_PROTOS
3425void yy_load_buffer_state( void )
3426#else
3427void yy_load_buffer_state()
3428#endif
3429 {
3430 yy_n_chars = yy_current_buffer->yy_n_chars;
3431 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3432 yyin = yy_current_buffer->yy_input_file;
3433 yy_hold_char = *yy_c_buf_p;
3434 }
3435
3436
3437#ifdef YY_USE_PROTOS
3438YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3439#else
3440YY_BUFFER_STATE yy_create_buffer( file, size )
3441FILE *file;
3442int size;
3443#endif
3444 {
3445 YY_BUFFER_STATE b;
3446
3447 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3448 if ( ! b )
3449 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3450
3451 b->yy_buf_size = size;
3452
3453 /* yy_ch_buf has to be 2 characters longer than the size given because
3454 * we need to put in 2 end-of-buffer characters.
3455 */
3456 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3457 if ( ! b->yy_ch_buf )
3458 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3459
3460 b->yy_is_our_buffer = 1;
3461
3462 yy_init_buffer( b, file );
3463
3464 return b;
3465 }
3466
3467
3468#ifdef YY_USE_PROTOS
3469void yy_delete_buffer( YY_BUFFER_STATE b )
3470#else
3471void yy_delete_buffer( b )
3472YY_BUFFER_STATE b;
3473#endif
3474 {
3475 if ( ! b )
3476 return;
3477
3478 if ( b == yy_current_buffer )
3479 yy_current_buffer = (YY_BUFFER_STATE) 0;
3480
3481 if ( b->yy_is_our_buffer )
3482 yy_flex_free( (void *) b->yy_ch_buf );
3483
3484 yy_flex_free( (void *) b );
3485 }
3486
3487
3488#ifndef YY_ALWAYS_INTERACTIVE
3489#ifndef YY_NEVER_INTERACTIVE
3490extern int isatty YY_PROTO(( int ));
3491#endif
3492#endif
3493
3494#ifdef YY_USE_PROTOS
3495void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3496#else
3497void yy_init_buffer( b, file )
3498YY_BUFFER_STATE b;
3499FILE *file;
3500#endif
3501
3502
3503 {
3504 yy_flush_buffer( b );
3505
3506 b->yy_input_file = file;
3507 b->yy_fill_buffer = 1;
3508
3509#if YY_ALWAYS_INTERACTIVE
3510 b->yy_is_interactive = 1;
3511#else
3512#if YY_NEVER_INTERACTIVE
3513 b->yy_is_interactive = 0;
3514#else
3515 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3516#endif
3517#endif
3518 }
3519
3520
3521#ifdef YY_USE_PROTOS
3522void yy_flush_buffer( YY_BUFFER_STATE b )
3523#else
3524void yy_flush_buffer( b )
3525YY_BUFFER_STATE b;
3526#endif
3527
3528 {
3529 if ( ! b )
3530 return;
3531
3532 b->yy_n_chars = 0;
3533
3534 /* We always need two end-of-buffer characters. The first causes
3535 * a transition to the end-of-buffer state. The second causes
3536 * a jam in that state.
3537 */
3538 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3539 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3540
3541 b->yy_buf_pos = &b->yy_ch_buf[0];
3542
3543 b->yy_at_bol = 1;
3544 b->yy_buffer_status = YY_BUFFER_NEW;
3545
3546 if ( b == yy_current_buffer )
3547 yy_load_buffer_state();
3548 }
3549
3550
3551#ifndef YY_NO_SCAN_BUFFER
3552#ifdef YY_USE_PROTOS
3553YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3554#else
3555YY_BUFFER_STATE yy_scan_buffer( base, size )
3556char *base;
3557yy_size_t size;
3558#endif
3559 {
3560 YY_BUFFER_STATE b;
3561
3562 if ( size < 2 ||
3563 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3564 base[size-1] != YY_END_OF_BUFFER_CHAR )
3565 /* They forgot to leave room for the EOB's. */
3566 return 0;
3567
3568 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3569 if ( ! b )
3570 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3571
3572 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3573 b->yy_buf_pos = b->yy_ch_buf = base;
3574 b->yy_is_our_buffer = 0;
3575 b->yy_input_file = 0;
3576 b->yy_n_chars = b->yy_buf_size;
3577 b->yy_is_interactive = 0;
3578 b->yy_at_bol = 1;
3579 b->yy_fill_buffer = 0;
3580 b->yy_buffer_status = YY_BUFFER_NEW;
3581
3582 yy_switch_to_buffer( b );
3583
3584 return b;
3585 }
3586#endif
3587
3588
3589#ifndef YY_NO_SCAN_STRING
3590#ifdef YY_USE_PROTOS
3591YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3592#else
3593YY_BUFFER_STATE yy_scan_string( yy_str )
3594yyconst char *yy_str;
3595#endif
3596 {
3597 int len;
3598 for ( len = 0; yy_str[len]; ++len )
3599 ;
3600
3601 return yy_scan_bytes( yy_str, len );
3602 }
3603#endif
3604
3605
3606#ifndef YY_NO_SCAN_BYTES
3607#ifdef YY_USE_PROTOS
3608YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3609#else
3610YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3611yyconst char *bytes;
3612int len;
3613#endif
3614 {
3615 YY_BUFFER_STATE b;
3616 char *buf;
3617 yy_size_t n;
3618 int i;
3619
3620 /* Get memory for full buffer, including space for trailing EOB's. */
3621 n = len + 2;
3622 buf = (char *) yy_flex_alloc( n );
3623 if ( ! buf )
3624 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3625
3626 for ( i = 0; i < len; ++i )
3627 buf[i] = bytes[i];
3628
3629 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3630
3631 b = yy_scan_buffer( buf, n );
3632 if ( ! b )
3633 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3634
3635 /* It's okay to grow etc. this buffer, and we should throw it
3636 * away when we're done.
3637 */
3638 b->yy_is_our_buffer = 1;
3639
3640 return b;
3641 }
3642#endif
3643
3644
3645#ifndef YY_NO_PUSH_STATE
3646#ifdef YY_USE_PROTOS
3647static void yy_push_state( int new_state )
3648#else
3649static void yy_push_state( new_state )
3650int new_state;
3651#endif
3652 {
3653 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3654 {
3655 yy_size_t new_size;
3656
3657 yy_start_stack_depth += YY_START_STACK_INCR;
3658 new_size = yy_start_stack_depth * sizeof( int );
3659
3660 if ( ! yy_start_stack )
3661 yy_start_stack = (int *) yy_flex_alloc( new_size );
3662
3663 else
3664 yy_start_stack = (int *) yy_flex_realloc(
3665 (void *) yy_start_stack, new_size );
3666
3667 if ( ! yy_start_stack )
3668 YY_FATAL_ERROR(
3669 "out of memory expanding start-condition stack" );
3670 }
3671
3672 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3673
3674 BEGIN(new_state);
3675 }
3676#endif
3677
3678
3679#ifndef YY_NO_POP_STATE
3680static void yy_pop_state()
3681 {
3682 if ( --yy_start_stack_ptr < 0 )
3683 YY_FATAL_ERROR( "start-condition stack underflow" );
3684
3685 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3686 }
3687#endif
3688
3689
3690#ifndef YY_NO_TOP_STATE
3691static int yy_top_state()
3692 {
3693 return yy_start_stack[yy_start_stack_ptr - 1];
3694 }
3695#endif
3696
3697#ifndef YY_EXIT_FAILURE
3698#define YY_EXIT_FAILURE 2
3699#endif
3700
3701#ifdef YY_USE_PROTOS
3702static void yy_fatal_error( yyconst char msg[] )
3703#else
3704static void yy_fatal_error( msg )
3705char msg[];
3706#endif
3707 {
3708 (void) fprintf( stderr, "%s\n", msg );
3709 exit( YY_EXIT_FAILURE );
3710 }
3711
3712
3713
3714/* Redefine yyless() so it works in section 3 code. */
3715
3716#undef yyless
3717#define yyless(n) \
3718 do \
3719 { \
3720 /* Undo effects of setting up yytext. */ \
3721 yytext[yyleng] = yy_hold_char; \
3722 yy_c_buf_p = yytext + n; \
3723 yy_hold_char = *yy_c_buf_p; \
3724 *yy_c_buf_p = '\0'; \
3725 yyleng = n; \
3726 } \
3727 while ( 0 )
3728
3729
3730/* Internal utility routines. */
3731
3732#ifndef yytext_ptr
3733#ifdef YY_USE_PROTOS
3734static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3735#else
3736static void yy_flex_strncpy( s1, s2, n )
3737char *s1;
3738yyconst char *s2;
3739int n;
3740#endif
3741 {
3742 register int i;
3743 for ( i = 0; i < n; ++i )
3744 s1[i] = s2[i];
3745 }
3746#endif
3747
3748#ifdef YY_NEED_STRLEN
3749#ifdef YY_USE_PROTOS
3750static int yy_flex_strlen( yyconst char *s )
3751#else
3752static int yy_flex_strlen( s )
3753yyconst char *s;
3754#endif
3755 {
3756 register int n;
3757 for ( n = 0; s[n]; ++n )
3758 ;
3759
3760 return n;
3761 }
3762#endif
3763
3764
3765#ifdef YY_USE_PROTOS
3766static void *yy_flex_alloc( yy_size_t size )
3767#else
3768static void *yy_flex_alloc( size )
3769yy_size_t size;
3770#endif
3771 {
3772 return (void *) malloc( size );
3773 }
3774
3775#ifdef YY_USE_PROTOS
3776static void *yy_flex_realloc( void *ptr, yy_size_t size )
3777#else
3778static void *yy_flex_realloc( ptr, size )
3779void *ptr;
3780yy_size_t size;
3781#endif
3782 {
3783 /* The cast to (char *) in the following accommodates both
3784 * implementations that use char* generic pointers, and those
3785 * that use void* generic pointers. It works with the latter
3786 * because both ANSI C and C++ allow castless assignment from
3787 * any pointer type to void*, and deal with argument conversions
3788 * as though doing an assignment.
3789 */
3790 return (void *) realloc( (char *) ptr, size );
3791 }
3792
3793#ifdef YY_USE_PROTOS
3794static void yy_flex_free( void *ptr )
3795#else
3796static void yy_flex_free( ptr )
3797void *ptr;
3798#endif
3799 {
3800 free( ptr );
3801 }
3802
3803#if YY_MAIN
3804int main()
3805 {
3806 yylex();
3807 return 0;
3808 }
3809#endif
Lev Walkinc603f102005-01-23 09:51:44 +00003810#line 460 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00003811
3812
3813/*
3814 * Very dirty but wonderful hack allowing to rule states from within .y file.
3815 */
Lev Walkinf59d0752004-08-18 04:59:12 +00003816void asn1p_lexer_hack_push_opaque_state() { yy_push_state(opaque); }
Lev Walkinf15320b2004-06-03 03:38:44 +00003817
3818/*
3819 * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
3820 */
Lev Walkinf59d0752004-08-18 04:59:12 +00003821void asn1p_lexer_hack_enable_with_syntax() { yy_push_state(with_syntax); }
3822
3823/* Yet another */
3824void asn1p_lexer_hack_push_encoding_control() {
3825 yy_push_state(encoding_control);
Lev Walkinf15320b2004-06-03 03:38:44 +00003826}
3827
3828/*
3829 * Check that a token does not end with dash and does not contain
3830 * several dashes in succession.
3831 * "Name", "Type-Id", "T-y-p-e-i-d" are OK
3832 * "end-", "vustom--value" are INVALID
3833 */
3834static int
3835_check_dashes(char *ptr) {
3836 int prev_dash = 0;
3837
3838 assert(*ptr != '-');
3839
3840 for(;; ptr++) {
3841 switch(*ptr) {
3842 case '-':
3843 if(prev_dash++) /* No double dashes */
3844 return -1;
3845 continue;
3846 case '\0':
3847 if(prev_dash) /* No dashes at the end */
3848 return -1;
3849 break;
3850 default:
3851 prev_dash = 0;
3852 continue;
3853 }
3854 break;
3855 }
3856
3857 return 0;
3858}
3859
Lev Walkind21c5052004-09-29 13:18:09 +00003860static asn1c_integer_t
Lev Walkinf15320b2004-06-03 03:38:44 +00003861asn1p_atoi(char *ptr) {
Lev Walkind21c5052004-09-29 13:18:09 +00003862 asn1c_integer_t value;
Lev Walkinf15320b2004-06-03 03:38:44 +00003863 errno = 0; /* Clear the error code */
3864
3865 if(sizeof(value) <= sizeof(int)) {
3866 value = strtol(ptr, 0, 10);
3867 } else {
3868#ifdef HAVE_STRTOIMAX
3869 value = strtoimax(ptr, 0, 10);
3870#elif HAVE_STRTOLL
3871 value = strtoll(ptr, 0, 10);
3872#else
3873 value = strtol(ptr, 0, 10);
3874#endif
3875 }
3876
3877 if(errno == ERANGE) {
3878 fprintf(stderr,
3879 "Value \"%s\" at line %d is too large "
3880 "for this compiler! Please contact the vendor.",
3881 ptr, yylineno);
3882 errno = ERANGE; /* Restore potentially clobbered errno */
3883 }
3884
3885 return value;
3886}
3887