#line 2 "asn1p_l.c"

#line 4 "asn1p_l.c"

#define  YY_INT_ALIGNED short int

/* A lexical scanner generated by flex */

/* %not-for-header */

/* %if-c-only */
/* %if-not-reentrant */
#define yy_create_buffer asn1p__create_buffer
#define yy_delete_buffer asn1p__delete_buffer
#define yy_flex_debug asn1p__flex_debug
#define yy_init_buffer asn1p__init_buffer
#define yy_flush_buffer asn1p__flush_buffer
#define yy_load_buffer_state asn1p__load_buffer_state
#define yy_switch_to_buffer asn1p__switch_to_buffer
#define yyin asn1p_in
#define yyleng asn1p_leng
#define yylex asn1p_lex
#define yylineno asn1p_lineno
#define yyout asn1p_out
#define yyrestart asn1p_restart
#define yytext asn1p_text
#define yywrap asn1p_wrap
#define yyalloc asn1p_alloc
#define yyrealloc asn1p_realloc
#define yyfree asn1p_free

/* %endif */
/* %endif */
/* %ok-for-header */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 35
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif

/* %if-c++-only */
/* %endif */

/* %if-c-only */
    
/* %endif */

/* %if-c-only */

/* %endif */

/* First, we deal with  platform-specific or compiler-specific issues. */

/* begin standard C headers. */
/* %if-c-only */
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
/* %endif */

/* %if-tables-serialization */
/* %endif */
/* end standard C headers. */

/* %if-c-or-c++ */
/* flex integer type definitions */

#ifndef FLEXINT_H
#define FLEXINT_H

/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */

#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L

/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
 * if you want the limit (max/min) macros for int types. 
 */
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
#endif

#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t;
#else
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
typedef unsigned char flex_uint8_t; 
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */

/* Limits of integral types. */
#ifndef INT8_MIN
#define INT8_MIN               (-128)
#endif
#ifndef INT16_MIN
#define INT16_MIN              (-32767-1)
#endif
#ifndef INT32_MIN
#define INT32_MIN              (-2147483647-1)
#endif
#ifndef INT8_MAX
#define INT8_MAX               (127)
#endif
#ifndef INT16_MAX
#define INT16_MAX              (32767)
#endif
#ifndef INT32_MAX
#define INT32_MAX              (2147483647)
#endif
#ifndef UINT8_MAX
#define UINT8_MAX              (255U)
#endif
#ifndef UINT16_MAX
#define UINT16_MAX             (65535U)
#endif
#ifndef UINT32_MAX
#define UINT32_MAX             (4294967295U)
#endif

#endif /* ! FLEXINT_H */

/* %endif */

/* %if-c++-only */
/* %endif */

#ifdef __cplusplus

/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST

#else	/* ! __cplusplus */

/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)

#define YY_USE_CONST

#endif	/* defined (__STDC__) */
#endif	/* ! __cplusplus */

#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif

/* %not-for-header */

/* Returned upon end-of-file. */
#define YY_NULL 0
/* %ok-for-header */

/* %not-for-header */

/* Promotes a possibly negative, possibly signed char to an unsigned
 * integer for use as an array index.  If the signed char is negative,
 * we want to instead treat it as an 8-bit unsigned char, hence the
 * double cast.
 */
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* %ok-for-header */

/* %if-reentrant */
/* %endif */

/* %if-not-reentrant */

/* %endif */

/* Enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN.
 */
#define BEGIN (yy_start) = 1 + 2 *

/* Translate the current start state into a value that can be later handed
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 * compatibility.
 */
#define YY_START (((yy_start) - 1) / 2)
#define YYSTATE YY_START

/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE asn1p_restart(asn1p_in  )

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE 16384
#endif

/* The state buf must be large enough to hold one state per character in the main buffer.
 */
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))

#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif

/* %if-not-reentrant */
extern int asn1p_leng;
/* %endif */

/* %if-c-only */
/* %if-not-reentrant */
extern FILE *asn1p_in, *asn1p_out;
/* %endif */
/* %endif */

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
     *       access to the local variable yy_act. Since yyless() is a macro, it would break
     *       existing scanners that call yyless() from OUTSIDE asn1p_lex. 
     *       One obvious solution it to make yy_act a global. I tried that, and saw
     *       a 5% performance hit in a non-asn1p_lineno scanner, because yy_act is
     *       normally declared as a register variable-- so it is not worth it.
     */
    #define  YY_LESS_LINENO(n) \
            do { \
                int yyl;\
                for ( yyl = n; yyl < asn1p_leng; ++yyl )\
                    if ( asn1p_text[yyl] == '\n' )\
                        --asn1p_lineno;\
            }while(0)
    
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up asn1p_text. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
		*yy_cp = (yy_hold_char); \
		YY_RESTORE_YY_MORE_OFFSET \
		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up asn1p_text again */ \
		} \
	while ( 0 )

#define unput(c) yyunput( c, (yytext_ptr)  )

#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif

#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
	{
/* %if-c-only */
	FILE *yy_input_file;
/* %endif */

/* %if-c++-only */
/* %endif */

	char *yy_ch_buf;		/* input buffer */
	char *yy_buf_pos;		/* current position in input buffer */

	/* Size of input buffer in bytes, not including room for EOB
	 * characters.
	 */
	yy_size_t yy_buf_size;

	/* Number of characters read into yy_ch_buf, not including EOB
	 * characters.
	 */
	int yy_n_chars;

	/* Whether we "own" the buffer - i.e., we know we created it,
	 * and can realloc() it to grow it, and should free() it to
	 * delete it.
	 */
	int yy_is_our_buffer;

	/* Whether this is an "interactive" input source; if so, and
	 * if we're using stdio for input, then we want to use getc()
	 * instead of fread(), to make sure we stop fetching input after
	 * each newline.
	 */
	int yy_is_interactive;

	/* Whether we're considered to be at the beginning of a line.
	 * If so, '^' rules will be active on the next match, otherwise
	 * not.
	 */
	int yy_at_bol;

    int yy_bs_lineno; /**< The line count. */
    int yy_bs_column; /**< The column count. */
    
	/* Whether to try to fill the input buffer when we reach the
	 * end of it.
	 */
	int yy_fill_buffer;

	int yy_buffer_status;

#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
	/* When an EOF's been seen but there's still some text to process
	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
	 * shouldn't try reading from the input source any more.  We might
	 * still have a bunch of tokens to match, though, because of
	 * possible backing-up.
	 *
	 * When we actually see the EOF, we change the status to "new"
	 * (via asn1p_restart()), so that the user can continue scanning by
	 * just pointing asn1p_in at a new input file.
	 */
#define YY_BUFFER_EOF_PENDING 2

	};
#endif /* !YY_STRUCT_YY_BUFFER_STATE */

/* %if-c-only Standard (non-C++) definition */
/* %not-for-header */

/* %if-not-reentrant */

/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* %endif */
/* %ok-for-header */

/* %endif */

/* We provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state".
 *
 * Returns the top of the stack, or NULL.
 */
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                          : NULL)

/* Same as previous macro, but useful when we know that the buffer stack is not
 * NULL or when we need an lvalue. For internal use only.
 */
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]

/* %if-c-only Standard (non-C++) definition */

/* %if-not-reentrant */
/* %not-for-header */

/* yy_hold_char holds the character lost when asn1p_text is formed. */
static char yy_hold_char;
static int yy_n_chars;		/* number of characters read into yy_ch_buf */
int asn1p_leng;

/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 0;		/* whether we need to initialize */
static int yy_start = 0;	/* start state number */

/* Flag which is used to allow asn1p_wrap()'s to do buffer switches
 * instead of setting up a fresh asn1p_in.  A bit of a hack ...
 */
static int yy_did_buffer_switch_on_eof;
/* %ok-for-header */

/* %endif */

void asn1p_restart (FILE *input_file  );
void asn1p__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE asn1p__create_buffer (FILE *file,int size  );
void asn1p__delete_buffer (YY_BUFFER_STATE b  );
void asn1p__flush_buffer (YY_BUFFER_STATE b  );
void asn1p_push_buffer_state (YY_BUFFER_STATE new_buffer  );
void asn1p_pop_buffer_state (void );

static void asn1p_ensure_buffer_stack (void );
static void asn1p__load_buffer_state (void );
static void asn1p__init_buffer (YY_BUFFER_STATE b,FILE *file  );

#define YY_FLUSH_BUFFER asn1p__flush_buffer(YY_CURRENT_BUFFER )

YY_BUFFER_STATE asn1p__scan_buffer (char *base,yy_size_t size  );
YY_BUFFER_STATE asn1p__scan_string (yyconst char *yy_str  );
YY_BUFFER_STATE asn1p__scan_bytes (yyconst char *bytes,int len  );

/* %endif */

void *asn1p_alloc (yy_size_t  );
void *asn1p_realloc (void *,yy_size_t  );
void asn1p_free (void *  );

#define yy_new_buffer asn1p__create_buffer

