#define yy_create_buffer asn1p__create_buffer
#define yy_delete_buffer asn1p__delete_buffer
#define yy_scan_buffer asn1p__scan_buffer
#define yy_scan_string asn1p__scan_string
#define yy_scan_bytes asn1p__scan_bytes
#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 yyout asn1p_out
#define yyrestart asn1p_restart
#define yytext asn1p_text
#define yylineno asn1p_lineno

#line 20 "asn1p_l.c"
/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header$
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.h>


/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif


#ifdef __cplusplus

#include <stdlib.h>
#include <unistd.h>

/* Use prototypes in function declarations. */
#define YY_USE_PROTOS

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

#else	/* ! __cplusplus */

#if __STDC__

#define YY_USE_PROTOS
#define YY_USE_CONST

#endif	/* __STDC__ */
#endif	/* ! __cplusplus */

#ifdef __TURBOC__
 #pragma warn -rch
 #pragma warn -use
#include <io.h>
#include <stdlib.h>
#define YY_USE_CONST
#define YY_USE_PROTOS
#endif

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


#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif

/* Returned upon end-of-file. */
#define YY_NULL 0

/* 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)

/* 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 yyrestart( yyin )

#define YY_END_OF_BUFFER_CHAR 0

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

typedef struct yy_buffer_state *YY_BUFFER_STATE;

extern int yyleng;
extern FILE *yyin, *yyout;

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

/* The funky do-while in the following #define is used to turn the definition
 * int a single C statement (which needs a semi-colon terminator).  This
 * avoids problems with code like:
 *
 * 	if ( condition_holds )
 *		yyless( 5 );
 *	else
 *		do_something_else();
 *
 * Prior to using the do-while the compiler would get upset at the
 * "else" because it interpreted the "if" statement as being all
 * done when it reached the ';' after the yyless() call.
 */

/* Return all but the first 'n' matched characters back to the input stream. */

#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
		*yy_cp = yy_hold_char; \
		YY_RESTORE_YY_MORE_OFFSET \
		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
		} \
	while ( 0 )

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

/* The following is because we cannot portably get our hands on size_t
 * (without autoconf's help, which isn't available because we want
 * flex-generated scanners to compile on their own).
 */
typedef unsigned int yy_size_t;


struct yy_buffer_state
	{
	FILE *yy_input_file;

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

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

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

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

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

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

	/* 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 yyrestart()), so that the user can continue scanning by
	 * just pointing yyin at a new input file.
	 */
#define YY_BUFFER_EOF_PENDING 2
	};

static YY_BUFFER_STATE yy_current_buffer = 0;

/* 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".
 */
#define YY_CURRENT_BUFFER yy_current_buffer


/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;

static int yy_n_chars;		/* number of characters read into yy_ch_buf */


int yyleng;

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

/* Flag which is used to allow yywrap()'s to do buffer switches
 * instead of setting up a fresh yyin.  A bit of a hack ...
 */
static int yy_did_buffer_switch_on_eof;

void yyrestart YY_PROTO(( FILE *input_file ));

void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )

YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));

static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
static void yy_flex_free YY_PROTO(( void * ));

#define yy_new_buffer yy_create_buffer

#define yy_set_interactive(is_interactive) \
	{ \
	if ( ! yy_current_buffer ) \
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
	yy_current_buffer->yy_is_interactive = is_interactive; \
	}

#define yy_set_bol(at_bol) \
	{ \
	if ( ! yy_current_buffer ) \
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
	yy_current_buffer->yy_at_bol = at_bol; \
	}

#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)


#define YY_USES_REJECT

#define yywrap() 1
#define YY_SKIP_YYWRAP

#define FLEX_DEBUG
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;

#define FLEX_DEBUG
extern int yylineno;
int yylineno = 1;
extern char *yytext;
#define yytext_ptr yytext

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

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up yytext.
 */
#define YY_DO_BEFORE_ACTION \
	yytext_ptr = yy_bp; \
	yyleng = (int) (yy_cp - yy_bp); \
	yy_hold_char = *yy_cp; \
	*yy_cp = '\0'; \
	yy_c_buf_p = yy_cp;

#define YY_NUM_RULES 133
#define YY_END_OF_BUFFER 134
static yyconst short int yy_acclist[1263] =
    {   0,
      134,  132,  133,  127,  132,  133,  127,  133,  130,  132,
      133,   18,  132,  133,  130,  132,  133,  132,  133,  130,
      132,  133,  132,  133,  130,  132,  133,  132,  133,   32,
      132,  133,   31,  132,  133,  130,  132,  133,  132,  133,
      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
      132,  133,  119,  120,  132,  133,  119,  120,  132,  133,
      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
      132,  133,  119,  120,  132,  133,  119,  120,  132,  133,
      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
      132,  133,  119,  120,  132,  133,  119,  120,  132,  133,

      119,  120,  132,  133,  119,  120,  132,  133,  119,  120,
      132,  133,  119,  120,  132,  133,  118,  132,  133,  130,
      132,  133,    8,  132,  133,    5,  133,    5,  132,  133,
        7,  132,  133,    7,  132,  133,   10,   12,  132,  133,
       10,  133,   12,  132,  133,   12,  132,  133,   20,  132,
      133,   20,  133,   21,  132,  133,   15,  132,  133,   15,
      133,   17,  132,  133,   17,  132,  133,   13,  132,  133,
       14,  132,  133,   24,   26,  132,  133,   26,  132,  133,
       27,  133,   24,   25,   26,  132,  133,   24,   25,   26,
      132,  133,  124,  132,  133,  125,  132,  133,  125,  133,

      132,  133,  126,  132,  133,  127,   18,   18,  116,  117,
        4,   30,  123,    9,   31,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  120,  119,  120,
      119,  120,  119,  120,  119,  120,   42,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  120,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  120,  119,  120,  119,  120,
       87,  119,  120,  119,  120,  120,  119,  120,  119,  120,
      119,  120,  119,  120,  120,  119,  120,  119,  120,  119,

      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  120,  119,  120,  119,  120,  120,  120,
      119,  120,  118,    8,    6,    6,   11,   20,   19,   15,
       24,   24,   25,   24,   25,  124,  125,  131,  116,  117,
       30,  122,  121,  119,  120,  120,  119,  120,   34,  119,
      120,   35,  119,  120,  119,  120,  119,  120,  119,  120,
       39,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,   56,  119,  120,  119,  120,  119,  120,
      119,  120,  119,  120,  119,  120,  119,  120,  120,  120,

      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
      119,  120,  119,  120,   79,  119,  120,   80,  119,  120,
      119,  120,  120,  119,  120,  119,  120,  119,  120,  120,
      119,  120,   90,  119,  120,  119,  120,  119,  120,  119,
      120,  120,  119,  120,  119,  120,  119,  120,   98,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  120,  119,  120,  119,  120,
      119,  120,  120,  120,  120,  119,  120,  118,    3,   16,
       24,   25,   23,   24,   25,  116,  117,   29,   28,    2,
        1,  119,  120,  119,  120,  119,  120,  119,  120,  119,

      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,   64,  119,  120,  120,  120,
      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
      119,  120,  119,  120,  119,  120,  119,  120,   82,  119,
      120,  120,  119,  120,  119,  120,  119,  120,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  120,   95,  119,
      120,  119,  120,  119,  120,   99,  119,  120,  119,  120,
      119,  120,  119,  120,  103,  119,  120,  105,  119,  120,

      119,  120,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  120,  120,  120,  115,  119,  120,    3,
       24,   25,  119,  120,  119,  120,  119,  120,   38,  119,
      120,  120,  119,  120,  119,  120,  119,  120,   45,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,   63,  119,  120,
      120,  120,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  120,  119,  120,   86,  119,  120,  119,

      120,  120,  119,  120,  119,  120,  119,  120,  120,  119,
      120,  119,  120,  119,  120,  119,  120,  120,  120,  107,
      119,  120,  119,  120,  119,  120,  120,  119,  120,  120,
      120,  120,  128,   24,   25,   33,  119,  120,  119,  120,
      119,  120,  120,  119,  120,  119,  120,   44,  119,  120,
      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
       58,  119,  120,  119,  120,  119,  120,  119,  120,  119,
      120,  120,  120,  120,  119,  120,  119,  120,  119,  120,
      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,

      119,  120,  119,  120,  120,   84,  119,  120,  119,  120,
      120,  119,  120,  119,  120,  119,  120,  119,  120,  120,
      119,  120,  119,  120,  100,  119,  120,  101,  119,  120,
      120,  119,  120,  120,  108,  119,  120,  119,  120,  120,
      120,  120,  120,  120,   24,   25,  119,  120,  119,  120,
      120,   41,  119,  120,  119,  120,  119,  120,  119,  120,
      119,  120,   50,  119,  120,   51,  119,  120,  119,  120,
      119,  120,   54,  119,  120,  119,  120,  119,  120,  119,
      120,   60,  119,  120,  119,  120,  119,  120,  120,  120,
      120,  119,  120,  119,  120,   71,  119,  120,   72,  119,

      120,  119,  120,  119,  120,  119,  120,   76,  119,  120,
      119,  120,  119,  120,  119,  120,  120,  119,  120,  120,
       89,  119,  120,  119,  120,   92,  119,  120,   94,  119,
      120,  120,  119,  120,  119,  120,  120,  119,  120,  120,
      119,  120,  111,  120,  120,  120,  120,  120,   24,   25,
      119,  120,  119,  120,  120,  119,  120,  119,  120,  119,
      120,  119,  120,  119,  120,   53,  119,  120,  119,  120,
      119,  120,   59,  119,  120,  119,  120,   62,  119,  120,
      120,  120,  120,  120,  119,  120,   70,  119,  120,   73,
      119,  120,   74,  119,  120,  119,  120,  119,  120,  120,

      119,  120,  120,   88,  119,  120,  120,  119,  120,  120,
      119,  120,   97,  119,  120,  120,  119,  120,  120,  119,
      120,  120,  120,  120,  120,   24,   25,  119,  120,   37,
      119,  120,   40,  120,   43,  119,  120,   46,  119,  120,
      119,  120,  119,  120,  119,  120,  119,  120,  119,  120,
      120,  120,  120,   68,  120,  119,  120,  119,  120,  119,
      120,  120,  119,  120,  120,  120,  119,  120,  120,  102,
      120,  119,  120,  120,  109,  119,  120,  120,  120,  120,
      120,  129,   24,  119,  120,   47,  119,  120,  119,  120,
       49,  119,  120,  119,  120,  119,  120,   57,  119,  120,

      119,  120,  120,  120,  120,   69,  119,  120,  119,  120,
      119,  120,  120,  119,  120,  120,  120,  119,  120,  120,
      119,  120,  119,  120,  120,  112,  120,  120,  120,  120,
       24,   36,  119,  120,   48,  119,  120,   52,  119,  120,
      119,  120,  119,  120,  120,  120,  120,  119,  120,  119,
      120,  120,  119,  120,  120,  120,  119,  120,  120,  119,
      120,  119,  120,  120,  120,  120,  120,   24,  119,  120,
      119,  120,  120,  120,  120,   75,  119,  120,   77,  119,
      120,   78,  120,  119,  120,  120,  120,  119,  120,  120,
       96,  119,  120,  119,  120,  120,  120,  120,  120,   24,

      119,  120,   61,  119,  120,   66,  120,  120,   67,  120,
      119,  120,   83,  120,  120,   91,  119,  120,  120,  119,
      120,  104,  120,  120,  120,  114,  120,   24,  119,  120,
      120,   81,  119,  120,  120,  120,  119,  120,  120,  113,
      120,   24,  119,  120,   65,  120,  120,   93,  120,  106,
      119,  120,  110,  120,   24,   55,  119,  120,   85,  120,
       22,   24
    } ;

