#line 2 "lex.yy.c"

#line 4 "lex.yy.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

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

/* %if-not-reentrant */
extern yy_size_t 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 { \
                yy_size_t 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_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.
	 */
	yy_size_t 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 yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
yy_size_t 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,yy_size_t 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 = (yy_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 140
#define YY_END_OF_BUFFER 141
/* 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[1272] =
    {   0,
      141,  139,  140,  132,  139,  140,  132,  140,  137,  139,
      140,   19,  139,  140,  137,  139,  140,  139,  140,  137,
      139,  140,  139,  140,  139,  140,  137,  139,  140,  139,
      140,   33,  139,  140,   32,  139,  140,  137,  139,  140,
      139,  140,  120,  121,  139,  140,  120,  121,  139,  140,
      120,  121,  139,  140,  120,  121,  139,  140,  120,  121,
      139,  140,  120,  121,  139,  140,  120,  121,  139,  140,
      120,  121,  139,  140,  120,  121,  139,  140,  120,  121,
      139,  140,  120,  121,  139,  140,  120,  121,  139,  140,
      120,  121,  139,  140,  120,  121,  139,  140,  120,  121,

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

       27,  139,  140,  130,  139,  140,  130,  140,  139,  140,
      126,  139,  140,  139,  140,  139,  140,  125,  139,  140,
      128,  139,  140,  129,  139,  140,  127,  139,  140,  131,
      139,  140,  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,  135,
      136,  119,    9,    7,    7,   12,   21,   20,   16,   25,
       25,   26,   25,   26,  130,    5,  125,  138,  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[747] =
    {   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,  131,  134,  136,  139,
      142,  145,  149,  151,  154,  157,  160,  163,  165,  168,
      171,  173,  176,  179,  182,  185,  189,  192,  194,  199,
      204,  207,  209,  211,  214,  216,  218,  221,  224,  227,
      230,  233,  233,  234,  235,  236,  236,  237,  237,  238,

      238,  238,  238,  239,  240,  241,  242,  242,  243,  243,
      245,  245,  245,  247,  249,  251,  253,  255,  257,  258,
      260,  262,  264,  266,  269,  271,  273,  275,  277,  279,
      281,  283,  285,  287,  288,  289,  291,  293,  295,  297,
      299,  301,  303,  305,  306,  308,  310,  313,  315,  316,
      318,  320,  322,  324,  325,  327,  329,  331,  333,  335,
      337,  339,  341,  342,  344,  346,  347,  348,  350,  351,
      352,  352,  353,  353,  353,  353,  354,  355,  356,  357,
      358,  359,  360,  360,  361,  363,  365,  366,  367,  367,
      368,  369,  369,  369,  370,  370,  371,  371,  371,  371,

      371,  373,  374,  375,  375,  376,  378,  379,  381,  384,
      387,  389,  391,  391,  393,  396,  398,  400,  402,  404,
      406,  408,  410,  412,  414,  416,  419,  421,  423,  425,
      427,  429,  431,  432,  433,  435,  437,  439,  441,  443,
      445,  447,  450,  453,  455,  456,  458,  460,  462,  463,
      465,  468,  470,  472,  474,  475,  477,  479,  481,  484,
      486,  488,  490,  492,  494,  496,  497,  499,  501,  503,
      504,  505,  506,  508,  509,  509,  509,  510,  511,  513,
      516,  517,  517,  518,  519,  520,  521,  522,  523,  523,
      523,  523,  525,  527,  529,  531,  533,  535,  537,  539,

      541,  543,  545,  547,  549,  551,  553,  555,  557,  559,
      561,  563,  565,  567,  570,  571,  572,  574,  576,  578,
      580,  582,  584,  586,  588,  590,  593,  594,  596,  598,
      600,  601,  603,  605,  607,  609,  610,  613,  615,  617,
      620,  622,  624,  626,  629,  632,  633,  635,  637,  639,
      641,  643,  644,  645,  646,  649,  649,  649,  649,  649,
      650,  652,  652,  654,  656,  658,  661,  662,  664,  666,
      668,  671,  673,  675,  677,  679,  681,  683,  685,  687,
      689,  691,  693,  695,  697,  700,  701,  702,  703,  705,
      707,  709,  711,  713,  715,  717,  719,  721,  723,  724,

      726,  729,  731,  732,  734,  734,  736,  738,  739,  741,
      743,  745,  747,  748,  749,  752,  754,  756,  757,  759,
      760,  761,  762,  762,  762,  763,  765,  765,  768,  770,
      772,  773,  775,  777,  780,  782,  784,  786,  788,  790,
      792,  794,  796,  798,  800,  803,  805,  807,  809,  811,
      812,  813,  814,  816,  818,  820,  822,  824,  826,  828,
      830,  832,  834,  834,  835,  838,  840,  841,  843,  845,
      847,  849,  850,  852,  854,  857,  860,  861,  862,  865,
      867,  868,  869,  870,  871,  872,  872,  872,  874,  874,
      876,  878,  879,  882,  884,  886,  888,  890,  893,  896,

      898,  900,  903,  905,  907,  909,  912,  914,  916,  917,
      918,  919,  921,  923,  926,  929,  931,  933,  935,  938,
      940,  942,  944,  945,  947,  948,  951,  953,  956,  959,
      960,  962,  964,  965,  966,  968,  970,  971,  972,  973,
      974,  974,  976,  976,  978,  980,  981,  983,  985,  987,
      989,  991,  994,  996,  998, 1001, 1003, 1006, 1007, 1008,
     1009, 1010, 1012, 1015, 1018, 1021, 1023, 1025, 1026, 1028,
     1029, 1032, 1033, 1035, 1036, 1038, 1041, 1042, 1043, 1045,
     1046, 1047, 1048, 1049, 1049, 1049, 1051, 1051, 1053, 1056,
     1058, 1061, 1064, 1066, 1068, 1070, 1070, 1072, 1074, 1075,

     1076, 1077, 1079, 1081, 1083, 1085, 1086, 1088, 1089, 1090,
     1092, 1093, 1093, 1095, 1096, 1099, 1100, 1101, 1102, 1103,
     1103, 1104, 1105, 1105, 1107, 1110, 1112, 1115, 1117, 1119,
     1122, 1124, 1125, 1126, 1127, 1130, 1132, 1134, 1135, 1137,
     1138, 1139, 1141, 1142, 1144, 1145, 1147, 1148, 1149, 1150,
     1151, 1151, 1154, 1157, 1160, 1162, 1164, 1165, 1166, 1167,
     1169, 1171, 1172, 1174, 1175, 1176, 1178, 1179, 1181, 1182,
     1183, 1184, 1185, 1186, 1186, 1188, 1190, 1191, 1192, 1193,
     1196, 1199, 1201, 1203, 1204, 1205, 1207, 1208, 1211, 1212,
     1213, 1214, 1215, 1216, 1216, 1218, 1221, 1223, 1224, 1226,

     1228, 1230, 1231, 1234, 1235, 1237, 1238, 1239, 1241, 1242,
     1242, 1244, 1245, 1248, 1249, 1250, 1251, 1253, 1254, 1254,
     1256, 1258, 1259, 1261, 1263, 1264, 1264, 1267, 1269, 1271,
     1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
     1271, 1271, 1271, 1271, 1272, 1272
    } ;

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[772] =
    {   0,
        0,    0,   81,   84,   87,   99,   94,   96,   93,  108,
       91,  103,  186,  269,  352,    0, 1666, 1656,  130,  138,
     1650, 1648,  427,  146, 4507,  158,  207, 1640,  109,  230,
      493, 1629, 4507,  543,  268,  115,  274,  289,  488,  593,
      191,  599,  509,  215,  491,  621,  406,  638,  655,  658,
      678,  689, 1596,  100, 1634,  733,    0, 4507, 4507, 1632,
     1631, 4507, 4507, 1628, 1632, 4507,    0,    0, 1630,    0,
        0, 1608, 4507, 4507, 4507,    0, 4507, 4507,  757,  839,
      122,  166,  127, 4507, 1615, 1616, 1612, 4507, 4507, 4507,
     4507, 1613,  201,    0, 1611, 1606, 1596,   96, 1595,  656,

     1594,  772,  103,  807, 1584, 4507,  839,  857,  886,  907,
     1569,  912,  681,  757,  892,  903,  909,  962, 1581,  963,
      978,  979,  994, 1000, 1016, 1022, 1033, 1046, 1049, 1069,
     1066, 1077, 1090,  147,   79, 1105, 1108, 1116, 1131, 1142,
     1153, 1159, 1170,  169, 1183, 1186, 1199, 1207,   94, 1210,
     1223, 1234, 1247,  152, 1263, 1269, 1280, 1286, 1297, 1308,
     1314, 1325,  193, 1331, 1347,  194,  226, 1346, 4507, 4507,
        0, 1579,  757,  943, 1381,    0, 4507, 1578, 4507,    0,
     4507,    0, 1558,    0, 1541,  257,  333, 4507,    0, 1568,
     4507, 1565,    0, 1561,    0, 1554,  186, 1529,  252,  143,

     1391, 4507,  866,  894, 4507, 1441, 1550, 1385, 1386, 1401,
     1402, 1417, 1549, 1425, 1428, 1441, 1449, 1491, 1492, 1508,
     1509, 1524, 1540, 1546, 1557, 1563, 1574, 1580, 1591, 1597,
     1608, 1619,  196,  272, 1632, 1640, 1643, 1658, 1661, 1664,
     1690, 1682, 1693, 1706,  224, 1714, 1727, 1735,  277, 1738,
     1751, 1759, 1767, 1775,  438, 1788, 1791, 1799, 1812, 1820,
     1828, 1836, 1849, 1857, 1870,  506, 1878, 1894, 1895,  470,
      507,  249, 1910, 1548, 1954, 1962, 1547, 4507,  285, 1517,
     1543, 1491, 1533, 1532, 4507, 4507, 4507, 4507,  436,  207,
     1497, 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,
      510, 2278, 2291, 2299, 2307,  523, 2315, 2323, 2336, 2344,
     2347, 2365, 2362, 2368, 2383,  617, 2386, 2389, 2406, 2412,
     2423,  612,  528,  631, 2439, 2473, 2496, 2519, 2531, 1530,
      271, 1500, 2515, 2530, 2546, 2543,  623, 2564, 2567, 2570,
     2585, 2588, 2596, 2609, 2617, 2630, 2641, 2647, 2658, 2669,
     2684, 2690, 2701, 2707, 2722,  611,  613,  632, 2723, 2743,
     2740, 2761, 2760, 2776, 2782, 2793, 2806, 2817,  643, 2814,

     2830, 2838,  639, 2846,  309, 2854, 2867,  619, 2880, 2883,
     2891, 2904,  668,  621, 2915, 2921, 2932,  634, 2943,  727,
      641,  625,  816, 2987, 4507,  303, 1513, 2971, 2987, 2984,
      649, 2995, 3008, 3011, 3028, 3034, 3045, 3051, 3066, 3072,
     3089, 3095, 3106, 3112, 3123, 3129, 3140, 3146, 3162,  730,
      511,  676, 3163, 3178, 3184, 3195, 3201, 3216, 3222, 3233,
     3248, 3254,  711,  783, 3265, 3281,  700, 3278, 1486, 3289,
     3302,  809, 3310, 3325, 3328, 3331,  878,  732, 3346, 3349,
      880,  734,  636,  905,  933, 3398, 3410, 1485, 1494, 3364,
     3404,  733, 3405, 3422, 3421, 3437, 3438, 3453, 3454, 3469,

     3475, 3486, 3492, 3503, 3514, 3525, 3531, 3542,  984,  789,
      822, 3548, 3559, 3570, 3576, 3587, 3593, 3608, 3609, 3624,
     3630, 1482,  795, 3641,  937, 3647, 1489, 3658, 3664,  802,
     3679, 3685,  887,  988, 3701, 1479,  981,  955,  918, 1001,
     3735,  101,    0, 3729, 3730, 1003, 3745, 3753, 3756, 3769,
     3777, 3785, 3793, 3806, 3814, 3822, 3830,  925, 1002, 1012,
     1004, 3843, 3851, 3854, 3867, 3875, 3878, 1019, 1453, 1028,
     3891, 1020, 1443, 1016, 3912, 3899, 1040, 1041, 3915, 1042,
     1056, 1089, 1048, 3964, 1381, 1109, 1432, 3930, 3948, 1463,
     3959, 3965, 3980, 3981, 3996,  514, 4002, 4013, 1070, 1114,

     1071, 1443, 4019, 4030, 4041, 1115, 1415, 1142, 1127, 1406,
     1116,  798, 1427, 1151, 4047, 1124, 1157, 1092, 1193, 1493,
     4507, 1408, 1376, 4058, 4064, 4079, 4080, 4095, 1374, 4096,
     4111, 1156, 1129, 1179, 4117, 4128, 4139, 1161, 1309, 1194,
     1196, 1303, 1204, 1299, 1205, 1320, 1207, 1225, 1220, 1238,
     1126, 4145, 4156, 4162, 1154, 4173, 1198, 1118, 1231, 4184,
     4190, 1233, 1157, 1249, 1229, 1120, 1248, 1127, 1272, 1287,
     1257, 1275, 1111, 1012, 1024, 4205, 1244, 1277, 1289, 4206,
     4221, 1057, 1009, 1302, 1164,  986, 1281,    0, 1357, 1293,
     1349, 1359,  906,  886,  891, 4222,  922, 1262,  824,  780,

      819, 1407,    0, 1366,  818, 1379, 1409,  803,  763,  483,
      511, 1424,    0, 1393, 1420, 1462,  539,  501,  481,  489,
      441, 1291,  440,  434,  405,  374,    0,  430,    0,  367,
      412,  363,  304,  272,  276,  262,  231,  172,  159,  319,
      711,  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[772] =
    {   0,
      745,    1,  746,  746,  746,  746,  747,  747,  748,  748,
      749,  749,  750,  750,  745,   15,  745,  745,  745,  745,
      745,  751,  745,  752,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  745,  745,  753,  745,  754,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  755,  755,  745,  756,
      756,  745,  745,  745,  745,  757,  745,  745,  758,  758,
      745,  745,   23,  745,  745,  745,  759,  745,  745,  745,
      745,  745,  745,  751,  751,  745,  760,  745,  761,  752,

      752,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  762,   34,   34,   34,   34,   34,   34,  763,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,  763,  763,   34,   34,   34,   34,   34,
       34,   34,   34,  763,   34,   34,   34,   34,  763,   34,
       34,   34,   34,  763,   34,   34,   34,   34,   34,   34,
       34,   34,  763,   34,   34,  763,  763,   34,  745,  745,
      764,  753,  745,  745,  745,  754,  745,  745,  745,  755,
      745,  756,  745,  757,   80,   80,  745,  745,  765,  759,
      745,  745,  766,  760,  767,  761,  745,  745,  768,  745,

      745,  745,  745,  745,  745,  762,  769,   34,   34,   34,
       34,   34,  769,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  763,  763,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,  763,   34,   34,   34,  763,   34,
       34,   34,   34,   34,  763,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,  763,   34,   34,   34,  763,
      763,  763,   34,  764,  745,  745,  745,  745,   80,   80,
      765,  745,  766,  767,  745,  745,  745,  745,  768,  745,
      745,   34,   34,   34,   34,   34,   34,   34,   34,   34,

       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,  763,  763,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,  763,   34,   34,   34,
      763,   34,   34,   34,   34,  763,   34,   34,   34,   34,
       34,   34,   34,   34,   34,  763,   34,   34,   34,   34,
       34,  763,  763,  763,   34,  745,  745,  745,  745,  745,
       80,  745,   34,   34,   34,   34,  763,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,  763,  763,  763,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,  763,   34,

       34,   34,  763,   34,  206,   34,   34,  763,   34,   34,
       34,   34,  763,  763,   34,   34,   34,  763,   34,  763,
      763,  763,  745,  745,  745,   80,  745,   34,   34,   34,
      763,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,  763,
      763,  763,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,  206,  763,   34,   34,  763,   34,  206,   34,
       34,  763,   34,   34,   34,   34,  763,  763,   34,   34,
      763,  763,  763,  763,  763,  745,  745,   80,  745,   34,
       34,  763,   34,   34,   34,   34,   34,   34,   34,   34,

       34,   34,   34,   34,   34,   34,   34,   34,  763,  763,
      763,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,  206,  763,   34,  763,   34,  206,   34,   34,  763,
       34,   34,  763,  763,   34,  763,  763,  763,  763,  763,
      745,   80,  770,   34,   34,  763,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,  763,  763,  763,
      763,   34,   34,   34,   34,   34,   34,  763,  206,  763,
       34,  763,  206,  763,   34,   34,  763,  763,   34,  763,
      763,  763,  763,  745,  771,   80,  745,   34,   34,  763,
       34,   34,   34,   34,   34,  206,   34,   34,  763,  763,

      763,  763,   34,   34,   34,  763,  206,  763,  763,  206,
      763,  206,  763,  763,   34,  763,  763,  763,  763,  745,
      745,  757,  745,   34,   34,   34,   34,   34,  206,   34,
       34,  763,  763,  763,   34,   34,   34,  763,  206,  763,
      763,  206,  763,  206,  763,  763,  763,  763,  763,  757,
      745,   34,   34,   34,  206,   34,  763,  763,  763,   34,
       34,  763,  206,  763,  763,  206,  763,  206,  763,  763,
      763,  763,  757,  745,  206,   34,  763,  763,  763,   34,
       34,  763,  206,  763,  763,  206,  763,  206,  763,  763,
      763,  763,  757,  745,  206,   34,  763,  763,  763,  206,

      763,  763,  206,  763,  763,  763,  763,  763,  757,  745,
      206,  763,  206,  763,  763,  763,  763,  757,  745,  206,
      763,  763,  763,  763,  757,  745,  206,  763,  757,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,    0,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745
    } ;

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,   53,   54,   21,   55,   55,
       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
       55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
       56,   21,   25,   58,   59,   59,   58,   59,   59,   58,
       59,   59,  213,   71,   60,   68,   63,   60,   63,   69,

       61,   58,   59,   59,   64,   71,   64,  213,   92,   65,
       68,   65,   61,  744,   69,   72,  199,   92,   73,  106,
       66,   96,   66,  187,  187,  187,  187,   72,  743,  200,
       73,   93,   93,   93,   93,  745,  586,  234,   92,   93,
       93,   93,   93,  185,  290,  113,   92,  100,  100,  100,
      100,  125,  745,   98,   92,  126,  170,  113,  127,  113,
      213,  249,  100,  100,  113,  213,   92,  187,  187,  187,
      187,   74,  291,   75,  102,  102,  102,  102,  102,  102,
      102,  102,  213,   74,  745,   75,   76,   77,   78,   77,
       77,   76,   76,   76,   76,   76,   76,   76,   76,   76,

       76,   76,   93,   93,   93,   93,  213,  213,  290,  213,
       76,   76,   76,   76,   76,   92,  285,  233,  255,   80,
      103,  113,  286,  102,  104,  104,  104,  104,  104,  104,
      104,  113,  740,  113,  739,  113,  291,  213,  245,  213,
      113,   76,   76,   76,  107,  113,  108,  108,  108,  108,
      108,  108,  108,  108,  288,  113,  288,  113,  315,  113,
      270,  266,  213,  109,  143,  289,   77,   76,   77,   76,
       77,   78,   77,   77,   76,   76,   76,   76,   76,   76,
       76,   76,   76,   76,   76,  213,  327,  271,  279,  280,
      213,  144,  109,   76,   76,   76,   76,   76,  113,  185,

      272,  120,   80,  426,  113,  121,  738,  128,  113,  122,
      113,  123,  113,  185,  113,  354,  113,  113,  113,  113,
      741,  124,  745,  113,   76,   76,   76,  185,  361,  113,
      129,  130,  737,  113,  187,  187,  187,  187,  113,  331,
      488,  131,  736,  735,  316,  185,  469,  742,  734,   77,
       76,   77,   33,   81,   82,   81,   81,   33,   33,   83,
       33,   33,   33,   33,   84,   85,   33,   86,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   87,   87,   87,   87,   87,   87,   87,   87,   87,
       87,   87,   87,   87,   87,   87,   87,   87,   87,   87,

       87,   87,   87,   87,   87,   87,   87,   88,   89,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   90,   33,   91,   92,  113,  733,  288,  155,
      288,  732,  731,  213,  730,  729,  113,  213,  113,  289,
      113,  213,   96,  213,  213,  113,   97,   97,   97,   97,
       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,   97,  213,  213,   98,   99,   99,   99,   99,   99,
       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,

       99,   99,   99,   99,   99,   99,   99,  107,  336,  110,
      110,  110,  110,  110,  110,  110,  110,  132,  113,  213,
      213,  145,  146,  213,  213,  147,  109,  745,  113,  727,
      113,  113,  113,  113,  133,  148,  213,  113,  141,  113,
      113,  213,  386,  726,  725,  629,  142,  352,  213,  113,
      149,  113,  213,  113,  720,  109,  112,  719,  113,  113,
      113,  113,  113,  113,  113,  113,  113,  213,  346,  353,
      403,  510,  113,  114,  113,  113,  113,  113,  113,  113,
      113,  113,  113,  115,  113,  116,  113,  117,  113,  113,
      113,  113,  118,  113,  113,  113,  113,  113,  408,  421,

      387,  119,  119,  119,  119,  119,  119,  119,  119,  119,
      119,  119,  119,  119,  119,  119,  119,  119,  119,  119,
      119,  119,  119,  113,  213,  213,  213,  399,  136,  113,
      213,  137,  213,  113,  213,  113,  213,  113,  213,  113,
      138,  139,  113,  113,  213,  213,  140,  213,  113,  213,
      150,  113,  213,  151,  213,  134,  213,  100,  100,  100,
      100,  152,  213,  113,  197,  113,  135,  153,  113,  450,
      113,  156,  100,  100,  420,  157,  160,  472,  113,  451,
      113,  213,  113,  478,  161,  113,  158,  113,  113,  213,
      422,  159,  414,  485,  154,  113,  431,  113,  113,  113,

      164,  162,  113,  481,  113,  452,  165,  113,  113,  464,
      538,  113,  741,  213,  467,  492,  484,  163,  113,  113,
      113,  113,  113,  113,  745,  113,  168,  113,  166,  113,
      113,  113,  525,  113,  173,  173,  173,  173,  113,  742,
      213,  477,  511,  213,  167,  213,  213,  213,  522,  174,
      174,  174,  174,  174,  174,  175,  175,  184,  173,  173,
      173,  173,  184,  184,  184,  184,  184,  184,  184,  184,
      184,  184,  184,  174,  174,  174,  174,  174,  174,  175,
      175,  184,  184,  184,  184,  184,  107,  113,  108,  108,
      108,  108,  108,  108,  108,  108,  213,  113,  509,  113,

      483,  113,  213,  546,  208,  109,  113,  537,  213,  718,
      534,  745,  184,  184,  184,  213,  213,  423,  423,  423,
      423,  107,  213,  201,  201,  201,  201,  201,  201,  201,
      201,  213,  213,  713,  109,  213,  560,  213,  184,  184,
      109,  644,  570,  523,  184,  184,  184,  184,  184,  184,
      184,  184,  184,  184,  184,  203,  203,  203,  203,  203,
      203,  203,  203,  184,  184,  184,  184,  184,  530,  109,
      574,  107,  109,  108,  108,  108,  108,  108,  108,  108,
      108,  186,  203,  203,  203,  203,  203,  203,  203,  203,
      109,  213,  561,  213,  184,  184,  184,  204,  425,  204,

      213,  109,  203,  203,  203,  203,  203,  203,  203,  203,
      203,  203,  203,  203,  203,  203,  203,  203,  213,  109,
      184,  107,  113,  110,  110,  110,  110,  110,  110,  110,
      110,  213,  209,  113,  113,  213,  113,  711,  213,  113,
      109,  113,  536,  113,  533,  113,  213,  113,  710,  113,
      213,  113,  113,  211,  709,  275,  210,  577,  113,  175,
      175,  175,  175,  175,  175,  175,  175,  539,  213,  109,
      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
      207,  207,  113,  113,  213,  540,  582,  213,  214,  572,

      599,  213,  113,  113,  113,  113,  113,  113,  113,  113,
      212,  113,  113,  581,  213,  213,  213,  213,  113,  113,
      113,  113,  113,  216,  113,  213,  215,  113,  113,  213,
      113,  558,  213,  213,  113,  578,  113,  217,  113,  703,
      113,  213,  113,  113,  113,  218,  113,  580,  583,  113,
      559,  220,  113,  213,  213,  213,  113,  700,  113,  219,
      113,  213,  113,  113,  113,  113,  113,  590,  602,  213,
      213,  113,  695,  113,  221,  222,  113,  113,  611,  224,
      223,  600,  113,  213,  213,  694,  113,  601,  113,  113,
      113,  113,  606,  113,  609,  113,  113,  228,  113,  113,

      225,  226,  213,  608,  613,  213,  113,  113,  113,  113,
      229,  113,  616,  113,  230,  113,  614,  231,  227,  113,
      113,  113,  622,  619,  617,  235,  113,  213,  213,  213,
      113,  213,  113,  232,  113,  113,  618,  213,  113,  113,
      213,  236,  213,  632,  634,  113,  113,  113,  113,  113,
      113,  185,  113,  693,  113,  213,  113,  113,  113,  688,
      237,  113,  238,  643,  213,  113,  678,  648,  686,  213,
      213,  113,  113,  113,  213,  113,  633,  213,  239,  240,
      113,  638,  113,  113,  113,  241,  113,  641,  646,  113,
      658,  113,  213,  113,  683,  113,  675,  113,  674,  113,

      113,  243,  113,  113,  647,  242,  213,  213,  113,  213,
      244,  213,  113,  113,  113,  640,  113,  213,  213,  113,
      213,  246,  657,  113,  645,  113,  113,  113,  113,  113,
      113,  662,  113,  213,  247,  113,  702,  113,  213,  113,
      113,  113,  213,  113,  213,  659,  213,  113,  113,  113,
      113,  113,  113,  113,  113,  248,  113,  213,  250,  113,
      664,  213,  213,  113,  113,  113,  649,  113,  677,  665,
      213,  669,  113,  251,  113,  213,  113,  113,  113,  667,
      253,  673,  670,  252,  254,  213,  672,  113,  213,  113,
      213,  113,  256,  113,  213,  685,  113,  682,  671,  113,

      213,  679,  213,  257,  213,  113,  213,  113,  697,  113,
      113,  113,  113,  113,  258,  213,  113,  259,  113,  684,
      113,  687,  113,  691,  113,  263,  113,  113,  113,  113,
      113,  712,  261,  213,  260,  113,  668,  113,  113,  262,
      666,  113,  689,  698,  113,  692,  113,  704,  113,  264,
      113,  663,  113,  699,  113,  113,  113,  113,  113,  706,
      690,  113,  213,  113,  728,  113,  701,  113,  267,  113,
      213,  113,  213,  113,  265,  113,  113,  113,  268,  213,
      113,  269,  620,  620,  620,  620,  113,  113,  113,  113,
      113,  113,  213,  276,  273,  113,  113,  175,  175,  175,

      175,  175,  175,  175,  175,  107,  213,  201,  201,  201,
      201,  201,  201,  201,  201,  113,  113,  655,  292,  707,
      213,  705,  213,  708,  109,  113,  113,  113,  113,  113,
      113,  113,  113,  213,  113,  113,  715,  213,  651,  650,
      213,  113,  293,  113,  113,  113,  113,  113,  642,  716,
      113,  113,  639,  109,  112,  113,  213,  113,  113,  113,
      294,  113,  295,  621,  722,  113,  113,  113,  113,  113,
      113,  113,  113,  717,  113,  213,  213,  113,  623,  113,
      610,  113,  714,  113,  723,  113,  721,  607,  296,  297,
      113,  113,  213,  113,  620,  620,  620,  620,  113,  207,

      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
      207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
      207,  113,  113,  573,  569,  543,  724,  542,  527,  299,
      489,  113,  113,  113,  113,  113,  113,  298,  113,  113,
      113,  113,  427,  360,  362,  195,  193,  191,  113,  113,
      113,  113,  113,  301,  113,  300,  189,  113,  113,  185,
      360,  171,  745,  213,  113,  286,  113,  195,  113,  304,
      113,  302,  303,  113,  193,  621,  113,  305,  282,  306,
      113,  189,  113,  185,  113,  278,  113,  113,  113,  113,
      113,  277,  171,  113,  213,  113,  205,  113,  202,  113,

      307,  113,  198,  113,  113,  113,  113,  113,  195,  193,
      113,  192,  113,  309,  113,  308,  113,  191,  113,  191,
      113,  113,  113,  113,  113,  189,  106,  113,  188,  113,
      312,  310,  183,  113,  311,  113,  181,  113,  113,  113,
      113,  113,  106,  179,  178,  177,  113,  171,  113,  113,
      113,  169,  113,  111,  105,  313,   95,  113,   92,  113,
      314,  113,  113,  113,   92,  745,  745,  745,  113,  745,
      113,  745,  113,  113,  113,  745,  113,  745,  745,  317,
      113,  113,  318,  319,  113,  113,  320,  113,  113,  113,
      745,  113,  113,  745,  113,  745,  745,  323,  321,  745,

      113,  113,  113,  113,  113,  113,  113,  113,  113,  322,
      113,  324,  113,  113,  745,  745,  745,  745,  745,  745,
      113,  745,  113,  113,  113,  745,  113,  745,  745,  745,
      113,  113,  113,  113,  113,  113,  113,  113,  745,  113,
      745,  745,  325,  745,  113,  745,  326,  328,  113,  745,
      113,  745,  745,  745,  113,  113,  113,  113,  113,  745,
      329,  745,  745,  113,  745,  113,  745,  113,  113,  113,
      745,  113,  330,  745,  745,  113,  113,  113,  113,  113,
      113,  113,  113,  745,  113,  745,  332,  113,  745,  113,
      745,  113,  745,  113,  745,  113,  745,  113,  745,  113,

      113,  113,  745,  113,  745,  113,  333,  113,  113,  113,
      745,  113,  745,  745,  334,  113,  113,  113,  113,  113,
      338,  113,  745,  745,  113,  335,  745,  745,  337,  113,
      113,  113,  113,  113,  745,  113,  745,  113,  745,  113,
      113,  113,  113,  113,  745,  745,  745,  745,  339,  745,
      113,  745,  113,  340,  113,  745,  113,  745,  113,  745,
      113,  113,  113,  745,  113,  341,  113,  745,  113,  113,
      113,  745,  113,  745,  745,  745,  113,  113,  113,  113,
      113,  745,  745,  745,  342,  113,  745,  113,  745,  113,
      745,  113,  745,  113,  745,  745,  343,  113,  113,  113,

      113,  113,  745,  345,  344,  745,  113,  745,  113,  745,
      113,  745,  113,  745,  113,  745,  745,  351,  113,  113,
      113,  347,  113,  348,  113,  113,  745,  113,  349,  745,
      745,  745,  745,  745,  113,  113,  113,  113,  113,  113,
      113,  745,  350,  113,  113,  745,  355,  745,  745,  745,
      113,  745,  113,  745,  113,  356,  356,  356,  356,  113,
      745,  745,  745,  358,  358,  358,  358,  745,  745,  745,
      357,  357,  357,  357,  357,  357,  357,  357,  359,  359,
      359,  359,  359,  359,  359,  359,  113,  113,  745,  745,
      745,  745,  745,  745,  364,  745,  113,  113,  363,  113,

      113,  113,  113,  745,  745,  113,  113,  745,  113,  745,
      745,  745,  113,  365,  113,  745,  113,  745,  113,  113,
      366,  113,  113,  745,  745,  113,  745,  113,  368,  113,
      745,  113,  745,  113,  745,  113,  745,  113,  113,  113,
      369,  113,  113,  370,  113,  745,  745,  745,  745,  745,
      745,  113,  113,  113,  113,  113,  113,  113,  745,  745,
      113,  113,  745,  745,  367,  113,  745,  113,  745,  113,
      745,  113,  745,  113,  371,  113,  113,  113,  372,  113,
      745,  745,  745,  113,  113,  113,  113,  113,  374,  113,
      745,  373,  113,  745,  745,  745,  113,  113,  113,  113,

      113,  113,  745,  113,  745,  375,  745,  113,  113,  376,
      113,  113,  377,  113,  745,  378,  113,  745,  745,  745,
      113,  745,  113,  113,  113,  113,  745,  113,  113,  113,
      745,  379,  113,  745,  113,  745,  745,  745,  113,  745,
      113,  745,  113,  745,  113,  113,  113,  113,  380,  745,
      745,  113,  381,  113,  745,  113,  745,  113,  745,  113,
      745,  113,  113,  113,  113,  113,  745,  382,  745,  745,
      113,  745,  113,  745,  383,  745,  113,  113,  384,  745,
      385,  113,  745,  113,  745,  745,  745,  113,  745,  113,
      745,  113,  745,  113,  113,  113,  113,  113,  745,  745,

      113,  745,  113,  745,  113,  745,  113,  745,  113,  745,
      113,  745,  113,  113,  113,  113,  113,  745,  389,  113,
      745,  745,  390,  745,  745,  113,  113,  113,  113,  113,
      113,  113,  391,  745,  113,  113,  393,  113,  745,  388,
      745,  113,  745,  113,  397,  113,  745,  113,  745,  113,
      392,  113,  113,  394,  745,  113,  113,  395,  745,  745,
      745,  745,  113,  113,  113,  113,  113,  113,  396,  113,
      745,  113,  745,  113,  113,  113,  113,  113,  745,  745,
      398,  745,  113,  745,  113,  400,  113,  113,  113,  745,
      113,  745,  745,  745,  113,  113,  113,  113,  113,  113,

      113,  113,  745,  113,  405,  401,  113,  745,  113,  745,
      113,  404,  113,  402,  113,  745,  745,  745,  113,  113,
      113,  113,  113,  745,  745,  745,  745,  113,  745,  113,
      745,  113,  406,  113,  745,  113,  407,  113,  745,  113,
      113,  113,  745,  113,  745,  113,  745,  113,  113,  113,
      745,  113,  745,  113,  745,  113,  113,  113,  745,  113,
      745,  745,  745,  113,  113,  113,  113,  113,  745,  410,
      745,  409,  113,  745,  113,  745,  113,  113,  113,  745,
      113,  745,  745,  745,  113,  113,  113,  113,  113,  411,
      745,  113,  113,  113,  412,  113,  113,  745,  113,  745,

      745,  745,  113,  745,  113,  113,  113,  113,  113,  113,
      113,  113,  113,  113,  113,  745,  113,  113,  745,  113,
      745,  745,  745,  113,  745,  113,  113,  113,  415,  113,
      113,  113,  113,  113,  745,  113,  113,  413,  416,  417,
      745,  745,  113,  745,  745,  745,  113,  745,  113,  745,
      113,  745,  113,  113,  113,  113,  113,  745,  745,  745,
      745,  113,  745,  113,  745,  113,  745,  113,  745,  113,
      419,  745,  113,  745,  356,  356,  356,  356,  418,  113,
      745,  113,  745,  113,  745,  745,  745,  745,  113,  357,
      357,  357,  357,  357,  357,  357,  357,  423,  423,  423,

      423,  745,  745,  745,  745,  745,  745,  745,  424,  745,
      745,  745,  357,  357,  357,  357,  357,  357,  357,  357,
      358,  358,  358,  358,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  359,  359,  359,  359,  359,
      359,  359,  359,  424,  745,  113,  745,  359,  359,  359,
      359,  359,  359,  359,  359,  113,  745,  113,  745,  113,
      113,  429,  745,  428,  113,  745,  745,  745,  745,  745,
      113,  745,  113,  113,  113,  430,  113,  745,  425,  113,
      745,  745,  745,  113,  745,  113,  113,  113,  113,  745,
      113,  745,  113,  432,  113,  113,  745,  113,  433,  745,

      113,  745,  745,  434,  113,  745,  113,  113,  113,  113,
      113,  113,  113,  113,  113,  113,  113,  745,  113,  113,
      745,  745,  745,  745,  745,  113,  113,  113,  113,  113,
      435,  745,  113,  745,  113,  745,  113,  113,  113,  113,
      113,  745,  436,  745,  745,  113,  437,  113,  745,  113,
      745,  113,  745,  113,  745,  745,  745,  438,  113,  113,
      113,  113,  745,  439,  745,  745,  113,  440,  745,  745,
      113,  113,  113,  441,  113,  745,  745,  113,  745,  113,
      442,  113,  745,  113,  443,  113,  745,  113,  113,  113,
      113,  113,  745,  745,  745,  745,  113,  745,  113,  113,

      113,  745,  113,  745,  444,  745,  745,  113,  745,  113,
      745,  113,  745,  113,  113,  446,  745,  445,  113,  745,
      113,  745,  745,  745,  113,  745,  113,  745,  113,  745,
      113,  113,  113,  113,  113,  745,  745,  113,  447,  113,
      745,  113,  745,  113,  745,  113,  745,  113,  448,  449,
      113,  113,  113,  113,  745,  745,  113,  745,  745,  745,
      453,  745,  113,  113,  113,  113,  113,  113,  745,  745,
      113,  113,  113,  113,  454,  745,  455,  745,  745,  745,
      113,  745,  113,  113,  113,  113,  745,  113,  456,  113,
      113,  113,  113,  457,  745,  745,  745,  745,  745,  745,

      113,  113,  458,  113,  113,  113,  113,  745,  745,  113,
      113,  745,  113,  745,  745,  460,  113,  745,  113,  745,
      113,  745,  113,  113,  113,  459,  113,  462,  745,  745,
      463,  113,  745,  113,  745,  113,  113,  113,  745,  745,
      461,  745,  113,  745,  113,  745,  113,  113,  113,  745,
      113,  745,  745,  745,  113,  113,  113,  113,  113,  113,
      113,  113,  465,  113,  745,  745,  113,  745,  113,  745,
      113,  745,  113,  745,  113,  745,  113,  745,  113,  113,
      466,  745,  113,  745,  113,  745,  113,  113,  113,  745,
      113,  745,  468,  745,  113,  113,  470,  113,  113,  745,

      745,  745,  745,  113,  745,  745,  745,  113,  745,  113,
      113,  113,  745,  113,  745,  471,  113,  473,  745,  745,
      113,  113,  113,  113,  113,  474,  475,  113,  745,  113,
      745,  113,  113,  113,  113,  113,  745,  745,  745,  745,
      113,  745,  745,  745,  113,  113,  113,  745,  113,  745,
      745,  113,  745,  113,  479,  113,  476,  113,  745,  113,
      745,  113,  113,  113,  113,  113,  745,  745,  745,  745,
      113,  745,  113,  113,  113,  745,  113,  745,  480,  745,
      745,  113,  745,  113,  745,  113,  745,  113,  486,  486,
      486,  486,  113,  745,  745,  745,  745,  745,  745,  745,

      745,  113,  745,  487,  487,  487,  487,  487,  487,  487,
      487,  113,  745,  113,  113,  113,  490,  113,  482,  745,
      113,  745,  745,  745,  113,  113,  113,  113,  113,  113,
      745,  113,  491,  113,  745,  113,  113,  493,  113,  113,
      745,  113,  745,  745,  113,  745,  745,  745,  113,  745,
      113,  113,  113,  113,  745,  113,  494,  113,  113,  745,
      113,  495,  745,  496,  113,  745,  745,  745,  113,  745,
      113,  745,  113,  745,  113,  113,  113,  113,  113,  745,
      745,  113,  745,  113,  745,  113,  745,  497,  745,  113,
      745,  113,  745,  113,  113,  113,  113,  745,  499,  498,

      113,  745,  113,  745,  745,  745,  113,  745,  113,  745,
      113,  745,  113,  745,  113,  113,  113,  745,  745,  113,
      500,  113,  501,  745,  745,  113,  745,  502,  745,  113,
      745,  113,  745,  113,  745,  113,  113,  113,  113,  113,
      745,  504,  113,  745,  113,  745,  113,  745,  503,  745,
      113,  745,  113,  113,  113,  113,  113,  745,  745,  113,
      745,  113,  745,  113,  745,  113,  505,  113,  745,  113,
      113,  113,  113,  113,  745,  745,  113,  745,  113,  745,
      113,  745,  113,  507,  113,  745,  113,  506,  113,  113,
      113,  508,  113,  113,  745,  113,  745,  512,  745,  745,

      745,  745,  113,  113,  113,  113,  113,  113,  113,  745,
      745,  113,  113,  745,  113,  513,  514,  745,  113,  745,
      113,  745,  113,  745,  113,  113,  113,  113,  113,  745,
      745,  113,  745,  113,  516,  113,  745,  113,  745,  113,
      745,  113,  515,  113,  113,  113,  113,  517,  745,  745,
      113,  745,  113,  518,  745,  745,  113,  745,  113,  745,
      113,  745,  113,  113,  113,  113,  113,  745,  745,  745,
      745,  113,  745,  113,  745,  113,  745,  113,  113,  519,
      745,  520,  113,  745,  113,  745,  745,  745,  113,  745,
      113,  745,  113,  745,  113,  113,  113,  113,  113,  745,

      745,  521,  745,  113,  745,  113,  745,  113,  113,  113,
      524,  113,  745,  745,  113,  745,  745,  745,  113,  113,
      526,  113,  113,  113,  745,  113,  745,  113,  745,  113,
      113,  113,  113,  113,  745,  529,  745,  528,  113,  745,
      113,  745,  113,  745,  113,  745,  113,  745,  745,  745,
      113,  113,  113,  745,  113,  113,  532,  745,  113,  113,
      531,  113,  745,  745,  745,  113,  745,  113,  113,  113,
      113,  113,  113,  113,  113,  113,  113,  113,  745,  113,
      113,  745,  745,  745,  745,  745,  113,  745,  113,  113,
      113,  113,  745,  113,  113,  113,  535,  745,  113,  486,

      486,  486,  486,  745,  113,  745,  113,  745,  113,  745,
      745,  745,  544,  113,  487,  487,  487,  487,  487,  487,
      487,  487,  541,  745,  745,  745,  487,  487,  487,  487,
      487,  487,  487,  487,  113,  113,  745,  745,  745,  745,
      745,  545,  745,  745,  113,  113,  113,  113,  113,  113,
      745,  113,  113,  113,  113,  547,  745,  745,  745,  745,
      745,  113,  113,  548,  113,  113,  113,  113,  113,  745,
      113,  113,  745,  745,  549,  550,  745,  113,  113,  113,
      113,  113,  113,  113,  113,  745,  113,  113,  745,  745,
      745,  745,  745,  113,  113,  113,  113,  113,  113,  113,

      745,  745,  113,  113,  745,  113,  551,  552,  745,  113,
      745,  113,  745,  113,  745,  113,  113,  113,  113,  113,
      745,  745,  113,  745,  113,  745,  113,  553,  113,  745,
      113,  745,  113,  113,  113,  113,  113,  745,  745,  745,
      745,  113,  745,  113,  113,  113,  745,  113,  745,  745,
      745,  554,  113,  745,  113,  113,  113,  745,  113,  745,
      745,  556,  555,  113,  745,  113,  745,  113,  745,  113,
      745,  113,  113,  113,  113,  113,  745,  745,  113,  745,
      113,  745,  557,  745,  113,  562,  113,  745,  113,  113,
      113,  113,  113,  745,  745,  745,  745,  113,  745,  113,

      113,  113,  745,  113,  745,  745,  113,  563,  113,  745,
      113,  745,  113,  745,  113,  745,  113,  113,  113,  113,
      113,  745,  745,  113,  745,  113,  565,  113,  745,  113,
      745,  113,  745,  113,  564,  113,  113,  113,  113,  113,
      745,  745,  113,  745,  745,  745,  745,  745,  113,  113,
      113,  113,  113,  113,  113,  567,  566,  113,  113,  745,
      113,  745,  745,  745,  113,  745,  113,  745,  113,  745,
      113,  113,  113,  113,  113,  745,  745,  113,  745,  113,
      745,  571,  745,  113,  745,  113,  745,  113,  113,  113,
      113,  113,  745,  745,  113,  745,  113,  745,  113,  745,

      113,  745,  113,  745,  113,  568,  113,  113,  113,  113,
      745,  745,  575,  113,  745,  113,  745,  745,  576,  113,
      745,  113,  745,  113,  745,  113,  745,  113,  113,  113,
      579,  113,  745,  745,  113,  745,  584,  584,  584,  584,
      745,  113,  745,  113,  745,  113,  745,  745,  745,  745,
      113,  585,  585,  585,  585,  585,  585,  585,  585,  113,
      113,  589,  745,  745,  745,  745,  588,  745,  745,  113,
      113,  113,  113,  113,  113,  113,  745,  745,  113,  113,
      745,  745,  745,  113,  745,  113,  113,  113,  745,  113,
      745,  591,  745,  113,  113,  113,  113,  113,  593,  113,

      113,  592,  113,  745,  745,  113,  596,  113,  745,  113,
      745,  594,  745,  113,  745,  113,  745,  113,  113,  113,
      595,  113,  745,  113,  745,  113,  113,  113,  745,  113,
      745,  745,  745,  113,  113,  113,  113,  113,  745,  597,
      745,  745,  113,  745,  113,  745,  113,  745,  113,  745,
      113,  745,  113,  745,  113,  113,  113,  745,  113,  598,
      113,  745,  113,  113,  113,  745,  113,  745,  745,  745,
      113,  113,  113,  113,  113,  745,  603,  745,  745,  113,
      745,  113,  745,  113,  113,  113,  745,  113,  745,  745,
      745,  113,  113,  113,  113,  113,  113,  113,  113,  745,

      113,  745,  745,  113,  745,  113,  745,  113,  113,  113,
      745,  113,  604,  745,  745,  113,  113,  113,  113,  113,
      113,  113,  113,  745,  113,  612,  605,  113,  745,  113,
      745,  113,  745,  113,  745,  113,  745,  745,  745,  113,
      113,  113,  113,  113,  745,  113,  745,  745,  113,  745,
      745,  745,  113,  745,  113,  615,  113,  113,  745,  113,
      113,  113,  745,  745,  113,  584,  584,  584,  584,  745,
      113,  745,  113,  624,  113,  745,  745,  745,  113,  113,
      585,  585,  585,  585,  585,  585,  585,  585,  113,  113,
      113,  745,  113,  745,  745,  113,  745,  113,  745,  113,

      745,  113,  745,  113,  745,  113,  745,  113,  113,  113,
      113,  113,  625,  626,  113,  745,  627,  745,  745,  745,
      113,  113,  113,  113,  113,  113,  113,  745,  745,  113,
      113,  745,  113,  745,  630,  745,  113,  745,  628,  745,
      113,  745,  113,  113,  113,  113,  113,  745,  745,  113,
      745,  113,  745,  631,  745,  113,  745,  113,  745,  113,
      113,  113,  113,  113,  745,  635,  745,  745,  113,  745,
      113,  113,  113,  636,  113,  745,  745,  113,  637,  113,
      745,  113,  745,  113,  745,  113,  745,  113,  113,  113,
      113,  113,  745,  745,  113,  745,  113,  745,  113,  745,

      652,  745,  113,  745,  113,  745,  113,  113,  113,  113,
      113,  653,  745,  113,  745,  745,  745,  745,  745,  113,
      113,  113,  113,  113,  113,  113,  113,  745,  113,  113,
      745,  745,  745,  745,  745,  113,  113,  113,  113,  113,
      113,  113,  654,  745,  113,  113,  745,  113,  656,  745,
      745,  113,  745,  113,  745,  113,  745,  113,  113,  113,
      113,  113,  745,  745,  745,  745,  113,  745,  113,  113,
      660,  745,  113,  745,  745,  113,  745,  113,  745,  113,
      745,  113,  661,  113,  745,  113,  113,  113,  113,  113,
      745,  745,  113,  745,  113,  745,  113,  745,  113,  745,

      113,  745,  113,  113,  113,  113,  113,  745,  745,  745,
      745,  113,  745,  113,  113,  113,  745,  113,  745,  745,
      113,  676,  113,  745,  113,  745,  113,  745,  113,  745,
      113,  680,  681,  113,  113,  113,  113,  745,  745,  113,
      745,  745,  745,  745,  745,  113,  113,  113,  113,  113,
      113,  113,  113,  745,  113,  113,  745,  745,  696,  745,
      745,  113,  113,  113,  113,  113,  113,  745,  745,  745,
      113,  113,   57,   57,   57,   57,   57,   57,   57,   57,
       57,   57,   57,   57,   57,   62,   62,   62,   62,   62,
       62,   62,   62,   62,   62,   62,   62,   62,   67,   67,

       67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
       67,   70,   70,   70,   70,   70,   70,   70,   70,   70,
       70,   70,   70,   70,   79,   79,   79,   79,   79,   79,
       79,   79,   79,   79,   79,   79,   79,   94,   94,   94,
       94,  745,   94,   94,   94,   94,   94,   94,   94,   94,
      101,  101,  101,  745,  101,  745,  101,  745,  101,  172,
      172,  745,  172,  172,  176,  176,  745,  745,  176,  176,
      745,  176,  176,  176,  176,  176,  176,  180,  180,  180,
      180,  745,  180,  180,  180,  180,  180,  180,  180,  180,
      182,  182,  182,  182,  182,  182,  182,  182,  745,  182,

      182,  184,  745,  745,  745,  184,  184,  184,  184,  184,
      184,  184,  185,  745,  745,  745,  185,  185,  185,  185,
      185,  185,  185,  190,  190,  745,  190,  190,  194,  194,
      745,  194,  194,  196,  196,  745,  196,  196,  206,  745,
      206,  206,  119,  119,  745,  119,  119,  274,  745,  274,
      274,  281,  745,  281,  281,  283,  745,  283,  283,  284,
      745,  284,  284,  287,  287,  287,  287,  287,  287,  287,
      287,  287,  287,  287,  287,  287,  207,  207,  745,  207,
      207,  587,  587,  745,  587,  587,  587,  587,  587,  587,
      587,  587,  587,  587,  585,  585,  585,  745,  745,  745,

      585,  745,  745,  745,  745,  585,   17,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745
    } ;

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,  135,   11,    3,    9,    7,    4,    8,    9,

        5,    6,    6,    6,    7,   12,    8,  149,   54,    7,
       10,    8,    6,  743,   10,   11,  103,   29,   11,   29,
        7,   98,    8,   81,   81,   81,   81,   12,  742,  103,
       12,   19,   19,   19,   19,   83,  542,  135,   19,   20,
       20,   20,   20,  542,  200,   36,   20,   24,   24,   24,
       24,   36,   83,   98,   24,   36,   54,   36,   36,   36,
      134,  149,   24,   24,   36,  154,   26,   82,   82,   82,
       82,   11,  200,   11,   26,   26,   26,   26,   26,   26,
       26,   26,  144,   12,   83,   12,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,

       13,   13,   93,   93,   93,   93,  163,  166,  290,  233,
       13,   13,   13,   13,   13,   27,  197,  134,  154,   13,
       27,   41,  197,   27,   27,   27,   27,   27,   27,   27,
       27,   41,  739,   41,  738,   41,  290,  245,  144,  167,
       41,   13,   13,   13,   30,   44,   30,   30,   30,   30,
       30,   30,   30,   30,  199,   44,  199,   44,  233,   44,
      166,  163,  272,   30,   44,  199,   13,   13,   13,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,  234,  245,  167,  186,  186,
      249,   44,   30,   14,   14,   14,   14,   14,   35,  186,

      167,   35,   14,  361,   37,   35,  737,   37,   35,   35,
       35,   35,   35,  361,   37,  272,   37,   35,   37,   38,
      740,   35,  405,   37,   14,   14,   14,  279,  279,   38,
       38,   38,  736,   38,  187,  187,  187,  187,   38,  249,
      426,   38,  735,  734,  234,  426,  405,  740,  733,   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,  732,  289,   47,
      289,  731,  730,  728,  726,  725,   47,  724,   47,  289,
       47,  255,   23,  723,  721,   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,  315,  270,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,

       23,   23,   23,   23,   23,   23,   23,   31,  255,   31,
       31,   31,   31,   31,   31,   31,   31,   39,   39,  266,
      271,   45,   45,  331,  451,   45,   31,  596,   39,  720,
       39,   45,   39,   45,   39,   45,  336,   39,   43,   43,
       45,  353,  315,  719,  718,  596,   43,  270,  316,   43,
       45,   43,  717,   43,  711,   31,   34,  710,   43,   34,
       34,   34,   34,   34,   34,   34,   34,  327,  266,  271,
      331,  451,   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,  336,  353,

      316,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
       34,   34,   34,   40,  386,  352,  387,  327,   42,   42,
      346,   42,  408,   40,  414,   40,  367,   40,  422,   42,
       42,   42,   40,   42,  354,  388,   42,  418,   42,  483,
       46,   46,  403,   46,  421,   40,  399,  100,  100,  100,
      100,   46,  431,   46,  100,   46,   40,   46,   48,  386,
       46,   48,  100,  100,  352,   48,   49,  408,   48,  387,
       48,  413,   48,  414,   49,   49,   48,   48,   50,  452,
      354,   48,  346,  422,   46,   49,  367,   49,   50,   49,

       50,   49,   50,  418,   49,  388,   50,   50,   51,  399,
      483,  113,  741,  467,  403,  431,  421,   49,   51,   52,
       51,  113,   51,  113,  463,  113,   52,   51,   50,   52,
      113,   52,  467,   52,   56,   56,   56,   56,   52,  741,
      420,  413,  452,  450,   51,  478,  492,  482,  463,   56,
       56,   56,   56,   56,   56,   56,   56,   79,  173,  173,
      173,  173,   79,   79,   79,   79,   79,   79,   79,   79,
       79,   79,   79,  173,  173,  173,  173,  173,  173,  173,
      173,   79,   79,   79,   79,   79,  102,  114,  102,  102,
      102,  102,  102,  102,  102,  102,  464,  114,  450,  114,

      420,  114,  510,  492,  114,  102,  114,  482,  523,  709,
      478,  612,   79,   79,   79,  530,  708,  423,  423,  423,
      423,  104,  472,  104,  104,  104,  104,  104,  104,  104,
      104,  705,  701,  700,  102,  511,  510,  699,   79,   80,
      104,  612,  523,  464,   80,   80,   80,   80,   80,   80,
       80,   80,   80,   80,   80,  107,  107,  107,  107,  107,
      107,  107,  107,   80,   80,   80,   80,   80,  472,  104,
      530,  108,  107,  108,  108,  108,  108,  108,  108,  108,
      108,   80,  203,  203,  203,  203,  203,  203,  203,  203,
      108,  477,  511,  481,   80,   80,   80,  109,  423,  109,

      533,  107,  109,  109,  109,  109,  109,  109,  109,  109,
      204,  204,  204,  204,  204,  204,  204,  204,  484,  108,
       80,  110,  115,  110,  110,  110,  110,  110,  110,  110,
      110,  539,  115,  116,  115,  697,  115,  695,  558,  117,
      110,  115,  481,  116,  477,  116,  485,  116,  694,  117,
      525,  117,  116,  117,  693,  174,  116,  533,  117,  174,
      174,  174,  174,  174,  174,  174,  174,  484,  538,  110,
      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
      112,  112,  112,  112,  112,  112,  112,  112,  112,  112,
      112,  112,  118,  120,  537,  485,  539,  509,  120,  525,

      558,  534,  118,  120,  118,  120,  118,  120,  121,  122,
      118,  118,  120,  538,  540,  559,  546,  561,  121,  122,
      121,  122,  121,  122,  123,  560,  121,  121,  122,  574,
      124,  509,  568,  572,  123,  534,  123,  123,  123,  686,
      124,  570,  124,  123,  124,  125,  125,  537,  540,  124,
      509,  126,  126,  577,  578,  580,  125,  683,  125,  125,
      125,  583,  126,  127,  126,  125,  126,  546,  561,  581,
      682,  126,  675,  127,  127,  127,  128,  127,  574,  129,
      128,  559,  127,  599,  601,  674,  128,  560,  128,  129,
      128,  129,  568,  129,  572,  128,  131,  131,  129,  130,

      130,  130,  582,  570,  577,  618,  131,  132,  131,  130,
      131,  130,  580,  130,  131,  131,  578,  132,  130,  132,
      133,  132,  586,  583,  581,  136,  132,  600,  606,  611,
      133,  658,  133,  133,  133,  136,  582,  616,  137,  133,
      609,  137,  633,  599,  601,  136,  138,  136,  137,  136,
      137,  586,  137,  673,  136,  608,  138,  137,  138,  668,
      138,  139,  139,  611,  614,  138,  658,  618,  666,  632,
      617,  139,  140,  139,  638,  139,  600,  685,  139,  139,
      139,  606,  140,  141,  140,  140,  140,  609,  616,  142,
      633,  140,  634,  141,  663,  141,  655,  141,  651,  142,

      143,  142,  141,  142,  617,  141,  619,  640,  142,  641,
      143,  657,  143,  145,  143,  608,  146,  643,  645,  143,
      647,  145,  632,  145,  614,  145,  146,  145,  146,  147,
      146,  638,  145,  649,  146,  146,  685,  148,  648,  147,
      150,  147,  665,  147,  659,  634,  662,  148,  147,  148,
      150,  148,  150,  151,  150,  148,  148,  677,  150,  150,
      640,  667,  664,  151,  152,  151,  619,  151,  657,  641,
      671,  645,  151,  151,  152,  698,  152,  153,  152,  643,
      153,  650,  647,  152,  153,  669,  649,  153,  672,  153,
      678,  153,  155,  155,  687,  665,  153,  662,  648,  156,

      670,  659,  679,  155,  722,  155,  690,  155,  677,  156,
      157,  156,  155,  156,  156,  684,  158,  156,  156,  664,
      157,  667,  157,  671,  157,  160,  158,  159,  158,  157,
      158,  698,  158,  646,  157,  158,  644,  159,  160,  159,
      642,  159,  669,  678,  161,  672,  159,  687,  160,  161,
      160,  639,  160,  679,  161,  162,  161,  160,  161,  690,
      670,  164,  691,  161,  722,  162,  684,  162,  164,  162,
      689,  164,  692,  164,  162,  164,  168,  165,  165,  704,
      164,  165,  585,  585,  585,  585,  168,  165,  168,  165,
      168,  165,  706,  175,  168,  168,  165,  175,  175,  175,

      175,  175,  175,  175,  175,  201,  714,  201,  201,  201,
      201,  201,  201,  201,  201,  208,  209,  629,  208,  691,
      702,  689,  707,  692,  201,  208,  209,  208,  209,  208,
      209,  210,  211,  715,  208,  209,  704,  712,  623,  622,
      613,  210,  211,  210,  211,  210,  211,  212,  610,  706,
      210,  211,  607,  201,  206,  214,  602,  212,  215,  212,
      212,  212,  214,  585,  714,  214,  212,  214,  215,  214,
      215,  216,  215,  707,  214,  716,  590,  215,  587,  217,
      573,  216,  702,  216,  715,  216,  712,  569,  216,  217,
      216,  217,  536,  217,  620,  620,  620,  620,  217,  206,

      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
      206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
      206,  218,  219,  527,  522,  489,  716,  488,  469,  219,
      427,  218,  219,  218,  219,  218,  219,  218,  220,  221,
      218,  219,  362,  360,  291,  284,  283,  282,  220,  221,
      220,  221,  220,  221,  222,  220,  281,  220,  221,  280,
      277,  274,  213,  207,  222,  198,  222,  196,  222,  223,
      223,  222,  222,  222,  194,  620,  224,  223,  192,  224,
      223,  190,  223,  185,  223,  183,  224,  225,  224,  223,
      224,  178,  172,  226,  119,  224,  111,  225,  105,  225,

      225,  225,  101,  226,  227,  226,  225,  226,   99,   97,
      228,   96,  226,  228,  227,  227,  227,   95,  227,   92,
      228,  229,  228,  227,  228,   87,   86,  230,   85,  228,
      230,  229,   72,  229,  229,  229,   69,  230,  231,  230,
      229,  230,   65,   64,   61,   60,  230,   55,  231,  232,
      231,   53,  231,   32,   28,  231,   22,  231,   21,  232,
      232,  232,  235,  232,   18,   17,    0,    0,  232,    0,
      236,    0,  235,  237,  235,    0,  235,    0,    0,  235,
      236,  235,  236,  237,  236,  237,  237,  237,  238,  236,
        0,  239,  237,    0,  240,    0,    0,  240,  238,    0,

      238,  239,  238,  239,  240,  239,  240,  238,  240,  239,
      239,  241,  242,  240,    0,    0,    0,    0,    0,    0,
      241,    0,  242,  243,  242,    0,  242,    0,    0,    0,
      241,  242,  241,  243,  241,  243,  244,  243,    0,  241,
        0,    0,  243,    0,  246,    0,  244,  246,  244,    0,
      244,    0,    0,    0,  246,  244,  246,  247,  246,    0,
      247,    0,    0,  246,    0,  248,    0,  247,  250,  247,
        0,  247,  248,    0,    0,  248,  247,  248,  250,  248,
      250,  251,  250,    0,  248,    0,  250,  250,    0,  252,
        0,  251,    0,  251,    0,  251,    0,  253,    0,  252,

      251,  252,    0,  252,    0,  254,  252,  253,  252,  253,
        0,  253,    0,    0,  253,  254,  253,  254,  256,  254,
      257,  257,    0,    0,  254,  254,    0,    0,  256,  258,
      256,  257,  256,  257,    0,  257,    0,  256,    0,  258,
      257,  258,  259,  258,    0,    0,    0,    0,  258,    0,
      260,    0,  259,  260,  259,    0,  259,    0,  261,    0,
      260,  259,  260,    0,  260,  261,  262,    0,  261,  260,
      261,    0,  261,    0,    0,    0,  262,  261,  262,  263,
      262,    0,    0,    0,  262,  262,    0,  264,    0,  263,
        0,  263,    0,  263,    0,    0,  263,  264,  263,  264,

      265,  264,    0,  265,  264,    0,  264,    0,  267,    0,
      265,    0,  265,    0,  265,    0,    0,  269,  267,  265,
      267,  267,  267,  267,  268,  269,    0,  267,  267,    0,
        0,    0,    0,    0,  268,  269,  268,  269,  268,  269,
      273,    0,  268,  268,  269,    0,  273,    0,    0,    0,
      273,    0,  273,    0,  273,  275,  275,  275,  275,  273,
        0,    0,    0,  276,  276,  276,  276,    0,    0,    0,
      275,  275,  275,  275,  275,  275,  275,  275,  276,  276,
      276,  276,  276,  276,  276,  276,  292,  293,    0,    0,
        0,    0,    0,    0,  293,    0,  292,  293,  292,  293,

      292,  293,  294,    0,    0,  292,  293,    0,  295,    0,
        0,    0,  294,  294,  294,    0,  294,    0,  295,  296,
      295,  294,  295,    0,    0,  297,    0,  295,  297,  296,
        0,  296,    0,  296,    0,  297,    0,  297,  296,  297,
      298,  298,  299,  299,  297,    0,    0,    0,    0,    0,
        0,  298,  299,  298,  299,  298,  299,  300,    0,    0,
      298,  299,    0,    0,  296,  301,    0,  300,    0,  300,
        0,  300,    0,  302,  300,  301,  300,  301,  301,  301,
        0,    0,    0,  302,  301,  302,  304,  302,  303,  303,
        0,  302,  302,    0,    0,    0,  304,  305,  304,  303,

      304,  303,    0,  303,    0,  304,    0,  305,  303,  305,
      306,  305,  306,  307,    0,  307,  305,    0,    0,    0,
      306,    0,  306,  307,  306,  307,    0,  307,  308,  306,
        0,  308,  307,    0,  309,    0,    0,    0,  308,    0,
      308,    0,  308,    0,  309,  310,  309,  308,  309,    0,
        0,  311,  310,  309,    0,  310,    0,  310,    0,  310,
        0,  311,  312,  311,  310,  311,    0,  311,    0,    0,
      311,    0,  312,    0,  312,    0,  312,  313,  312,    0,
      313,  312,    0,  314,    0,    0,    0,  313,    0,  313,
        0,  313,    0,  314,  317,  314,  313,  314,    0,    0,

      318,    0,  314,    0,  317,    0,  317,    0,  317,    0,
      318,    0,  318,  317,  318,  319,  320,    0,  318,  318,
        0,    0,  319,    0,    0,  319,  320,  319,  320,  319,
      320,  321,  320,    0,  319,  320,  322,  322,    0,  317,
        0,  321,    0,  321,  324,  321,    0,  322,    0,  322,
      321,  322,  323,  322,    0,  324,  322,  323,    0,    0,
        0,    0,  323,  325,  323,  324,  323,  324,  323,  324,
        0,  323,    0,  325,  324,  325,  326,  325,    0,    0,
      325,    0,  325,    0,  328,  328,  326,  329,  326,    0,
      326,    0,    0,    0,  328,  326,  328,  329,  328,  329,

      330,  329,    0,  328,  333,  329,  329,    0,  332,    0,
      330,  332,  330,  330,  330,    0,    0,    0,  332,  330,
      332,  333,  332,    0,    0,    0,    0,  332,    0,  334,
        0,  333,  334,  333,    0,  333,  335,  335,    0,  334,
      333,  334,    0,  334,    0,  337,    0,  335,  334,  335,
        0,  335,    0,  338,    0,  337,  335,  337,    0,  337,
        0,    0,    0,  338,  337,  338,  339,  338,    0,  339,
        0,  338,  338,    0,  340,    0,  339,  341,  339,    0,
      339,    0,    0,    0,  340,  339,  340,  341,  340,  341,
        0,  341,  343,  340,  342,  342,  341,    0,  344,    0,

        0,    0,  343,    0,  343,  342,  343,  342,  344,  342,
      344,  343,  344,  345,  342,    0,  347,  344,    0,  348,
        0,    0,    0,  345,    0,  345,  347,  345,  347,  348,
      347,  348,  345,  348,    0,  347,  349,  343,  348,  349,
        0,    0,  350,    0,    0,    0,  349,    0,  349,    0,
      349,    0,  350,  351,  350,  349,  350,    0,    0,    0,
        0,  350,    0,  351,    0,  351,    0,  351,    0,  355,
      351,    0,  351,    0,  356,  356,  356,  356,  350,  355,
        0,  355,    0,  355,    0,    0,    0,    0,  355,  356,
      356,  356,  356,  356,  356,  356,  356,  357,  357,  357,

      357,    0,    0,    0,    0,    0,    0,    0,  357,    0,
        0,    0,  357,  357,  357,  357,  357,  357,  357,  357,
      358,  358,  358,  358,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,  358,  358,  358,  358,  358,
      358,  358,  358,  359,    0,  363,    0,  359,  359,  359,
      359,  359,  359,  359,  359,  363,    0,  363,    0,  363,
      364,  364,    0,  363,  363,    0,    0,    0,    0,    0,
      364,    0,  364,  366,  364,  365,  365,    0,  357,  364,
        0,    0,    0,  366,    0,  366,  365,  366,  365,    0,
      365,    0,  366,  368,  368,  365,    0,  369,  369,    0,

      370,    0,    0,  370,  368,    0,  368,  369,  368,  369,
      370,  369,  370,  368,  370,  371,  369,    0,  372,  370,
        0,    0,    0,    0,    0,  371,  373,  371,  372,  371,
      372,    0,  372,    0,  371,    0,  373,  372,  373,  374,
      373,    0,  373,    0,    0,  373,  374,  375,    0,  374,
        0,  374,    0,  374,    0,    0,    0,  375,  374,  375,
      376,  375,    0,  376,    0,    0,  375,  376,    0,    0,
      376,  377,  376,  377,  376,    0,    0,  378,    0,  376,
      378,  377,    0,  377,  378,  377,    0,  378,  379,  378,
      377,  378,    0,    0,    0,    0,  378,    0,  379,  380,

      379,    0,  379,    0,  379,    0,    0,  379,    0,  380,
        0,  380,    0,  380,  381,  381,    0,  380,  380,    0,
      382,    0,    0,    0,  381,    0,  381,    0,  381,    0,
      382,  383,  382,  381,  382,    0,    0,  384,  382,  382,
        0,  383,    0,  383,    0,  383,    0,  384,  383,  384,
      383,  384,  385,  389,    0,    0,  384,    0,    0,    0,
      389,    0,  385,  389,  385,  389,  385,  389,    0,    0,
      391,  385,  389,  390,  390,    0,  390,    0,    0,    0,
      391,    0,  391,  390,  391,  390,    0,  390,  391,  391,
      393,  392,  390,  392,    0,    0,    0,    0,    0,    0,

      393,  392,  393,  392,  393,  392,  394,    0,    0,  393,
      392,    0,  395,    0,    0,  395,  394,    0,  394,    0,
      394,    0,  395,  396,  395,  394,  395,  397,    0,    0,
      398,  395,    0,  396,    0,  396,  397,  396,    0,    0,
      396,    0,  396,    0,  400,    0,  397,  398,  397,    0,
      397,    0,    0,    0,  400,  397,  400,  398,  400,  398,
      401,  398,  400,  400,    0,    0,  398,    0,  402,    0,
      401,    0,  401,    0,  401,    0,  404,    0,  402,  401,
      402,    0,  402,    0,  406,    0,  404,  402,  404,    0,
      404,    0,  404,    0,  406,  404,  406,  407,  406,    0,

        0,    0,    0,  406,    0,    0,    0,  407,    0,  407,
      409,  407,    0,  410,    0,  407,  407,  409,    0,    0,
      409,  411,  409,  410,  409,  410,  411,  410,    0,  409,
        0,  411,  410,  411,  412,  411,    0,    0,    0,    0,
      411,    0,    0,    0,  412,  415,  412,    0,  412,    0,
        0,  416,    0,  412,  416,  415,  412,  415,    0,  415,
        0,  416,  417,  416,  415,  416,    0,    0,    0,    0,
      416,    0,  417,  419,  417,    0,  417,    0,  417,    0,
        0,  417,    0,  419,    0,  419,    0,  419,  424,  424,
      424,  424,  419,    0,    0,    0,    0,    0,    0,    0,

        0,  428,    0,  424,  424,  424,  424,  424,  424,  424,
      424,  428,    0,  428,  430,  428,  429,  429,  419,    0,
      428,    0,    0,    0,  430,  432,  430,  429,  430,  429,
        0,  429,  430,  430,    0,  432,  429,  432,  433,  432,
        0,  434,    0,    0,  432,    0,    0,    0,  433,    0,
      433,  434,  433,  434,    0,  434,  433,  433,  435,    0,
      434,  435,    0,  436,  436,    0,    0,    0,  435,    0,
      435,    0,  435,    0,  436,  437,  436,  435,  436,    0,
        0,  438,    0,  436,    0,  437,    0,  437,    0,  437,
        0,  438,    0,  438,  437,  438,  439,    0,  439,  438,

      438,    0,  440,    0,    0,    0,  439,    0,  439,    0,
      439,    0,  440,    0,  440,  439,  440,    0,    0,  441,
      440,  440,  441,    0,    0,  442,    0,  442,    0,  441,
        0,  441,    0,  441,    0,  442,  443,  442,  441,  442,
        0,  444,  444,    0,  442,    0,  443,    0,  443,    0,
      443,    0,  444,  445,  444,  443,  444,    0,    0,  446,
        0,  444,    0,  445,    0,  445,  446,  445,    0,  446,
      447,  446,  445,  446,    0,    0,  448,    0,  446,    0,
      447,    0,  447,  448,  447,    0,  448,  447,  448,  447,
      448,  449,  449,  453,    0,  448,    0,  453,    0,    0,

        0,    0,  449,  453,  449,  453,  449,  453,  454,    0,
        0,  449,  453,    0,  455,  454,  455,    0,  454,    0,
      454,    0,  454,    0,  455,  456,  455,  454,  455,    0,
        0,  457,    0,  455,  457,  456,    0,  456,    0,  456,
        0,  457,  456,  457,  456,  457,  458,  458,    0,    0,
      457,    0,  459,  459,    0,    0,  458,    0,  458,    0,
      458,    0,  459,  460,  459,  458,  459,    0,    0,    0,
        0,  459,    0,  460,    0,  460,    0,  460,  461,  460,
        0,  461,  460,    0,  462,    0,    0,    0,  461,    0,
      461,    0,  461,    0,  462,  465,  462,  461,  462,    0,

        0,  462,    0,  462,    0,  465,    0,  465,  468,  465,
      466,  466,    0,    0,  465,    0,    0,    0,  468,  470,
      468,  466,  468,  466,    0,  466,    0,  468,    0,  470,
      466,  470,  471,  470,    0,  471,    0,  470,  470,    0,
      473,    0,  471,    0,  471,    0,  471,    0,    0,    0,
      473,  471,  473,    0,  473,  474,  474,    0,  475,  473,
      473,  476,    0,    0,    0,  474,    0,  474,  475,  474,
      475,  476,  475,  476,  474,  476,  479,  475,    0,  480,
      476,    0,    0,    0,    0,    0,  479,    0,  479,  480,
      479,  480,    0,  480,  490,  479,  480,    0,  480,  486,

      486,  486,  486,    0,  490,    0,  490,    0,  490,    0,
        0,    0,  490,  490,  486,  486,  486,  486,  486,  486,
      486,  486,  487,    0,    0,    0,  487,  487,  487,  487,
      487,  487,  487,  487,  491,  493,    0,    0,    0,    0,
        0,  491,    0,    0,  491,  493,  491,  493,  491,  493,
        0,  495,  494,  491,  493,  494,    0,    0,    0,    0,
        0,  495,  494,  495,  494,  495,  494,  496,  497,    0,
      495,  494,    0,    0,  496,  497,    0,  496,  497,  496,
      497,  496,  497,  498,  499,    0,  496,  497,    0,    0,
        0,    0,    0,  498,  499,  498,  499,  498,  499,  500,

        0,    0,  498,  499,    0,  501,  500,  501,    0,  500,
        0,  500,    0,  500,    0,  501,  502,  501,  500,  501,
        0,    0,  503,    0,  501,    0,  502,  503,  502,    0,
      502,    0,  503,  504,  503,  502,  503,    0,    0,    0,
        0,  503,    0,  504,  505,  504,    0,  504,    0,    0,
        0,  504,  504,    0,  505,  506,  505,    0,  505,    0,
        0,  507,  505,  505,    0,  506,    0,  506,    0,  506,
        0,  507,  508,  507,  506,  507,    0,    0,  512,    0,
      507,    0,  508,    0,  508,  512,  508,    0,  512,  513,
      512,  508,  512,    0,    0,    0,    0,  512,    0,  513,

      514,  513,    0,  513,    0,    0,  515,  513,  513,    0,
      514,    0,  514,    0,  514,    0,  515,  516,  515,  514,
      515,    0,    0,  517,    0,  515,  517,  516,    0,  516,
        0,  516,    0,  517,  516,  517,  516,  517,  518,  519,
        0,    0,  517,    0,    0,    0,    0,    0,  518,  519,
      518,  519,  518,  519,  520,  520,  518,  518,  519,    0,
      521,    0,    0,    0,  520,    0,  520,    0,  520,    0,
      521,  524,  521,  520,  521,    0,    0,  526,    0,  521,
        0,  524,    0,  524,    0,  524,    0,  526,  528,  526,
      524,  526,    0,    0,  529,    0,  526,    0,  528,    0,

      528,    0,  528,    0,  529,  521,  529,  528,  529,  531,
        0,    0,  531,  529,    0,  532,    0,    0,  532,  531,
        0,  531,    0,  531,    0,  532,    0,  532,  531,  532,
      535,  535,    0,    0,  532,    0,  541,  541,  541,  541,
        0,  535,    0,  535,    0,  535,    0,    0,    0,    0,
      535,  541,  541,  541,  541,  541,  541,  541,  541,  544,
      545,  545,    0,    0,    0,    0,  544,    0,    0,  544,
      545,  544,  545,  544,  545,  547,    0,    0,  544,  545,
        0,    0,    0,  548,    0,  547,  549,  547,    0,  547,
        0,  547,    0,  548,  547,  548,  549,  548,  549,  550,

      549,  548,  548,    0,    0,  549,  553,  551,    0,  550,
        0,  550,    0,  550,    0,  552,    0,  551,  550,  551,
      551,  551,    0,  553,    0,  552,  551,  552,    0,  552,
        0,    0,    0,  553,  552,  553,  554,  553,    0,  554,
        0,    0,  553,    0,  555,    0,  554,    0,  554,    0,
      554,    0,  556,    0,  555,  554,  555,    0,  555,  556,
      557,    0,  556,  555,  556,    0,  556,    0,    0,    0,
      557,  556,  557,  562,  557,    0,  562,    0,    0,  557,
        0,  563,    0,  562,  564,  562,    0,  562,    0,    0,
        0,  563,  562,  563,  564,  563,  564,  565,  564,    0,

      563,    0,    0,  564,    0,  566,    0,  565,  567,  565,
        0,  565,  566,    0,    0,  566,  565,  566,  567,  566,
      567,  571,  567,    0,  566,  575,  567,  567,    0,  576,
        0,  571,    0,  571,    0,  571,    0,    0,    0,  576,
      571,  576,  575,  576,    0,  579,    0,    0,  576,    0,
        0,    0,  575,    0,  575,  579,  575,  579,    0,  579,
      588,  575,    0,    0,  579,  584,  584,  584,  584,    0,
      588,    0,  588,  588,  588,    0,    0,    0,  589,  588,
      584,  584,  584,  584,  584,  584,  584,  584,  589,  591,
      589,    0,  589,    0,    0,  592,    0,  589,    0,  591,

        0,  591,    0,  591,    0,  592,    0,  592,  591,  592,
      593,  594,  592,  593,  592,    0,  594,    0,    0,    0,
      593,  594,  593,  594,  593,  594,  595,    0,    0,  593,
      594,    0,  597,    0,  597,    0,  595,    0,  595,    0,
      595,    0,  597,  598,  597,  595,  597,    0,    0,  603,
        0,  597,    0,  598,    0,  598,    0,  598,    0,  603,
      604,  603,  598,  603,    0,  603,    0,    0,  603,    0,
      604,  605,  604,  604,  604,    0,    0,  615,  605,  604,
        0,  605,    0,  605,    0,  605,    0,  615,  624,  615,
      605,  615,    0,    0,  625,    0,  615,    0,  624,    0,

      624,    0,  624,    0,  625,    0,  625,  624,  625,  626,
      627,  626,    0,  625,    0,    0,    0,    0,    0,  626,
      627,  626,  627,  626,  627,  628,  630,    0,  626,  627,
        0,    0,    0,    0,    0,  628,  630,  628,  630,  628,
      630,  631,  628,    0,  628,  630,    0,  635,  631,    0,
        0,  631,    0,  631,    0,  631,    0,  635,  636,  635,
      631,  635,    0,    0,    0,    0,  635,    0,  636,  637,
      636,    0,  636,    0,    0,  652,    0,  636,    0,  637,
        0,  637,  637,  637,    0,  652,  653,  652,  637,  652,
        0,    0,  654,    0,  652,    0,  653,    0,  653,    0,

      653,    0,  654,  656,  654,  653,  654,    0,    0,    0,
        0,  654,    0,  656,  660,  656,    0,  656,    0,    0,
      661,  656,  656,    0,  660,    0,  660,    0,  660,    0,
      661,  660,  661,  660,  661,  676,  680,    0,    0,  661,
        0,    0,    0,    0,    0,  676,  680,  676,  680,  676,
      680,  681,  696,    0,  676,  680,    0,    0,  676,    0,
        0,  681,  696,  681,  696,  681,  696,    0,    0,    0,
      681,  696,  746,  746,  746,  746,  746,  746,  746,  746,
      746,  746,  746,  746,  746,  747,  747,  747,  747,  747,
      747,  747,  747,  747,  747,  747,  747,  747,  748,  748,

      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  749,  749,  749,  749,  749,  749,  749,  749,  749,
      749,  749,  749,  749,  750,  750,  750,  750,  750,  750,
      750,  750,  750,  750,  750,  750,  750,  751,  751,  751,
      751,    0,  751,  751,  751,  751,  751,  751,  751,  751,
      752,  752,  752,    0,  752,    0,  752,    0,  752,  753,
      753,    0,  753,  753,  754,  754,    0,    0,  754,  754,
        0,  754,  754,  754,  754,  754,  754,  755,  755,  755,
      755,    0,  755,  755,  755,  755,  755,  755,  755,  755,
      756,  756,  756,  756,  756,  756,  756,  756,    0,  756,

      756,  757,    0,    0,    0,  757,  757,  757,  757,  757,
      757,  757,  758,    0,    0,    0,  758,  758,  758,  758,
      758,  758,  758,  759,  759,    0,  759,  759,  760,  760,
        0,  760,  760,  761,  761,    0,  761,  761,  762,    0,
      762,  762,  763,  763,    0,  763,  763,  764,    0,  764,
      764,  765,    0,  765,  765,  766,    0,  766,  766,  767,
        0,  767,  767,  768,  768,  768,  768,  768,  768,  768,
      768,  768,  768,  768,  768,  768,  769,  769,    0,  769,
      769,  770,  770,    0,  770,  770,  770,  770,  770,  770,
      770,  770,  770,  770,  771,  771,  771,    0,    0,    0,

      771,    0,    0,    0,    0,  771,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745,
      745,  745,  745,  745,  745,  745,  745,  745,  745,  745
    } ;

/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[141] =
    {   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, 0, 0, 1, 0, 
    0,     };

extern int asn1p__flex_debug;
int asn1p__flex_debug = 1;

static yyconst flex_int16_t yy_rule_linenum[140] =
    {   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,  514,  516,  518,  529
    } ;

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 2090 "lex.yy.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  );

yy_size_t 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 = '*'; \
		yy_size_t 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 2352 "lex.yy.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 >= 746 )
					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 != 745 );

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];
goto find_rule; /* Shut up GCC warning -Wall */
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] )
			{
			yy_size_t 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 < 140 )
				fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
				         (long)yy_rule_linenum[yy_act], asn1p_text );
			else if ( yy_act == 140 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         asn1p_text );
			else if ( yy_act == 141 )
				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 = strdup(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 TOK_VBracketLeft;
	YY_BREAK
case 136:
YY_RULE_SETUP
#line 514 "asn1p_l.l"
return TOK_VBracketRight;
	YY_BREAK
case 137:
YY_RULE_SETUP
#line 516 "asn1p_l.l"
return asn1p_text[0];
	YY_BREAK
case 138:
/* rule 138 can match eol */
YY_RULE_SETUP
#line 518 "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 139:
YY_RULE_SETUP
#line 529 "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 542 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 140:
YY_RULE_SETUP
#line 549 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 3474 "lex.yy.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
		{
			yy_size_t 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), 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 >= 746 )
				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 >= 746 )
			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 == 745);
	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 yy_size_t 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 */
			yy_size_t 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 0;

					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 */
{
	yy_size_t 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, yy_size_t  _yybytes_len )
{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n, 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.
 * 
 */
yy_size_t 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 549 "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;
}