#define yy_set_interactive(is_interactive) \
	{ \
	if ( ! YY_CURRENT_BUFFER ){ \
        asn1p_ensure_buffer_stack (); \
		YY_CURRENT_BUFFER_LVALUE =    \
            asn1p__create_buffer(asn1p_in,YY_BUF_SIZE ); \
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
	}

#define yy_set_bol(at_bol) \
	{ \
	if ( ! YY_CURRENT_BUFFER ){\
        asn1p_ensure_buffer_stack (); \
		YY_CURRENT_BUFFER_LVALUE =    \
            asn1p__create_buffer(asn1p_in,YY_BUF_SIZE ); \
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
	}

#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)

/* %% [1.0] asn1p_text/asn1p_in/asn1p_out/yy_state_type/asn1p_lineno etc. def's & init go here */
/* Begin user sect3 */

#define asn1p_wrap(n) 1
#define YY_SKIP_YYWRAP

#define FLEX_DEBUG

typedef unsigned char YY_CHAR;

FILE *asn1p_in = (FILE *) 0, *asn1p_out = (FILE *) 0;

typedef int yy_state_type;

extern int asn1p_lineno;

int asn1p_lineno = 1;

extern char *asn1p_text;
#define yytext_ptr asn1p_text

/* %if-c-only Standard (non-C++) definition */

static yy_state_type yy_get_previous_state (void );
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
static int yy_get_next_buffer (void );
static void yy_fatal_error (yyconst char msg[]  );

/* %endif */

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up asn1p_text.
 */
#define YY_DO_BEFORE_ACTION \
	(yytext_ptr) = yy_bp; \
/* %% [2.0] code to fiddle asn1p_text and asn1p_leng for yymore() goes here \ */\
	asn1p_leng = (size_t) (yy_cp - yy_bp); \
	(yy_hold_char) = *yy_cp; \
	*yy_cp = '\0'; \
/* %% [3.0] code to copy yytext_ptr to asn1p_text[] goes here, if %array \ */\
	(yy_c_buf_p) = yy_cp;

/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
#define YY_NUM_RULES 138
#define YY_END_OF_BUFFER 139
/* This struct is not used in this scanner,
   but its presence is necessary. */
struct yy_trans_info
	{
	flex_int32_t yy_verify;
	flex_int32_t yy_nxt;
	};
static yyconst flex_int16_t yy_acclist[1264] =
    {   0,
      139,  137,  138,  132,  137,  138,  132,  138,  135,  137,
      138,   19,  137,  138,  135,  137,  138,  137,  138,  135,
      137,  138,  137,  138,  137,  138,  135,  137,  138,  137,
      138,   33,  137,  138,   32,  137,  138,  135,  137,  138,
      137,  138,  120,  121,  137,  138,  120,  121,  137,  138,
      120,  121,  137,  138,  120,  121,  137,  138,  120,  121,
      137,  138,  120,  121,  137,  138,  120,  121,  137,  138,
      120,  121,  137,  138,  120,  121,  137,  138,  120,  121,
      137,  138,  120,  121,  137,  138,  120,  121,  137,  138,
      120,  121,  137,  138,  120,  121,  137,  138,  120,  121,

      137,  138,  120,  121,  137,  138,  120,  121,  137,  138,
      120,  121,  137,  138,  120,  121,  137,  138,  119,  137,
      138,  135,  137,  138,    9,  137,  138,    6,  138,    6,
      137,  138,    8,  137,  138,    8,  137,  138,   11,   13,
      137,  138,   11,  138,   13,  137,  138,   13,  137,  138,
       13,  137,  138,   21,  137,  138,   21,  138,   22,  137,
      138,   16,  137,  138,   16,  138,   18,  137,  138,   18,
      137,  138,   14,  137,  138,   15,  137,  138,   25,   27,
      137,  138,   27,  137,  138,   28,  138,   25,   26,   27,
      137,  138,   25,   26,   27,  137,  138,  130,  137,  138,

      130,  138,  137,  138,  126,  137,  138,  137,  138,  137,
      138,  125,  137,  138,  128,  137,  138,  129,  137,  138,
      127,  137,  138,  131,  137,  138,  132,   19,   19,  117,
      118,    5,   31,  124,   10,   34,   32,   34,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      121,  120,  121,  120,  121,  120,  121,  120,  121,   44,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      121,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  121,  120,

      121,  120,  121,   89,  120,  121,  120,  121,  121,  120,
      121,  120,  121,  120,  121,  120,  121,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  121,  120,  121,  120,  121,  121,
      121,  120,  121,  119,    9,    7,    7,   12,   21,   20,
       16,   25,   25,   26,   25,   26,  130,    5,  125,  136,
      117,  118,   31,   34,  123,   34,  122,  120,  121,  121,
      120,  121,   36,  120,  121,   37,  120,  121,  120,  121,
      120,  121,  120,  121,   41,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  120,  121,  120,  121,  120,

      121,  120,  121,  120,  121,  120,  121,   58,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  121,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,   81,  120,
      121,   82,  120,  121,  120,  121,  121,  120,  121,  120,
      121,  120,  121,  121,  120,  121,   92,  120,  121,  120,
      121,  120,  121,  120,  121,  121,  120,  121,  120,  121,
      120,  121,  100,  120,  121,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  120,  121,  121,  120,  121,
      120,  121,  120,  121,  121,  121,  121,  120,  121,  119,

        3,   17,   25,   26,   24,   25,   26,  125,  117,  118,
       30,   29,    2,    1,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,   66,  120,
      121,  121,  121,  120,  121,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  120,  121,  120,  121,  120,
      121,   84,  120,  121,  121,  120,  121,  120,  121,  120,
      121,  121,  120,  121,  120,  121,  120,  121,  120,  121,

      121,   97,  120,  121,  120,  121,  120,  121,  101,  120,
      121,  120,  121,  120,  121,  120,  121,  105,  120,  121,
      107,  120,  121,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  121,  121,  121,  116,  120,  121,
        3,   25,   26,  120,  121,  120,  121,  120,  121,   40,
      120,  121,  121,  120,  121,  120,  121,  120,  121,   47,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  120,  121,  120,  121,   65,  120,
      121,  121,  121,  121,  120,  121,  120,  121,  120,  121,

      120,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,  120,  121,  121,  120,  121,   88,  120,  121,
      120,  121,  121,  120,  121,  120,  121,  120,  121,  121,
      120,  121,  120,  121,  120,  121,  120,  121,  121,  121,
      108,  120,  121,  120,  121,  120,  121,  121,  120,  121,
      121,  121,  121,  133,   25,   26,   35,  120,  121,  120,
      121,  120,  121,  121,  120,  121,  120,  121,   46,  120,
      121,  120,  121,  120,  121,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  120,  121,  120,  121,  120,
      121,   60,  120,  121,  120,  121,  120,  121,  120,  121,

      120,  121,  121,  121,  121,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  121,   86,  120,  121,  120,
      121,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      121,  120,  121,  120,  121,  102,  120,  121,  103,  120,
      121,  121,  121,  109,  120,  121,  120,  121,  121,  121,
      121,  121,  121,   25,   26,  120,  121,  120,  121,  121,
       43,  120,  121,  120,  121,  120,  121,  120,  121,  120,
      121,   52,  120,  121,   53,  120,  121,  120,  121,  120,
      121,   56,  120,  121,  120,  121,  120,  121,  120,  121,

       62,  120,  121,  120,  121,  120,  121,  121,  121,  121,
      120,  121,  120,  121,   73,  120,  121,   74,  120,  121,
      120,  121,  120,  121,  120,  121,   78,  120,  121,  120,
      121,  120,  121,  120,  121,  121,  120,  121,  121,   91,
      120,  121,  120,  121,   94,  120,  121,   96,  120,  121,
      121,  120,  121,  120,  121,  121,  121,  120,  121,  112,
      121,  121,  121,  121,  121,   25,   26,  120,  121,  120,
      121,  121,  120,  121,  120,  121,  120,  121,  120,  121,
      120,  121,   55,  120,  121,  120,  121,  120,  121,   61,
      120,  121,  120,  121,   64,  120,  121,  121,  121,  121,

      121,  120,  121,   72,  120,  121,   75,  120,  121,   76,
      120,  121,  120,  121,  120,  121,  121,  120,  121,  121,
       90,  120,  121,  121,  120,  121,  121,  120,  121,   99,
      120,  121,  121,  121,  120,  121,  121,  121,  121,  121,
       25,   26,  120,  121,   39,  120,  121,   42,  121,   45,
      120,  121,   48,  120,  121,  120,  121,  120,  121,  120,
      121,  120,  121,  120,  121,  121,  121,  121,   70,  121,
      120,  121,  120,  121,  120,  121,  121,  120,  121,  121,
      121,  120,  121,  121,  104,  121,  121,  110,  120,  121,
      121,  121,  121,  121,  134,   25,  120,  121,   49,  120,

      121,  120,  121,   51,  120,  121,  120,  121,  120,  121,
       59,  120,  121,  120,  121,  121,  121,  121,   71,  120,
      121,  120,  121,  120,  121,  121,  120,  121,  121,  121,
      120,  121,  121,  120,  121,  121,  113,  121,  121,  121,
      121,   25,   38,  120,  121,   50,  120,  121,   54,  120,
      121,  120,  121,  120,  121,  121,  121,  121,  120,  121,
      120,  121,  121,  120,  121,  121,  121,  120,  121,  121,
      120,  121,  121,  121,  121,  121,   25,  120,  121,  120,
      121,  121,  121,  121,   77,  120,  121,   79,  120,  121,
       80,  121,  120,  121,  121,  121,  120,  121,  121,   98,

      120,  121,  121,  121,  121,  121,   25,  120,  121,   63,
      120,  121,   68,  121,  121,   69,  121,  120,  121,   85,
      121,  121,   93,  120,  121,  121,  106,  121,  121,  121,
      115,  121,   25,  120,  121,  121,   83,  120,  121,  121,
      121,  121,  114,  121,   25,  120,  121,   67,  121,  121,
       95,  121,  111,  121,   25,   57,  120,  121,   87,  121,
       23,   25,    4
    } ;

static yyconst flex_int16_t yy_accept[743] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    2,    4,    7,
        9,   12,   15,   18,   20,   23,   25,   27,   30,   32,
       35,   38,   41,   43,   47,   51,   55,   59,   63,   67,
       71,   75,   79,   83,   87,   91,   95,   99,  103,  107,
      111,  115,  119,  122,  125,  128,  130,  133,  136,  139,
      143,  145,  148,  151,  154,  157,  159,  162,  165,  167,
      170,  173,  176,  179,  183,  186,  188,  193,  198,  201,
      203,  205,  208,  210,  212,  215,  218,  221,  224,  227,
      227,  228,  229,  230,  230,  231,  231,  232,  232,  232,

      232,  233,  234,  235,  236,  236,  237,  237,  239,  239,
      239,  241,  243,  245,  247,  249,  251,  252,  254,  256,
      258,  260,  263,  265,  267,  269,  271,  273,  275,  277,
      279,  281,  282,  283,  285,  287,  289,  291,  293,  295,
      297,  299,  300,  302,  304,  307,  309,  310,  312,  314,
      316,  318,  319,  321,  323,  325,  327,  329,  331,  333,
      335,  336,  338,  340,  341,  342,  344,  344,  345,  345,
      345,  345,  346,  347,  348,  349,  350,  351,  352,  352,
      353,  355,  357,  358,  359,  359,  360,  361,  361,  361,
      362,  362,  363,  363,  363,  363,  363,  365,  366,  367,

      367,  368,  370,  371,  373,  376,  379,  381,  383,  383,
      385,  388,  390,  392,  394,  396,  398,  400,  402,  404,
      406,  408,  411,  413,  415,  417,  419,  421,  423,  424,
      425,  427,  429,  431,  433,  435,  437,  439,  442,  445,
      447,  448,  450,  452,  454,  455,  457,  460,  462,  464,
      466,  467,  469,  471,  473,  476,  478,  480,  482,  484,
      486,  488,  489,  491,  493,  495,  496,  497,  498,  500,
      501,  501,  501,  502,  503,  505,  508,  509,  509,  510,
      511,  512,  513,  514,  515,  515,  515,  515,  517,  519,
      521,  523,  525,  527,  529,  531,  533,  535,  537,  539,

      541,  543,  545,  547,  549,  551,  553,  555,  557,  559,
      562,  563,  564,  566,  568,  570,  572,  574,  576,  578,
      580,  582,  585,  586,  588,  590,  592,  593,  595,  597,
      599,  601,  602,  605,  607,  609,  612,  614,  616,  618,
      621,  624,  625,  627,  629,  631,  633,  635,  636,  637,
      638,  641,  641,  641,  641,  641,  642,  644,  644,  646,
      648,  650,  653,  654,  656,  658,  660,  663,  665,  667,
      669,  671,  673,  675,  677,  679,  681,  683,  685,  687,
      689,  692,  693,  694,  695,  697,  699,  701,  703,  705,
      707,  709,  711,  713,  715,  716,  718,  721,  723,  724,

      726,  726,  728,  730,  731,  733,  735,  737,  739,  740,
      741,  744,  746,  748,  749,  751,  752,  753,  754,  754,
      754,  755,  757,  757,  760,  762,  764,  765,  767,  769,
      772,  774,  776,  778,  780,  782,  784,  786,  788,  790,
      792,  795,  797,  799,  801,  803,  804,  805,  806,  808,
      810,  812,  814,  816,  818,  820,  822,  824,  826,  826,
      827,  830,  832,  833,  835,  837,  839,  841,  842,  844,
      846,  849,  852,  853,  854,  857,  859,  860,  861,  862,
      863,  864,  864,  864,  866,  866,  868,  870,  871,  874,
      876,  878,  880,  882,  885,  888,  890,  892,  895,  897,

      899,  901,  904,  906,  908,  909,  910,  911,  913,  915,
      918,  921,  923,  925,  927,  930,  932,  934,  936,  937,
      939,  940,  943,  945,  948,  951,  952,  954,  956,  957,
      958,  960,  962,  963,  964,  965,  966,  966,  968,  968,
      970,  972,  973,  975,  977,  979,  981,  983,  986,  988,
      990,  993,  995,  998,  999, 1000, 1001, 1002, 1004, 1007,
     1010, 1013, 1015, 1017, 1018, 1020, 1021, 1024, 1025, 1027,
     1028, 1030, 1033, 1034, 1035, 1037, 1038, 1039, 1040, 1041,
     1041, 1041, 1043, 1043, 1045, 1048, 1050, 1053, 1056, 1058,
     1060, 1062, 1062, 1064, 1066, 1067, 1068, 1069, 1071, 1073,

     1075, 1077, 1078, 1080, 1081, 1082, 1084, 1085, 1085, 1087,
     1088, 1091, 1092, 1093, 1094, 1095, 1095, 1096, 1097, 1097,
     1099, 1102, 1104, 1107, 1109, 1111, 1114, 1116, 1117, 1118,
     1119, 1122, 1124, 1126, 1127, 1129, 1130, 1131, 1133, 1134,
     1136, 1137, 1139, 1140, 1141, 1142, 1143, 1143, 1146, 1149,
     1152, 1154, 1156, 1157, 1158, 1159, 1161, 1163, 1164, 1166,
     1167, 1168, 1170, 1171, 1173, 1174, 1175, 1176, 1177, 1178,
     1178, 1180, 1182, 1183, 1184, 1185, 1188, 1191, 1193, 1195,
     1196, 1197, 1199, 1200, 1203, 1204, 1205, 1206, 1207, 1208,
     1208, 1210, 1213, 1215, 1216, 1218, 1220, 1222, 1223, 1226,

     1227, 1229, 1230, 1231, 1233, 1234, 1234, 1236, 1237, 1240,
     1241, 1242, 1243, 1245, 1246, 1246, 1248, 1250, 1251, 1253,
     1255, 1256, 1256, 1259, 1261, 1263, 1263, 1263, 1263, 1263,
     1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263,
     1264, 1264
    } ;

static yyconst flex_int32_t yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        4,    4,    5,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    6,    7,    1,    1,    1,    8,    9,   10,
       10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
       19,   20,   21,   22,   19,   23,   24,   25,   26,   27,
       28,   29,    1,   10,   30,   31,   32,   33,   34,   35,
       36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
       46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
       56,    1,   57,   58,    1,    1,   59,   60,   61,   62,

       63,   64,   65,   66,   67,   68,   64,   69,   70,   71,
       72,   73,   64,   74,   75,   76,   77,   78,   64,   79,
       64,   80,   81,   82,   83,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

static yyconst flex_int32_t yy_meta[84] =
    {   0,
        1,    2,    3,    4,    4,    1,    5,    1,    6,    1,
        1,    1,    1,    7,    1,    1,    8,    8,    8,    8,
        8,    8,    8,    8,    9,    1,    1,    9,    1,   10,
       10,   10,   10,   10,   10,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,    1,    1,    1,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       12,    1,   13
    } ;

static yyconst flex_int16_t yy_base[768] =
    {   0,
        0,    0,   81,   84,   87,   99,   94,   96,   93,  108,
       91,  103,  186,  269,  352,    0, 1657, 1646,  130,  138,
     1645, 1643,  427,  146, 4507,  158,  207, 1633,  109,  230,
      493, 1621, 4507,  543,  268,  115,  274,  289,  488,  593,
      191,  599,  509,  215,  491,  621,  406,  638,  655,  658,
      678,  689, 1631,  733,    0, 4507, 4507, 1630, 1629, 4507,
     4507, 1621, 1622, 4507,    0,    0, 1622,    0,    0, 1602,
     4507, 4507, 4507,    0, 4507, 4507,  757,  839,  122,  166,
      127, 4507, 1612, 1609, 1604, 4507, 4507, 4507, 4507, 1605,
      201,    0, 1603, 1603, 1589,   96, 1585,  656, 1588,  772,

      103,  807, 1580, 4507,  839,  857,  886,  907, 1565,  912,
      681,  757,  892,  903,  909,  962, 1578,  963,  978,  979,
      994, 1000, 1016, 1022, 1033, 1046, 1049, 1069, 1066, 1077,
     1090,   95,   79, 1105, 1108, 1116, 1131, 1142, 1153, 1159,
     1170,  147, 1183, 1186, 1199, 1207,   94, 1210, 1223, 1234,
     1247,  143, 1263, 1269, 1280, 1286, 1297, 1308, 1314, 1325,
      169, 1331, 1347,  194,  225, 1346,    0, 1572,  757,  943,
     1381,    0, 4507, 1570, 4507,    0, 4507,    0, 1554,    0,
     1536,  258,  333, 4507,    0, 1561, 4507, 1554,    0, 1552,
        0, 1550,  226, 1526,  204,  143, 1391, 4507,  866,  894,

     4507, 1441, 1548, 1385, 1386, 1401, 1402, 1417, 1547, 1425,
     1428, 1441, 1449, 1491, 1492, 1508, 1509, 1524, 1540, 1546,
     1557, 1563, 1574, 1580, 1591, 1597, 1608, 1619,  223,  241,
     1632, 1640, 1643, 1658, 1661, 1664, 1690, 1682, 1693, 1706,
      226, 1714, 1727, 1735,  495, 1738, 1751, 1759, 1767, 1775,
      245, 1788, 1791, 1799, 1812, 1820, 1828, 1836, 1849, 1857,
     1870,  506, 1878, 1894, 1895,  470,  507,  221, 1910, 1546,
     1954, 1962, 1543, 4507,  285, 1505, 1533, 1489, 1531, 1530,
     4507, 4507, 4507, 4507,  436,  319, 1495, 1956, 1957, 1972,
     1978, 1989, 1995, 2011, 2012, 2027, 2035, 2043, 2059, 2056,

     2067, 2080, 2083, 2098, 2104, 2115, 2121, 2132, 2147, 2153,
      469,  535, 2164, 2170, 2185, 2186, 2201, 2207, 2222, 2225,
     2233, 2246,  554, 2254, 2257, 2270,  205, 2278, 2291, 2299,
     2307,  523, 2315, 2323, 2336, 2344, 2347, 2365, 2362, 2368,
     2383,  557, 2386, 2389, 2406, 2412, 2423,  612,  528,  631,
     2439, 2473, 2496, 2519, 2531, 1517,  190, 1486, 2515, 2530,
     2546, 2543,  623, 2564, 2567, 2570, 2585, 2588, 2596, 2609,
     2617, 2630, 2641, 2647, 2658, 2669, 2684, 2690, 2701, 2707,
     2722,  248,  558,  632, 2723, 2743, 2740, 2761, 2760, 2776,
     2782, 2793, 2806, 2817,  613, 2814, 2830, 2838,  617, 2846,

      309, 2854, 2867,  625, 2880, 2883, 2891, 2904,  636,  641,
     2915, 2921, 2932,  643, 2943,  668,  639,  621,  441, 2987,
     4507,  302, 1508, 2971, 2987, 2984,  649, 2995, 3008, 3011,
     3028, 3034, 3045, 3051, 3066, 3072, 3089, 3095, 3106, 3112,
     3123, 3129, 3140, 3146, 3162,  656,  680,  730, 3163, 3178,
     3184, 3195, 3201, 3216, 3222, 3233, 3248, 3254,  785,  878,
     3265, 3281,  511, 3278, 1482, 3289, 3302,  885, 3310, 3325,
     3328, 3331,  734,  664, 3346, 3349,  806,  735,  733,  830,
      880, 3398, 3410, 1481, 1461, 3364, 3404,  732, 3405, 3422,
     3421, 3437, 3438, 3453, 3454, 3469, 3475, 3486, 3492, 3503,

     3514, 3525, 3531, 3542,  982,  790,  887, 3548, 3559, 3570,
     3576, 3587, 3593, 3608, 3609, 3624, 3630, 1445,  823, 3641,
      905, 3647, 1448, 3658, 3664,  933, 3679, 3685,  924,  984,
     3701, 1467,  987,  941,  918, 1000, 3735,  101,    0, 3729,
     3730, 1003, 3745, 3753, 3756, 3769, 3777, 3785, 3793, 3806,
     3814, 3822, 3830, 1012,  634, 1019, 1004, 3843, 3851, 3854,
     3867, 3875, 3878, 1056, 1444, 1028, 3891, 1042, 1427, 1022,
     3912, 3899, 1041, 1037, 3915, 1002, 1068, 1057, 1048, 3964,
     1381,  290, 1410, 3930, 3948, 1436, 3959, 3965, 3980, 3981,
     3996,  514, 4002, 4013, 1070, 1065, 1115, 1435, 4019, 4030,

     4041, 1026, 1403, 1131, 1109, 1397, 1127,  798, 1425, 1138,
     4047, 1089, 1129, 1142, 1151, 1493, 4507, 1392, 1358, 4058,
     4064, 4079, 4080, 4095, 1374, 4096, 4111, 1111, 1146, 1124,
     4117, 4128, 4139, 1150, 1322, 1179, 1193, 1299, 1185, 1296,
     1196, 1318, 1220, 1202, 1205, 1254, 1218, 4145, 4156, 4162,
     1227, 4173, 1168, 1118, 1174, 4184, 4190, 1218, 1224, 1209,
     1255, 1148, 1229, 1138, 1272, 1233, 1257, 1273, 1126, 1012,
     1009, 4205, 1244, 1281, 1287, 4206, 4221, 1020,  966, 1302,
     1268,  915, 1306,    0, 1357, 1340, 1275, 1409,  902,  886,
      889, 4222,  822, 1291,  820,  779,  818, 1223,    0, 1349,

      807, 1366, 1420,  805,  771,  742,  767, 1424,    0, 1288,
     1462, 1463,  796,  696,  670,  676,  697, 1379,  541,  539,
      504,  459,    0,  441,    0,  378,  422,  373,  397,  366,
      281,  275,  268,  280,  267,  814, 1166,  115,  100, 4507,
     4507, 4272, 4285, 4298, 4311, 4324, 4337, 4349, 4353, 4364,
     4377, 4390, 4401, 4412, 4417, 4422, 4427, 4431, 4436, 4440,
     4444, 4448, 4452, 4463, 4470, 4481, 4493
    } ;

static yyconst flex_int16_t yy_def[768] =
    {   0,
      741,    1,  742,  742,  742,  742,  743,  743,  744,  744,
      745,  745,  746,  746,  741,   15,  741,  741,  741,  741,
      741,  747,  741,  748,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  749,  741,  750,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  751,  751,  741,  752,  752,  741,
      741,  741,  741,  753,  741,  741,  754,  754,  741,  741,
       23,  741,  741,  741,  755,  741,  741,  741,  741,  741,
      741,  747,  747,  741,  756,  741,  757,  748,  748,  741,

      741,  741,  741,  741,  741,  741,  741,  741,  741,  758,
       34,   34,   34,   34,   34,   34,  759,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,  759,  759,   34,   34,   34,   34,   34,   34,   34,
       34,  759,   34,   34,   34,   34,  759,   34,   34,   34,
       34,  759,   34,   34,   34,   34,   34,   34,   34,   34,
      759,   34,   34,  759,  759,   34,  760,  749,  741,  741,
      741,  750,  741,  741,  741,  751,  741,  752,  741,  753,
       78,   78,  741,  741,  761,  755,  741,  741,  762,  756,
      763,  757,  741,  741,  764,  741,  741,  741,  741,  741,

      741,  758,  765,   34,   34,   34,   34,   34,  765,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,  759,  759,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
      759,   34,   34,   34,  759,   34,   34,   34,   34,   34,
      759,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,  759,   34,   34,   34,  759,  759,  759,   34,  760,
      741,  741,  741,  741,   78,   78,  761,  741,  762,  763,
      741,  741,  741,  741,  764,  741,  741,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,

       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
      759,  759,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  759,   34,   34,   34,  759,   34,   34,   34,
       34,  759,   34,   34,   34,   34,   34,   34,   34,   34,
       34,  759,   34,   34,   34,   34,   34,  759,  759,  759,
       34,  741,  741,  741,  741,  741,   78,  741,   34,   34,
       34,   34,  759,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,  759,  759,  759,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,  759,   34,   34,   34,  759,   34,

      202,   34,   34,  759,   34,   34,   34,   34,  759,  759,
       34,   34,   34,  759,   34,  759,  759,  759,  741,  741,
      741,   78,  741,   34,   34,   34,  759,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,  759,  759,  759,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,  202,  759,
       34,   34,  759,   34,  202,   34,   34,  759,   34,   34,
       34,   34,  759,  759,   34,   34,  759,  759,  759,  759,
      759,  741,  741,   78,  741,   34,   34,  759,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,

       34,   34,   34,   34,  759,  759,  759,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,  202,  759,   34,
      759,   34,  202,   34,   34,  759,   34,   34,  759,  759,
       34,  759,  759,  759,  759,  759,  741,   78,  766,   34,
       34,  759,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,  759,  759,  759,  759,   34,   34,   34,
       34,   34,   34,  759,  202,  759,   34,  759,  202,  759,
       34,   34,  759,  759,   34,  759,  759,  759,  759,  741,
      767,   78,  741,   34,   34,  759,   34,   34,   34,   34,
       34,  202,   34,   34,  759,  759,  759,  759,   34,   34,

       34,  759,  202,  759,  759,  202,  759,  202,  759,  759,
       34,  759,  759,  759,  759,  741,  741,  753,  741,   34,
       34,   34,   34,   34,  202,   34,   34,  759,  759,  759,
       34,   34,   34,  759,  202,  759,  759,  202,  759,  202,
      759,  759,  759,  759,  759,  753,  741,   34,   34,   34,
      202,   34,  759,  759,  759,   34,   34,  759,  202,  759,
      759,  202,  759,  202,  759,  759,  759,  759,  753,  741,
      202,   34,  759,  759,  759,   34,   34,  759,  202,  759,
      759,  202,  759,  202,  759,  759,  759,  759,  753,  741,
      202,   34,  759,  759,  759,  202,  759,  759,  202,  759,

      759,  759,  759,  759,  753,  741,  202,  759,  202,  759,
      759,  759,  759,  753,  741,  202,  759,  759,  759,  759,
      753,  741,  202,  759,  753,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
        0,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741
    } ;

static yyconst flex_int16_t yy_nxt[4591] =
    {   0,
       18,   19,   20,   19,   19,   21,   22,   23,   24,   25,
       18,   26,   25,   27,   28,   29,   30,   31,   31,   31,
       31,   31,   31,   31,   32,   21,   33,   33,   18,   34,
       35,   36,   37,   38,   39,   40,   41,   42,   41,   41,
       41,   43,   44,   45,   46,   41,   47,   48,   49,   50,
       51,   52,   41,   41,   41,   25,   21,   21,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
       54,   21,   25,   56,   57,   57,   56,   57,   57,   56,
       57,   57,  209,   69,   58,   66,   61,   58,   61,   67,

       59,   56,   57,   57,   62,   69,   62,  209,  209,   63,
       66,   63,   59,  740,   67,   70,  195,   90,   71,  104,
       64,   94,   64,  183,  183,  183,  183,   70,  739,  196,
       71,   91,   91,   91,   91,  741,  582,  230,   90,   91,
       91,   91,   91,  181,  286,  111,   90,   98,   98,   98,
       98,  123,  741,   96,   90,  124,  209,  111,  125,  111,
      209,  245,   98,   98,  111,  229,   90,  183,  183,  183,
      183,   72,  287,   73,  100,  100,  100,  100,  100,  100,
      100,  100,  209,   72,  741,   73,   74,   75,   76,   75,
       75,   74,   74,   74,   74,   74,   74,   74,   74,   74,

       74,   74,   91,   91,   91,   91,  284,  209,  284,  251,
       74,   74,   74,   74,   74,   90,  241,  285,  209,   78,
      101,  111,  422,  100,  102,  102,  102,  102,  102,  102,
      102,  111,  181,  111,  209,  111,  209,  262,  209,  209,
      111,   74,   74,   74,  105,  111,  106,  106,  106,  106,
      106,  106,  106,  106,  209,  111,  281,  111,  209,  111,
      266,  209,  282,  107,  141,  399,   75,   74,   75,   74,
       75,   76,   75,   75,   74,   74,   74,   74,   74,   74,
       74,   74,   74,   74,   74,  311,  267,  350,  323,  275,
      276,  142,  107,   74,   74,   74,   74,   74,  111,  268,

      181,  118,   78,  618,  111,  119,  446,  126,  111,  120,
      111,  121,  111,  312,  111,  332,  111,  111,  111,  111,
      286,  122,  741,  111,   74,   74,   74,  181,  357,  111,
      127,  128,  181,  111,  183,  183,  183,  183,  111,  484,
      736,  129,  735,  734,  181,  733,  465,  732,  287,   75,
       74,   75,   33,   79,   80,   79,   79,   33,   33,   81,
       33,   33,   33,   33,   82,   83,   33,   84,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   85,   85,   85,   85,   85,   85,   85,   85,   85,
       85,   85,   85,   85,   85,   85,   85,   85,   85,   85,

       85,   85,   85,   85,   85,   85,   85,   86,   87,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   88,   33,   89,   90,  111,  731,  284,  153,
      284,  730,  419,  419,  419,  419,  111,  729,  111,  285,
      111,  728,   94,  727,  209,  111,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   95,   95,   95,   95,   95,   95,   95,
       95,   95,  209,  209,   96,   97,   97,   97,   97,   97,
       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,

       97,   97,   97,   97,   97,   97,   97,  105,  209,  108,
      108,  108,  108,  108,  108,  108,  108,  130,  111,  209,
      209,  143,  144,  421,  209,  145,  107,  741,  111,  726,
      111,  111,  111,  111,  131,  146,  209,  111,  139,  111,
      111,  209,  382,  521,  725,  625,  140,  348,  209,  111,
      147,  111,  209,  111,  209,  107,  110,  327,  111,  111,
      111,  111,  111,  111,  111,  111,  111,  209,  342,  349,
      209,  209,  111,  112,  111,  111,  111,  111,  111,  111,
      111,  111,  111,  113,  111,  114,  111,  115,  111,  111,
      111,  111,  116,  111,  111,  111,  111,  111,  404,  417,

      383,  117,  117,  117,  117,  117,  117,  117,  117,  117,
      117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
      117,  117,  117,  111,  447,  209,  209,  395,  134,  111,
      209,  135,  410,  111,  209,  111,  209,  111,  209,  111,
      136,  137,  111,  111,  209,  209,  138,  209,  111,  209,
      148,  111,  209,  149,  209,  132,  209,   98,   98,   98,
       98,  150,  209,  111,  193,  111,  133,  151,  111,  209,
      111,  154,   98,   98,  416,  155,  158,  209,  111,  460,
      111,  209,  111,  468,  159,  111,  156,  111,  111,  481,
      418,  157,  463,  209,  152,  111,  427,  111,  111,  111,

      162,  160,  111,  474,  111,  448,  163,  111,  111,  473,
      209,  111,  477,  596,  480,  488,  723,  161,  111,  111,
      111,  111,  111,  111,  505,  111,  166,  111,  164,  111,
      111,  111,  722,  111,  169,  169,  169,  169,  111,  721,
      506,  479,  530,  209,  165,  209,  209,  209,  209,  170,
      170,  170,  170,  170,  170,  171,  171,  180,  169,  169,
      169,  169,  180,  180,  180,  180,  180,  180,  180,  180,
      180,  180,  180,  170,  170,  170,  170,  170,  170,  171,
      171,  180,  180,  180,  180,  180,  105,  111,  106,  106,
      106,  106,  106,  106,  106,  106,  507,  111,  741,  111,

      529,  111,  542,  209,  204,  107,  111,  534,  533,  209,
      716,  741,  180,  180,  180,  737,  715,  714,  209,  209,
      209,  105,  518,  197,  197,  197,  197,  197,  197,  197,
      197,  209,  709,  209,  107,  209,  209,  556,  180,  180,
      107,  640,  738,  209,  180,  180,  180,  180,  180,  180,
      180,  180,  180,  180,  180,  199,  199,  199,  199,  199,
      199,  199,  199,  180,  180,  180,  180,  180,  532,  107,
      566,  105,  107,  106,  106,  106,  106,  106,  106,  106,
      106,  182,  199,  199,  199,  199,  199,  199,  199,  199,
      107,  209,  535,  209,  180,  180,  180,  200,  209,  200,

      209,  107,  199,  199,  199,  199,  199,  199,  199,  199,
      199,  199,  199,  199,  199,  199,  199,  199,  209,  107,
      180,  105,  111,  108,  108,  108,  108,  108,  108,  108,
      108,  209,  205,  111,  111,  707,  111,  209,  519,  111,
      107,  111,  536,  111,  526,  111,  209,  111,  706,  111,
      705,  111,  111,  207,  209,  271,  206,  557,  111,  171,
      171,  171,  171,  171,  171,  171,  171,  568,  699,  107,
      203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
      203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
      203,  203,  111,  111,  573,  209,  578,  209,  210,  577,

      209,  570,  111,  111,  111,  111,  111,  111,  111,  111,
      208,  111,  111,  209,  696,  209,  209,  209,  111,  111,
      111,  111,  111,  212,  111,  209,  211,  111,  111,  554,
      111,  574,  209,  209,  111,  209,  111,  213,  111,  209,
      111,  209,  111,  111,  111,  214,  111,  579,  555,  111,
      209,  216,  111,  576,  209,  209,  111,  691,  111,  215,
      111,  209,  111,  111,  111,  111,  111,  586,  598,  209,
      209,  111,  612,  111,  217,  218,  111,  111,  209,  220,
      219,  209,  111,  209,  607,  690,  111,  595,  111,  111,
      111,  111,  634,  111,  597,  111,  111,  224,  111,  111,

      221,  222,  209,  604,  614,  609,  111,  111,  111,  111,
      225,  111,  610,  111,  226,  111,  605,  227,  223,  111,
      111,  111,  209,  615,  209,  231,  111,  629,  209,  602,
      111,  209,  111,  228,  111,  111,  613,  209,  111,  111,
      209,  232,  209,  628,  209,  111,  111,  111,  111,  111,
      111,  209,  111,  642,  111,  209,  111,  111,  111,  209,
      233,  111,  234,  209,  209,  111,  674,  737,  689,  637,
      684,  111,  111,  111,  639,  111,  643,  653,  235,  236,
      111,  209,  111,  111,  111,  237,  111,  209,  630,  111,
      655,  111,  209,  111,  738,  111,  682,  111,  209,  111,

      111,  239,  111,  111,  636,  238,  209,  654,  111,  209,
      240,  641,  111,  111,  111,  209,  111,  644,  209,  111,
      658,  242,  209,  111,  645,  111,  111,  111,  111,  111,
      111,  209,  111,  209,  243,  111,  209,  111,  673,  111,
      111,  111,  209,  111,  675,  660,  209,  111,  111,  111,
      111,  111,  111,  111,  111,  244,  111,  209,  246,  111,
      663,  679,  665,  111,  111,  111,  661,  111,  209,  671,
      209,  668,  111,  247,  111,  667,  111,  111,  111,  680,
      249,  209,  678,  248,  250,  209,  209,  111,  209,  111,
      670,  111,  252,  111,  209,  666,  111,  669,  710,  111,

      209,  209,  683,  253,  209,  111,  686,  111,  693,  111,
      111,  111,  111,  111,  254,  209,  111,  255,  111,  209,
      111,  681,  111,  687,  111,  259,  111,  111,  111,  111,
      111,  209,  257,  664,  256,  111,  662,  111,  111,  258,
      698,  111,  685,  688,  111,  703,  111,  694,  111,  260,
      111,  695,  111,  209,  111,  111,  111,  111,  111,  718,
      708,  111,  209,  111,  659,  111,  697,  111,  263,  111,
      209,  111,  700,  111,  261,  111,  111,  111,  264,  209,
      111,  265,  616,  616,  616,  616,  111,  111,  111,  111,
      111,  111,  209,  272,  269,  111,  111,  171,  171,  171,

      171,  171,  171,  171,  171,  105,  702,  197,  197,  197,
      197,  197,  197,  197,  197,  111,  111,  651,  288,  711,
      647,  701,  209,  646,  107,  111,  111,  111,  111,  111,
      111,  111,  111,  209,  111,  111,  712,  209,  209,  638,
      635,  111,  289,  111,  111,  111,  111,  111,  209,  209,
      111,  111,  724,  107,  110,  111,  619,  111,  111,  111,
      290,  111,  291,  617,  606,  111,  111,  111,  111,  111,
      111,  111,  111,  704,  111,  209,  209,  111,  603,  111,
      209,  111,  569,  111,  713,  111,  717,  565,  292,  293,
      111,  111,  539,  111,  616,  616,  616,  616,  111,  203,

      203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
      203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
      203,  111,  111,  538,  523,  485,  719,  720,  423,  295,
      356,  111,  111,  111,  111,  111,  111,  294,  111,  111,
      111,  111,  358,  191,  189,  187,  185,  181,  111,  111,
      111,  111,  111,  297,  111,  296,  356,  111,  111,  167,
      741,  209,  282,  191,  111,  189,  111,  278,  111,  300,
      111,  298,  299,  111,  185,  617,  111,  301,  181,  302,
      111,  274,  111,  273,  111,  167,  111,  111,  111,  111,
      111,  209,  201,  111,  198,  111,  194,  111,  191,  111,

      303,  111,  189,  111,  111,  111,  111,  111,  188,  187,
      111,  187,  111,  305,  111,  304,  111,  185,  111,  104,
      111,  111,  111,  111,  111,  184,  179,  111,  177,  111,
      308,  306,  104,  111,  307,  111,  175,  111,  111,  111,
      111,  111,  174,  173,  167,  109,  111,  103,  111,  111,
      111,   93,  111,   90,   90,  309,  741,  111,  741,  111,
      310,  111,  111,  111,  741,  741,  741,  741,  111,  741,
      111,  741,  111,  111,  111,  741,  111,  741,  741,  313,
      111,  111,  314,  315,  111,  111,  316,  111,  111,  111,
      741,  111,  111,  741,  111,  741,  741,  319,  317,  741,

      111,  111,  111,  111,  111,  111,  111,  111,  111,  318,
      111,  320,  111,  111,  741,  741,  741,  741,  741,  741,
      111,  741,  111,  111,  111,  741,  111,  741,  741,  741,
      111,  111,  111,  111,  111,  111,  111,  111,  741,  111,
      741,  741,  321,  741,  111,  741,  322,  324,  111,  741,
      111,  741,  741,  741,  111,  111,  111,  111,  111,  741,
      325,  741,  741,  111,  741,  111,  741,  111,  111,  111,
      741,  111,  326,  741,  741,  111,  111,  111,  111,  111,
      111,  111,  111,  741,  111,  741,  328,  111,  741,  111,
      741,  111,  741,  111,  741,  111,  741,  111,  741,  111,

      111,  111,  741,  111,  741,  111,  329,  111,  111,  111,
      741,  111,  741,  741,  330,  111,  111,  111,  111,  111,
      334,  111,  741,  741,  111,  331,  741,  741,  333,  111,
      111,  111,  111,  111,  741,  111,  741,  111,  741,  111,
      111,  111,  111,  111,  741,  741,  741,  741,  335,  741,
      111,  741,  111,  336,  111,  741,  111,  741,  111,  741,
      111,  111,  111,  741,  111,  337,  111,  741,  111,  111,
      111,  741,  111,  741,  741,  741,  111,  111,  111,  111,
      111,  741,  741,  741,  338,  111,  741,  111,  741,  111,
      741,  111,  741,  111,  741,  741,  339,  111,  111,  111,

      111,  111,  741,  341,  340,  741,  111,  741,  111,  741,
      111,  741,  111,  741,  111,  741,  741,  347,  111,  111,
      111,  343,  111,  344,  111,  111,  741,  111,  345,  741,
      741,  741,  741,  741,  111,  111,  111,  111,  111,  111,
      111,  741,  346,  111,  111,  741,  351,  741,  741,  741,
      111,  741,  111,  741,  111,  352,  352,  352,  352,  111,
      741,  741,  741,  354,  354,  354,  354,  741,  741,  741,
      353,  353,  353,  353,  353,  353,  353,  353,  355,  355,
      355,  355,  355,  355,  355,  355,  111,  111,  741,  741,
      741,  741,  741,  741,  360,  741,  111,  111,  359,  111,

      111,  111,  111,  741,  741,  111,  111,  741,  111,  741,
      741,  741,  111,  361,  111,  741,  111,  741,  111,  111,
      362,  111,  111,  741,  741,  111,  741,  111,  364,  111,
      741,  111,  741,  111,  741,  111,  741,  111,  111,  111,
      365,  111,  111,  366,  111,  741,  741,  741,  741,  741,
      741,  111,  111,  111,  111,  111,  111,  111,  741,  741,
      111,  111,  741,  741,  363,  111,  741,  111,  741,  111,
      741,  111,  741,  111,  367,  111,  111,  111,  368,  111,
      741,  741,  741,  111,  111,  111,  111,  111,  370,  111,
      741,  369,  111,  741,  741,  741,  111,  111,  111,  111,

      111,  111,  741,  111,  741,  371,  741,  111,  111,  372,
      111,  111,  373,  111,  741,  374,  111,  741,  741,  741,
      111,  741,  111,  111,  111,  111,  741,  111,  111,  111,
      741,  375,  111,  741,  111,  741,  741,  741,  111,  741,
      111,  741,  111,  741,  111,  111,  111,  111,  376,  741,
      741,  111,  377,  111,  741,  111,  741,  111,  741,  111,
      741,  111,  111,  111,  111,  111,  741,  378,  741,  741,
      111,  741,  111,  741,  379,  741,  111,  111,  380,  741,
      381,  111,  741,  111,  741,  741,  741,  111,  741,  111,
      741,  111,  741,  111,  111,  111,  111,  111,  741,  741,

      111,  741,  111,  741,  111,  741,  111,  741,  111,  741,
      111,  741,  111,  111,  111,  111,  111,  741,  385,  111,
      741,  741,  386,  741,  741,  111,  111,  111,  111,  111,
      111,  111,  387,  741,  111,  111,  389,  111,  741,  384,
      741,  111,  741,  111,  393,  111,  741,  111,  741,  111,
      388,  111,  111,  390,  741,  111,  111,  391,  741,  741,
      741,  741,  111,  111,  111,  111,  111,  111,  392,  111,
      741,  111,  741,  111,  111,  111,  111,  111,  741,  741,
      394,  741,  111,  741,  111,  396,  111,  111,  111,  741,
      111,  741,  741,  741,  111,  111,  111,  111,  111,  111,

      111,  111,  741,  111,  401,  397,  111,  741,  111,  741,
      111,  400,  111,  398,  111,  741,  741,  741,  111,  111,
      111,  111,  111,  741,  741,  741,  741,  111,  741,  111,
      741,  111,  402,  111,  741,  111,  403,  111,  741,  111,
      111,  111,  741,  111,  741,  111,  741,  111,  111,  111,
      741,  111,  741,  111,  741,  111,  111,  111,  741,  111,
      741,  741,  741,  111,  111,  111,  111,  111,  741,  406,
      741,  405,  111,  741,  111,  741,  111,  111,  111,  741,
      111,  741,  741,  741,  111,  111,  111,  111,  111,  407,
      741,  111,  111,  111,  408,  111,  111,  741,  111,  741,

      741,  741,  111,  741,  111,  111,  111,  111,  111,  111,
      111,  111,  111,  111,  111,  741,  111,  111,  741,  111,
      741,  741,  741,  111,  741,  111,  111,  111,  411,  111,
      111,  111,  111,  111,  741,  111,  111,  409,  412,  413,
      741,  741,  111,  741,  741,  741,  111,  741,  111,  741,
      111,  741,  111,  111,  111,  111,  111,  741,  741,  741,
      741,  111,  741,  111,  741,  111,  741,  111,  741,  111,
      415,  741,  111,  741,  352,  352,  352,  352,  414,  111,
      741,  111,  741,  111,  741,  741,  741,  741,  111,  353,
      353,  353,  353,  353,  353,  353,  353,  419,  419,  419,

      419,  741,  741,  741,  741,  741,  741,  741,  420,  741,
      741,  741,  353,  353,  353,  353,  353,  353,  353,  353,
      354,  354,  354,  354,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  355,  355,  355,  355,  355,
      355,  355,  355,  420,  741,  111,  741,  355,  355,  355,
      355,  355,  355,  355,  355,  111,  741,  111,  741,  111,
      111,  425,  741,  424,  111,  741,  741,  741,  741,  741,
      111,  741,  111,  111,  111,  426,  111,  741,  421,  111,
      741,  741,  741,  111,  741,  111,  111,  111,  111,  741,
      111,  741,  111,  428,  111,  111,  741,  111,  429,  741,

      111,  741,  741,  430,  111,  741,  111,  111,  111,  111,
      111,  111,  111,  111,  111,  111,  111,  741,  111,  111,
      741,  741,  741,  741,  741,  111,  111,  111,  111,  111,
      431,  741,  111,  741,  111,  741,  111,  111,  111,  111,
      111,  741,  432,  741,  741,  111,  433,  111,  741,  111,
      741,  111,  741,  111,  741,  741,  741,  434,  111,  111,
      111,  111,  741,  435,  741,  741,  111,  436,  741,  741,
      111,  111,  111,  437,  111,  741,  741,  111,  741,  111,
      438,  111,  741,  111,  439,  111,  741,  111,  111,  111,
      111,  111,  741,  741,  741,  741,  111,  741,  111,  111,

      111,  741,  111,  741,  440,  741,  741,  111,  741,  111,
      741,  111,  741,  111,  111,  442,  741,  441,  111,  741,
      111,  741,  741,  741,  111,  741,  111,  741,  111,  741,
      111,  111,  111,  111,  111,  741,  741,  111,  443,  111,
      741,  111,  741,  111,  741,  111,  741,  111,  444,  445,
      111,  111,  111,  111,  741,  741,  111,  741,  741,  741,
      449,  741,  111,  111,  111,  111,  111,  111,  741,  741,
      111,  111,  111,  111,  450,  741,  451,  741,  741,  741,
      111,  741,  111,  111,  111,  111,  741,  111,  452,  111,
      111,  111,  111,  453,  741,  741,  741,  741,  741,  741,

      111,  111,  454,  111,  111,  111,  111,  741,  741,  111,
      111,  741,  111,  741,  741,  456,  111,  741,  111,  741,
      111,  741,  111,  111,  111,  455,  111,  458,  741,  741,
      459,  111,  741,  111,  741,  111,  111,  111,  741,  741,
      457,  741,  111,  741,  111,  741,  111,  111,  111,  741,
      111,  741,  741,  741,  111,  111,  111,  111,  111,  111,
      111,  111,  461,  111,  741,  741,  111,  741,  111,  741,
      111,  741,  111,  741,  111,  741,  111,  741,  111,  111,
      462,  741,  111,  741,  111,  741,  111,  111,  111,  741,
      111,  741,  464,  741,  111,  111,  466,  111,  111,  741,

      741,  741,  741,  111,  741,  741,  741,  111,  741,  111,
      111,  111,  741,  111,  741,  467,  111,  469,  741,  741,
      111,  111,  111,  111,  111,  470,  471,  111,  741,  111,
      741,  111,  111,  111,  111,  111,  741,  741,  741,  741,
      111,  741,  741,  741,  111,  111,  111,  741,  111,  741,
      741,  111,  741,  111,  475,  111,  472,  111,  741,  111,
      741,  111,  111,  111,  111,  111,  741,  741,  741,  741,
      111,  741,  111,  111,  111,  741,  111,  741,  476,  741,
      741,  111,  741,  111,  741,  111,  741,  111,  482,  482,
      482,  482,  111,  741,  741,  741,  741,  741,  741,  741,

      741,  111,  741,  483,  483,  483,  483,  483,  483,  483,
      483,  111,  741,  111,  111,  111,  486,  111,  478,  741,
      111,  741,  741,  741,  111,  111,  111,  111,  111,  111,
      741,  111,  487,  111,  741,  111,  111,  489,  111,  111,
      741,  111,  741,  741,  111,  741,  741,  741,  111,  741,
      111,  111,  111,  111,  741,  111,  490,  111,  111,  741,
      111,  491,  741,  492,  111,  741,  741,  741,  111,  741,
      111,  741,  111,  741,  111,  111,  111,  111,  111,  741,
      741,  111,  741,  111,  741,  111,  741,  493,  741,  111,
      741,  111,  741,  111,  111,  111,  111,  741,  495,  494,

      111,  741,  111,  741,  741,  741,  111,  741,  111,  741,
      111,  741,  111,  741,  111,  111,  111,  741,  741,  111,
      496,  111,  497,  741,  741,  111,  741,  498,  741,  111,
      741,  111,  741,  111,  741,  111,  111,  111,  111,  111,
      741,  500,  111,  741,  111,  741,  111,  741,  499,  741,
      111,  741,  111,  111,  111,  111,  111,  741,  741,  111,
      741,  111,  741,  111,  741,  111,  501,  111,  741,  111,
      111,  111,  111,  111,  741,  741,  111,  741,  111,  741,
      111,  741,  111,  503,  111,  741,  111,  502,  111,  111,
      111,  504,  111,  111,  741,  111,  741,  508,  741,  741,

      741,  741,  111,  111,  111,  111,  111,  111,  111,  741,
      741,  111,  111,  741,  111,  509,  510,  741,  111,  741,
      111,  741,  111,  741,  111,  111,  111,  111,  111,  741,
      741,  111,  741,  111,  512,  111,  741,  111,  741,  111,
      741,  111,  511,  111,  111,  111,  111,  513,  741,  741,
      111,  741,  111,  514,  741,  741,  111,  741,  111,  741,
      111,  741,  111,  111,  111,  111,  111,  741,  741,  741,
      741,  111,  741,  111,  741,  111,  741,  111,  111,  515,
      741,  516,  111,  741,  111,  741,  741,  741,  111,  741,
      111,  741,  111,  741,  111,  111,  111,  111,  111,  741,

      741,  517,  741,  111,  741,  111,  741,  111,  111,  111,
      520,  111,  741,  741,  111,  741,  741,  741,  111,  111,
      522,  111,  111,  111,  741,  111,  741,  111,  741,  111,
      111,  111,  111,  111,  741,  525,  741,  524,  111,  741,
      111,  741,  111,  741,  111,  741,  111,  741,  741,  741,
      111,  111,  111,  741,  111,  111,  528,  741,  111,  111,
      527,  111,  741,  741,  741,  111,  741,  111,  111,  111,
      111,  111,  111,  111,  111,  111,  111,  111,  741,  111,
      111,  741,  741,  741,  741,  741,  111,  741,  111,  111,
      111,  111,  741,  111,  111,  111,  531,  741,  111,  482,

      482,  482,  482,  741,  111,  741,  111,  741,  111,  741,
      741,  741,  540,  111,  483,  483,  483,  483,  483,  483,
      483,  483,  537,  741,  741,  741,  483,  483,  483,  483,
      483,  483,  483,  483,  111,  111,  741,  741,  741,  741,
      741,  541,  741,  741,  111,  111,  111,  111,  111,  111,
      741,  111,  111,  111,  111,  543,  741,  741,  741,  741,
      741,  111,  111,  544,  111,  111,  111,  111,  111,  741,
      111,  111,  741,  741,  545,  546,  741,  111,  111,  111,
      111,  111,  111,  111,  111,  741,  111,  111,  741,  741,
      741,  741,  741,  111,  111,  111,  111,  111,  111,  111,

      741,  741,  111,  111,  741,  111,  547,  548,  741,  111,
      741,  111,  741,  111,  741,  111,  111,  111,  111,  111,
      741,  741,  111,  741,  111,  741,  111,  549,  111,  741,
      111,  741,  111,  111,  111,  111,  111,  741,  741,  741,
      741,  111,  741,  111,  111,  111,  741,  111,  741,  741,
      741,  550,  111,  741,  111,  111,  111,  741,  111,  741,
      741,  552,  551,  111,  741,  111,  741,  111,  741,  111,
      741,  111,  111,  111,  111,  111,  741,  741,  111,  741,
      111,  741,  553,  741,  111,  558,  111,  741,  111,  111,
      111,  111,  111,  741,  741,  741,  741,  111,  741,  111,

      111,  111,  741,  111,  741,  741,  111,  559,  111,  741,
      111,  741,  111,  741,  111,  741,  111,  111,  111,  111,
      111,  741,  741,  111,  741,  111,  561,  111,  741,  111,
      741,  111,  741,  111,  560,  111,  111,  111,  111,  111,
      741,  741,  111,  741,  741,  741,  741,  741,  111,  111,
      111,  111,  111,  111,  111,  563,  562,  111,  111,  741,
      111,  741,  741,  741,  111,  741,  111,  741,  111,  741,
      111,  111,  111,  111,  111,  741,  741,  111,  741,  111,
      741,  567,  741,  111,  741,  111,  741,  111,  111,  111,
      111,  111,  741,  741,  111,  741,  111,  741,  111,  741,

      111,  741,  111,  741,  111,  564,  111,  111,  111,  111,
      741,  741,  571,  111,  741,  111,  741,  741,  572,  111,
      741,  111,  741,  111,  741,  111,  741,  111,  111,  111,
      575,  111,  741,  741,  111,  741,  580,  580,  580,  580,
      741,  111,  741,  111,  741,  111,  741,  741,  741,  741,
      111,  581,  581,  581,  581,  581,  581,  581,  581,  111,
      111,  585,  741,  741,  741,  741,  584,  741,  741,  111,
      111,  111,  111,  111,  111,  111,  741,  741,  111,  111,
      741,  741,  741,  111,  741,  111,  111,  111,  741,  111,
      741,  587,  741,  111,  111,  111,  111,  111,  589,  111,

      111,  588,  111,  741,  741,  111,  592,  111,  741,  111,
      741,  590,  741,  111,  741,  111,  741,  111,  111,  111,
      591,  111,  741,  111,  741,  111,  111,  111,  741,  111,
      741,  741,  741,  111,  111,  111,  111,  111,  741,  593,
      741,  741,  111,  741,  111,  741,  111,  741,  111,  741,
      111,  741,  111,  741,  111,  111,  111,  741,  111,  594,
      111,  741,  111,  111,  111,  741,  111,  741,  741,  741,
      111,  111,  111,  111,  111,  741,  599,  741,  741,  111,
      741,  111,  741,  111,  111,  111,  741,  111,  741,  741,
      741,  111,  111,  111,  111,  111,  111,  111,  111,  741,

      111,  741,  741,  111,  741,  111,  741,  111,  111,  111,
      741,  111,  600,  741,  741,  111,  111,  111,  111,  111,
      111,  111,  111,  741,  111,  608,  601,  111,  741,  111,
      741,  111,  741,  111,  741,  111,  741,  741,  741,  111,
      111,  111,  111,  111,  741,  111,  741,  741,  111,  741,
      741,  741,  111,  741,  111,  611,  111,  111,  741,  111,
      111,  111,  741,  741,  111,  580,  580,  580,  580,  741,
      111,  741,  111,  620,  111,  741,  741,  741,  111,  111,
      581,  581,  581,  581,  581,  581,  581,  581,  111,  111,
      111,  741,  111,  741,  741,  111,  741,  111,  741,  111,

      741,  111,  741,  111,  741,  111,  741,  111,  111,  111,
      111,  111,  621,  622,  111,  741,  623,  741,  741,  741,
      111,  111,  111,  111,  111,  111,  111,  741,  741,  111,
      111,  741,  111,  741,  626,  741,  111,  741,  624,  741,
      111,  741,  111,  111,  111,  111,  111,  741,  741,  111,
      741,  111,  741,  627,  741,  111,  741,  111,  741,  111,
      111,  111,  111,  111,  741,  631,  741,  741,  111,  741,
      111,  111,  111,  632,  111,  741,  741,  111,  633,  111,
      741,  111,  741,  111,  741,  111,  741,  111,  111,  111,
      111,  111,  741,  741,  111,  741,  111,  741,  111,  741,

      648,  741,  111,  741,  111,  741,  111,  111,  111,  111,
      111,  649,  741,  111,  741,  741,  741,  741,  741,  111,
      111,  111,  111,  111,  111,  111,  111,  741,  111,  111,
      741,  741,  741,  741,  741,  111,  111,  111,  111,  111,
      111,  111,  650,  741,  111,  111,  741,  111,  652,  741,
      741,  111,  741,  111,  741,  111,  741,  111,  111,  111,
      111,  111,  741,  741,  741,  741,  111,  741,  111,  111,
      656,  741,  111,  741,  741,  111,  741,  111,  741,  111,
      741,  111,  657,  111,  741,  111,  111,  111,  111,  111,
      741,  741,  111,  741,  111,  741,  111,  741,  111,  741,

      111,  741,  111,  111,  111,  111,  111,  741,  741,  741,
      741,  111,  741,  111,  111,  111,  741,  111,  741,  741,
      111,  672,  111,  741,  111,  741,  111,  741,  111,  741,
      111,  676,  677,  111,  111,  111,  111,  741,  741,  111,
      741,  741,  741,  741,  741,  111,  111,  111,  111,  111,
      111,  111,  111,  741,  111,  111,  741,  741,  692,  741,
      741,  111,  111,  111,  111,  111,  111,  741,  741,  741,
      111,  111,   55,   55,   55,   55,   55,   55,   55,   55,
       55,   55,   55,   55,   55,   60,   60,   60,   60,   60,
       60,   60,   60,   60,   60,   60,   60,   60,   65,   65,

       65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
       65,   68,   68,   68,   68,   68,   68,   68,   68,   68,
       68,   68,   68,   68,   77,   77,   77,   77,   77,   77,
       77,   77,   77,   77,   77,   77,   77,   92,   92,   92,
       92,  741,   92,   92,   92,   92,   92,   92,   92,   92,
       99,   99,   99,  741,   99,  741,   99,  741,   99,  168,
      168,  741,  168,  168,  172,  172,  741,  741,  172,  172,
      741,  172,  172,  172,  172,  172,  172,  176,  176,  176,
      176,  741,  176,  176,  176,  176,  176,  176,  176,  176,
      178,  178,  178,  178,  178,  178,  178,  178,  741,  178,

      178,  180,  741,  741,  741,  180,  180,  180,  180,  180,
      180,  180,  181,  741,  741,  741,  181,  181,  181,  181,
      181,  181,  181,  186,  186,  741,  186,  186,  190,  190,
      741,  190,  190,  192,  192,  741,  192,  192,  202,  741,
      202,  202,  117,  117,  741,  117,  117,  270,  741,  270,
      270,  277,  741,  277,  277,  279,  741,  279,  279,  280,
      741,  280,  280,  283,  283,  283,  283,  283,  283,  283,
      283,  283,  283,  283,  283,  283,  203,  203,  741,  203,
      203,  583,  583,  741,  583,  583,  583,  583,  583,  583,
      583,  583,  583,  583,  581,  581,  581,  741,  741,  741,

      581,  741,  741,  741,  741,  581,   17,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741
    } ;

static yyconst flex_int16_t yy_chk[4591] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    3,    3,    3,    4,    4,    4,    5,
        5,    5,  133,   11,    3,    9,    7,    4,    8,    9,

        5,    6,    6,    6,    7,   12,    8,  147,  132,    7,
       10,    8,    6,  739,   10,   11,  101,   29,   11,   29,
        7,   96,    8,   79,   79,   79,   79,   12,  738,  101,
       12,   19,   19,   19,   19,   81,  538,  133,   19,   20,
       20,   20,   20,  538,  196,   36,   20,   24,   24,   24,
       24,   36,   81,   96,   24,   36,  152,   36,   36,   36,
      142,  147,   24,   24,   36,  132,   26,   80,   80,   80,
       80,   11,  196,   11,   26,   26,   26,   26,   26,   26,
       26,   26,  161,   12,   81,   12,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,

       13,   13,   91,   91,   91,   91,  195,  164,  195,  152,
       13,   13,   13,   13,   13,   27,  142,  195,  327,   13,
       27,   41,  357,   27,   27,   27,   27,   27,   27,   27,
       27,   41,  357,   41,  268,   41,  229,  161,  165,  241,
       41,   13,   13,   13,   30,   44,   30,   30,   30,   30,
       30,   30,   30,   30,  230,   44,  193,   44,  251,   44,
      164,  382,  193,   30,   44,  327,   13,   13,   13,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,  229,  165,  268,  241,  182,
      182,   44,   30,   14,   14,   14,   14,   14,   35,  165,

      182,   35,   14,  582,   37,   35,  382,   37,   35,   35,
       35,   35,   35,  230,   37,  251,   37,   35,   37,   38,
      286,   35,  401,   37,   14,   14,   14,  275,  275,   38,
       38,   38,  582,   38,  183,  183,  183,  183,   38,  422,
      735,   38,  734,  733,  422,  732,  401,  731,  286,   14,
       14,   14,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,

       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   23,   47,  730,  285,   47,
      285,  729,  419,  419,  419,  419,   47,  728,   47,  285,
       47,  727,   23,  726,  724,   47,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,  311,  266,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,

       23,   23,   23,   23,   23,   23,   23,   31,  245,   31,
       31,   31,   31,   31,   31,   31,   31,   39,   39,  262,
      267,   45,   45,  419,  463,   45,   31,  592,   39,  722,
       39,   45,   39,   45,   39,   45,  332,   39,   43,   43,
       45,  349,  311,  463,  721,  592,   43,  266,  312,   43,
       45,   43,  720,   43,  719,   31,   34,  245,   43,   34,
       34,   34,   34,   34,   34,   34,   34,  323,  262,  267,
      342,  383,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,  332,  349,

      312,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   40,  383,  348,  395,  323,   42,   42,
      399,   42,  342,   40,  418,   40,  363,   40,  404,   42,
       42,   42,   40,   42,  350,  384,   42,  555,   42,  409,
       46,   46,  417,   46,  410,   40,  414,   98,   98,   98,
       98,   46,  427,   46,   98,   46,   40,   46,   48,  446,
       46,   48,   98,   98,  348,   48,   49,  474,   48,  395,
       48,  416,   48,  404,   49,   49,   48,   48,   50,  418,
      350,   48,  399,  447,   46,   49,  363,   49,   50,   49,

       50,   49,   50,  410,   49,  384,   50,   50,   51,  409,
      717,  111,  414,  555,  417,  427,  716,   49,   51,   52,
       51,  111,   51,  111,  446,  111,   52,   51,   50,   52,
      111,   52,  715,   52,   54,   54,   54,   54,   52,  714,
      447,  416,  474,  448,   51,  488,  479,  473,  478,   54,
       54,   54,   54,   54,   54,   54,   54,   77,  169,  169,
      169,  169,   77,   77,   77,   77,   77,   77,   77,   77,
       77,   77,   77,  169,  169,  169,  169,  169,  169,  169,
      169,   77,   77,   77,   77,   77,  100,  112,  100,  100,
      100,  100,  100,  100,  100,  100,  448,  112,  459,  112,

      473,  112,  488,  506,  112,  100,  112,  479,  478,  713,
      707,  608,   77,   77,   77,  736,  706,  705,  704,  477,
      701,  102,  459,  102,  102,  102,  102,  102,  102,  102,
      102,  697,  696,  695,  100,  693,  519,  506,   77,   78,
      102,  608,  736,  480,   78,   78,   78,   78,   78,   78,
       78,   78,   78,   78,   78,  105,  105,  105,  105,  105,
      105,  105,  105,   78,   78,   78,   78,   78,  477,  102,
      519,  106,  105,  106,  106,  106,  106,  106,  106,  106,
      106,   78,  199,  199,  199,  199,  199,  199,  199,  199,
      106,  460,  480,  481,   78,   78,   78,  107,  468,  107,

      507,  105,  107,  107,  107,  107,  107,  107,  107,  107,
      200,  200,  200,  200,  200,  200,  200,  200,  521,  106,
       78,  108,  113,  108,  108,  108,  108,  108,  108,  108,
      108,  535,  113,  114,  113,  691,  113,  529,  460,  115,
      108,  113,  481,  114,  468,  114,  526,  114,  690,  115,
      689,  115,  114,  115,  534,  170,  114,  507,  115,  170,
      170,  170,  170,  170,  170,  170,  170,  521,  682,  108,
      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
      110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
      110,  110,  116,  118,  529,  505,  535,  530,  118,  534,

      533,  526,  116,  118,  116,  118,  116,  118,  119,  120,
      116,  116,  118,  536,  679,  576,  542,  557,  119,  120,
      119,  120,  119,  120,  121,  554,  119,  119,  120,  505,
      122,  530,  556,  678,  121,  570,  121,  121,  121,  602,
      122,  566,  122,  121,  122,  123,  123,  536,  505,  122,
      574,  124,  124,  533,  573,  568,  123,  671,  123,  123,
      123,  579,  124,  125,  124,  123,  124,  542,  557,  564,
      578,  124,  576,  125,  125,  125,  126,  125,  596,  127,
      126,  577,  125,  595,  570,  670,  126,  554,  126,  127,
      126,  127,  602,  127,  556,  126,  129,  129,  127,  128,

      128,  128,  612,  566,  578,  573,  129,  130,  129,  128,
      129,  128,  574,  128,  129,  129,  568,  130,  128,  130,
      131,  130,  605,  579,  628,  134,  130,  596,  597,  564,
      131,  654,  131,  131,  131,  134,  577,  630,  135,  131,
      607,  135,  613,  595,  604,  134,  136,  134,  135,  134,
      135,  610,  135,  612,  134,  614,  136,  135,  136,  629,
      136,  137,  137,  634,  615,  136,  654,  737,  669,  605,
      664,  137,  138,  137,  607,  137,  613,  628,  137,  137,
      137,  653,  138,  139,  138,  138,  138,  655,  597,  140,
      630,  138,  636,  139,  737,  139,  662,  139,  639,  140,

      141,  140,  139,  140,  604,  139,  637,  629,  140,  641,
      141,  610,  141,  143,  141,  644,  144,  614,  645,  141,
      634,  143,  660,  143,  615,  143,  144,  143,  144,  145,
      144,  658,  143,  643,  144,  144,  698,  146,  653,  145,
      148,  145,  663,  145,  655,  636,  666,  146,  145,  146,
      148,  146,  148,  149,  148,  146,  146,  673,  148,  148,
      639,  659,  641,  149,  150,  149,  637,  149,  661,  651,
      667,  645,  149,  149,  150,  644,  150,  151,  150,  660,
      151,  681,  658,  150,  151,  665,  668,  151,  687,  151,
      647,  151,  153,  153,  674,  643,  151,  646,  698,  154,

      675,  710,  663,  153,  694,  153,  666,  153,  673,  154,
      155,  154,  153,  154,  154,  680,  156,  154,  154,  683,
      155,  661,  155,  667,  155,  158,  156,  157,  156,  155,
      156,  642,  156,  640,  155,  156,  638,  157,  158,  157,
      681,  157,  665,  668,  159,  687,  157,  674,  158,  159,
      158,  675,  158,  686,  159,  160,  159,  158,  159,  710,
      694,  162,  700,  159,  635,  160,  680,  160,  162,  160,
      685,  162,  683,  162,  160,  162,  166,  163,  163,  702,
      162,  163,  581,  581,  581,  581,  166,  163,  166,  163,
      166,  163,  718,  171,  166,  166,  163,  171,  171,  171,

      171,  171,  171,  171,  171,  197,  686,  197,  197,  197,
      197,  197,  197,  197,  197,  204,  205,  625,  204,  700,
      619,  685,  688,  618,  197,  204,  205,  204,  205,  204,
      205,  206,  207,  703,  204,  205,  702,  708,  609,  606,
      603,  206,  207,  206,  207,  206,  207,  208,  598,  586,
      206,  207,  718,  197,  202,  210,  583,  208,  211,  208,
      208,  208,  210,  581,  569,  210,  208,  210,  211,  210,
      211,  212,  211,  688,  210,  711,  712,  211,  565,  213,
      532,  212,  523,  212,  703,  212,  708,  518,  212,  213,
      212,  213,  485,  213,  616,  616,  616,  616,  213,  202,

      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
      202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
      202,  214,  215,  484,  465,  423,  711,  712,  358,  215,
      356,  214,  215,  214,  215,  214,  215,  214,  216,  217,
      214,  215,  287,  280,  279,  278,  277,  276,  216,  217,
      216,  217,  216,  217,  218,  216,  273,  216,  217,  270,
      209,  203,  194,  192,  218,  190,  218,  188,  218,  219,
      219,  218,  218,  218,  186,  616,  220,  219,  181,  220,
      219,  179,  219,  174,  219,  168,  220,  221,  220,  219,
      220,  117,  109,  222,  103,  220,   99,  221,   97,  221,

      221,  221,   95,  222,  223,  222,  221,  222,   94,   93,
      224,   90,  222,  224,  223,  223,  223,   85,  223,   84,
      224,  225,  224,  223,  224,   83,   70,  226,   67,  224,
      226,  225,   63,  225,  225,  225,   62,  226,  227,  226,
      225,  226,   59,   58,   53,   32,  226,   28,  227,  228,
      227,   22,  227,   21,   18,  227,   17,  227,    0,  228,
      228,  228,  231,  228,    0,    0,    0,    0,  228,    0,
      232,    0,  231,  233,  231,    0,  231,    0,    0,  231,
      232,  231,  232,  233,  232,  233,  233,  233,  234,  232,
        0,  235,  233,    0,  236,    0,    0,  236,  234,    0,

      234,  235,  234,  235,  236,  235,  236,  234,  236,  235,
      235,  237,  238,  236,    0,    0,    0,    0,    0,    0,
      237,    0,  238,  239,  238,    0,  238,    0,    0,    0,
      237,  238,  237,  239,  237,  239,  240,  239,    0,  237,
        0,    0,  239,    0,  242,    0,  240,  242,  240,    0,
      240,    0,    0,    0,  242,  240,  242,  243,  242,    0,
      243,    0,    0,  242,    0,  244,    0,  243,  246,  243,
        0,  243,  244,    0,    0,  244,  243,  244,  246,  244,
      246,  247,  246,    0,  244,    0,  246,  246,    0,  248,
        0,  247,    0,  247,    0,  247,    0,  249,    0,  248,

      247,  248,    0,  248,    0,  250,  248,  249,  248,  249,
        0,  249,    0,    0,  249,  250,  249,  250,  252,  250,
      253,  253,    0,    0,  250,  250,    0,    0,  252,  254,
      252,  253,  252,  253,    0,  253,    0,  252,    0,  254,
      253,  254,  255,  254,    0,    0,    0,    0,  254,    0,
      256,    0,  255,  256,  255,    0,  255,    0,  257,    0,
      256,  255,  256,    0,  256,  257,  258,    0,  257,  256,
      257,    0,  257,    0,    0,    0,  258,  257,  258,  259,
      258,    0,    0,    0,  258,  258,    0,  260,    0,  259,
        0,  259,    0,  259,    0,    0,  259,  260,  259,  260,

      261,  260,    0,  261,  260,    0,  260,    0,  263,    0,
      261,    0,  261,    0,  261,    0,    0,  265,  263,  261,
      263,  263,  263,  263,  264,  265,    0,  263,  263,    0,
        0,    0,    0,    0,  264,  265,  264,  265,  264,  265,
      269,    0,  264,  264,  265,    0,  269,    0,    0,    0,
      269,    0,  269,    0,  269,  271,  271,  271,  271,  269,
        0,    0,    0,  272,  272,  272,  272,    0,    0,    0,
      271,  271,  271,  271,  271,  271,  271,  271,  272,  272,
      272,  272,  272,  272,  272,  272,  288,  289,    0,    0,
        0,    0,    0,    0,  289,    0,  288,  289,  288,  289,

      288,  289,  290,    0,    0,  288,  289,    0,  291,    0,
        0,    0,  290,  290,  290,    0,  290,    0,  291,  292,
      291,  290,  291,    0,    0,  293,    0,  291,  293,  292,
        0,  292,    0,  292,    0,  293,    0,  293,  292,  293,
      294,  294,  295,  295,  293,    0,    0,    0,    0,    0,
        0,  294,  295,  294,  295,  294,  295,  296,    0,    0,
      294,  295,    0,    0,  292,  297,    0,  296,    0,  296,
        0,  296,    0,  298,  296,  297,  296,  297,  297,  297,
        0,    0,    0,  298,  297,  298,  300,  298,  299,  299,
        0,  298,  298,    0,    0,    0,  300,  301,  300,  299,

      300,  299,    0,  299,    0,  300,    0,  301,  299,  301,
      302,  301,  302,  303,    0,  303,  301,    0,    0,    0,
      302,    0,  302,  303,  302,  303,    0,  303,  304,  302,
        0,  304,  303,    0,  305,    0,    0,    0,  304,    0,
      304,    0,  304,    0,  305,  306,  305,  304,  305,    0,
        0,  307,  306,  305,    0,  306,    0,  306,    0,  306,
        0,  307,  308,  307,  306,  307,    0,  307,    0,    0,
      307,    0,  308,    0,  308,    0,  308,  309,  308,    0,
      309,  308,    0,  310,    0,    0,    0,  309,    0,  309,
        0,  309,    0,  310,  313,  310,  309,  310,    0,    0,

      314,    0,  310,    0,  313,    0,  313,    0,  313,    0,
      314,    0,  314,  313,  314,  315,  316,    0,  314,  314,
        0,    0,  315,    0,    0,  315,  316,  315,  316,  315,
      316,  317,  316,    0,  315,  316,  318,  318,    0,  313,
        0,  317,    0,  317,  320,  317,    0,  318,    0,  318,
      317,  318,  319,  318,    0,  320,  318,  319,    0,    0,
        0,    0,  319,  321,  319,  320,  319,  320,  319,  320,
        0,  319,    0,  321,  320,  321,  322,  321,    0,    0,
      321,    0,  321,    0,  324,  324,  322,  325,  322,    0,
      322,    0,    0,    0,  324,  322,  324,  325,  324,  325,

      326,  325,    0,  324,  329,  325,  325,    0,  328,    0,
      326,  328,  326,  326,  326,    0,    0,    0,  328,  326,
      328,  329,  328,    0,    0,    0,    0,  328,    0,  330,
        0,  329,  330,  329,    0,  329,  331,  331,    0,  330,
      329,  330,    0,  330,    0,  333,    0,  331,  330,  331,
        0,  331,    0,  334,    0,  333,  331,  333,    0,  333,
        0,    0,    0,  334,  333,  334,  335,  334,    0,  335,
        0,  334,  334,    0,  336,    0,  335,  337,  335,    0,
      335,    0,    0,    0,  336,  335,  336,  337,  336,  337,
        0,  337,  339,  336,  338,  338,  337,    0,  340,    0,

        0,    0,  339,    0,  339,  338,  339,  338,  340,  338,
      340,  339,  340,  341,  338,    0,  343,  340,    0,  344,
        0,    0,    0,  341,    0,  341,  343,  341,  343,  344,
      343,  344,  341,  344,    0,  343,  345,  339,  344,  345,
        0,    0,  346,    0,    0,    0,  345,    0,  345,    0,
      345,    0,  346,  347,  346,  345,  346,    0,    0,    0,
        0,  346,    0,  347,    0,  347,    0,  347,    0,  351,
      347,    0,  347,    0,  352,  352,  352,  352,  346,  351,
        0,  351,    0,  351,    0,    0,    0,    0,  351,  352,
      352,  352,  352,  352,  352,  352,  352,  353,  353,  353,

      353,    0,    0,    0,    0,    0,    0,    0,  353,    0,
        0,    0,  353,  353,  353,  353,  353,  353,  353,  353,
      354,  354,  354,  354,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  354,  354,  354,  354,  354,
      354,  354,  354,  355,    0,  359,    0,  355,  355,  355,
      355,  355,  355,  355,  355,  359,    0,  359,    0,  359,
      360,  360,    0,  359,  359,    0,    0,    0,    0,    0,
      360,    0,  360,  362,  360,  361,  361,    0,  353,  360,
        0,    0,    0,  362,    0,  362,  361,  362,  361,    0,
      361,    0,  362,  364,  364,  361,    0,  365,  365,    0,

      366,    0,    0,  366,  364,    0,  364,  365,  364,  365,
      366,  365,  366,  364,  366,  367,  365,    0,  368,  366,
        0,    0,    0,    0,    0,  367,  369,  367,  368,  367,
      368,    0,  368,    0,  367,    0,  369,  368,  369,  370,
      369,    0,  369,    0,    0,  369,  370,  371,    0,  370,
        0,  370,    0,  370,    0,    0,    0,  371,  370,  371,
      372,  371,    0,  372,    0,    0,  371,  372,    0,    0,
      372,  373,  372,  373,  372,    0,    0,  374,    0,  372,
      374,  373,    0,  373,  374,  373,    0,  374,  375,  374,
      373,  374,    0,    0,    0,    0,  374,    0,  375,  376,

      375,    0,  375,    0,  375,    0,    0,  375,    0,  376,
        0,  376,    0,  376,  377,  377,    0,  376,  376,    0,
      378,    0,    0,    0,  377,    0,  377,    0,  377,    0,
      378,  379,  378,  377,  378,    0,    0,  380,  378,  378,
        0,  379,    0,  379,    0,  379,    0,  380,  379,  380,
      379,  380,  381,  385,    0,    0,  380,    0,    0,    0,
      385,    0,  381,  385,  381,  385,  381,  385,    0,    0,
      387,  381,  385,  386,  386,    0,  386,    0,    0,    0,
      387,    0,  387,  386,  387,  386,    0,  386,  387,  387,
      389,  388,  386,  388,    0,    0,    0,    0,    0,    0,

      389,  388,  389,  388,  389,  388,  390,    0,    0,  389,
      388,    0,  391,    0,    0,  391,  390,    0,  390,    0,
      390,    0,  391,  392,  391,  390,  391,  393,    0,    0,
      394,  391,    0,  392,    0,  392,  393,  392,    0,    0,
      392,    0,  392,    0,  396,    0,  393,  394,  393,    0,
      393,    0,    0,    0,  396,  393,  396,  394,  396,  394,
      397,  394,  396,  396,    0,    0,  394,    0,  398,    0,
      397,    0,  397,    0,  397,    0,  400,    0,  398,  397,
      398,    0,  398,    0,  402,    0,  400,  398,  400,    0,
      400,    0,  400,    0,  402,  400,  402,  403,  402,    0,

        0,    0,    0,  402,    0,    0,    0,  403,    0,  403,
      405,  403,    0,  406,    0,  403,  403,  405,    0,    0,
      405,  407,  405,  406,  405,  406,  407,  406,    0,  405,
        0,  407,  406,  407,  408,  407,    0,    0,    0,    0,
      407,    0,    0,    0,  408,  411,  408,    0,  408,    0,
        0,  412,    0,  408,  412,  411,  408,  411,    0,  411,
        0,  412,  413,  412,  411,  412,    0,    0,    0,    0,
      412,    0,  413,  415,  413,    0,  413,    0,  413,    0,
        0,  413,    0,  415,    0,  415,    0,  415,  420,  420,
      420,  420,  415,    0,    0,    0,    0,    0,    0,    0,

        0,  424,    0,  420,  420,  420,  420,  420,  420,  420,
      420,  424,    0,  424,  426,  424,  425,  425,  415,    0,
      424,    0,    0,    0,  426,  428,  426,  425,  426,  425,
        0,  425,  426,  426,    0,  428,  425,  428,  429,  428,
        0,  430,    0,    0,  428,    0,    0,    0,  429,    0,
      429,  430,  429,  430,    0,  430,  429,  429,  431,    0,
      430,  431,    0,  432,  432,    0,    0,    0,  431,    0,
      431,    0,  431,    0,  432,  433,  432,  431,  432,    0,
        0,  434,    0,  432,    0,  433,    0,  433,    0,  433,
        0,  434,    0,  434,  433,  434,  435,    0,  435,  434,

      434,    0,  436,    0,    0,    0,  435,    0,  435,    0,
      435,    0,  436,    0,  436,  435,  436,    0,    0,  437,
      436,  436,  437,    0,    0,  438,    0,  438,    0,  437,
        0,  437,    0,  437,    0,  438,  439,  438,  437,  438,
        0,  440,  440,    0,  438,    0,  439,    0,  439,    0,
      439,    0,  440,  441,  440,  439,  440,    0,    0,  442,
        0,  440,    0,  441,    0,  441,  442,  441,    0,  442,
      443,  442,  441,  442,    0,    0,  444,    0,  442,    0,
      443,    0,  443,  444,  443,    0,  444,  443,  444,  443,
      444,  445,  445,  449,    0,  444,    0,  449,    0,    0,

        0,    0,  445,  449,  445,  449,  445,  449,  450,    0,
        0,  445,  449,    0,  451,  450,  451,    0,  450,    0,
      450,    0,  450,    0,  451,  452,  451,  450,  451,    0,
        0,  453,    0,  451,  453,  452,    0,  452,    0,  452,
        0,  453,  452,  453,  452,  453,  454,  454,    0,    0,
      453,    0,  455,  455,    0,    0,  454,    0,  454,    0,
      454,    0,  455,  456,  455,  454,  455,    0,    0,    0,
        0,  455,    0,  456,    0,  456,    0,  456,  457,  456,
        0,  457,  456,    0,  458,    0,    0,    0,  457,    0,
      457,    0,  457,    0,  458,  461,  458,  457,  458,    0,

        0,  458,    0,  458,    0,  461,    0,  461,  464,  461,
      462,  462,    0,    0,  461,    0,    0,    0,  464,  466,
      464,  462,  464,  462,    0,  462,    0,  464,    0,  466,
      462,  466,  467,  466,    0,  467,    0,  466,  466,    0,
      469,    0,  467,    0,  467,    0,  467,    0,    0,    0,
      469,  467,  469,    0,  469,  470,  470,    0,  471,  469,
      469,  472,    0,    0,    0,  470,    0,  470,  471,  470,
      471,  472,  471,  472,  470,  472,  475,  471,    0,  476,
      472,    0,    0,    0,    0,    0,  475,    0,  475,  476,
      475,  476,    0,  476,  486,  475,  476,    0,  476,  482,

      482,  482,  482,    0,  486,    0,  486,    0,  486,    0,
        0,    0,  486,  486,  482,  482,  482,  482,  482,  482,
      482,  482,  483,    0,    0,    0,  483,  483,  483,  483,
      483,  483,  483,  483,  487,  489,    0,    0,    0,    0,
        0,  487,    0,    0,  487,  489,  487,  489,  487,  489,
        0,  491,  490,  487,  489,  490,    0,    0,    0,    0,
        0,  491,  490,  491,  490,  491,  490,  492,  493,    0,
      491,  490,    0,    0,  492,  493,    0,  492,  493,  492,
      493,  492,  493,  494,  495,    0,  492,  493,    0,    0,
        0,    0,    0,  494,  495,  494,  495,  494,  495,  496,

        0,    0,  494,  495,    0,  497,  496,  497,    0,  496,
        0,  496,    0,  496,    0,  497,  498,  497,  496,  497,
        0,    0,  499,    0,  497,    0,  498,  499,  498,    0,
      498,    0,  499,  500,  499,  498,  499,    0,    0,    0,
        0,  499,    0,  500,  501,  500,    0,  500,    0,    0,
        0,  500,  500,    0,  501,  502,  501,    0,  501,    0,
        0,  503,  501,  501,    0,  502,    0,  502,    0,  502,
        0,  503,  504,  503,  502,  503,    0,    0,  508,    0,
      503,    0,  504,    0,  504,  508,  504,    0,  508,  509,
      508,  504,  508,    0,    0,    0,    0,  508,    0,  509,

      510,  509,    0,  509,    0,    0,  511,  509,  509,    0,
      510,    0,  510,    0,  510,    0,  511,  512,  511,  510,
      511,    0,    0,  513,    0,  511,  513,  512,    0,  512,
        0,  512,    0,  513,  512,  513,  512,  513,  514,  515,
        0,    0,  513,    0,    0,    0,    0,    0,  514,  515,
      514,  515,  514,  515,  516,  516,  514,  514,  515,    0,
      517,    0,    0,    0,  516,    0,  516,    0,  516,    0,
      517,  520,  517,  516,  517,    0,    0,  522,    0,  517,
        0,  520,    0,  520,    0,  520,    0,  522,  524,  522,
      520,  522,    0,    0,  525,    0,  522,    0,  524,    0,

      524,    0,  524,    0,  525,  517,  525,  524,  525,  527,
        0,    0,  527,  525,    0,  528,    0,    0,  528,  527,
        0,  527,    0,  527,    0,  528,    0,  528,  527,  528,
      531,  531,    0,    0,  528,    0,  537,  537,  537,  537,
        0,  531,    0,  531,    0,  531,    0,    0,    0,    0,
      531,  537,  537,  537,  537,  537,  537,  537,  537,  540,
      541,  541,    0,    0,    0,    0,  540,    0,    0,  540,
      541,  540,  541,  540,  541,  543,    0,    0,  540,  541,
        0,    0,    0,  544,    0,  543,  545,  543,    0,  543,
        0,  543,    0,  544,  543,  544,  545,  544,  545,  546,

      545,  544,  544,    0,    0,  545,  549,  547,    0,  546,
        0,  546,    0,  546,    0,  548,    0,  547,  546,  547,
      547,  547,    0,  549,    0,  548,  547,  548,    0,  548,
        0,    0,    0,  549,  548,  549,  550,  549,    0,  550,
        0,    0,  549,    0,  551,    0,  550,    0,  550,    0,
      550,    0,  552,    0,  551,  550,  551,    0,  551,  552,
      553,    0,  552,  551,  552,    0,  552,    0,    0,    0,
      553,  552,  553,  558,  553,    0,  558,    0,    0,  553,
        0,  559,    0,  558,  560,  558,    0,  558,    0,    0,
        0,  559,  558,  559,  560,  559,  560,  561,  560,    0,

      559,    0,    0,  560,    0,  562,    0,  561,  563,  561,
        0,  561,  562,    0,    0,  562,  561,  562,  563,  562,
      563,  567,  563,    0,  562,  571,  563,  563,    0,  572,
        0,  567,    0,  567,    0,  567,    0,    0,    0,  572,
      567,  572,  571,  572,    0,  575,    0,    0,  572,    0,
        0,    0,  571,    0,  571,  575,  571,  575,    0,  575,
      584,  571,    0,    0,  575,  580,  580,  580,  580,    0,
      584,    0,  584,  584,  584,    0,    0,    0,  585,  584,
      580,  580,  580,  580,  580,  580,  580,  580,  585,  587,
      585,    0,  585,    0,    0,  588,    0,  585,    0,  587,

        0,  587,    0,  587,    0,  588,    0,  588,  587,  588,
      589,  590,  588,  589,  588,    0,  590,    0,    0,    0,
      589,  590,  589,  590,  589,  590,  591,    0,    0,  589,
      590,    0,  593,    0,  593,    0,  591,    0,  591,    0,
      591,    0,  593,  594,  593,  591,  593,    0,    0,  599,
        0,  593,    0,  594,    0,  594,    0,  594,    0,  599,
      600,  599,  594,  599,    0,  599,    0,    0,  599,    0,
      600,  601,  600,  600,  600,    0,    0,  611,  601,  600,
        0,  601,    0,  601,    0,  601,    0,  611,  620,  611,
      601,  611,    0,    0,  621,    0,  611,    0,  620,    0,

      620,    0,  620,    0,  621,    0,  621,  620,  621,  622,
      623,  622,    0,  621,    0,    0,    0,    0,    0,  622,
      623,  622,  623,  622,  623,  624,  626,    0,  622,  623,
        0,    0,    0,    0,    0,  624,  626,  624,  626,  624,
      626,  627,  624,    0,  624,  626,    0,  631,  627,    0,
        0,  627,    0,  627,    0,  627,    0,  631,  632,  631,
      627,  631,    0,    0,    0,    0,  631,    0,  632,  633,
      632,    0,  632,    0,    0,  648,    0,  632,    0,  633,
        0,  633,  633,  633,    0,  648,  649,  648,  633,  648,
        0,    0,  650,    0,  648,    0,  649,    0,  649,    0,

      649,    0,  650,  652,  650,  649,  650,    0,    0,    0,
        0,  650,    0,  652,  656,  652,    0,  652,    0,    0,
      657,  652,  652,    0,  656,    0,  656,    0,  656,    0,
      657,  656,  657,  656,  657,  672,  676,    0,    0,  657,
        0,    0,    0,    0,    0,  672,  676,  672,  676,  672,
      676,  677,  692,    0,  672,  676,    0,    0,  672,    0,
        0,  677,  692,  677,  692,  677,  692,    0,    0,    0,
      677,  692,  742,  742,  742,  742,  742,  742,  742,  742,
      742,  742,  742,  742,  742,  743,  743,  743,  743,  743,
      743,  743,  743,  743,  743,  743,  743,  743,  744,  744,

      744,  744,  744,  744,  744,  744,  744,  744,  744,  744,
      744,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  746,  746,  746,  746,  746,  746,
      746,  746,  746,  746,  746,  746,  746,  747,  747,  747,
      747,    0,  747,  747,  747,  747,  747,  747,  747,  747,
      748,  748,  748,    0,  748,    0,  748,    0,  748,  749,
      749,    0,  749,  749,  750,  750,    0,    0,  750,  750,
        0,  750,  750,  750,  750,  750,  750,  751,  751,  751,
      751,    0,  751,  751,  751,  751,  751,  751,  751,  751,
      752,  752,  752,  752,  752,  752,  752,  752,    0,  752,

      752,  753,    0,    0,    0,  753,  753,  753,  753,  753,
      753,  753,  754,    0,    0,    0,  754,  754,  754,  754,
      754,  754,  754,  755,  755,    0,  755,  755,  756,  756,
        0,  756,  756,  757,  757,    0,  757,  757,  758,    0,
      758,  758,  759,  759,    0,  759,  759,  760,    0,  760,
      760,  761,    0,  761,  761,  762,    0,  762,  762,  763,
        0,  763,  763,  764,  764,  764,  764,  764,  764,  764,
      764,  764,  764,  764,  764,  764,  765,  765,    0,  765,
      765,  766,  766,    0,  766,  766,  766,  766,  766,  766,
      766,  766,  766,  766,  767,  767,  767,    0,    0,    0,

      767,    0,    0,    0,    0,  767,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741,
      741,  741,  741,  741,  741,  741,  741,  741,  741,  741
    } ;