static yyconst short int yy_accept[710] =
    {   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,   28,   30,   33,
       36,   39,   41,   45,   49,   53,   57,   61,   65,   69,
       73,   77,   81,   85,   89,   93,   97,  101,  105,  109,
      113,  117,  120,  123,  126,  128,  131,  134,  137,  141,
      143,  146,  149,  152,  154,  157,  160,  162,  165,  168,
      171,  174,  178,  181,  183,  188,  193,  196,  199,  201,
      203,  206,  206,  207,  208,  209,  209,  210,  210,  211,
      211,  211,  212,  213,  214,  215,  216,  216,  216,  218,

      220,  222,  224,  226,  228,  229,  231,  233,  235,  237,
      240,  242,  244,  246,  248,  250,  252,  254,  256,  258,
      259,  260,  262,  264,  266,  268,  270,  272,  274,  276,
      277,  279,  281,  284,  286,  287,  289,  291,  293,  295,
      296,  298,  300,  302,  304,  306,  308,  310,  312,  314,
      315,  317,  319,  320,  321,  323,  323,  324,  324,  324,
      324,  325,  326,  327,  328,  329,  330,  331,  331,  332,
      334,  336,  337,  338,  339,  339,  339,  340,  340,  341,
      341,  341,  341,  342,  343,  344,  346,  347,  349,  352,
      355,  357,  359,  359,  361,  364,  366,  368,  370,  372,

      374,  376,  378,  380,  382,  384,  387,  389,  391,  393,
      395,  397,  399,  400,  401,  403,  405,  407,  409,  411,
      413,  415,  418,  421,  423,  424,  426,  428,  430,  431,
      433,  436,  438,  440,  442,  443,  445,  447,  449,  452,
      454,  456,  458,  460,  462,  464,  466,  467,  469,  471,
      473,  474,  475,  476,  478,  479,  479,  479,  480,  481,
      483,  486,  486,  487,  488,  489,  490,  491,  492,  492,
      494,  496,  498,  500,  502,  504,  506,  508,  510,  512,
      514,  516,  518,  520,  522,  524,  526,  528,  530,  532,
      534,  536,  539,  540,  541,  543,  545,  547,  549,  551,

      553,  555,  557,  559,  562,  563,  565,  567,  569,  570,
      572,  574,  576,  578,  579,  582,  584,  586,  589,  591,
      593,  595,  598,  601,  603,  604,  606,  608,  610,  612,
      614,  615,  616,  617,  620,  620,  620,  620,  620,  621,
      623,  625,  627,  629,  632,  633,  635,  637,  639,  642,
      644,  646,  648,  650,  652,  654,  656,  658,  660,  662,
      664,  666,  668,  671,  672,  673,  674,  676,  678,  680,
      682,  684,  686,  688,  690,  692,  694,  695,  697,  700,
      702,  703,  705,  705,  707,  709,  710,  712,  714,  716,
      718,  719,  719,  720,  723,  725,  727,  728,  730,  731,

      732,  733,  733,  733,  734,  736,  739,  741,  743,  744,
      746,  748,  751,  753,  755,  757,  759,  761,  763,  765,
      767,  769,  771,  774,  776,  778,  780,  782,  783,  784,
      785,  787,  789,  791,  793,  795,  797,  799,  801,  803,
      805,  805,  806,  809,  811,  812,  814,  816,  818,  820,
      821,  823,  825,  828,  831,  832,  834,  835,  838,  840,
      841,  842,  843,  844,  845,  845,  845,  847,  849,  851,
      852,  855,  857,  859,  861,  863,  866,  869,  871,  873,
      876,  878,  880,  882,  885,  887,  889,  890,  891,  892,
      894,  896,  899,  902,  904,  906,  908,  911,  913,  915,

      917,  918,  920,  921,  924,  926,  929,  932,  933,  935,
      937,  938,  940,  941,  943,  945,  946,  947,  948,  949,
      949,  951,  953,  955,  956,  958,  960,  962,  964,  966,
      969,  971,  973,  976,  978,  981,  982,  983,  984,  985,
      987,  990,  993,  996,  998, 1000, 1001, 1003, 1004, 1007,
     1008, 1010, 1011, 1013, 1016, 1017, 1019, 1020, 1022, 1023,
     1024, 1025, 1026, 1026, 1026, 1028, 1030, 1033, 1035, 1038,
     1041, 1043, 1045, 1047, 1047, 1049, 1051, 1052, 1053, 1054,
     1056, 1058, 1060, 1062, 1063, 1065, 1066, 1067, 1069, 1070,
     1070, 1072, 1074, 1075, 1078, 1079, 1080, 1081, 1082, 1082,

     1083, 1084, 1086, 1089, 1091, 1094, 1096, 1098, 1101, 1103,
     1104, 1105, 1106, 1109, 1111, 1113, 1114, 1116, 1117, 1118,
     1120, 1121, 1123, 1125, 1126, 1128, 1129, 1130, 1131, 1132,
     1135, 1138, 1141, 1143, 1145, 1146, 1147, 1148, 1150, 1152,
     1153, 1155, 1156, 1157, 1159, 1160, 1162, 1164, 1165, 1166,
     1167, 1168, 1169, 1171, 1173, 1174, 1175, 1176, 1179, 1182,
     1184, 1186, 1187, 1188, 1190, 1191, 1194, 1196, 1197, 1198,
     1199, 1200, 1201, 1203, 1206, 1208, 1209, 1211, 1213, 1215,
     1216, 1219, 1220, 1222, 1224, 1225, 1226, 1228, 1229, 1231,
     1232, 1235, 1236, 1237, 1239, 1240, 1242, 1243, 1245, 1247,

     1248, 1250, 1253, 1255, 1256, 1259, 1261, 1263, 1263
    } ;

static yyconst int 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,    1,   12,   13,   14,   15,   16,   17,   18,
       18,   19,   20,   21,   18,   22,   23,   24,   25,   26,
       27,    1,    1,   10,   28,   29,   30,   31,   32,   33,
       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
       10,    1,   54,   55,    1,    1,   56,   57,   58,   59,

       60,   61,   62,   63,   64,   65,   61,   66,   67,   68,
       69,   70,   61,   71,   72,   73,   74,   75,   61,   76,
       61,   77,   78,   79,   80,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    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 int yy_meta[81] =
    {   0,
        1,    2,    3,    3,    3,    1,    4,    5,    6,    1,
        1,    1,    7,    1,    1,    8,    8,    8,    8,    8,
        8,    8,    8,    9,    1,    1,    9,   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,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
       11,   11,   11,   11,   11,   11,   11,   12,    1,   12
    } ;

static yyconst short int yy_base[737] =
    {   0,
        0,    0,   78,   81,   84,   95,   90,   92,   89,   99,
       87,  101,  181,  261,  119,  131, 1569, 1559,  138,  146,
     1557, 1553,  333,  154, 4166,  155, 1546,  101, 4166,  198,
     1535, 4166,  398,  198,  255,  263,  204,  279,  447,  183,
      304,  453,  280,  469,  491,  492,  509,  525,  540,  543,
      561, 1545,  608,    0, 4166, 4166, 1544, 1538, 4166, 4166,
     1532, 1534,    0,    0, 1537,    0,    0, 1519, 4166, 4166,
     4166,    0, 4166, 4166,  631,  710,    0,  113,  127,  223,
     4166, 1534,  198,    0, 1531, 1528, 1516,  155, 1514,  645,
     1517, 1512,  598, 1509, 4166,  647, 1493,  734,  648,  649,

      664,  700,  665,  699, 1495,  715,  728,  731,  739,  783,
      786,  804,  801,  817,  825,  840,  846,  843,  861,  185,
       96,  872,  878,  889,  895,  906,  917,  923,  934,  156,
      947,  950,  963,  971,  191,  974,  987,  998, 1011,  215,
     1027, 1033, 1044, 1050, 1061, 1067, 1078, 1084, 1095,  100,
     1101, 1117,  216,  241, 1116,    0, 1493,    0, 1150, 1162,
        0, 4166, 1492, 4166,    0, 4166,    0, 1477,    0, 1461,
      295,    0,  420, 4166, 1488,    0, 1486,    0, 1485,   91,
     1461,  141, 1170, 4166, 4166, 1181, 1480, 1166, 1167, 1182,
     1183, 1230, 1467, 1238, 1241, 1254, 1262, 1270, 1278, 1291,

     1299, 1302, 1323, 1324, 1339, 1345, 1356, 1362, 1373, 1379,
     1390, 1401,  229,  212, 1414, 1422, 1425, 1440, 1443, 1446,
     1471, 1468, 1474, 1489,  245, 1492, 1507, 1513,  270, 1524,
     1535, 1541, 1552, 1563,  244, 1574, 1580, 1591, 1597, 1612,
     1613, 1628, 1639, 1645, 1660, 1666,  278, 1677, 1688, 1701,
      338,  286,  439, 1704, 1463,  475,  511, 1461, 4166,   96,
     1430, 1405, 1445, 1443, 4166, 4166, 4166, 4166,  480, 1712,
     1725, 1736, 1742, 1753, 1759, 1775, 1776, 1791, 1799, 1807,
     1823, 1820, 1831, 1844, 1847, 1862, 1868, 1879, 1885, 1896,
     1911, 1917,  288,  268, 1928, 1934, 1949, 1950, 1965, 1971,

     1986, 1999, 2007, 2015,  316, 2030, 2033, 2046,  297, 2054,
     2069, 2072, 2090,  264, 2087, 2093, 2110, 2116, 2127, 2133,
     2144, 2150, 2161, 2167,  471, 2182, 2183, 2200, 2199, 2216,
      440,  343,  492, 2217,  590,  670,  631, 2254, 1439,  456,
     2239, 2254, 2260, 2271,  496, 2277, 2292, 2295, 2303, 2316,
     2324, 2332, 2345, 2353, 2366, 2374, 2382, 2390, 2405, 2411,
     2422, 2428, 2443,  106,  478,  530, 2444, 2464, 2461, 2482,
     2481, 2497, 2503, 2514, 2520, 2535,  491, 2538, 2541, 2558,
      498, 2559,  321, 2574, 2580,  304, 2595, 2596, 2611, 2612,
      534,  493,  514, 2627, 2633, 2644,  585, 2655,  552,  586,

      510,  697,  728, 4166,  312, 2661, 2677, 2683,  663, 2694,
     2700, 2711, 2717, 2733, 2734, 2749, 2760, 2766, 2783, 2789,
     2800, 2806, 2817, 2823, 2834, 2840, 2856,  512,  538,  702,
     2857, 2872, 2878, 2889, 2895, 2910, 2916, 2927, 2942, 2948,
      524,  545, 2959, 2975,  640, 2972, 1407, 2983, 2996,  696,
     3004, 3019, 3022, 3025,  749, 1414,  238, 3040, 3043,  515,
      609,  701,  546,  638,  781, 3078, 1398, 3063, 3076,  748,
     3079, 3094, 3100, 3111, 3117, 3128, 3134, 3145, 3156, 3162,
     3173, 3179, 3190, 3201, 3207, 3218,  775,  713,  806, 3224,
     3235, 3246, 3252, 3263, 3269, 3284, 3285, 3300, 3306, 1396,

      805, 3317,  807, 3323, 1402, 3334, 3345,  840, 3351, 3366,
      810, 1394,  849, 3372, 1410,  835,  824,  822,  850, 1029,
      119, 3383, 3398,  846, 3404, 3415, 3426, 3432, 3443, 3449,
     3464, 3467, 3475, 3488, 3491,  804,  668,  884,  899, 3506,
     3512, 3523, 3529, 3540, 3546,  901, 1380,  910, 3557,  844,
     1370,  909, 3577, 3574,  916, 1348,  914, 3580,  926,  942,
      961,  972, 1149, 1214,  892, 3595, 3601, 1370, 3612, 3618,
     3633, 3634, 3649,  550, 3655, 3666,  938,  988,  954, 1362,
     3672, 3683, 3694, 1007, 1333,  967,  986, 1305,  983, 1011,
     1331, 1286,  992, 3700, 1052, 1036, 1038, 1045, 1320, 4166,

     1299, 3711, 3717, 3732, 3733, 3748, 1254, 3749, 3764, 1054,
     1010, 1065, 3770, 3781, 3792, 1073, 1251, 1075, 1051, 1230,
     1047, 1228, 1193, 1135, 1215, 1088, 1162, 1163, 1159, 3798,
     3809, 3815, 1159, 3826, 1164, 1081, 1200, 3837, 3843, 1223,
     1161, 1207, 1248, 1088, 1189, 1102, 1098, 1222, 1191, 1252,
     1293, 1064, 1056, 3858, 1274, 1263, 1295, 3859, 3874, 1048,
     1010, 1345, 1029,  929, 1291,    0,  934, 1347, 1360, 1322,
     1363,  912,  908, 3875,  937, 1221,  931,  888,  918, 1190,
        0, 1364,  829,  842, 1366, 1385,  825,  791,  713, 1357,
        0, 1285, 1415,  639, 1433,  670,  637,  621,  576, 1379,

      336,    0,  236,  122,    0,  132,    0, 4166, 3923, 3935,
     3947, 3959, 3971, 3983, 3995, 4006, 4010, 4021, 4033, 4045,
     4056, 4067, 4078, 4083, 4088, 4092, 4097, 4101, 4105, 4109,
     4120, 4126, 4136, 4143, 4150, 4157
    } ;

static yyconst short int yy_def[737] =
    {   0,
      708,    1,  709,  709,  709,  709,  710,  710,  711,  711,
      712,  712,  713,  713,  714,  714,  708,  708,  708,  708,
      708,  715,  708,  716,  708,  708,  708,  708,  708,  708,
      708,  708,  708,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,  717,  708,  718,  708,  708,  708,  708,  708,  708,
      708,  708,  719,  719,  708,  720,  720,  708,  708,  708,
      708,  721,  708,  708,  722,  722,  723,  708,  708,   23,
      708,  708,  708,  715,  715,  708,  724,  708,  725,  716,
      716,  708,  708,  708,  708,  708,  708,  726,   33,   33,

       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,  727,
      727,   33,   33,   33,   33,   33,   33,   33,   33,  727,
       33,   33,   33,   33,  727,   33,   33,   33,   33,  727,
       33,   33,   33,   33,   33,   33,   33,   33,   33,  727,
       33,   33,  727,  727,   33,  728,  717,   53,  708,  708,
      718,  708,  708,  708,  719,  708,  720,  708,  721,   76,
       76,  723,  708,  708,  708,  729,  724,  730,  725,  708,
      708,  731,  708,  708,  708,  726,  732,   33,   33,   33,
       33,   33,  732,   33,   33,   33,   33,   33,   33,   33,

       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,  727,  727,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,  727,   33,   33,   33,  727,   33,
       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,  727,   33,   33,   33,
      727,  727,  727,   33,  728,  733,  734,  708,  708,   76,
       76,  708,  729,  730,  708,  708,  708,  708,  731,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,  727,  727,   33,   33,   33,   33,   33,   33,

       33,   33,   33,   33,  727,   33,   33,   33,  727,   33,
       33,   33,   33,  727,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
      727,  727,  727,   33,  733,  733,  734,  708,  708,   76,
       33,   33,   33,   33,  727,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,  727,  727,  727,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,  727,   33,   33,   33,
      727,   33,  186,   33,   33,  727,   33,   33,   33,   33,
      727,  186,  727,   33,   33,   33,  727,   33,  727,  727,

      727,  708,  735,  708,   76,   33,   33,   33,  727,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,  727,  727,  727,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
      186,  727,   33,   33,  727,   33,  186,   33,   33,  727,
       33,   33,   33,   33,  727,  186,  727,   33,   33,  727,
      727,  727,  727,  727,  735,  708,   76,   33,   33,  727,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,  727,  727,  727,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,  186,

      727,   33,  727,   33,  186,   33,   33,  727,   33,   33,
      727,  186,  727,   33,  727,  727,  727,  727,  727,  736,
       76,   33,   33,  727,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,  727,  727,  727,  727,   33,
       33,   33,   33,   33,   33,  727,  186,  727,   33,  727,
      186,  727,   33,   33,  727,  186,  727,   33,  727,  727,
      727,  727,  736,  736,   76,   33,   33,  727,   33,   33,
       33,   33,   33,  186,   33,   33,  727,  727,  727,  727,
       33,   33,   33,  727,  186,  727,  727,  186,  727,  186,
      727,  186,  727,   33,  727,  727,  727,  727,  708,  708,

      721,   33,   33,   33,   33,   33,  186,   33,   33,  727,
      727,  727,   33,   33,   33,  727,  186,  727,  727,  186,
      727,  186,  186,  727,  727,  727,  727,  727,  721,   33,
       33,   33,  186,   33,  727,  727,  727,   33,   33,  727,
      186,  727,  727,  186,  727,  186,  186,  727,  727,  727,
      727,  721,  186,   33,  727,  727,  727,   33,   33,  727,
      186,  727,  727,  186,  727,  186,  186,  727,  727,  727,
      727,  721,  186,   33,  727,  727,  727,  186,  727,  727,
      186,  727,  186,  727,  727,  727,  727,  721,  186,  727,
      186,  727,  727,  186,  727,  727,  721,  186,  727,  727,

      727,  186,  727,  721,  186,  727,  721,    0,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708
    } ;

