#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 = 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;
}