/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[139] =
    {   0,
1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 
    0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0,     };

extern int asn1p__flex_debug;
int asn1p__flex_debug = 1;

static yyconst flex_int16_t yy_rule_linenum[138] =
    {   0,
       96,   97,   99,  102,  104,  107,  109,  110,  111,  114,
      116,  117,  118,  130,  137,  144,  150,  159,  167,  175,
      176,  178,  197,  203,  204,  205,  206,  207,  210,  216,
      223,  230,  237,  244,  251,  252,  253,  261,  262,  263,
      264,  265,  270,  271,  272,  273,  274,  275,  276,  277,
      278,  279,  280,  289,  290,  291,  292,  293,  294,  295,
      296,  297,  298,  299,  300,  301,  302,  303,  304,  305,
      306,  307,  308,  309,  310,  311,  312,  313,  314,  315,
      316,  317,  318,  319,  320,  321,  322,  323,  324,  325,
      326,  327,  328,  329,  330,  331,  332,  333,  334,  335,

      336,  337,  338,  339,  340,  341,  342,  343,  344,  345,
      346,  351,  352,  357,  358,  359,  362,  367,  373,  381,
      391,  396,  398,  399,  403,  408,  413,  419,  420,  422,
      428,  441,  444,  469,  513,  515,  526
    } ;