static yyconst short int yy_nxt[4247] =
    {   0,
       18,   19,   20,   19,   19,   21,   22,   23,   24,   25,
       18,   25,   26,   27,   28,   29,   30,   30,   30,   30,
       30,   30,   30,   31,   21,   32,   32,   33,   34,   35,
       36,   37,   38,   39,   40,   41,   40,   40,   40,   42,
       43,   44,   45,   40,   46,   47,   48,   49,   50,   51,
       40,   40,   40,   21,   21,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
       52,   52,   52,   52,   52,   52,   52,   53,   21,   25,
       55,   56,   56,   55,   56,   56,   55,   56,   56,   67,
       57,   64,   60,   57,   60,   65,   58,   55,   56,   56,

       61,   64,   61,   67,   62,   65,   62,   58,  193,   82,
       68,   95,  193,   69,  173,  173,  173,  173,  193,  265,
       78,   79,   78,   78,   68,  266,   80,   69,  173,  173,
      173,  173,   78,   79,   78,   78,  170,  340,   80,   83,
       83,   83,   83,  268,  193,  268,   82,   83,   83,   83,
       83,  214,  565,  269,   82,   90,   90,   90,   90,  170,
      707,  428,   82,   82,   70,  247,   71,   92,  193,   90,
       90,   93,   93,   93,   93,   93,   93,   93,   70,   86,
       71,   72,   73,   74,   73,   73,   72,   72,   72,   72,
       72,   72,   72,   72,   72,   72,   32,  193,   81,   83,

       83,   83,   83,  193,   72,   72,   72,   72,   32,   88,
       81,   99,   76,   96,   96,   96,   96,   96,   96,   96,
       96,   99,  225,   99,  193,   99,   99,  193,  193,  106,
       99,  708,   99,  107,   72,   72,   99,  108,   99,  109,
       99,  193,   99,  115,  116,   99,   99,  708,  193,  110,
      193,   99,  213,  193,  117,  229,  193,  193,   73,   72,
       73,   72,   73,   74,   73,   73,   72,   72,   72,   72,
       72,   72,   72,   72,   72,   72,  193,  708,  235,  251,
      193,  294,  193,   99,   72,   72,   72,   72,  293,  111,
      193,   99,   76,  112,  114,   99,  113,   99,  193,  252,

      193,   99,   99,   99,  305,   99,  118,   99,   99,  193,
       99,  314,  253,  513,   72,   72,  193,   99,   99,   99,
       99,   99,   99,  119,  260,  261,   99,  129,  193,  309,
      365,  122,   99,  708,  123,  170,  386,  325,   73,   72,
       73,   82,   99,  124,  125,  332,   99,  467,  193,  126,
      193,   99,  170,  130,  381,  193,  447,   86,  364,  450,
       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,  377,   88,   89,   89,
       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,

       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
       98,  400,  331,   99,   99,   99,   99,   99,   99,   99,
       99,  173,  173,  173,  173,   99,  100,   99,   99,   99,
       99,   99,   99,   99,   99,   99,  101,   99,  102,   99,
      103,   99,   99,   99,   99,  104,   99,   99,   99,   99,
       99,  193,  193,  105,  105,  105,  105,  105,  105,  105,
      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
      105,  105,  105,  105,  105,   99,  335,  335,  335,  335,
      127,   99,  268,  193,  268,   99,  405,   99,  128,   99,
      193,   99,  269,   99,   99,   99,  170,  131,  132,  399,

       99,  133,  333,  193,  193,  708,  120,   99,  193,   99,
      193,  134,  337,  337,  337,  337,   99,  121,  136,   99,
       99,  137,  193,  141,  193,  135,  193,  193,  456,  138,
       99,   99,   99,   99,   99,  139,  708,   99,   99,   99,
      142,  429,  193,  393,  143,  146,  193,   99,  401,   99,
      193,   99,  147,   99,  442,  144,   99,  193,  193,  500,
      145,  140,  708,   99,  193,   99,  409,   99,   99,  148,
      445,   99,   99,  457,  515,  464,  149,  487,   99,  607,
      151,   99,   99,   99,  150,   99,  152,   99,  193,   99,
       99,  335,  335,  335,  335,  488,  155,  193,  193,   99,

      430,   99,  501,   99,  455,  518,  154,  153,   99,  158,
      158,  158,  158,  183,  183,  183,  183,  183,  183,  183,
      183,  193,  462,  159,  159,  159,  159,  159,  159,  160,
      160,  169,  337,  337,  337,  337,  169,  169,  169,  169,
      169,  169,  169,  169,  169,  169,   90,   90,   90,   90,
      193,  460,  193,  180,  169,  169,  169,  169,  463,  705,
       90,   90,   96,   96,   96,   96,   96,   96,   96,   96,
      503,  402,  402,  402,  402,  193,   99,   99,  704,  516,
      193,  403,  193,  702,  169,  169,   99,   99,   99,   99,
       99,   99,   99,   99,  188,   99,   99,  519,  402,  402,

      402,  402,  189,   99,   99,   99,   99,  191,  193,  169,
      169,   99,   99,  193,  193,  169,  169,  169,  169,  169,
      169,  169,  169,  169,  169,  193,  470,   99,   99,  465,
      465,  465,  465,  169,  169,  169,  169,   99,   99,   99,
       99,   99,   99,   99,  578,  192,   99,   99,  194,  404,
      171,  190,  508,   99,  698,   99,   99,   99,  538,   99,
      193,  193,   99,  169,  169,  489,   99,   99,   99,   99,
       99,   99,  517,  196,  195,   99,  404,   99,   99,   99,
      197,   99,  465,  465,  465,  465,   99,  193,  169,  187,
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,

      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
      187,   99,  511,  198,   99,  524,  193,  193,  193,  193,
      536,   99,  193,   99,   99,   99,   99,  199,   99,   99,
       99,  200,   99,   99,  193,  697,  193,  193,  537,   99,
      201,  202,   99,   99,   99,   99,   99,  193,   99,  203,
      548,   99,  193,  204,  193,   99,  193,   99,  193,   99,
      694,  193,  193,   99,   99,   99,  550,   99,   99,  205,
      206,   99,   99,  539,   99,  208,  577,  555,   99,  560,
       99,  211,   99,   99,   99,   99,   99,  207,  209,   99,
       99,  215,  210,   99,  557,  562,  193,  561,  559,   99,

       99,   99,  212,   99,  601,  552,   99,  568,   99,  216,
       99,  193,   99,  193,   99,  587,   99,   99,   99,   99,
       99,  193,  193,   99,  218,   99,  193,   99,  193,   99,
      193,  217,  170,   99,   99,   99,   99,   99,  193,  691,
      219,  220,   99,  193,   99,   99,   99,  221,   99,  193,
      193,   99,  689,   99,  193,   99,  579,   99,  688,   99,
      580,   99,   99,  223,   99,   99,  193,  222,  589,  683,
       99,  584,  224,  193,   99,   99,   99,  591,   99,  193,
      681,   99,  586,  226,  193,   99,  593,   99,   99,   99,
       99,   99,   99,  595,   99,  193,  227,   99,  193,   99,

      193,   99,   99,   99,  193,   99,  597,  596,  610,   99,
       99,   99,   99,   99,   99,   99,   99,  228,   99,  193,
      230,   99,  193,  708,  612,   99,   99,   99,  621,   99,
      563,  563,  563,  563,   99,  231,   99,  618,   99,   99,
       99,  193,  233,  619,  598,  232,  234,  611,  193,   99,
      193,   99,  622,   99,  236,   99,  678,  193,   99,  193,
      193,   99,  624,  193,  193,  237,  193,   99,  636,   99,
      616,   99,   99,   99,   99,   99,  238,  193,   99,  239,
       99,  626,   99,  243,   99,  193,   99,  193,   99,   99,
       99,   99,   99,  193,  241,   99,  240,   99,  680,   99,

      193,  242,  673,   99,  672,   99,   99,   99,   99,   99,
      627,  244,   99,  625,   99,  628,   99,  635,   99,  645,
       99,  643,   99,   99,   99,   99,   99,  656,  637,   99,
      667,  245,  666,   99,  664,   99,  248,  246,  642,   99,
      640,   99,   99,   99,   99,   99,  249,  193,   99,  250,
      563,  563,  563,  563,   99,   99,   99,   99,   99,   99,
      649,  256,  254,   99,   99,  160,  160,  160,  160,  160,
      160,  160,  160,  257,  193,  193,  193,  160,  160,  160,
      160,  160,  160,  160,  160,  183,  183,  183,  183,  183,
      183,  183,  183,   98,   99,   99,  661,  270,  648,  653,

      652,  193,  193,  193,   99,   99,   99,   99,   99,   99,
       99,   99,  193,   99,   99,  599,  599,  599,  599,  193,
       99,  271,   99,   99,   99,   99,  651,  193,  647,   99,
       99,  655,  650,  193,  193,  193,  187,  187,  187,  187,
      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
      187,  187,  187,  187,  187,  187,  187,  187,   99,  665,
      193,  669,  692,  646,  193,  644,   99,  657,   99,   99,
       99,  272,   99,  273,  662,  193,   99,   99,   99,   99,
       99,   99,   99,   99,  660,   99,  193,  690,   99,  668,
       99,  641,   99,  600,   99,  633,   99,  193,   99,  274,

      275,   99,   99,  193,   99,  193,   99,  193,   99,   99,
       99,  663,   99,  277,  276,  670,   99,   99,   99,   99,
       99,  599,  599,  599,  599,   99,  676,   99,  629,   99,
       99,   99,  623,   99,  193,  675,  278,   99,   99,   99,
       99,  279,   99,  193,   99,  620,   99,  280,  281,   99,
      282,   99,   99,  700,  682,  284,  677,  193,  283,  193,
      671,   99,   99,   99,   99,   99,   99,   99,  617,  193,
       99,   99,  193,   99,  193,  193,  193,   99,  193,   99,
      285,   99,  193,   99,   99,   99,   99,   99,  592,  686,
       99,  193,   99,  287,   99,  286,   99,  193,   99,  600,

       99,   99,   99,   99,   99,  588,  679,   99,  684,   99,
      290,  288,  585,   99,  289,   99,  699,   99,   99,   99,
       99,   99,  193,  685,  687,  556,   99,  193,   99,   99,
       99,  693,   99,  695,  551,  291,  547,   99,  521,   99,
      292,   99,   99,   99,  512,  193,  696,  505,   99,  706,
       99,  339,   99,   99,   99,  178,   99,  176,  174,  295,
       99,   99,  296,  297,   99,   99,  298,   99,   99,   99,
      170,   99,   99,  339,   99,  156,  701,  301,  299,  708,
       99,   99,   99,   99,   99,   99,   99,   99,   99,  300,
       99,  302,  193,   99,  703,  266,   99,  178,  176,   99,

      262,  170,   99,  259,  258,  156,   99,  193,   99,   99,
       99,   99,   99,   99,   99,   99,   99,   99,   99,  185,
       99,  303,  184,  306,  182,  181,  178,  304,  176,   99,
       99,   99,   99,  175,   99,   99,   99,  174,  307,   99,
      174,   99,  168,  166,   95,   99,  164,   99,  308,   99,
      163,   99,   99,   99,   99,   99,  162,  156,   97,   94,
       99,   85,   99,   99,   99,   82,   99,   82,  708,   99,
      310,   99,  708,   99,  708,   99,  708,   99,  708,   99,
       99,   99,   99,   99,  708,  708,  311,  708,   99,  708,
       99,   99,   99,  708,   99,  708,  708,  312,  708,   99,

      708,   99,   99,   99,  708,   99,  708,  316,   99,  708,
       99,  313,  315,  708,   99,  708,   99,  708,   99,   99,
       99,   99,   99,  708,  708,   99,  708,   99,  708,   99,
      708,   99,  708,   99,  708,   99,  708,   99,  317,   99,
       99,   99,  708,  318,   99,  708,  708,  708,  319,  708,
       99,   99,   99,   99,   99,   99,   99,  708,  708,   99,
       99,  708,  708,  708,  708,  708,   99,   99,   99,  708,
       99,  708,  708,   99,  320,   99,  708,   99,  708,   99,
      708,   99,  708,   99,  321,   99,   99,   99,   99,  708,
      322,  323,   99,  708,   99,  708,  708,  324,   99,  708,

       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
      708,  708,  708,   99,  708,   99,   99,   99,  326,   99,
      327,  708,  330,  708,   99,  328,   99,  708,   99,   99,
       99,  708,   99,  708,  329,   99,  708,  708,  334,   99,
       99,   99,   99,   99,   99,  708,   99,  708,   99,  708,
       99,   99,  341,   99,   99,  708,  708,  708,  708,   99,
      342,  708,  708,   99,   99,   99,  708,   99,  708,  708,
       99,  708,   99,  708,   99,  343,   99,  708,   99,  708,
       99,   99,  344,   99,   99,  708,  708,   99,  708,   99,
      346,   99,  708,   99,  708,   99,  708,   99,  708,   99,

       99,   99,  347,   99,   99,  348,   99,  708,  708,  708,
      708,  708,  708,   99,   99,   99,   99,   99,   99,   99,
      708,  708,   99,   99,  708,  345,  708,   99,  708,   99,
      708,   99,  708,   99,  708,   99,  349,   99,   99,   99,
      350,   99,  708,  708,  708,   99,   99,   99,   99,   99,
      352,   99,  708,  351,   99,  708,  708,  708,   99,   99,
       99,   99,   99,   99,  708,   99,  708,  353,  708,   99,
       99,  354,   99,   99,  355,   99,  708,  356,   99,  708,
      708,  708,   99,  708,   99,   99,   99,   99,  708,   99,
       99,   99,  708,  357,   99,  708,   99,  708,  708,  708,

       99,  708,   99,  708,   99,  708,   99,   99,   99,   99,
      358,  708,  708,   99,  359,   99,  708,   99,  708,   99,
      708,   99,  708,   99,   99,   99,   99,   99,  708,  360,
      708,  708,   99,  708,   99,  708,  361,  708,   99,   99,
      362,  708,  363,   99,  708,   99,  708,  708,  708,   99,
      708,   99,  708,   99,  708,   99,   99,   99,   99,   99,
      708,  708,   99,  708,   99,  708,   99,  708,   99,  708,
       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
      367,   99,  708,  708,  368,  708,  708,   99,   99,   99,
       99,   99,   99,   99,  369,  708,   99,   99,  371,   99,

      366,  708,  708,   99,  708,   99,  708,   99,  708,   99,
      708,   99,  370,   99,   99,  372,  708,  375,   99,  373,
      708,  708,  708,  708,   99,  708,   99,   99,   99,  708,
      374,  708,  708,   99,  708,   99,  708,   99,  708,   99,
      708,   99,  708,   99,  708,   99,   99,   99,  708,   99,
      708,  708,  376,   99,   99,   99,  708,   99,   99,  378,
      708,   99,   99,  708,  708,  708,  708,  708,   99,  708,
       99,   99,   99,   99,   99,   99,  708,   99,  708,  379,
       99,  383,   99,  708,   99,  382,   99,  380,   99,  708,
      708,  708,   99,   99,   99,  708,   99,   99,  708,  708,

       99,   99,  708,  384,  708,  708,  708,   99,  708,   99,
       99,   99,   99,  708,   99,   99,   99,  385,   99,   99,
      708,   99,  708,  708,  708,   99,  708,   99,   99,   99,
       99,   99,   99,   99,   99,   99,  708,   99,   99,  387,
       99,  388,  708,  708,   99,  708,  708,  708,   99,  708,
       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
      390,   99,  708,   99,  708,   99,  708,  389,  708,   99,
      708,   99,   99,   99,   99,   99,  708,  708,   99,  392,
       99,  708,   99,  708,   99,  708,   99,  708,   99,   99,
       99,   99,   99,  708,  708,   99,  708,   99,  708,   99,

      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
       99,   99,  708,  708,   99,  708,  391,  708,  708,  708,
       99,   99,  394,   99,   99,   99,  708,   99,   99,   99,
      395,  396,  708,  708,  708,  708,  708,   99,   99,   99,
       99,   99,   99,  708,   99,   99,   99,   99,  708,  708,
      708,  708,  708,  708,   99,   99,   99,   99,   99,   99,
      708,  398,  397,   99,   99,  403,  708,   99,  708,  338,
      338,  338,  338,  338,  338,  338,  338,   99,  708,   99,
      708,   99,   99,  407,  708,  406,   99,  408,   99,  708,
      708,  708,   99,  708,   99,  708,   99,  708,   99,   99,

       99,   99,   99,  708,  410,   99,  708,   99,  708,   99,
      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
       99,  411,  708,   99,   99,  708,  412,  708,  708,  708,
       99,   99,   99,   99,   99,   99,  708,   99,  708,   99,
      708,   99,   99,   99,   99,   99,  708,  708,  708,  708,
       99,  708,   99,  708,   99,  708,  413,  708,   99,  708,
       99,  708,   99,   99,   99,  708,   99,  415,  414,  708,
       99,   99,   99,   99,   99,  708,  708,  708,  708,   99,
      708,   99,  708,  416,  417,   99,  708,   99,  418,  708,
      708,   99,   99,   99,   99,   99,  419,  708,  708,  708,

       99,  708,   99,  708,   99,  420,   99,  708,   99,  421,
       99,  708,   99,   99,   99,  708,   99,  708,   99,  708,
       99,   99,   99,  708,   99,  708,  422,  708,   99,   99,
       99,  708,   99,   99,  424,  708,  423,   99,  708,   99,
      708,  708,  708,   99,  708,   99,  708,   99,  708,   99,
       99,   99,   99,   99,  708,  708,   99,  425,   99,  708,
       99,  708,   99,  708,   99,  708,   99,  426,  427,   99,
       99,   99,   99,  708,  708,   99,  708,  708,  708,  431,
      708,   99,   99,   99,   99,   99,   99,  708,  708,   99,
       99,   99,   99,  432,  708,  433,  708,  708,  708,   99,

      708,   99,   99,   99,   99,  708,   99,  434,   99,   99,
       99,   99,  435,  708,  708,  708,  708,  708,  708,   99,
       99,  436,   99,   99,   99,   99,  708,  708,   99,   99,
      708,   99,  708,  708,  438,   99,  708,   99,  708,   99,
      440,   99,   99,   99,  437,   99,  708,  441,   99,  708,
       99,  708,   99,  708,   99,  708,   99,  708,   99,  439,
       99,   99,   99,   99,  708,  708,   99,   99,  708,   99,
      708,  708,  708,   99,  708,   99,   99,   99,   99,   99,
       99,   99,   99,   99,  443,   99,   99,   99,   99,  708,
      708,  708,  708,  708,  708,  708,   99,   99,  444,   99,

       99,   99,   99,  446,  708,   99,   99,  708,   99,  708,
      708,  708,   99,  708,  448,  708,   99,  708,   99,  708,
       99,   99,   99,   99,   99,  708,  449,   99,  708,  708,
      451,  708,  708,   99,   99,   99,  452,   99,   99,   99,
       99,  708,   99,   99,  453,  708,  708,  708,  708,   99,
       99,   99,   99,   99,   99,   99,  708,  708,   99,   99,
      708,   99,  454,  708,  458,   99,  708,   99,  708,   99,
      708,   99,   99,   99,   99,   99,  708,  708,  708,  708,
       99,  708,   99,   99,   99,  708,   99,  708,  459,   99,
      708,   99,  708,   99,  708,   99,  708,   99,  708,   99,

      708,   99,   99,   99,  468,   99,  708,  708,   99,  708,
      708,   99,  708,  708,  708,   99,  708,   99,  708,   99,
      708,   99,   99,   99,   99,   99,  708,  461,   99,  469,
       99,  708,   99,  708,  471,  708,   99,  708,   99,   99,
       99,   99,   99,  708,  708,   99,  472,   99,  473,   99,
      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
      474,   99,   99,  708,   99,  708,  708,  708,  708,  708,
      708,   99,   99,   99,  475,   99,   99,   99,  708,  708,
       99,   99,  708,  708,  708,  708,  708,   99,   99,   99,
      477,   99,  708,  708,   99,  476,   99,  708,   99,  708,

       99,  708,   99,  708,   99,  708,   99,   99,   99,  708,
      708,   99,  478,   99,  479,  708,  708,   99,  708,  480,
      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
       99,   99,  708,  482,   99,  708,   99,  708,   99,  708,
      481,  708,   99,  708,   99,   99,   99,   99,   99,  708,
      708,   99,  708,   99,  708,   99,  708,   99,  483,   99,
      708,   99,   99,   99,   99,   99,  708,  708,   99,  708,
       99,  708,   99,  708,   99,  485,   99,  708,   99,  484,
       99,   99,   99,  486,   99,   99,  708,   99,  708,  490,
      708,  708,  708,  708,   99,   99,   99,   99,   99,   99,

       99,  708,  708,   99,   99,  708,   99,  491,  492,  708,
       99,  708,   99,  708,   99,  708,   99,   99,   99,   99,
       99,  708,  708,   99,  708,   99,  494,   99,  708,   99,
      708,   99,  708,   99,  493,   99,   99,   99,   99,  495,
      708,  708,   99,  708,   99,  496,  708,  708,   99,  708,
       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
      708,  708,  708,   99,  708,   99,  708,   99,  708,   99,
       99,  497,  708,  498,   99,  708,   99,  708,  708,  708,
       99,  708,   99,  708,   99,  708,   99,   99,   99,   99,
       99,  708,  708,  499,  708,   99,  708,   99,  708,   99,

       99,   99,  502,   99,  708,  708,   99,  708,  708,  708,
       99,   99,  504,   99,   99,   99,  708,   99,  708,   99,
      708,   99,   99,   99,   99,   99,  708,  507,  708,  506,
       99,  708,   99,  708,   99,  708,   99,  708,   99,  708,
      708,  708,   99,   99,   99,  708,   99,   99,  510,  708,
       99,   99,  509,   99,  708,  708,  708,   99,  708,   99,
       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
      708,   99,   99,  708,  708,  708,  708,  708,   99,  708,
       99,   99,   99,   99,  708,   99,  708,   99,  514,  520,
       99,   99,  708,  466,  466,  466,  466,  466,  466,  466,

      466,   99,  708,   99,   99,   99,  708,   99,  708,  522,
       99,  523,  708,  708,   99,  708,   99,   99,   99,   99,
      708,   99,   99,   99,  708,  525,   99,  708,   99,  708,
      708,  708,   99,  708,   99,  708,   99,  708,   99,   99,
      526,   99,   99,  708,  708,   99,  527,   99,  708,   99,
      708,   99,  528,   99,  708,   99,   99,   99,   99,   99,
      708,  708,   99,  708,   99,  708,   99,  708,   99,  708,
       99,  708,   99,   99,   99,   99,   99,  708,  708,  708,
      529,   99,  708,   99,   99,   99,  530,   99,  708,  708,
       99,  708,   99,  708,   99,  708,   99,  708,   99,  708,

       99,   99,   99,   99,   99,  708,  531,   99,  708,   99,
      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
       99,   99,  708,  708,  708,  532,   99,  708,   99,   99,
       99,  708,   99,  708,  708,  534,  533,   99,  708,   99,
      708,   99,  708,   99,  708,   99,   99,   99,   99,   99,
      708,  708,   99,  708,   99,  708,  535,  708,   99,  540,
       99,  708,   99,   99,   99,   99,   99,  708,  708,  708,
      708,   99,  708,   99,   99,   99,  708,   99,  708,  708,
       99,  541,   99,  708,   99,  708,   99,  708,   99,  708,
       99,   99,   99,   99,   99,  708,  708,   99,  708,   99,

      543,   99,  708,   99,  708,   99,  708,   99,  542,   99,
       99,   99,   99,   99,  708,  708,   99,  708,  708,  708,
      708,  708,   99,   99,   99,   99,   99,   99,   99,  545,
      544,   99,   99,  708,   99,  708,  708,  708,   99,  708,
       99,  708,   99,  708,   99,   99,   99,   99,   99,  708,
      708,   99,  708,   99,  708,  549,  708,   99,  708,   99,
      708,   99,   99,   99,   99,   99,  708,  708,  708,  708,
       99,  708,   99,   99,   99,  708,   99,  708,  546,   99,
      708,   99,  553,   99,  708,   99,  708,   99,  708,   99,
      708,   99,   99,   99,   99,  708,  708,  554,   99,  558,

       99,  708,  708,  708,   99,  708,   99,  708,   99,  708,
       99,   99,   99,   99,   99,  708,  708,  708,  566,   99,
      708,   99,  708,   99,  708,   99,   99,  567,  708,  708,
       99,  708,   99,  708,  708,  708,   99,  708,   99,  708,
       99,  708,   99,   99,   99,   99,   99,  708,  569,  708,
      708,   99,  708,   99,   99,   99,  708,   99,  708,  708,
       99,  570,   99,  708,   99,  708,  571,  708,   99,  708,
       99,   99,  572,   99,   99,  708,  574,   99,  708,   99,
      708,   99,  708,   99,  573,   99,  708,   99,  708,   99,
       99,   99,   99,  708,  708,   99,   99,  708,  575,  708,

      708,  708,   99,   99,   99,   99,   99,   99,  708,   99,
      708,   99,  708,   99,   99,   99,   99,   99,  708,   99,
      708,  708,   99,  576,  708,  708,   99,  708,   99,   99,
       99,   99,  708,   99,   99,   99,  708,  581,   99,  708,
       99,  708,  708,  708,   99,  708,   99,  708,   99,  708,
       99,   99,   99,   99,   99,  708,  708,   99,  708,   99,
      708,   99,  708,   99,  708,   99,  708,   99,   99,   99,
       99,   99,  708,  708,   99,  582,   99,  708,   99,  708,
       99,  708,   99,  708,   99,   99,   99,   99,   99,  590,
      708,  708,  583,   99,  708,   99,  708,   99,  708,   99,

      708,  708,   99,  708,   99,   99,  708,  708,   99,  708,
      708,  708,   99,  708,   99,   99,   99,   99,  594,   99,
       99,   99,   99,   99,   99,  708,  708,   99,  708,   99,
      708,  708,  708,   99,  708,   99,  602,   99,  708,   99,
       99,   99,   99,   99,  708,  708,   99,  708,   99,  708,
       99,  708,   99,  708,   99,  708,   99,  708,   99,   99,
       99,   99,   99,  603,  604,   99,  708,  605,  708,  708,
      708,   99,   99,   99,   99,   99,   99,   99,  708,  708,
       99,   99,  708,   99,  708,  608,  708,   99,  708,  606,
      708,   99,  708,   99,   99,   99,   99,   99,  708,  708,

       99,  708,   99,  708,  609,  708,   99,  708,   99,  708,
       99,   99,   99,   99,   99,  708,  613,  708,  708,   99,
      708,   99,   99,   99,  614,   99,  708,  708,   99,  615,
       99,  708,   99,  708,   99,  708,   99,  708,   99,   99,
       99,   99,   99,  708,  708,   99,  708,   99,  708,   99,
      708,  630,  708,   99,  708,   99,  708,   99,   99,   99,
       99,   99,  631,  708,   99,  708,  708,  708,  708,  708,
       99,   99,   99,   99,   99,   99,   99,   99,  708,   99,
       99,  708,  708,  708,  708,  708,   99,   99,   99,   99,
       99,   99,   99,  632,  708,   99,   99,  708,   99,  634,

      708,  708,   99,  708,   99,  708,   99,  708,   99,   99,
       99,   99,   99,  708,  708,  708,  708,   99,  708,   99,
       99,  638,  708,   99,  708,  708,   99,  708,   99,  708,
       99,  708,   99,  639,   99,  708,   99,   99,   99,   99,
       99,  708,  708,   99,  708,   99,  708,   99,  708,   99,
      708,   99,  708,   99,   99,   99,   99,   99,  708,  708,
      708,  708,   99,  708,   99,   99,   99,  708,   99,  708,
      708,   99,  654,   99,  708,   99,  708,   99,  708,   99,
      708,   99,  658,  659,   99,   99,   99,   99,  708,  708,
       99,  708,  708,  708,  708,  708,   99,   99,   99,   99,

       99,   99,   99,   99,  708,   99,   99,  708,  708,  674,
      708,  708,   99,   99,   99,   99,   99,   99,  708,  708,
      708,   99,   99,   54,   54,   54,   54,   54,   54,   54,
       54,   54,   54,   54,   54,   59,   59,   59,   59,   59,
       59,   59,   59,   59,   59,   59,   59,   63,   63,   63,
       63,   63,   63,   63,   63,   63,   63,   63,   63,   66,
       66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
       66,   75,   75,   75,   75,   75,   75,   75,   75,   75,
       75,   75,   75,   77,   77,   77,   77,   77,   77,   77,
       77,   77,   77,   77,   77,   84,   84,   84,  708,   84,

       84,   84,   84,   84,   84,   84,   84,   91,   91,  708,
      708,   91,  708,   91,  708,   91,  157,  157,  708,  157,
      157,  161,  161,  708,  161,  161,  161,  708,  161,  161,
      161,  161,  161,  165,  165,  165,  708,  165,  165,  165,
      165,  165,  165,  165,  165,  167,  167,  167,  167,  167,
      167,  167,  167,  708,  167,  167,  169,  708,  708,  169,
      169,  169,  169,  169,  169,  169,  169,  170,  708,  708,
      170,  170,  170,  170,  170,  170,  170,  170,  172,  708,
      708,  172,  708,  172,  172,  172,  172,  172,  172,  177,
      177,  708,  177,  177,  179,  179,  708,  179,  179,  186,

      708,  186,  186,  105,  105,  708,  105,  105,  255,  708,
      255,  255,  263,  708,  263,  263,  264,  708,  264,  264,
      267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
      267,  267,  187,  187,  708,  187,  187,  336,  336,  708,
      708,  708,  708,  336,  338,  338,  708,  708,  708,  708,
      338,  466,  466,  708,  708,  708,  708,  466,  564,  564,
      708,  708,  708,  708,  564,   17,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,

      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708
    } ;