static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
static char *yy_full_match;
static int yy_lp;
#define REJECT \
{ \
*yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */ \
yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
++(yy_lp); \
goto find_rule; \
}

#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *asn1p_text;
#line 1 "asn1p_l.l"
#line 2 "asn1p_l.l"

#include <string.h>
#include <errno.h>
#include <assert.h>

#include "asn1parser.h"
#include "asn1p_y.h"

int asn1p_lex(void);
void asn1p_lexer_hack_push_opaque_state(void);		/* Used in .y */
void asn1p_lexer_hack_enable_with_syntax(void);		/* Used in .y */
void asn1p_lexer_hack_push_encoding_control(void);	/* Used in .y */

#define	YY_FATAL_ERROR(msg)	do {			\
		fprintf(stderr,				\
			"lexer error at line %d, "	\
			"text \"%s\"\n",		\
			asn1p_lineno, asn1p_text);		\
		exit(1);				\
	} while(0)

int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;

int asn1p_as_pointer;

static asn1c_integer_t _lex_atoi(const char *ptr);
static double          _lex_atod(const char *ptr);

/*
 * Check that the type is defined in the year of the standard choosen.
 */
#define	TYPE_LIFETIME(fyr, lyr)				\
	(!asn1p_lexer_types_year			\
	|| (fyr && fyr <= asn1p_lexer_types_year)	\
	|| (lyr && lyr  > asn1p_lexer_types_year))