static yyconst short int yy_chk[4247] =
    {   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,
        3,    3,    3,    4,    4,    4,    5,    5,    5,   11,
        3,    9,    7,    4,    8,    9,    5,    6,    6,    6,

        7,   10,    8,   12,    7,   10,    8,    6,  121,   28,
       11,   28,  150,   11,   78,   78,   78,   78,  364,  180,
       15,   15,   15,   15,   12,  180,   15,   12,   79,   79,
       79,   79,   16,   16,   16,   16,  260,  260,   16,   19,
       19,   19,   19,  182,  706,  182,   19,   20,   20,   20,
       20,  121,  521,  182,   20,   24,   24,   24,   24,  521,
      704,  364,   24,   26,   11,  150,   11,   26,  130,   24,
       24,   26,   26,   26,   26,   26,   26,   26,   12,   88,
       12,   13,   13,   13,   13,   13,   13,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   15,  120,   15,   83,

       83,   83,   83,  135,   13,   13,   13,   13,   16,   88,
       16,   40,   13,   30,   30,   30,   30,   30,   30,   30,
       30,   40,  130,   40,  214,   40,   34,  140,  153,   34,
       40,   80,   37,   34,   13,   13,   34,   34,   34,   34,
       34,  213,   37,   37,   37,   34,   37,   80,  703,   34,
      457,   37,  120,  154,   37,  135,  235,  225,   13,   13,
       13,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,  314,   80,  140,  153,
      294,  214,  229,   35,   14,   14,   14,   14,  213,   35,
      247,   36,   14,   35,   36,   35,   35,   35,  252,  154,

      293,   36,   35,   36,  225,   36,   38,   38,   43,  309,
       36,  235,  154,  457,   14,   14,  386,   38,   43,   38,
       43,   38,   43,   38,  171,  171,   38,   43,  305,  229,
      294,   41,   41,  383,   41,  171,  314,  247,   14,   14,
       14,   23,   41,   41,   41,  252,   41,  405,  701,   41,
      251,   41,  405,   43,  309,  332,  383,   23,  293,  386,
       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,  305,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,

       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       33,  332,  251,   33,   33,   33,   33,   33,   33,   33,
       33,  173,  173,  173,  173,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,  253,  331,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   33,   33,   33,   33,   33,
       33,   33,   33,   33,   33,   39,  256,  256,  256,  256,
       42,   42,  269,  325,  269,   39,  340,   39,   42,   39,
      365,   42,  269,   42,   39,   42,  340,   44,   44,  331,

       42,   44,  253,  377,  333,  392,   39,   44,  345,   44,
      381,   44,  257,  257,  257,  257,   44,   39,   45,   45,
       46,   45,  401,   46,  428,   44,  393,  460,  392,   45,
       46,   45,   46,   45,   46,   45,  441,   47,   45,   46,
       47,  365,  366,  325,   47,   48,  391,   47,  333,   47,
      429,   47,   48,   48,  377,   47,   47,  442,  463,  441,
       47,   45,  574,   48,  399,   48,  345,   48,   49,   48,
      381,   50,   48,  393,  460,  401,   48,  428,   49,  574,
       49,   50,   49,   50,   48,   50,   49,   49,  699,   51,
       50,  335,  335,  335,  335,  429,   51,  397,  400,   51,

      366,   51,  442,   51,  391,  463,   50,   49,   51,   53,
       53,   53,   53,   93,   93,   93,   93,   93,   93,   93,
       93,  461,  399,   53,   53,   53,   53,   53,   53,   53,
       53,   75,  337,  337,  337,  337,   75,   75,   75,   75,
       75,   75,   75,   75,   75,   75,   90,   90,   90,   90,
      464,  397,  445,   90,   75,   75,   75,   75,  400,  698,
       90,   90,   96,   96,   96,   96,   96,   96,   96,   96,
      445,  336,  336,  336,  336,  409,   99,  100,  697,  461,
      537,  336,  696,  694,   75,   75,   99,  100,   99,  100,
       99,  100,  101,  103,  100,   99,  100,  464,  402,  402,

      402,  402,  101,  103,  101,  103,  101,  103,  450,   75,
       76,  101,  103,  462,  430,   76,   76,   76,   76,   76,
       76,   76,   76,   76,   76,  488,  409,  104,  102,  403,
      403,  403,  403,   76,   76,   76,   76,  104,  102,  104,
      102,  104,  102,  106,  537,  104,  104,  102,  106,  336,
       76,  102,  450,  106,  689,  106,  107,  106,  488,  108,
      470,  455,  106,   76,   76,  430,  107,  109,  107,  108,
      107,  108,  462,  108,  107,  107,  402,  109,  108,  109,
      109,  109,  465,  465,  465,  465,  109,  487,   76,   98,
       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,

       98,   98,   98,   98,   98,   98,   98,   98,   98,   98,
       98,  110,  455,  111,  111,  470,  536,  501,  489,  503,
      487,  110,  511,  110,  111,  110,  111,  111,  111,  113,
      110,  112,  112,  111,  518,  688,  517,  687,  487,  113,
      113,  113,  112,  113,  112,  114,  112,  516,  113,  114,
      501,  112,  508,  115,  684,  114,  550,  114,  524,  114,
      683,  513,  519,  115,  114,  115,  503,  115,  116,  116,
      116,  118,  115,  489,  117,  117,  536,  511,  116,  517,
      116,  118,  116,  118,  117,  118,  117,  116,  117,  119,
      118,  122,  117,  117,  513,  519,  538,  518,  516,  119,

      122,  119,  119,  119,  565,  508,  123,  524,  119,  123,
      122,  539,  122,  546,  122,  550,  123,  124,  123,  122,
      123,  552,  548,  125,  125,  123,  557,  124,  555,  124,
      679,  124,  565,  125,  126,  125,  124,  125,  559,  678,
      125,  125,  125,  677,  126,  127,  126,  126,  126,  675,
      577,  128,  673,  126,  560,  127,  538,  127,  672,  127,
      539,  128,  129,  128,  127,  128,  579,  127,  552,  667,
      128,  546,  129,  561,  129,  131,  129,  555,  132,  586,
      664,  129,  548,  131,  562,  131,  557,  131,  132,  131,
      132,  133,  132,  559,  131,  589,  132,  132,  587,  134,

      578,  133,  136,  133,  593,  133,  561,  560,  577,  134,
      133,  134,  136,  134,  136,  137,  136,  134,  134,  584,
      136,  136,  611,  590,  579,  137,  138,  137,  589,  137,
      520,  520,  520,  520,  137,  137,  138,  586,  138,  139,
      138,  663,  139,  587,  562,  138,  139,  578,  596,  139,
      597,  139,  590,  139,  141,  141,  661,  598,  139,  621,
      660,  142,  593,  619,  595,  141,  610,  141,  611,  141,
      584,  142,  143,  142,  141,  142,  142,  612,  144,  142,
      142,  596,  143,  146,  143,  616,  143,  618,  144,  145,
      144,  143,  144,  636,  144,  146,  143,  144,  663,  145,

      626,  145,  653,  145,  652,  146,  147,  146,  145,  146,
      597,  147,  148,  595,  146,  598,  147,  610,  147,  621,
      147,  619,  148,  149,  148,  147,  148,  636,  612,  151,
      647,  148,  646,  149,  644,  149,  151,  149,  618,  151,
      616,  151,  149,  151,  155,  152,  152,  624,  151,  152,
      563,  563,  563,  563,  155,  152,  155,  152,  155,  152,
      626,  159,  155,  155,  152,  159,  159,  159,  159,  159,
      159,  159,  159,  160,  627,  628,  635,  160,  160,  160,
      160,  160,  160,  160,  160,  183,  183,  183,  183,  183,
      183,  183,  183,  186,  188,  189,  641,  188,  624,  633,

      629,  645,  680,  649,  188,  189,  188,  189,  188,  189,
      190,  191,  637,  188,  189,  564,  564,  564,  564,  642,
      190,  191,  190,  191,  190,  191,  628,  625,  623,  190,
      191,  635,  627,  676,  648,  640,  186,  186,  186,  186,
      186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
      186,  186,  186,  186,  186,  186,  186,  186,  192,  645,
      643,  649,  680,  622,  650,  620,  194,  637,  192,  195,
      192,  192,  192,  194,  642,  656,  194,  192,  194,  195,
      194,  195,  196,  195,  640,  194,  655,  676,  195,  648,
      197,  617,  196,  564,  196,  607,  196,  692,  198,  196,

      197,  196,  197,  665,  197,  651,  199,  657,  198,  197,
      198,  643,  198,  199,  198,  650,  199,  198,  199,  200,
      199,  599,  599,  599,  599,  199,  656,  201,  601,  200,
      202,  200,  592,  200,  670,  655,  200,  201,  200,  201,
      202,  201,  202,  591,  202,  588,  201,  202,  202,  202,
      203,  203,  204,  692,  665,  204,  657,  662,  203,  668,
      651,  203,  204,  203,  204,  203,  204,  205,  585,  690,
      203,  204,  669,  206,  580,  671,  682,  205,  685,  205,
      205,  205,  568,  206,  207,  206,  205,  206,  556,  670,
      208,  700,  206,  208,  207,  207,  207,  686,  207,  599,

      208,  209,  208,  207,  208,  551,  662,  210,  668,  208,
      210,  209,  547,  209,  209,  209,  690,  210,  211,  210,
      209,  210,  515,  669,  671,  512,  210,  693,  211,  212,
      211,  682,  211,  685,  505,  211,  500,  211,  467,  212,
      212,  212,  215,  212,  456,  695,  686,  447,  212,  700,
      216,  339,  215,  217,  215,  264,  215,  263,  262,  215,
      216,  215,  216,  217,  216,  217,  217,  217,  218,  216,
      261,  219,  217,  258,  220,  255,  693,  220,  218,  193,
      218,  219,  218,  219,  220,  219,  220,  218,  220,  219,
      219,  221,  187,  220,  695,  181,  222,  179,  177,  221,

      175,  170,  223,  168,  163,  157,  222,  105,  222,  221,
      222,  221,  223,  221,  223,  222,  223,  224,  221,   97,
      226,  223,   94,  226,   92,   91,   89,  224,   87,  224,
      226,  224,  226,   86,  226,  227,  224,   85,  227,  226,
       82,  228,   68,   65,   62,  227,   61,  227,  228,  227,
       58,  228,  230,  228,  227,  228,   57,   52,   31,   27,
      228,   22,  230,  231,  230,   21,  230,   18,   17,  232,
      230,  230,    0,  231,    0,  231,    0,  231,    0,  232,
      233,  232,  231,  232,    0,    0,  232,    0,  232,    0,
      233,  234,  233,    0,  233,    0,    0,  233,    0,  233,

        0,  234,  236,  234,    0,  234,    0,  237,  237,    0,
      234,  234,  236,    0,  236,    0,  236,    0,  237,  238,
      237,  236,  237,    0,    0,  239,    0,  237,    0,  238,
        0,  238,    0,  238,    0,  239,    0,  239,  238,  239,
      240,  241,    0,  240,  239,    0,    0,    0,  241,    0,
      240,  241,  240,  241,  240,  241,  242,    0,    0,  240,
      241,    0,    0,    0,    0,    0,  242,  243,  242,    0,
      242,    0,    0,  244,  242,  242,    0,  243,    0,  243,
        0,  243,    0,  244,  243,  244,  243,  244,  245,    0,
      244,  245,  244,    0,  246,    0,    0,  246,  245,    0,

      245,    0,  245,    0,  246,  248,  246,  245,  246,    0,
        0,    0,    0,  246,    0,  248,  249,  248,  248,  248,
      248,    0,  250,    0,  248,  248,  249,    0,  249,  250,
      249,    0,  254,    0,  249,  249,    0,    0,  254,  250,
      270,  250,  254,  250,  254,    0,  254,    0,  250,    0,
      270,  254,  270,  271,  270,    0,    0,    0,    0,  270,
      271,    0,    0,  271,  272,  271,    0,  271,    0,    0,
      273,    0,  271,    0,  272,  272,  272,    0,  272,    0,
      273,  274,  273,  272,  273,    0,    0,  275,    0,  273,
      275,  274,    0,  274,    0,  274,    0,  275,    0,  275,

      274,  275,  276,  276,  277,  277,  275,    0,    0,    0,
        0,    0,    0,  276,  277,  276,  277,  276,  277,  278,
        0,    0,  276,  277,    0,  274,    0,  279,    0,  278,
        0,  278,    0,  278,    0,  280,  278,  279,  278,  279,
      279,  279,    0,    0,    0,  280,  279,  280,  282,  280,
      281,  281,    0,  280,  280,    0,    0,    0,  282,  283,
      282,  281,  282,  281,    0,  281,    0,  282,    0,  283,
      281,  283,  284,  283,  284,  285,    0,  285,  283,    0,
        0,    0,  284,    0,  284,  285,  284,  285,    0,  285,
      286,  284,    0,  286,  285,    0,  287,    0,    0,    0,

      286,    0,  286,    0,  286,    0,  287,  288,  287,  286,
      287,    0,    0,  289,  288,  287,    0,  288,    0,  288,
        0,  288,    0,  289,  290,  289,  288,  289,    0,  289,
        0,    0,  289,    0,  290,    0,  290,    0,  290,  291,
      290,    0,  291,  290,    0,  292,    0,    0,    0,  291,
        0,  291,    0,  291,    0,  292,  295,  292,  291,  292,
        0,    0,  296,    0,  292,    0,  295,    0,  295,    0,
      295,    0,  296,    0,  296,  295,  296,  297,  298,    0,
      296,  296,    0,    0,  297,    0,    0,  297,  298,  297,
      298,  297,  298,  299,  298,    0,  297,  298,  300,  300,

      295,    0,    0,  299,    0,  299,    0,  299,    0,  300,
        0,  300,  299,  300,  301,  300,    0,  302,  300,  301,
        0,    0,    0,    0,  301,    0,  301,  302,  301,    0,
      301,    0,    0,  301,    0,  303,    0,  302,    0,  302,
        0,  302,    0,  304,    0,  303,  302,  303,    0,  303,
        0,    0,  303,  304,  303,  304,    0,  304,  306,  306,
        0,  307,  304,    0,    0,    0,    0,    0,  306,    0,
      306,  307,  306,  307,  308,  307,    0,  306,    0,  307,
      307,  311,  310,    0,  308,  310,  308,  308,  308,    0,
        0,    0,  310,  308,  310,    0,  310,  311,    0,    0,

      312,  310,    0,  312,    0,    0,    0,  311,    0,  311,
      312,  311,  312,    0,  312,  315,  311,  313,  313,  312,
        0,  316,    0,    0,    0,  315,    0,  315,  313,  315,
      313,  316,  313,  316,  315,  316,    0,  313,  317,  316,
      316,  317,    0,    0,  318,    0,    0,    0,  317,    0,
      317,    0,  317,    0,  318,  319,  318,  317,  318,    0,
      320,  320,    0,  318,    0,  319,    0,  319,    0,  319,
        0,  320,  321,  320,  319,  320,    0,    0,  322,  324,
      320,    0,  321,    0,  321,    0,  321,    0,  322,  323,
      322,  321,  322,    0,    0,  324,    0,  322,    0,  323,

        0,  323,    0,  323,    0,  324,    0,  324,  323,  324,
      326,  327,    0,    0,  324,    0,  321,    0,    0,    0,
      326,  327,  326,  327,  326,  327,    0,  329,  328,  326,
      327,  328,    0,    0,    0,    0,    0,  329,  328,  329,
      328,  329,  328,    0,  330,  334,  329,  328,    0,    0,
        0,    0,    0,    0,  330,  334,  330,  334,  330,  334,
        0,  330,  329,  330,  334,  338,    0,  341,    0,  338,
      338,  338,  338,  338,  338,  338,  338,  341,    0,  341,
        0,  341,  342,  342,    0,  341,  341,  343,  343,    0,
        0,    0,  342,    0,  342,    0,  342,    0,  343,  344,

      343,  342,  343,    0,  346,  346,    0,  343,    0,  344,
        0,  344,    0,  344,    0,  346,    0,  346,  344,  346,
      347,  347,    0,  348,  346,    0,  348,    0,    0,    0,
      347,  349,  347,  348,  347,  348,    0,  348,    0,  347,
        0,  349,  348,  349,  350,  349,    0,    0,    0,    0,
      349,    0,  351,    0,  350,    0,  350,    0,  350,    0,
      352,    0,  351,  350,  351,    0,  351,  352,  351,    0,
      352,  351,  352,  353,  352,    0,    0,    0,    0,  352,
        0,  354,    0,  353,  354,  353,    0,  353,  354,    0,
        0,  354,  353,  354,  355,  354,  355,    0,    0,    0,

      354,    0,  356,    0,  355,  356,  355,    0,  355,  356,
      357,    0,  356,  355,  356,    0,  356,    0,  358,    0,
      357,  356,  357,    0,  357,    0,  357,    0,  358,  357,
      358,    0,  358,  359,  359,    0,  358,  358,    0,  360,
        0,    0,    0,  359,    0,  359,    0,  359,    0,  360,
      361,  360,  359,  360,    0,    0,  362,  360,  360,    0,
      361,    0,  361,    0,  361,    0,  362,  361,  362,  361,
      362,  363,  367,    0,    0,  362,    0,    0,    0,  367,
        0,  363,  367,  363,  367,  363,  367,    0,    0,  369,
      363,  367,  368,  368,    0,  368,    0,    0,    0,  369,

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

      380,  382,  384,  382,    0,  380,  382,    0,  385,    0,
        0,    0,  384,    0,  384,    0,  384,    0,  385,    0,
      385,  384,  385,  387,  388,    0,  385,  385,    0,    0,
      387,    0,    0,  387,  388,  387,  388,  387,  388,  389,
      390,    0,  387,  388,  389,    0,    0,    0,    0,  389,
      390,  389,  390,  389,  390,  394,    0,    0,  389,  390,
        0,  395,  390,    0,  395,  394,    0,  394,    0,  394,
        0,  395,  396,  395,  394,  395,    0,    0,    0,    0,
      395,    0,  396,  398,  396,    0,  396,    0,  396,  406,
        0,  396,    0,  398,    0,  398,    0,  398,    0,  406,

        0,  406,  398,  406,  407,  407,    0,    0,  406,    0,
        0,  408,    0,    0,    0,  407,    0,  407,    0,  407,
        0,  408,  410,  408,  407,  408,    0,  398,  411,  408,
      408,    0,  410,    0,  410,    0,  410,    0,  411,  412,
      411,  410,  411,    0,    0,  413,  411,  411,  413,  412,
        0,  412,    0,  412,    0,  413,    0,  413,  412,  413,
      414,  414,  415,    0,  413,    0,    0,    0,    0,    0,
        0,  414,  415,  414,  415,  414,  415,  416,    0,    0,
      414,  415,    0,    0,    0,    0,    0,  416,  417,  416,
      417,  416,    0,    0,  418,  416,  416,    0,  417,    0,

      417,    0,  417,    0,  418,    0,  418,  417,  418,    0,
        0,  419,  418,  418,  419,    0,    0,  420,    0,  420,
        0,  419,    0,  419,    0,  419,    0,  420,  421,  420,
      419,  420,    0,  422,  422,    0,  420,    0,  421,    0,
      421,    0,  421,    0,  422,  423,  422,  421,  422,    0,
        0,  424,    0,  422,    0,  423,    0,  423,  424,  423,
        0,  424,  425,  424,  423,  424,    0,    0,  426,    0,
      424,    0,  425,    0,  425,  426,  425,    0,  426,  425,
      426,  425,  426,  427,  427,  431,    0,  426,    0,  431,
        0,    0,    0,    0,  427,  431,  427,  431,  427,  431,

      432,    0,    0,  427,  431,    0,  433,  432,  433,    0,
      432,    0,  432,    0,  432,    0,  433,  434,  433,  432,
      433,    0,    0,  435,    0,  433,  435,  434,    0,  434,
        0,  434,    0,  435,  434,  435,  434,  435,  436,  436,
        0,    0,  435,    0,  437,  437,    0,    0,  436,    0,
      436,    0,  436,    0,  437,  438,  437,  436,  437,    0,
        0,    0,    0,  437,    0,  438,    0,  438,    0,  438,
      439,  438,    0,  439,  438,    0,  440,    0,    0,    0,
      439,    0,  439,    0,  439,    0,  440,  443,  440,  439,
      440,    0,    0,  440,    0,  440,    0,  443,    0,  443,

      446,  443,  444,  444,    0,    0,  443,    0,    0,    0,
      446,  448,  446,  444,  446,  444,    0,  444,    0,  446,
        0,  448,  444,  448,  449,  448,    0,  449,    0,  448,
      448,    0,  451,    0,  449,    0,  449,    0,  449,    0,
        0,    0,  451,  449,  451,    0,  451,  452,  452,    0,
      453,  451,  451,  454,    0,    0,    0,  452,    0,  452,
      453,  452,  453,  454,  453,  454,  452,  454,  458,  453,
        0,  459,  454,    0,    0,    0,    0,    0,  458,    0,
      458,  459,  458,  459,    0,  459,    0,  458,  459,  466,
      459,  468,    0,  466,  466,  466,  466,  466,  466,  466,

      466,  468,    0,  468,  469,  468,    0,  471,    0,  468,
      468,  469,    0,    0,  469,    0,  469,  471,  469,  471,
        0,  471,  472,  469,    0,  472,  471,    0,  473,    0,
        0,    0,  472,    0,  472,    0,  472,    0,  473,  474,
      473,  472,  473,    0,    0,  475,  474,  473,    0,  474,
        0,  474,  475,  474,    0,  475,  476,  475,  474,  475,
        0,    0,  477,    0,  475,    0,  476,    0,  476,    0,
      476,    0,  477,  478,  477,  476,  477,    0,    0,    0,
      478,  477,    0,  478,  479,  478,  479,  478,    0,    0,
      480,    0,  478,    0,  479,    0,  479,    0,  479,    0,

      480,  481,  480,  479,  480,    0,  481,  482,    0,  480,
        0,  481,    0,  481,    0,  481,    0,  482,  483,  482,
      481,  482,    0,    0,    0,  482,  482,    0,  483,  484,
      483,    0,  483,    0,    0,  485,  483,  483,    0,  484,
        0,  484,    0,  484,    0,  485,  486,  485,  484,  485,
        0,    0,  490,    0,  485,    0,  486,    0,  486,  490,
      486,    0,  490,  491,  490,  486,  490,    0,    0,    0,
        0,  490,    0,  491,  492,  491,    0,  491,    0,    0,
      493,  491,  491,    0,  492,    0,  492,    0,  492,    0,
      493,  494,  493,  492,  493,    0,    0,  495,    0,  493,

      495,  494,    0,  494,    0,  494,    0,  495,  494,  495,
      494,  495,  496,  497,    0,    0,  495,    0,    0,    0,
        0,    0,  496,  497,  496,  497,  496,  497,  498,  498,
      496,  496,  497,    0,  499,    0,    0,    0,  498,    0,
      498,    0,  498,    0,  499,  502,  499,  498,  499,    0,
        0,  504,    0,  499,    0,  502,    0,  502,    0,  502,
        0,  504,  506,  504,  502,  504,    0,    0,    0,    0,
      504,    0,  506,  507,  506,    0,  506,    0,  499,  509,
        0,  506,  509,  507,    0,  507,    0,  507,    0,  509,
        0,  509,  507,  509,  510,    0,    0,  510,  509,  514,

      514,    0,    0,    0,  510,    0,  510,    0,  510,    0,
      514,  522,  514,  510,  514,    0,    0,    0,  522,  514,
        0,  522,    0,  522,    0,  522,  523,  523,    0,    0,
      522,    0,  525,    0,    0,    0,  523,    0,  523,    0,
      523,    0,  525,  526,  525,  523,  525,    0,  525,    0,
        0,  525,    0,  526,  527,  526,    0,  526,    0,    0,
      528,  526,  526,    0,  527,    0,  527,    0,  527,    0,
      528,  529,  528,  527,  528,    0,  531,  530,    0,  528,
        0,  529,    0,  529,  529,  529,    0,  530,    0,  530,
      529,  530,  531,    0,    0,  532,  530,    0,  532,    0,

        0,    0,  531,  533,  531,  532,  531,  532,    0,  532,
        0,  531,    0,  533,  532,  533,  534,  533,    0,  535,
        0,    0,  533,  534,    0,    0,  534,    0,  534,  535,
      534,  535,    0,  535,  540,  534,    0,  540,  535,    0,
      541,    0,    0,    0,  540,    0,  540,    0,  540,    0,
      541,  542,  541,  540,  541,    0,    0,  543,    0,  541,
        0,  542,    0,  542,    0,  542,    0,  543,  544,  543,
      542,  543,    0,    0,  545,  544,  543,    0,  544,    0,
      544,    0,  544,    0,  545,  549,  545,  544,  545,  553,
        0,    0,  545,  545,    0,  549,    0,  549,    0,  549,

        0,    0,  554,    0,  549,  553,    0,    0,  558,    0,
        0,    0,  554,    0,  554,  553,  554,  553,  558,  553,
      558,  554,  558,  566,  553,    0,    0,  558,    0,  567,
        0,    0,    0,  566,    0,  566,  566,  566,    0,  567,
      569,  567,  566,  567,    0,    0,  570,    0,  567,    0,
      569,    0,  569,    0,  569,    0,  570,    0,  570,  569,
      570,  571,  572,  570,  571,  570,    0,  572,    0,    0,
        0,  571,  572,  571,  572,  571,  572,  573,    0,    0,
      571,  572,    0,  575,    0,  575,    0,  573,    0,  573,
        0,  573,    0,  575,  576,  575,  573,  575,    0,    0,

      581,    0,  575,    0,  576,    0,  576,    0,  576,    0,
      581,  582,  581,  576,  581,    0,  581,    0,    0,  581,
        0,  582,  583,  582,  582,  582,    0,    0,  594,  583,
      582,    0,  583,    0,  583,    0,  583,    0,  594,  602,
      594,  583,  594,    0,    0,  603,    0,  594,    0,  602,
        0,  602,    0,  602,    0,  603,    0,  603,  602,  603,
      604,  605,  604,    0,  603,    0,    0,    0,    0,    0,
      604,  605,  604,  605,  604,  605,  606,  608,    0,  604,
      605,    0,    0,    0,    0,    0,  606,  608,  606,  608,
      606,  608,  609,  606,    0,  606,  608,    0,  613,  609,

        0,    0,  609,    0,  609,    0,  609,    0,  613,  614,
      613,  609,  613,    0,    0,    0,    0,  613,    0,  614,
      615,  614,    0,  614,    0,    0,  630,    0,  614,    0,
      615,    0,  615,  615,  615,    0,  630,  631,  630,  615,
      630,    0,    0,  632,    0,  630,    0,  631,    0,  631,
        0,  631,    0,  632,  634,  632,  631,  632,    0,    0,
        0,    0,  632,    0,  634,  638,  634,    0,  634,    0,
        0,  639,  634,  634,    0,  638,    0,  638,    0,  638,
        0,  639,  638,  639,  638,  639,  654,  658,    0,    0,
      639,    0,    0,    0,    0,    0,  654,  658,  654,  658,

      654,  658,  659,  674,    0,  654,  658,    0,    0,  654,
        0,    0,  659,  674,  659,  674,  659,  674,    0,    0,
        0,  659,  674,  709,  709,  709,  709,  709,  709,  709,
      709,  709,  709,  709,  709,  710,  710,  710,  710,  710,
      710,  710,  710,  710,  710,  710,  710,  711,  711,  711,
      711,  711,  711,  711,  711,  711,  711,  711,  711,  712,
      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
      712,  713,  713,  713,  713,  713,  713,  713,  713,  713,
      713,  713,  713,  714,  714,  714,  714,  714,  714,  714,
      714,  714,  714,  714,  714,  715,  715,  715,    0,  715,

      715,  715,  715,  715,  715,  715,  715,  716,  716,    0,
        0,  716,    0,  716,    0,  716,  717,  717,    0,  717,
      717,  718,  718,    0,  718,  718,  718,    0,  718,  718,
      718,  718,  718,  719,  719,  719,    0,  719,  719,  719,
      719,  719,  719,  719,  719,  720,  720,  720,  720,  720,
      720,  720,  720,    0,  720,  720,  721,    0,    0,  721,
      721,  721,  721,  721,  721,  721,  721,  722,    0,    0,
      722,  722,  722,  722,  722,  722,  722,  722,  723,    0,
        0,  723,    0,  723,  723,  723,  723,  723,  723,  724,
      724,    0,  724,  724,  725,  725,    0,  725,  725,  726,

        0,  726,  726,  727,  727,    0,  727,  727,  728,    0,
      728,  728,  729,    0,  729,  729,  730,    0,  730,  730,
      731,  731,  731,  731,  731,  731,  731,  731,  731,  731,
      731,  731,  732,  732,    0,  732,  732,  733,  733,    0,
        0,    0,    0,  733,  734,  734,    0,    0,    0,    0,
      734,  735,  735,    0,    0,    0,    0,  735,  736,  736,
        0,    0,    0,    0,  736,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,

      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708,  708,  708,  708,  708,
      708,  708,  708,  708,  708,  708
    } ;

extern int yy_flex_debug;
int yy_flex_debug = 1;

static yyconst short int yy_rule_linenum[133] =
    {   0,
       92,   93,   95,   98,  101,  103,  104,  105,  108,  110,
      111,  112,  124,  131,  138,  144,  153,  161,  169,  170,
      172,  191,  197,  198,  199,  200,  201,  204,  210,  217,
      224,  231,  238,  242,  243,  251,  252,  253,  254,  255,
      260,  261,  262,  263,  264,  265,  266,  267,  268,  269,
      270,  279,  280,  281,  282,  283,  284,  285,  286,  287,
      288,  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,
      342,  343,  348,  349,  350,  353,  358,  364,  372,  382,
      387,  389,  390,  394,  400,  406,  414,  417,  442,  486,
      488,  499
    } ;

static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
static char *yy_full_match;
static int yy_lp;
#define REJECT \
{ \
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
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 *yytext;
#line 1 "asn1p_l.l"
#define INITIAL 0
#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",		\
			yylineno, yytext);		\
		exit(1);				\
	} while(0)

int asn1p_lexer_pedantic_1990 = 0;
int asn1p_lexer_types_year = 0;
int asn1p_lexer_constructs_year = 0;
static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */

/*
 * 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_NEVER_INTERACTIVE 1
#define YY_NO_INPUT 1
#define YY_STACK_USED 1
/* Performance penalty is OK */
/* Controlled from within application */
#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

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

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

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