/*
 * Check the the construction (or concept, i.e. CLASS) is defined in
 * a given year.
 */
#define	CONSTRUCT_LIFETIME(fyr, lyr)			\
	(!asn1p_lexer_constructs_year			\
	|| (fyr && fyr <= asn1p_lexer_constructs_year)	\
	|| (lyr && lyr  > asn1p_lexer_constructs_year))

/*
 * Append quoted string.
 */
#define	QAPPEND(text, tlen)	do {				\
		char *prev_text = asn1p_lval.tv_opaque.buf;	\
		int prev_len = asn1p_lval.tv_opaque.len;	\
		char *p;					\
								\
		p = malloc((tlen) + prev_len + 1);		\
		if(p == NULL) return -1;			\
								\
		if(prev_text) memcpy(p, prev_text, prev_len);	\
		memcpy(p + prev_len, text, tlen);		\
		p[prev_len + (tlen)] = '\0';			\
								\
		free(asn1p_lval.tv_opaque.buf);			\
		asn1p_lval.tv_opaque.buf = p;			\
		asn1p_lval.tv_opaque.len = (tlen) + prev_len;	\
	} while(0)

#define YY_NO_INPUT 1
/* Performance penalty is OK */
/* Controlled from within application */







/* Newline */
/* White-space */
#line 2085 "asn1p_l.c"