#ifndef YY_NO_UNPUT
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
#endif

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

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

#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
#else
static int input YY_PROTO(( void ));
#endif
#endif

#if YY_STACK_USED
static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
#ifndef YY_NO_PUSH_STATE
static void yy_push_state YY_PROTO(( int new_state ));
#endif
#ifndef YY_NO_POP_STATE
static void yy_pop_state YY_PROTO(( void ));
#endif
#ifndef YY_NO_TOP_STATE
static int yy_top_state YY_PROTO(( void ));
#endif

#else
#define YY_NO_PUSH_STATE 1
#define YY_NO_POP_STATE 1
#define YY_NO_TOP_STATE 1
#endif

#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines.  This will fail
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 * or sizeof(void*) != sizeof(int).
 */
#endif
#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
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#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) \
	if ( yy_current_buffer->yy_is_interactive ) \
		{ \
		int c = '*', n; \
		for ( n = 0; n < max_size && \
			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( yyin ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
		  && ferror( yyin ) ) \
		YY_FATAL_ERROR( "input in flex scanner failed" );
#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
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif

/* Code executed at the beginning of each rule, after yytext and yyleng
 * 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

#define YY_RULE_SETUP \
	YY_USER_ACTION

YY_DECL
	{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;

#line 90 "asn1p_l.l"


#line 1976 "asn1p_l.c"

	if ( yy_init )
		{
		yy_init = 0;

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

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

		if ( ! yyin )
			yyin = stdin;

		if ( ! yyout )
			yyout = stdout;

		if ( ! yy_current_buffer )
			yy_current_buffer =
				yy_create_buffer( yyin, YY_BUF_SIZE );

		yy_load_buffer_state();
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = yy_c_buf_p;

		/* Support of yytext. */
		*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;

		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 >= 709 )
					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_base[yy_current_state] != 4166 );

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

		YY_DO_BEFORE_ACTION;

		if ( yy_act != YY_END_OF_BUFFER )
			{
			int yyl;
			for ( yyl = 0; yyl < yyleng; ++yyl )
				if ( yytext[yyl] == '\n' )
					++yylineno;
			}

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

		if ( yy_flex_debug )
			{
			if ( yy_act == 0 )
				fprintf( stderr, "--scanner backing up\n" );
			else if ( yy_act < 133 )
				fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
				         yy_rule_linenum[yy_act], yytext );
			else if ( yy_act == 133 )
				fprintf( stderr, "--accepting default rule (\"%s\")\n",
				         yytext );
			else if ( yy_act == 134 )
				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 */
case 1:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 92 "asn1p_l.l"
/* Immediately terminated long comment */
	YY_BREAK
case 2:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 93 "asn1p_l.l"
yy_push_state(idash_comment);	/* Incorrect, but acceptable */
	YY_BREAK

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

case 4:
YY_RULE_SETUP
#line 98 "asn1p_l.l"
yy_push_state(dash_comment);
	YY_BREAK

case 5:
YY_RULE_SETUP
#line 101 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 103 "asn1p_l.l"
yy_pop_state();	/* End of comment */
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 104 "asn1p_l.l"
/* Eat single dash */
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 105 "asn1p_l.l"
/* Eat */
	YY_BREAK

case 9:
YY_RULE_SETUP
#line 108 "asn1p_l.l"
yy_push_state(cpp_comment);
	YY_BREAK

case 10:
YY_RULE_SETUP
#line 110 "asn1p_l.l"
/* Eat */
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 111 "asn1p_l.l"
yy_pop_state();
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 112 "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 13:
YY_RULE_SETUP
#line 124 "asn1p_l.l"
{
			yy_push_state(opaque);
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 131 "asn1p_l.l"
{
			yy_pop_state();
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 138 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 144 "asn1p_l.l"
{
			fprintf(stderr,
				"ASN.1 Parser syncronization failure: "
				"\"%s\" at line %d must not appear "
				"inside value definition\n",
				yytext, yylineno);
			return -1;
		}
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 153 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
		}
	YY_BREAK

case 18:
YY_RULE_SETUP
#line 161 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = 0;
			asn1p_lval.tv_opaque.len = 0;
			QAPPEND(yytext+1, yyleng-1);
			yy_push_state(quoted);
		}
	YY_BREAK

case 19:
YY_RULE_SETUP
#line 169 "asn1p_l.l"
{ QAPPEND(yytext, yyleng-1); }	/* Add a single quote */
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 170 "asn1p_l.l"
{ QAPPEND(yytext, yyleng); }
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 172 "asn1p_l.l"
{
			yy_pop_state();
			/* Do not append last quote:
			// QAPPEND(yytext, yyleng); */

			if(asn1p_lexer_pedantic_1990
			&& strchr(yytext, '\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 22:
YY_RULE_SETUP
#line 191 "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 23:
YY_RULE_SETUP
#line 197 "asn1p_l.l"
unput('D'); unput('N'); unput('E'); yy_pop_state();
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 198 "asn1p_l.l"

	YY_BREAK
case 25:
YY_RULE_SETUP
#line 199 "asn1p_l.l"

	YY_BREAK
case 26:
YY_RULE_SETUP
#line 200 "asn1p_l.l"
/* Eat everything else */
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 201 "asn1p_l.l"

	YY_BREAK

case 28:
YY_RULE_SETUP
#line 204 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = yytext;
		return TOK_hstring;
	}
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 210 "asn1p_l.l"
{
		/* " \t\r\n" weren't allowed in ASN.1:1990. */
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_bstring;
	}
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 217 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number_negative;
	}
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 224 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 231 "asn1p_l.l"
{
		asn1p_lval.a_int = asn1p_atoi(yytext);
		if(errno == ERANGE)
			return -1;
		return TOK_number;
	}
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 238 "asn1p_l.l"
return TOK_ABSENT;
	YY_BREAK
/*
ABSTRACT-SYNTAX		return TOK_ABSTRACT_SYNTAX;
	*/
case 34:
YY_RULE_SETUP
#line 242 "asn1p_l.l"
return TOK_ALL;
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 243 "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", yytext, yylineno);
				REJECT;
			}
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 251 "asn1p_l.l"
return TOK_APPLICATION;
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 252 "asn1p_l.l"
return TOK_AUTOMATIC;
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 253 "asn1p_l.l"
return TOK_BEGIN;
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 254 "asn1p_l.l"
return TOK_BIT;
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 255 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_BMPString;
				REJECT;
			}
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 260 "asn1p_l.l"
return TOK_BOOLEAN;
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 261 "asn1p_l.l"
return TOK_BY;
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 262 "asn1p_l.l"
return TOK_CHARACTER;
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 263 "asn1p_l.l"
return TOK_CHOICE;
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 264 "asn1p_l.l"
return TOK_CLASS;
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 265 "asn1p_l.l"
return TOK_COMPONENT;
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 266 "asn1p_l.l"
return TOK_COMPONENTS;
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 267 "asn1p_l.l"
return TOK_CONSTRAINED;
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 268 "asn1p_l.l"
return TOK_CONTAINING;
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 269 "asn1p_l.l"
return TOK_DEFAULT;
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 270 "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", yytext, yylineno);
				/* Deprecated since */
				REJECT;
			}
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 279 "asn1p_l.l"
return TOK_DEFINITIONS;
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 280 "asn1p_l.l"
return TOK_EMBEDDED;
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 281 "asn1p_l.l"
return TOK_ENCODED;
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 282 "asn1p_l.l"
return TOK_ENCODING_CONTROL;
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 283 "asn1p_l.l"
return TOK_END;
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 284 "asn1p_l.l"
return TOK_ENUMERATED;
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 285 "asn1p_l.l"
return TOK_EXCEPT;
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 286 "asn1p_l.l"
return TOK_EXPLICIT;
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 287 "asn1p_l.l"
return TOK_EXPORTS;
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 288 "asn1p_l.l"
return TOK_EXTENSIBILITY;
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 289 "asn1p_l.l"
return TOK_EXTERNAL;
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 290 "asn1p_l.l"
return TOK_FALSE;
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 291 "asn1p_l.l"
return TOK_FROM;
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 292 "asn1p_l.l"
return TOK_GeneralizedTime;
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 293 "asn1p_l.l"
return TOK_GeneralString;
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 294 "asn1p_l.l"
return TOK_GraphicString;
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 295 "asn1p_l.l"
return TOK_IA5String;
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 296 "asn1p_l.l"
return TOK_IDENTIFIER;
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 297 "asn1p_l.l"
return TOK_IMPLICIT;
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 298 "asn1p_l.l"
return TOK_IMPLIED;
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 299 "asn1p_l.l"
return TOK_IMPORTS;
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 300 "asn1p_l.l"
return TOK_INCLUDES;
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 301 "asn1p_l.l"
return TOK_INSTANCE;
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 302 "asn1p_l.l"
return TOK_INSTRUCTIONS;
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 303 "asn1p_l.l"
return TOK_INTEGER;
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 304 "asn1p_l.l"
return TOK_INTERSECTION;
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 305 "asn1p_l.l"
return TOK_ISO646String;
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 306 "asn1p_l.l"
return TOK_MAX;
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 307 "asn1p_l.l"
return TOK_MIN;
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 308 "asn1p_l.l"
return TOK_MINUS_INFINITY;
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 309 "asn1p_l.l"
return TOK_NULL;
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 310 "asn1p_l.l"
return TOK_NumericString;
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 311 "asn1p_l.l"
return TOK_OBJECT;
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 312 "asn1p_l.l"
return TOK_ObjectDescriptor;
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 313 "asn1p_l.l"
return TOK_OCTET;
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 314 "asn1p_l.l"
return TOK_OF;
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 315 "asn1p_l.l"
return TOK_OPTIONAL;
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 316 "asn1p_l.l"
return TOK_PATTERN;
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 317 "asn1p_l.l"
return TOK_PDV;
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 318 "asn1p_l.l"
return TOK_PLUS_INFINITY;
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 319 "asn1p_l.l"
return TOK_PRESENT;
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 320 "asn1p_l.l"
return TOK_PrintableString;
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 321 "asn1p_l.l"
return TOK_PRIVATE;
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 322 "asn1p_l.l"
return TOK_REAL;
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 323 "asn1p_l.l"
return TOK_RELATIVE_OID;
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 324 "asn1p_l.l"
return TOK_SEQUENCE;
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 325 "asn1p_l.l"
return TOK_SET;
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 326 "asn1p_l.l"
return TOK_SIZE;
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 327 "asn1p_l.l"
return TOK_STRING;
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 328 "asn1p_l.l"
return TOK_SYNTAX;
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 329 "asn1p_l.l"
return TOK_T61String;
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 330 "asn1p_l.l"
return TOK_TAGS;
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 331 "asn1p_l.l"
return TOK_TeletexString;
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 332 "asn1p_l.l"
return TOK_TRUE;
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 333 "asn1p_l.l"
return TOK_TYPE_IDENTIFIER;
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 334 "asn1p_l.l"
return TOK_UNION;
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 335 "asn1p_l.l"
return TOK_UNIQUE;
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 336 "asn1p_l.l"
return TOK_UNIVERSAL;
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 337 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UniversalString;
				REJECT;
			}
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 342 "asn1p_l.l"
return TOK_UTCTime;
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 343 "asn1p_l.l"
{
				if(TYPE_LIFETIME(1994, 0))
					return TOK_UTF8String;
				REJECT;
			}
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 348 "asn1p_l.l"
return TOK_VideotexString;
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 349 "asn1p_l.l"
return TOK_VisibleString;
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 350 "asn1p_l.l"
return TOK_WITH;
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 353 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_typefieldreference;
	}
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 358 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_valuefieldreference;
	}
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 364 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_identifier;
	}
	YY_BREAK