#define INITIAL 0
#define dash_comment 1
#define idash_comment 2
#define cpp_comment 3
#define quoted 4
#define opaque 5
#define encoding_control 6
#define with_syntax 7

#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 * down here because we want the user's section 1 to have been scanned first.
 * The user has a chance to override it with an option.
 */
/* %if-c-only */
#include <unistd.h>
/* %endif */
/* %if-c++-only */
/* %endif */
#endif

#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif

/* %if-c-only Reentrant structure and macros (non-C++). */
/* %if-reentrant */
/* %if-c-only */

static int yy_init_globals (void );

/* %endif */
/* %if-reentrant */
/* %endif */
/* %endif End reentrant structures and macros. */

/* Accessor methods to globals.
   These are made visible to non-reentrant scanners for convenience. */

int asn1p_lex_destroy (void );

int asn1p_get_debug (void );

void asn1p_set_debug (int debug_flag  );

YY_EXTRA_TYPE asn1p_get_extra (void );

void asn1p_set_extra (YY_EXTRA_TYPE user_defined  );

FILE *asn1p_get_in (void );

void asn1p_set_in  (FILE * in_str  );

FILE *asn1p_get_out (void );

void asn1p_set_out  (FILE * out_str  );

int asn1p_get_leng (void );

char *asn1p_get_text (void );

int asn1p_get_lineno (void );

void asn1p_set_lineno (int line_number  );

/* %if-bison-bridge */
/* %endif */

/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int asn1p_wrap (void );
#else
extern int asn1p_wrap (void );
#endif
#endif

/* %not-for-header */

    static void yyunput (int c,char *buf_ptr  );
    
/* %ok-for-header */

/* %endif */

#ifndef yytext_ptr
static void yy_flex_strncpy (char *,yyconst char *,int );
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (yyconst char * );
#endif

#ifndef YY_NO_INPUT
/* %if-c-only Standard (non-C++) definition */
/* %not-for-header */

#ifdef __cplusplus
static int yyinput (void );
#else
static int input (void );
#endif
/* %ok-for-header */

/* %endif */
#endif

/* %if-c-only */

        static int yy_start_stack_ptr = 0;
        static int yy_start_stack_depth = 0;
        static int *yy_start_stack = NULL;
    
    static void yy_push_state (int new_state );
    
    static void yy_pop_state (void );
    
    static int yy_top_state (void );
    