/*
	 * objectclassreference
	 */
case 119:
YY_RULE_SETUP
#line 372 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_capitalreference;
	}
	YY_BREAK
/*
	 * typereference, modulereference
	 * NOTE: TOK_objectclassreference must be combined
	 * with this token to produce true typereference.
	 */
case 120:
YY_RULE_SETUP
#line 382 "asn1p_l.l"
{
		asn1p_lval.tv_str = strdup(yytext);
		return TOK_typereference;
	}
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 387 "asn1p_l.l"
return TOK_PPEQ;
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 389 "asn1p_l.l"
return TOK_ThreeDots;
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 390 "asn1p_l.l"
return TOK_TwoDots;
	YY_BREAK

case 124:
YY_RULE_SETUP
#line 394 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
			}
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 400 "asn1p_l.l"
{
			asn1p_lval.tv_opaque.buf = strdup(yytext);
			asn1p_lval.tv_opaque.len = yyleng;
			return TOK_opaque;
			}
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 406 "asn1p_l.l"
{
				yy_pop_state();
				return '}';
			}
	YY_BREAK

case 127:
YY_RULE_SETUP
#line 414 "asn1p_l.l"
/* Ignore whitespace */
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 417 "asn1p_l.l"
{
		asn1c_integer_t v1 = -1, v2 = -1;
		char *p;
		for(p = yytext; *p; p++)
			if(*p >= '0' && *p <= '9')
			{ v1 = asn1p_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;	/* Skip digits */
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v2 = asn1p_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",
				yytext, yylineno);
			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",
				yytext, yylineno);
			return -1;
		}
		asn1p_lval.a_int = (v1 << 4) + v2;
		return TOK_tuple;
	}
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 442 "asn1p_l.l"
{
		asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1;
		char *p;
		for(p = yytext; *p; p++)
			if(*p >= '0' && *p <= '9')
			{ v1 = asn1p_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;	/* Skip digits */
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v2 = asn1p_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v3 = asn1p_atoi(p); break; }
		while(*p >= '0' && *p <= '9') p++;
		for(; *p; p++) if(*p >= '0' && *p <= '9')
			{ v4 = asn1p_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",
				yytext, yylineno);
			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",
				yytext, yylineno);
			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",
				yytext, yylineno);
			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",
				yytext, yylineno);
			return -1;
		}
		asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4;
		return TOK_quadruple;
	}
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 486 "asn1p_l.l"
return yytext[0];
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 488 "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",
			yytext[0], yylineno);
		if(TYPE_LIFETIME(1994, 0))
			return -1;
	}
	YY_BREAK
case 132:
YY_RULE_SETUP
#line 499 "asn1p_l.l"
{
		fprintf(stderr,
			"Unexpected token at line %d: \"%s\"\n",
			yylineno, yytext);
		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 512 "asn1p_l.l"
{
		while(YYSTATE != INITIAL)
			yy_pop_state();
		yyterminate();
	}
	YY_BREAK
case 133:
YY_RULE_SETUP
#line 519 "asn1p_l.l"
YY_FATAL_ERROR( "flex scanner jammed" );
	YY_BREAK
#line 3008 "asn1p_l.c"

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

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

		if ( yy_current_buffer->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 yyin at a new source and called
			 * yylex().  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->yy_n_chars;
			yy_current_buffer->yy_input_file = yyin;
			yy_current_buffer->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->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
				{
				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 ( yywrap() )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * yytext, 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->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 yylex */


/* 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
 */

static int yy_get_next_buffer()
	{
	register char *dest = yy_current_buffer->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->yy_ch_buf[yy_n_chars + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( yy_current_buffer->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->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->yy_n_chars = yy_n_chars = 0;

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

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else

			/* just a shorter name for the current buffer */
			YY_BUFFER_STATE b = yy_current_buffer;

			int yy_c_buf_p_offset =
				(int) (yy_c_buf_p - b->yy_ch_buf);

			if ( b->yy_is_our_buffer )
				{
				int new_size = b->yy_buf_size * 2;

				if ( new_size <= 0 )
					b->yy_buf_size += b->yy_buf_size / 8;
				else
					b->yy_buf_size *= 2;

				b->yy_ch_buf = (char *)
					/* Include room in for 2 EOB chars. */
					yy_flex_realloc( (void *) b->yy_ch_buf,
							 b->yy_buf_size + 2 );
				}
			else
				/* Can't grow it, we don't own it. */
				b->yy_ch_buf = 0;

			if ( ! b->yy_ch_buf )
				YY_FATAL_ERROR(
				"fatal error - scanner input buffer overflow" );

			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];

			num_to_read = yy_current_buffer->yy_buf_size -
						number_to_move - 1;
#endif
			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

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

		yy_current_buffer->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;
			yyrestart( yyin );
			}

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

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	yy_n_chars += number_to_move;
	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];

	return ret_val;
	}


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

static yy_state_type yy_get_previous_state()
	{
	register yy_state_type yy_current_state;
	register char *yy_cp;

	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 )
		{
		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 >= 709 )
				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 );
 */

#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
	{
	register int yy_is_jam;

	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 >= 709 )
			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 == 708);
	if ( ! yy_is_jam )
		*yy_state_ptr++ = yy_current_state;

	return yy_is_jam ? 0 : yy_current_state;
	}


#ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
	{
	register char *yy_cp = yy_c_buf_p;

	/* undo effects of setting up yytext */
	*yy_cp = yy_hold_char;

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

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

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

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

	*--yy_cp = (char) c;

	if ( c == '\n' )
		--yylineno;

	yytext_ptr = yy_bp;
	yy_hold_char = *yy_cp;
	yy_c_buf_p = yy_cp;
	}
#endif	/* ifndef YY_NO_UNPUT */


#ifdef __cplusplus
static int yyinput()
#else
static int input()
#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->yy_ch_buf[yy_n_chars] )
			/* This was really a NUL. */
			*yy_c_buf_p = '\0';

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

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

					/* Reset buffer status. */
					yyrestart( yyin );

					/* fall through */

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

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

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

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

	if ( c == '\n' )
		++yylineno;

	return c;
	}


#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
	{
	if ( ! yy_current_buffer )
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );

	yy_init_buffer( yy_current_buffer, input_file );
	yy_load_buffer_state();
	}


#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
	{
	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->yy_buf_pos = yy_c_buf_p;
		yy_current_buffer->yy_n_chars = yy_n_chars;
		}

	yy_current_buffer = new_buffer;
	yy_load_buffer_state();

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


#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
#else
void yy_load_buffer_state()
#endif
	{
	yy_n_chars = yy_current_buffer->yy_n_chars;
	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
	yyin = yy_current_buffer->yy_input_file;
	yy_hold_char = *yy_c_buf_p;
	}


#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
#else
YY_BUFFER_STATE yy_create_buffer( file, size )
FILE *file;
int size;
#endif
	{
	YY_BUFFER_STATE b;

	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in yy_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 *) yy_flex_alloc( b->yy_buf_size + 2 );
	if ( ! b->yy_ch_buf )
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

	b->yy_is_our_buffer = 1;

	yy_init_buffer( b, file );

	return b;
	}


#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
#else
void yy_delete_buffer( b )
YY_BUFFER_STATE b;
#endif
	{
	if ( ! b )
		return;

	if ( b == yy_current_buffer )
		yy_current_buffer = (YY_BUFFER_STATE) 0;

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

	yy_flex_free( (void *) b );
	}


#ifndef YY_ALWAYS_INTERACTIVE
#ifndef YY_NEVER_INTERACTIVE
extern int isatty YY_PROTO(( int ));
#endif
#endif

#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
#else
void yy_init_buffer( b, file )
YY_BUFFER_STATE b;
FILE *file;
#endif


	{
	yy_flush_buffer( b );

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

#if YY_ALWAYS_INTERACTIVE
	b->yy_is_interactive = 1;
#else
#if YY_NEVER_INTERACTIVE
	b->yy_is_interactive = 0;
#else
	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
#endif
#endif
	}


#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#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 )
		yy_load_buffer_state();
	}


#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size )
char *base;
yy_size_t size;
#endif
	{
	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) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in yy_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;

	yy_switch_to_buffer( b );

	return b;
	}
#endif


#ifndef YY_NO_SCAN_STRING
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
#else
YY_BUFFER_STATE yy_scan_string( yy_str )
yyconst char *yy_str;
#endif
	{
	int len;
	for ( len = 0; yy_str[len]; ++len )
		;

	return yy_scan_bytes( yy_str, len );
	}
#endif


#ifndef YY_NO_SCAN_BYTES
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
#else
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
yyconst char *bytes;
int len;
#endif
	{
	YY_BUFFER_STATE b;
	char *buf;
	yy_size_t n;
	int i;

	/* Get memory for full buffer, including space for trailing EOB's. */
	n = len + 2;
	buf = (char *) yy_flex_alloc( n );
	if ( ! buf )
		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );

	for ( i = 0; i < len; ++i )
		buf[i] = bytes[i];

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

	b = yy_scan_buffer( buf, n );
	if ( ! b )
		YY_FATAL_ERROR( "bad buffer in yy_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


#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#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 *) yy_flex_alloc( new_size );

		else
			yy_start_stack = (int *) yy_flex_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);
	}
#endif


#ifndef YY_NO_POP_STATE
static void yy_pop_state()
	{
	if ( --yy_start_stack_ptr < 0 )
		YY_FATAL_ERROR( "start-condition stack underflow" );

	BEGIN(yy_start_stack[yy_start_stack_ptr]);
	}
#endif


#ifndef YY_NO_TOP_STATE
static int yy_top_state()
	{
	return yy_start_stack[yy_start_stack_ptr - 1];
	}
#endif

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

#ifdef YY_USE_PROTOS
static void yy_fatal_error( yyconst char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
	{
	(void) fprintf( stderr, "%s\n", msg );
	exit( YY_EXIT_FAILURE );
	}



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

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


/* Internal utility routines. */

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

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

	return n;
	}
#endif


#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( yy_size_t size )
#else
static void *yy_flex_alloc( size )
yy_size_t size;
#endif
	{
	return (void *) malloc( size );
	}

#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, yy_size_t size )
#else
static void *yy_flex_realloc( ptr, size )
void *ptr;
yy_size_t size;
#endif
	{
	/* 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 );
	}

#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
	{
	free( ptr );
	}

#if YY_MAIN
int main()
	{
	yylex();
	return 0;
	}
#endif
#line 519 "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
asn1p_atoi(char *ptr) {
	asn1c_integer_t value;
	errno = 0;	/* Clear the error code */

	if(sizeof(value) <= sizeof(int)) {
		value = strtol(ptr, 0, 10);
	} else {
#ifdef	HAVE_STRTOIMAX
		value = strtoimax(ptr, 0, 10);
#elif	HAVE_STRTOLL
		value = strtoll(ptr, 0, 10);
#else
		value = strtol(ptr, 0, 10);
#endif
	}

	if(errno == ERANGE) {
		fprintf(stderr,
			"Value \"%s\" at line %d is too large "
			"for this compiler! Please contact the asn1c author.\n",
			ptr, yylineno);
		errno = ERANGE;	/* Restore potentially clobbered errno */
	}

	return value;
}