/* %endif */

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* %if-c-only Standard (non-C++) definition */
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO fwrite( asn1p_text, asn1p_leng, 1, asn1p_out )
/* %endif */
/* %if-c++-only C++ definition */
/* %endif */
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
		{ \
		int c = '*'; \
		int n; \
		for ( n = 0; n < max_size && \
			     (c = getc( asn1p_in )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( asn1p_in ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else \
		{ \
		errno=0; \
		while ( (result = fread(buf, 1, max_size, asn1p_in))==0 && ferror(asn1p_in)) \
			{ \
			if( errno != EINTR) \
				{ \
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
				break; \
				} \
			errno=0; \
			clearerr(asn1p_in); \
			} \
		}\
\
/* %if-c++-only C++ definition \ */\
/* %endif */

#endif

/* No semi-colon after return; correct usage is to write "yyterminate();" -
 * we don't want an extra ';' after the "return" because that will cause
 * some compilers to complain about unreachable statements.
 */
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
/* %if-c-only */
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
/* %endif */
/* %if-c++-only */
/* %endif */
#endif

/* %if-tables-serialization structures and prototypes */
/* %not-for-header */

/* %ok-for-header */

/* %not-for-header */

/* %tables-yydmap generated elements */
/* %endif */
/* end tables serialization structures and prototypes */

/* %ok-for-header */

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL_IS_OURS 1
/* %if-c-only Standard (non-C++) definition */

extern int asn1p_lex (void);

#define YY_DECL int asn1p_lex (void)
/* %endif */
/* %if-c++-only C++ definition */
/* %endif */
#endif /* !YY_DECL */

/* Code executed at the beginning of each rule, after asn1p_text and asn1p_leng
 * have been set up.
 */
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif

/* %% [6.0] YY_RULE_SETUP definition goes here */
#define YY_RULE_SETUP \
	YY_USER_ACTION

/* %not-for-header */

/** The main scanner function which does all the work.
 */
YY_DECL
{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;
    
/* %% [7.0] user's declarations go here */
#line 94 "asn1p_l.l"


#line 2347 "asn1p_l.c"

	if ( !(yy_init) )
		{
		(yy_init) = 1;

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

        /* Create the reject buffer large enough to save one state per allowed character. */
        if ( ! (yy_state_buf) )
            (yy_state_buf) = (yy_state_type *)asn1p_alloc(YY_STATE_BUF_SIZE  );
            if ( ! (yy_state_buf) )
                YY_FATAL_ERROR( "out of dynamic memory in asn1p_lex()" );

		if ( ! (yy_start) )
			(yy_start) = 1;	/* first start state */

		if ( ! asn1p_in )
/* %if-c-only */
			asn1p_in = stdin;
/* %endif */
/* %if-c++-only */
/* %endif */

		if ( ! asn1p_out )
/* %if-c-only */
			asn1p_out = stdout;
/* %endif */
/* %if-c++-only */
/* %endif */

		if ( ! YY_CURRENT_BUFFER ) {
			asn1p_ensure_buffer_stack ();
			YY_CURRENT_BUFFER_LVALUE =
				asn1p__create_buffer(asn1p_in,YY_BUF_SIZE );
		}

		asn1p__load_buffer_state( );
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
/* %% [8.0] yymore()-related code goes here */
		yy_cp = (yy_c_buf_p);

		/* Support of asn1p_text. */
		*yy_cp = (yy_hold_char);

		/* yy_bp points to the position in yy_ch_buf of the start of
		 * the current run.
		 */
		yy_bp = yy_cp;

/* %% [9.0] code to set up and find next match goes here */
		yy_current_state = (yy_start);

		(yy_state_ptr) = (yy_state_buf);
		*(yy_state_ptr)++ = yy_current_state;

yy_match:
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
				{
				yy_current_state = (int) yy_def[yy_current_state];
				if ( yy_current_state >= 742 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
			*(yy_state_ptr)++ = yy_current_state;
			++yy_cp;
			}
		while ( yy_current_state != 741 );

yy_find_action:
/* %% [10.0] code to find the action number goes here */
		yy_current_state = *--(yy_state_ptr);
		(yy_lp) = yy_accept[yy_current_state];
find_rule: /* we branch to this label when backing up */
		for ( ; ; ) /* until we find what rule we matched */
			{
			if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
				{
				yy_act = yy_acclist[(yy_lp)];
					{
					(yy_full_match) = yy_cp;
					break;
					}
				}
			--yy_cp;
			yy_current_state = *--(yy_state_ptr);
			(yy_lp) = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;

/* %% [11.0] code for asn1p_lineno update goes here */

		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
			{
			int yyl;
			for ( yyl = 0; yyl < asn1p_leng; ++yyl )
				if ( asn1p_text[yyl] == '\n' )
					   
    asn1p_lineno++;
;
			}

do_action:	/* This label is used only to access EOF actions. */

/* %% [12.0] debug code goes here */
		if ( asn1p__flex_debug )
			{
			if ( yy_act == 0 )
				fprintf( stderr, "--scanner backing up\n" );
			else if ( yy_act < 138 )
				fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
				         (long)yy_rule_linenum[yy_act], asn1p_text );
			else if ( yy_act == 138 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         asn1p_text );
			else if ( yy_act == 139 )
				fprintf( stderr, "--(end of buffer or a NUL)\n" );
			else
				fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
			}

		switch ( yy_act )
	{ /* beginning of action switch */
/* %% [13.0] actions go here */
case 1:
/* rule 1 can match eol */
*yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up asn1p_text again */
YY_RULE_SETUP
#line 96 "asn1p_l.l"
/* Immediately terminated long comment */
	YY_BREAK
case 2:
*yy_cp = (yy_hold_char); /* undo effects of setting up asn1p_text */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up asn1p_text again */
YY_RULE_SETUP
#line 97 "asn1p_l.l"
yy_push_state(idash_comment);	/* Incorrect, but acceptable */
	YY_BREAK

case 3:
YY_RULE_SETUP
#line 99 "asn1p_l.l"
yy_pop_state(); /* Acceptable end of comment */
	YY_BREAK

case 4:
YY_RULE_SETUP
#line 102 "asn1p_l.l"
asn1p_as_pointer = 1;
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 104 "asn1p_l.l"
yy_push_state(dash_comment);
	YY_BREAK

case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
#line 107 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 109 "asn1p_l.l"
yy_pop_state();	/* End of comment */
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 110 "asn1p_l.l"
/* Eat single dash */
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 111 "asn1p_l.l"
/* Eat */
	YY_BREAK

case 10:
YY_RULE_SETUP
#line 114 "asn1p_l.l"
yy_push_state(cpp_comment);
	YY_BREAK

case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
#line 116 "asn1p_l.l"
/* Eat */
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 117 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 118 "asn1p_l.l"
/* Eat */
	YY_BREAK

/*
	 * This is state is being set from corresponding .y module when
	 * higher-level data is necessary to make proper parsing of the
	 * underlying data. Thus, we enter the <opaque> state and save
	 * everything for later processing.
	 */

case 14:
YY_RULE_SETUP
#line 130 "asn1p_l.l"
{
			yy_push_state(opaque);
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 137 "asn1p_l.l"
{
			yy_pop_state();
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 16:
/* rule 16 can match eol */
YY_RULE_SETUP
#line 144 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 150 "asn1p_l.l"
{
			fprintf(stderr,
				"ASN.1 Parser syncronization failure: "
				"\"%s\" at line %d must not appear "
				"inside value definition\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 159 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_opaque;
		}
	YY_BREAK

case 19:
/* rule 19 can match eol */
YY_RULE_SETUP
#line 167 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = 0;
			asn1p_lval.tv_opaque.len = 0;
			QAPPEND(asn1p_text+1, asn1p_leng-1);
			yy_push_state(quoted);
		}
	YY_BREAK

case 20:
YY_RULE_SETUP
#line 175 "asn1p_l.l"
{ QAPPEND(asn1p_text, asn1p_leng-1); }	/* Add a single quote */
	YY_BREAK
case 21:
/* rule 21 can match eol */
YY_RULE_SETUP
#line 176 "asn1p_l.l"
{ QAPPEND(asn1p_text, asn1p_leng); }
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 178 "asn1p_l.l"
{
			yy_pop_state();
			/* Do not append last quote:
			// QAPPEND(asn1p_text, asn1p_leng); */

			if(asn1p_lexer_pedantic_1990
			&& strchr(asn1p_text, '\n')) {
				fprintf(stderr, "%s: "
				"Newlines are prohibited by ASN.1:1990\n",
				asn1p_lval.tv_opaque.buf);
				return -1;
			}

			return TOK_cstring;
		}
	YY_BREAK


case 23:
YY_RULE_SETUP
#line 197 "asn1p_l.l"
{
			const char *s = "ENCODING-CONTROL";
			const char *p = s + sizeof("ENCODING-CONTROL") - 2;
			for(; p >= s; p--) unput(*p);
			yy_pop_state();
		}
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 203 "asn1p_l.l"
unput('D'); unput('N'); unput('E'); yy_pop_state();
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 204 "asn1p_l.l"

	YY_BREAK
case 26:
YY_RULE_SETUP
#line 205 "asn1p_l.l"

	YY_BREAK
case 27:
YY_RULE_SETUP
#line 206 "asn1p_l.l"
/* Eat everything else */
	YY_BREAK
case 28:
/* rule 28 can match eol */
YY_RULE_SETUP
#line 207 "asn1p_l.l"

	YY_BREAK

case 29:
/* rule 29 can match eol */
YY_RULE_SETUP
#line 210 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = asn1p_text;
		return TOK_hstring;
	}
	YY_BREAK
case 30:
/* rule 30 can match eol */
YY_RULE_SETUP
#line 216 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_bstring;
	}
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 223 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number_negative;
	}
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 230 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 237 "asn1p_l.l"
{
		asn1p_lval.a_int = _lex_atoi(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 244 "asn1p_l.l"
{
		asn1p_lval.a_dbl = _lex_atod(asn1p_text);
		if(errno == ERANGE)
			return -1;
		return TOK_realnumber;
	}
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 251 "asn1p_l.l"
return TOK_ABSENT;
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 252 "asn1p_l.l"
return TOK_ALL;
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 253 "asn1p_l.l"
{
				/* Appeared in 1990, removed in 1997 */
				if(TYPE_LIFETIME(1990, 1997))
					return TOK_ANY;	
				fprintf(stderr, "Keyword \"%s\" at line %d "
					"is obsolete\n", asn1p_text, asn1p_lineno);
				REJECT;
			}
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 261 "asn1p_l.l"
return TOK_APPLICATION;
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 262 "asn1p_l.l"
return TOK_AUTOMATIC;
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 263 "asn1p_l.l"
return TOK_BEGIN;
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 264 "asn1p_l.l"
return TOK_BIT;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 265 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_BMPString;
				REJECT;
			}
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 270 "asn1p_l.l"
return TOK_BOOLEAN;
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 271 "asn1p_l.l"
return TOK_BY;
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 272 "asn1p_l.l"
return TOK_CHARACTER;
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 273 "asn1p_l.l"
return TOK_CHOICE;
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 274 "asn1p_l.l"
return TOK_CLASS;
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 275 "asn1p_l.l"
return TOK_COMPONENT;
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 276 "asn1p_l.l"
return TOK_COMPONENTS;
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 277 "asn1p_l.l"
return TOK_CONSTRAINED;
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 278 "asn1p_l.l"
return TOK_CONTAINING;
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 279 "asn1p_l.l"
return TOK_DEFAULT;
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 280 "asn1p_l.l"
{
				/* Appeared in 1990, removed in 1997 */
				if(TYPE_LIFETIME(1990, 1997))
					return TOK_DEFINED;
				fprintf(stderr, "Keyword \"%s\" at line %d "
					"is obsolete\n", asn1p_text, asn1p_lineno);
				/* Deprecated since */
				REJECT;
			}
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 289 "asn1p_l.l"
return TOK_DEFINITIONS;
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 290 "asn1p_l.l"
return TOK_EMBEDDED;
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 291 "asn1p_l.l"
return TOK_ENCODED;
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 292 "asn1p_l.l"
return TOK_ENCODING_CONTROL;
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 293 "asn1p_l.l"
return TOK_END;
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 294 "asn1p_l.l"
return TOK_ENUMERATED;
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 295 "asn1p_l.l"
return TOK_EXCEPT;
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 296 "asn1p_l.l"
return TOK_EXPLICIT;
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 297 "asn1p_l.l"
return TOK_EXPORTS;
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 298 "asn1p_l.l"
return TOK_EXTENSIBILITY;
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 299 "asn1p_l.l"
return TOK_EXTERNAL;
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 300 "asn1p_l.l"
return TOK_FALSE;
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 301 "asn1p_l.l"
return TOK_FROM;
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 302 "asn1p_l.l"
return TOK_GeneralizedTime;
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 303 "asn1p_l.l"
return TOK_GeneralString;
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 304 "asn1p_l.l"
return TOK_GraphicString;
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 305 "asn1p_l.l"
return TOK_IA5String;
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 306 "asn1p_l.l"
return TOK_IDENTIFIER;
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 307 "asn1p_l.l"
return TOK_IMPLICIT;
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 308 "asn1p_l.l"
return TOK_IMPLIED;
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 309 "asn1p_l.l"
return TOK_IMPORTS;
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 310 "asn1p_l.l"
return TOK_INCLUDES;
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 311 "asn1p_l.l"
return TOK_INSTANCE;
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 312 "asn1p_l.l"
return TOK_INSTRUCTIONS;
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 313 "asn1p_l.l"
return TOK_INTEGER;
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 314 "asn1p_l.l"
return TOK_INTERSECTION;
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 315 "asn1p_l.l"
return TOK_ISO646String;
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 316 "asn1p_l.l"
return TOK_MAX;
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 317 "asn1p_l.l"
return TOK_MIN;
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 318 "asn1p_l.l"
return TOK_MINUS_INFINITY;
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 319 "asn1p_l.l"
return TOK_NULL;
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 320 "asn1p_l.l"
return TOK_NumericString;
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 321 "asn1p_l.l"
return TOK_OBJECT;
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 322 "asn1p_l.l"
return TOK_ObjectDescriptor;
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 323 "asn1p_l.l"
return TOK_OCTET;
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 324 "asn1p_l.l"
return TOK_OF;
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 325 "asn1p_l.l"
return TOK_OPTIONAL;
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 326 "asn1p_l.l"
return TOK_PATTERN;
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 327 "asn1p_l.l"
return TOK_PDV;
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 328 "asn1p_l.l"
return TOK_PLUS_INFINITY;
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 329 "asn1p_l.l"
return TOK_PRESENT;
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 330 "asn1p_l.l"
return TOK_PrintableString;
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 331 "asn1p_l.l"
return TOK_PRIVATE;
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 332 "asn1p_l.l"
return TOK_REAL;
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 333 "asn1p_l.l"
return TOK_RELATIVE_OID;
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 334 "asn1p_l.l"
return TOK_SEQUENCE;
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 335 "asn1p_l.l"
return TOK_SET;
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 336 "asn1p_l.l"
return TOK_SIZE;
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 337 "asn1p_l.l"
return TOK_STRING;
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 338 "asn1p_l.l"
return TOK_SYNTAX;
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 339 "asn1p_l.l"
return TOK_T61String;
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 340 "asn1p_l.l"
return TOK_TAGS;
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 341 "asn1p_l.l"
return TOK_TeletexString;
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 342 "asn1p_l.l"
return TOK_TRUE;
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 343 "asn1p_l.l"
return TOK_UNION;
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 344 "asn1p_l.l"
return TOK_UNIQUE;
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 345 "asn1p_l.l"
return TOK_UNIVERSAL;
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 346 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UniversalString;
				REJECT;
			}
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 351 "asn1p_l.l"
return TOK_UTCTime;
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 352 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UTF8String;
				REJECT;
			}
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 357 "asn1p_l.l"
return TOK_VideotexString;
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 358 "asn1p_l.l"
return TOK_VisibleString;
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 359 "asn1p_l.l"
return TOK_WITH;
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 362 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_typefieldreference;
	}
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 367 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_valuefieldreference;
	}
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 373 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_identifier;
	}
	YY_BREAK
/*
	 * objectclassreference
	 */
case 120:
YY_RULE_SETUP
#line 381 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_capitalreference;
	}
	YY_BREAK
/*
	 * typereference, modulereference
	 * NOTE: TOK_objectclassreference must be combined
	 * with this token to produce true typereference.
	 */
case 121:
YY_RULE_SETUP
#line 391 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(asn1p_text);
		return TOK_typereference;
	}
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 396 "asn1p_l.l"
return TOK_PPEQ;
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 398 "asn1p_l.l"
return TOK_ThreeDots;
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 399 "asn1p_l.l"
return TOK_TwoDots;
	YY_BREAK

case 125:
YY_RULE_SETUP
#line 403 "asn1p_l.l"
{
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 408 "asn1p_l.l"
{
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 127:
YY_RULE_SETUP
#line 413 "asn1p_l.l"
{
				yy_push_state(with_syntax);
				asn1p_lval.tv_str = strdup(asn1p_text);
				return TOK_Literal;
			}
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 419 "asn1p_l.l"
return '[';
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 420 "asn1p_l.l"
return ']';
	YY_BREAK
case 130:
/* rule 130 can match eol */
YY_RULE_SETUP
#line 422 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(asn1p_text);
			asn1p_lval.tv_opaque.len = asn1p_leng;
			return TOK_whitespace;
			}
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 428 "asn1p_l.l"
{
				yy_pop_state();
				if(YYSTATE == with_syntax) {
					asn1p_lval.tv_str = strdup(asn1p_text);
					return TOK_Literal;
				} else {
					return '}';
				}
			}
	YY_BREAK

case 132:
/* rule 132 can match eol */
YY_RULE_SETUP
#line 441 "asn1p_l.l"
/* Ignore whitespace */
	YY_BREAK
case 133:
/* rule 133 can match eol */
YY_RULE_SETUP
#line 444 "asn1p_l.l"
{
		asn1c_integer_t v1 = -1, v2 = -1;
		char *p;
		for(p = asn1p_text; *p; p++)
			if(*p >= '0' && *p <= '9')
			{ v1 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;	/* Skip digits */
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v2 = _lex_atoi(p); break; }
		if(v1 < 0 || v1 > 7) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
				"mandates 0..7 range for Tuple's TableColumn\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v2 < 0 || v2 > 15) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
				"mandates 0..15 range for Tuple's TableRow\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		asn1p_lval.a_int = (v1 << 4) + v2;
		return TOK_tuple;
	}
	YY_BREAK
case 134:
/* rule 134 can match eol */
YY_RULE_SETUP
#line 469 "asn1p_l.l"
{
		asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1;
		char *p;
		for(p = asn1p_text; *p; p++)
			if(*p >= '0' && *p <= '9')
			{ v1 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;	/* Skip digits */
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v2 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v3 = _lex_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v4 = _lex_atoi(p); break; }
		if(v1 < 0 || v1 > 127) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..127 range for Quadruple's Group\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v2 < 0 || v2 > 255) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..255 range for Quadruple's Plane\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v3 < 0 || v3 > 255) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..255 range for Quadruple's Row\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		if(v4 < 0 || v4 > 255) {
			fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
				"mandates 0..255 range for Quadruple's Cell\n",
				asn1p_text, asn1p_lineno);
			return -1;
		}
		asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4;
		return TOK_quadruple;
	}
	YY_BREAK
case 135:
YY_RULE_SETUP
#line 513 "asn1p_l.l"
return asn1p_text[0];
	YY_BREAK
case 136:
/* rule 136 can match eol */
YY_RULE_SETUP
#line 515 "asn1p_l.l"
{
		if(TYPE_LIFETIME(1994, 0))
			fprintf(stderr, "ERROR: ");
		fprintf(stderr,
		"Symbol '%c' at line %d is prohibited "
		"by ASN.1:1994 and ASN.1:1997\n",
			asn1p_text[0], asn1p_lineno);
		if(TYPE_LIFETIME(1994, 0))
			return -1;
	}
	YY_BREAK
case 137:
YY_RULE_SETUP
#line 526 "asn1p_l.l"
{
		fprintf(stderr,
			"Unexpected token at line %d: \"%s\"\n",
			asn1p_lineno, asn1p_text);
		while(YYSTATE != INITIAL)
			yy_pop_state();
		if(0) {
			yy_top_state();	/* Just to use this function. */
			yy_fatal_error("Parse error");
		}
		return -1;
}
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(dash_comment):
case YY_STATE_EOF(idash_comment):
case YY_STATE_EOF(cpp_comment):
case YY_STATE_EOF(quoted):
case YY_STATE_EOF(opaque):
case YY_STATE_EOF(encoding_control):
case YY_STATE_EOF(with_syntax):
#line 539 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 138:
YY_RULE_SETUP
#line 546 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 3458 "asn1p_l.c"

	case YY_END_OF_BUFFER:
		{
		/* Amount of text matched not including the EOB char. */
		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;

		/* Undo the effects of YY_DO_BEFORE_ACTION. */
		*yy_cp = (yy_hold_char);
		YY_RESTORE_YY_MORE_OFFSET

		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed asn1p_in at a new source and called
			 * asn1p_lex().  If so, then we have to assure
			 * consistency between YY_CURRENT_BUFFER and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
			YY_CURRENT_BUFFER_LVALUE->yy_input_file = asn1p_in;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
			}

		/* Note that here we test for yy_c_buf_p "<=" to the position
		 * of the first EOB in the buffer, since yy_c_buf_p will
		 * already have been incremented past the NUL character
		 * (since all states make transitions on EOB to the
		 * end-of-buffer state).  Contrast this with the test
		 * in input().
		 */
		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state(  );

			/* Okay, we're now positioned to make the NUL
			 * transition.  We couldn't have
			 * yy_get_previous_state() go ahead and do it
			 * for us because it doesn't know how to deal
			 * with the possibility of jamming (and we don't
			 * want to build jamming into it because then it
			 * will run more slowly).
			 */

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = (yytext_ptr) + YY_MORE_ADJ;

			if ( yy_next_state )
				{
				/* Consume the NUL. */
				yy_cp = ++(yy_c_buf_p);
				yy_current_state = yy_next_state;
				goto yy_match;
				}

			else
				{
/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
				yy_cp = (yy_c_buf_p);
				goto yy_find_action;
				}
			}

		else switch ( yy_get_next_buffer(  ) )
			{
			case EOB_ACT_END_OF_FILE:
				{
				(yy_did_buffer_switch_on_eof) = 0;

				if ( asn1p_wrap( ) )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * asn1p_text, we can now set up
					 * yy_c_buf_p so that if some total
					 * hoser (like flex itself) wants to
					 * call the scanner after we return the
					 * YY_NULL, it'll still work - another
					 * YY_NULL will get returned.
					 */
					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

				else
					{
					if ( ! (yy_did_buffer_switch_on_eof) )
						YY_NEW_FILE;
					}
				break;
				}

			case EOB_ACT_CONTINUE_SCAN:
				(yy_c_buf_p) =
					(yytext_ptr) + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state(  );

				yy_cp = (yy_c_buf_p);
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
				goto yy_match;

			case EOB_ACT_LAST_MATCH:
				(yy_c_buf_p) =
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];

				yy_current_state = yy_get_previous_state(  );

				yy_cp = (yy_c_buf_p);
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
				goto yy_find_action;
			}
		break;
		}

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
} /* end of asn1p_lex */
/* %ok-for-header */

/* %if-c++-only */
/* %not-for-header */

/* %ok-for-header */

/* %endif */

/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
 */
/* %if-c-only */
static int yy_get_next_buffer (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
	register char *source = (yytext_ptr);
	register int number_to_move, i;
	int ret_val;

	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
		{ /* Don't try to fill the buffer, so this is an EOF. */
		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
			{
			/* We matched a single character, the EOB, so
			 * treat this as a final EOF.
			 */
			return EOB_ACT_END_OF_FILE;
			}

		else
			{
			/* We matched some text prior to the EOB, first
			 * process it.
			 */
			return EOB_ACT_LAST_MATCH;
			}
		}

	/* Try to read more data. */

	/* First move last chars to start of buffer. */
	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;

	for ( i = 0; i < number_to_move; ++i )
		*(dest++) = *(source++);

	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
		/* don't do the read, it's not guaranteed to return an EOF,
		 * just force an EOF
		 */
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;

	else
		{
			int num_to_read =
			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */

			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );

			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

		/* Read in more data. */
		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
			(yy_n_chars), (size_t) num_to_read );

		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	if ( (yy_n_chars) == 0 )
		{
		if ( number_to_move == YY_MORE_ADJ )
			{
			ret_val = EOB_ACT_END_OF_FILE;
			asn1p_restart(asn1p_in  );
			}

		else
			{
			ret_val = EOB_ACT_LAST_MATCH;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
				YY_BUFFER_EOF_PENDING;
			}
		}

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
		/* Extend the array by 50%, plus the number we really need. */
		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) asn1p_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
	}

	(yy_n_chars) += number_to_move;
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;

	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];

	return ret_val;
}

/* yy_get_previous_state - get the state just before the EOB char was reached */

/* %if-c-only */
/* %not-for-header */

    static yy_state_type yy_get_previous_state (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
	register yy_state_type yy_current_state;
	register char *yy_cp;
    
/* %% [15.0] code to get the start state into yy_current_state goes here */
	yy_current_state = (yy_start);

	(yy_state_ptr) = (yy_state_buf);
	*(yy_state_ptr)++ = yy_current_state;

	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
		{
/* %% [16.0] code to find the next state goes here */
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
			{
			yy_current_state = (int) yy_def[yy_current_state];
			if ( yy_current_state >= 742 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		*(yy_state_ptr)++ = yy_current_state;
		}

	return yy_current_state;
}

/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
 *	next_state = yy_try_NUL_trans( current_state );
 */
/* %if-c-only */
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
/* %endif */
/* %if-c++-only */
/* %endif */
{
	register int yy_is_jam;
    /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */

	register YY_CHAR yy_c = 1;
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
		{
		yy_current_state = (int) yy_def[yy_current_state];
		if ( yy_current_state >= 742 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
	yy_is_jam = (yy_current_state == 741);
	if ( ! yy_is_jam )
		*(yy_state_ptr)++ = yy_current_state;

	return yy_is_jam ? 0 : yy_current_state;
}

/* %if-c-only */

    static void yyunput (int c, register char * yy_bp )
/* %endif */
/* %if-c++-only */
/* %endif */
{
	register char *yy_cp;
    
    yy_cp = (yy_c_buf_p);

	/* undo effects of setting up asn1p_text */
	*yy_cp = (yy_hold_char);

	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
		{ /* need to shift things up to make room */
		/* +2 for EOB chars. */
		register int number_to_move = (yy_n_chars) + 2;
		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
		register char *source =
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];

		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
			*--dest = *--source;

		yy_cp += (int) (dest - source);
		yy_bp += (int) (dest - source);
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;

		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
		}

	*--yy_cp = (char) c;

/* %% [18.0] update asn1p_lineno here */

    if ( c == '\n' ){
        --asn1p_lineno;
    }

	(yytext_ptr) = yy_bp;
	(yy_hold_char) = *yy_cp;
	(yy_c_buf_p) = yy_cp;
}
/* %if-c-only */

/* %endif */

/* %if-c-only */
#ifndef YY_NO_INPUT
#ifdef __cplusplus
    static int yyinput (void)
#else
    static int input  (void)
#endif

/* %endif */
/* %if-c++-only */
/* %endif */
{
	int c;
    
	*(yy_c_buf_p) = (yy_hold_char);

	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
		{
		/* yy_c_buf_p now points to the character we want to return.
		 * If this occurs *before* the EOB characters, then it's a
		 * valid NUL; if not, then we've hit the end of the buffer.
		 */
		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
			/* This was really a NUL. */
			*(yy_c_buf_p) = '\0';

		else
			{ /* need more input */
			int offset = (yy_c_buf_p) - (yytext_ptr);
			++(yy_c_buf_p);

			switch ( yy_get_next_buffer(  ) )
				{
				case EOB_ACT_LAST_MATCH:
					/* This happens because yy_g_n_b()
					 * sees that we've accumulated a
					 * token and flags that we need to
					 * try matching the token before
					 * proceeding.  But for input(),
					 * there's no matching to consider.
					 * So convert the EOB_ACT_LAST_MATCH
					 * to EOB_ACT_END_OF_FILE.
					 */

					/* Reset buffer status. */
					asn1p_restart(asn1p_in );

					/*FALLTHROUGH*/

				case EOB_ACT_END_OF_FILE:
					{
					if ( asn1p_wrap( ) )
						return EOF;

					if ( ! (yy_did_buffer_switch_on_eof) )
						YY_NEW_FILE;
#ifdef __cplusplus
					return yyinput();
#else
					return input();
#endif
					}

				case EOB_ACT_CONTINUE_SCAN:
					(yy_c_buf_p) = (yytext_ptr) + offset;
					break;
				}
			}
		}

	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
	*(yy_c_buf_p) = '\0';	/* preserve asn1p_text */
	(yy_hold_char) = *++(yy_c_buf_p);

/* %% [19.0] update BOL and asn1p_lineno */
	if ( c == '\n' )
		   
    asn1p_lineno++;
;

	return c;
}
/* %if-c-only */
#endif	/* ifndef YY_NO_INPUT */
/* %endif */

/** Immediately switch to a different input stream.
 * @param input_file A readable stream.
 * 
 * @note This function does not reset the start condition to @c INITIAL .
 */
/* %if-c-only */
    void asn1p_restart  (FILE * input_file )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    
	if ( ! YY_CURRENT_BUFFER ){
        asn1p_ensure_buffer_stack ();
		YY_CURRENT_BUFFER_LVALUE =
            asn1p__create_buffer(asn1p_in,YY_BUF_SIZE );
	}

	asn1p__init_buffer(YY_CURRENT_BUFFER,input_file );
	asn1p__load_buffer_state( );
}

/** Switch to a different input buffer.
 * @param new_buffer The new input buffer.
 * 
 */
/* %if-c-only */
    void asn1p__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    
	/* TODO. We should be able to replace this entire function body
	 * with
	 *		asn1p_pop_buffer_state();
	 *		asn1p_push_buffer_state(new_buffer);
     */
	asn1p_ensure_buffer_stack ();
	if ( YY_CURRENT_BUFFER == new_buffer )
		return;

	if ( YY_CURRENT_BUFFER )
		{
		/* Flush out information for old buffer. */
		*(yy_c_buf_p) = (yy_hold_char);
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	YY_CURRENT_BUFFER_LVALUE = new_buffer;
	asn1p__load_buffer_state( );

	/* We don't actually know whether we did this switch during
	 * EOF (asn1p_wrap()) processing, but the only time this flag
	 * is looked at is after asn1p_wrap() is called, so it's safe
	 * to go ahead and always set it.
	 */
	(yy_did_buffer_switch_on_eof) = 1;
}

/* %if-c-only */
static void asn1p__load_buffer_state  (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
	asn1p_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
	(yy_hold_char) = *(yy_c_buf_p);
}

/** Allocate and initialize an input buffer state.
 * @param file A readable stream.
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
 * 
 * @return the allocated buffer state.
 */
/* %if-c-only */
    YY_BUFFER_STATE asn1p__create_buffer  (FILE * file, int  size )
/* %endif */
/* %if-c++-only */
/* %endif */
{
	YY_BUFFER_STATE b;
    
	b = (YY_BUFFER_STATE) asn1p_alloc(sizeof( struct yy_buffer_state )  );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__create_buffer()" );

	b->yy_buf_size = size;

	/* yy_ch_buf has to be 2 characters longer than the size given because
	 * we need to put in 2 end-of-buffer characters.
	 */
	b->yy_ch_buf = (char *) asn1p_alloc(b->yy_buf_size + 2  );
	if ( ! b->yy_ch_buf )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__create_buffer()" );

	b->yy_is_our_buffer = 1;

	asn1p__init_buffer(b,file );

	return b;
}

/** Destroy the buffer.
 * @param b a buffer created with asn1p__create_buffer()
 * 
 */
/* %if-c-only */
    void asn1p__delete_buffer (YY_BUFFER_STATE  b )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    
	if ( ! b )
		return;

	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;

	if ( b->yy_is_our_buffer )
		asn1p_free((void *) b->yy_ch_buf  );

	asn1p_free((void *) b  );
}

/* %if-c-only */

/* %endif */

/* %if-c++-only */
/* %endif */

/* Initializes or reinitializes a buffer.
 * This function is sometimes called more than once on the same buffer,
 * such as during a asn1p_restart() or at EOF.
 */
/* %if-c-only */
    static void asn1p__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
/* %endif */
/* %if-c++-only */
/* %endif */

{
	int oerrno = errno;
    
	asn1p__flush_buffer(b );

	b->yy_input_file = file;
	b->yy_fill_buffer = 1;

    /* If b is the current buffer, then asn1p__init_buffer was _probably_
     * called from asn1p_restart() or through yy_get_next_buffer.
     * In that case, we don't want to reset the lineno or column.
     */
    if (b != YY_CURRENT_BUFFER){
        b->yy_bs_lineno = 1;
        b->yy_bs_column = 0;
    }

/* %if-c-only */

        b->yy_is_interactive = 0;
    
/* %endif */
/* %if-c++-only */
/* %endif */
	errno = oerrno;
}

/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
 * 
 */
/* %if-c-only */
    void asn1p__flush_buffer (YY_BUFFER_STATE  b )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if ( ! b )
		return;

	b->yy_n_chars = 0;

	/* We always need two end-of-buffer characters.  The first causes
	 * a transition to the end-of-buffer state.  The second causes
	 * a jam in that state.
	 */
	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;

	b->yy_buf_pos = &b->yy_ch_buf[0];

	b->yy_at_bol = 1;
	b->yy_buffer_status = YY_BUFFER_NEW;

	if ( b == YY_CURRENT_BUFFER )
		asn1p__load_buffer_state( );
}

/* %if-c-or-c++ */
/** Pushes the new state onto the stack. The new state becomes
 *  the current state. This function will allocate the stack
 *  if necessary.
 *  @param new_buffer The new state.
 *  
 */
/* %if-c-only */
void asn1p_push_buffer_state (YY_BUFFER_STATE new_buffer )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if (new_buffer == NULL)
		return;

	asn1p_ensure_buffer_stack();

	/* This block is copied from asn1p__switch_to_buffer. */
	if ( YY_CURRENT_BUFFER )
		{
		/* Flush out information for old buffer. */
		*(yy_c_buf_p) = (yy_hold_char);
		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	/* Only push if top exists. Otherwise, replace top. */
	if (YY_CURRENT_BUFFER)
		(yy_buffer_stack_top)++;
	YY_CURRENT_BUFFER_LVALUE = new_buffer;

	/* copied from asn1p__switch_to_buffer. */
	asn1p__load_buffer_state( );
	(yy_did_buffer_switch_on_eof) = 1;
}
/* %endif */

/* %if-c-or-c++ */
/** Removes and deletes the top of the stack, if present.
 *  The next element becomes the new top.
 *  
 */
/* %if-c-only */
void asn1p_pop_buffer_state (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if (!YY_CURRENT_BUFFER)
		return;

	asn1p__delete_buffer(YY_CURRENT_BUFFER );
	YY_CURRENT_BUFFER_LVALUE = NULL;
	if ((yy_buffer_stack_top) > 0)
		--(yy_buffer_stack_top);

	if (YY_CURRENT_BUFFER) {
		asn1p__load_buffer_state( );
		(yy_did_buffer_switch_on_eof) = 1;
	}
}
/* %endif */

/* %if-c-or-c++ */
/* Allocates the stack if it does not exist.
 *  Guarantees space for at least one push.
 */
/* %if-c-only */
static void asn1p_ensure_buffer_stack (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
	int num_to_alloc;
    
	if (!(yy_buffer_stack)) {

		/* First allocation is just for 2 elements, since we don't know if this
		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
		 * immediate realloc on the next call.
         */
		num_to_alloc = 1;
		(yy_buffer_stack) = (struct yy_buffer_state**)asn1p_alloc
								(num_to_alloc * sizeof(struct yy_buffer_state*)
								);
		if ( ! (yy_buffer_stack) )
			YY_FATAL_ERROR( "out of dynamic memory in asn1p_ensure_buffer_stack()" );
								  
		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
				
		(yy_buffer_stack_max) = num_to_alloc;
		(yy_buffer_stack_top) = 0;
		return;
	}

	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){

		/* Increase the buffer to prepare for a possible push. */
		int grow_size = 8 /* arbitrary grow size */;

		num_to_alloc = (yy_buffer_stack_max) + grow_size;
		(yy_buffer_stack) = (struct yy_buffer_state**)asn1p_realloc
								((yy_buffer_stack),
								num_to_alloc * sizeof(struct yy_buffer_state*)
								);
		if ( ! (yy_buffer_stack) )
			YY_FATAL_ERROR( "out of dynamic memory in asn1p_ensure_buffer_stack()" );

		/* zero only the new slots.*/
		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
		(yy_buffer_stack_max) = num_to_alloc;
	}
}
/* %endif */

/* %if-c-only */
/** Setup the input buffer state to scan directly from a user-specified character buffer.
 * @param base the character buffer
 * @param size the size in bytes of the character buffer
 * 
 * @return the newly allocated buffer state object. 
 */
YY_BUFFER_STATE asn1p__scan_buffer  (char * base, yy_size_t  size )
{
	YY_BUFFER_STATE b;
    
	if ( size < 2 ||
	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
	     base[size-1] != YY_END_OF_BUFFER_CHAR )
		/* They forgot to leave room for the EOB's. */
		return 0;

	b = (YY_BUFFER_STATE) asn1p_alloc(sizeof( struct yy_buffer_state )  );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__scan_buffer()" );

	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
	b->yy_buf_pos = b->yy_ch_buf = base;
	b->yy_is_our_buffer = 0;
	b->yy_input_file = 0;
	b->yy_n_chars = b->yy_buf_size;
	b->yy_is_interactive = 0;
	b->yy_at_bol = 1;
	b->yy_fill_buffer = 0;
	b->yy_buffer_status = YY_BUFFER_NEW;

	asn1p__switch_to_buffer(b  );

	return b;
}
/* %endif */

/* %if-c-only */
/** Setup the input buffer state to scan a string. The next call to asn1p_lex() will
 * scan from a @e copy of @a str.
 * @param yystr a NUL-terminated string to scan
 * 
 * @return the newly allocated buffer state object.
 * @note If you want to scan bytes that may contain NUL values, then use
 *       asn1p__scan_bytes() instead.
 */
YY_BUFFER_STATE asn1p__scan_string (yyconst char * yystr )
{
    
	return asn1p__scan_bytes(yystr,strlen(yystr) );
}
/* %endif */

/* %if-c-only */
/** Setup the input buffer state to scan the given bytes. The next call to asn1p_lex() will
 * scan from a @e copy of @a bytes.
 * @param bytes the byte buffer to scan
 * @param len the number of bytes in the buffer pointed to by @a bytes.
 * 
 * @return the newly allocated buffer state object.
 */
YY_BUFFER_STATE asn1p__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n;
	int i;
    
	/* Get memory for full buffer, including space for trailing EOB's. */
	n = _yybytes_len + 2;
	buf = (char *) asn1p_alloc(n  );
	if ( ! buf )
		YY_FATAL_ERROR( "out of dynamic memory in asn1p__scan_bytes()" );

	for ( i = 0; i < _yybytes_len; ++i )
		buf[i] = yybytes[i];

	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;

	b = asn1p__scan_buffer(buf,n );
	if ( ! b )
		YY_FATAL_ERROR( "bad buffer in asn1p__scan_bytes()" );

	/* It's okay to grow etc. this buffer, and we should throw it
	 * away when we're done.
	 */
	b->yy_is_our_buffer = 1;

	return b;
}
/* %endif */

/* %if-c-only */
    static void yy_push_state (int  new_state )
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
		{
		yy_size_t new_size;

		(yy_start_stack_depth) += YY_START_STACK_INCR;
		new_size = (yy_start_stack_depth) * sizeof( int );

		if ( ! (yy_start_stack) )
			(yy_start_stack) = (int *) asn1p_alloc(new_size  );

		else
			(yy_start_stack) = (int *) asn1p_realloc((void *) (yy_start_stack),new_size  );

		if ( ! (yy_start_stack) )
			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
		}

	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;

	BEGIN(new_state);
}

/* %if-c-only */
    static void yy_pop_state  (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	if ( --(yy_start_stack_ptr) < 0 )
		YY_FATAL_ERROR( "start-condition stack underflow" );

	BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
}

/* %if-c-only */
    static int yy_top_state  (void)
/* %endif */
/* %if-c++-only */
/* %endif */
{
    	return (yy_start_stack)[(yy_start_stack_ptr) - 1];
}

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

/* %if-c-only */
static void yy_fatal_error (yyconst char* msg )
{
    	(void) fprintf( stderr, "%s\n", msg );
	exit( YY_EXIT_FAILURE );
}
/* %endif */
/* %if-c++-only */
/* %endif */

/* Redefine yyless() so it works in section 3 code. */

#undef yyless
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up asn1p_text. */ \
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
		asn1p_text[asn1p_leng] = (yy_hold_char); \
		(yy_c_buf_p) = asn1p_text + yyless_macro_arg; \
		(yy_hold_char) = *(yy_c_buf_p); \
		*(yy_c_buf_p) = '\0'; \
		asn1p_leng = yyless_macro_arg; \
		} \
	while ( 0 )

/* Accessor  methods (get/set functions) to struct members. */

/* %if-c-only */
/* %if-reentrant */
/* %endif */

/** Get the current line number.
 * 
 */
int asn1p_get_lineno  (void)
{
        
    return asn1p_lineno;
}

/** Get the input stream.
 * 
 */
FILE *asn1p_get_in  (void)
{
        return asn1p_in;
}

/** Get the output stream.
 * 
 */
FILE *asn1p_get_out  (void)
{
        return asn1p_out;
}

/** Get the length of the current token.
 * 
 */
int asn1p_get_leng  (void)
{
        return asn1p_leng;
}

/** Get the current token.
 * 
 */

char *asn1p_get_text  (void)
{
        return asn1p_text;
}

/* %if-reentrant */
/* %endif */

/** Set the current line number.
 * @param line_number
 * 
 */
void asn1p_set_lineno (int  line_number )
{
    
    asn1p_lineno = line_number;
}

/** Set the input stream. This does not discard the current
 * input buffer.
 * @param in_str A readable stream.
 * 
 * @see asn1p__switch_to_buffer
 */
void asn1p_set_in (FILE *  in_str )
{
        asn1p_in = in_str ;
}

void asn1p_set_out (FILE *  out_str )
{
        asn1p_out = out_str ;
}

int asn1p_get_debug  (void)
{
        return asn1p__flex_debug;
}

void asn1p_set_debug (int  bdebug )
{
        asn1p__flex_debug = bdebug ;
}

/* %endif */

/* %if-reentrant */
/* %if-bison-bridge */
/* %endif */
/* %endif if-c-only */

/* %if-c-only */
static int yy_init_globals (void)
{
        /* Initialization is the same as for the non-reentrant scanner.
     * This function is called from asn1p_lex_destroy(), so don't allocate here.
     */

    /* We do not touch asn1p_lineno unless the option is enabled. */
    asn1p_lineno =  1;
    
    (yy_buffer_stack) = 0;
    (yy_buffer_stack_top) = 0;
    (yy_buffer_stack_max) = 0;
    (yy_c_buf_p) = (char *) 0;
    (yy_init) = 0;
    (yy_start) = 0;

    (yy_start_stack_ptr) = 0;
    (yy_start_stack_depth) = 0;
    (yy_start_stack) =  NULL;

    (yy_state_buf) = 0;
    (yy_state_ptr) = 0;
    (yy_full_match) = 0;
    (yy_lp) = 0;

/* Defined in main.c */
#ifdef YY_STDINIT
    asn1p_in = stdin;
    asn1p_out = stdout;
#else
    asn1p_in = (FILE *) 0;
    asn1p_out = (FILE *) 0;
#endif

    /* For future reference: Set errno on error, since we are called by
     * asn1p_lex_init()
     */
    return 0;
}
/* %endif */

/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
/* asn1p_lex_destroy is for both reentrant and non-reentrant scanners. */
int asn1p_lex_destroy  (void)
{
    
    /* Pop the buffer stack, destroying each element. */
	while(YY_CURRENT_BUFFER){
		asn1p__delete_buffer(YY_CURRENT_BUFFER  );
		YY_CURRENT_BUFFER_LVALUE = NULL;
		asn1p_pop_buffer_state();
	}

	/* Destroy the stack itself. */
	asn1p_free((yy_buffer_stack) );
	(yy_buffer_stack) = NULL;

    /* Destroy the start condition stack. */
        asn1p_free((yy_start_stack)  );
        (yy_start_stack) = NULL;

    asn1p_free ( (yy_state_buf) );
    (yy_state_buf)  = NULL;

    /* Reset the globals. This is important in a non-reentrant scanner so the next time
     * asn1p_lex() is called, initialization will occur. */
    yy_init_globals( );

/* %if-reentrant */
/* %endif */
    return 0;
}
/* %endif */

/*
 * Internal utility routines.
 */

#ifndef yytext_ptr
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
{
	register int i;
	for ( i = 0; i < n; ++i )
		s1[i] = s2[i];
}
#endif

#ifdef YY_NEED_STRLEN
static int yy_flex_strlen (yyconst char * s )
{
	register int n;
	for ( n = 0; s[n]; ++n )
		;

	return n;
}
#endif

void *asn1p_alloc (yy_size_t  size )
{
	return (void *) malloc( size );
}

void *asn1p_realloc  (void * ptr, yy_size_t  size )
{
	/* The cast to (char *) in the following accommodates both
	 * implementations that use char* generic pointers, and those
	 * that use void* generic pointers.  It works with the latter
	 * because both ANSI C and C++ allow castless assignment from
	 * any pointer type to void*, and deal with argument conversions
	 * as though doing an assignment.
	 */
	return (void *) realloc( (char *) ptr, size );
}

void asn1p_free (void * ptr )
{
	free( (char *) ptr );	/* see asn1p_realloc() for (char *) cast */
}

/* %if-tables-serialization definitions */
/* %define-yytables   The name for this specific scanner's tables. */
#define YYTABLES_NAME "yytables"
/* %endif */

/* %ok-for-header */

#line 546 "asn1p_l.l"



/*
 * Very dirty but wonderful hack allowing to rule states from within .y file.
 */
void asn1p_lexer_hack_push_opaque_state() { yy_push_state(opaque); }

/*
 * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
 */
void asn1p_lexer_hack_enable_with_syntax() { yy_push_state(with_syntax); }

/* Yet another */
void asn1p_lexer_hack_push_encoding_control() {
	yy_push_state(encoding_control);
}

static asn1c_integer_t
_lex_atoi(const char *ptr) {
	asn1c_integer_t value;
	if(asn1p_atoi(ptr, &value)) {
		fprintf(stderr,
			"Value \"%s\" at line %d is too large "
			"for this compiler! Please contact the asn1c author.\n",
			ptr, asn1p_lineno);
		errno = ERANGE;
	}
	return value;
}

static double
_lex_atod(const char *ptr) {
	double value;
	errno = 0;
	value = strtod(ptr, 0);
	if(errno) {
		fprintf(stderr,
			"Value \"%s\" at line %d is outside of `double` range "
			"in this compiler! Please contact the asn1c author.\n",
			ptr, asn1p_lineno);
		errno = ERANGE;
	}
	return value;
}


