#include "config.h"
#include "util/configyyrename.h"

#line 3 "<stdout>"

#define  YY_INT_ALIGNED short int

/* A lexical scanner generated by flex */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 6
#define YY_FLEX_SUBMINOR_VERSION 1
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif

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

/* begin standard C headers. */
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>

/* end standard C headers. */

/* flex integer type definitions */

#ifndef FLEXINT_H
#define FLEXINT_H

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

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

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

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

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

#endif /* ! C99 */

#endif /* ! FLEXINT_H */

/* TODO: this is always defined, so inline it */
#define yyconst const

#if defined(__GNUC__) && __GNUC__ >= 3
#define yynoreturn __attribute__((__noreturn__))
#else
#define yynoreturn
#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. */
#ifndef YY_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k.
 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
 * Ditto for the __ia64__ case accordingly.
 */
#define YY_BUF_SIZE 32768
#else
#define YY_BUF_SIZE 16384
#endif /* __ia64__ */
#endif

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

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

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

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

    #define YY_LESS_LINENO(n)
    #define YY_LINENO_REWIND_TO(ptr)
    
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
        yy_size_t yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
		*yy_cp = (yy_hold_char); \
		YY_RESTORE_YY_MORE_OFFSET \
		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
		} \
	while ( 0 )

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

#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
	{
	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.
	 */
	int yy_buf_size;

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

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

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

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

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

	int yy_buffer_status;

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

	};
#endif /* !YY_STRUCT_YY_BUFFER_STATE */

/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */

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

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

/* 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 = NULL;
static int yy_init = 0;		/* 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 (FILE *input_file  );
void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
void yy_delete_buffer (YY_BUFFER_STATE b  );
void yy_flush_buffer (YY_BUFFER_STATE b  );
void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
void yypop_buffer_state (void );

static void yyensure_buffer_stack (void );
static void yy_load_buffer_state (void );
static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );

#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )

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

void *yyalloc (yy_size_t  );
void *yyrealloc (void *,yy_size_t  );
void yyfree (void *  );

#define yy_new_buffer yy_create_buffer

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

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

#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)

/* Begin user sect3 */

typedef unsigned char YY_CHAR;

FILE *yyin = NULL, *yyout = NULL;

typedef int yy_state_type;

extern int yylineno;

int yylineno = 1;

extern char *yytext;
#ifdef yytext_ptr
#undef yytext_ptr
#endif
#define yytext_ptr yytext

static yy_state_type yy_get_previous_state (void );
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
static int yy_get_next_buffer (void );
static void yynoreturn yy_fatal_error (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; \
	(yytext_ptr) -= (yy_more_len); \
	yyleng = (int) (yy_cp - (yytext_ptr)); \
	(yy_hold_char) = *yy_cp; \
	*yy_cp = '\0'; \
	(yy_c_buf_p) = yy_cp;

#define YY_NUM_RULES 237
#define YY_END_OF_BUFFER 238
/* This struct is not used in this scanner,
   but its presence is necessary. */
struct yy_trans_info
	{
	flex_int32_t yy_verify;
	flex_int32_t yy_nxt;
	};
static yyconst flex_int16_t yy_accept[2341] =
    {   0,
        1,    1,  219,  219,  223,  223,  227,  227,  231,  231,
        1,    1,  238,  235,    1,  217,  217,  236,    2,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      236,  219,  220,  220,  221,  236,  223,  224,  224,  225,
      236,  230,  227,  228,  228,  229,  236,  231,  232,  232,
      233,  236,  234,  218,    2,  222,  234,  236,  235,    0,
        1,    2,    2,    2,    2,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  219,    0,  223,    0,  230,    0,  227,
      231,    0,  234,    0,    2,    2,  234,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  234,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  234,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,   77,
      235,  235,  235,  235,  235,  235,    8,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,   88,
      234,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  234,
      235,  235,  235,  235,  235,  235,  235,   37,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      170,  235,   14,   15,  235,   18,   17,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  156,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,    3,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  234,  235,  235,  235,
      214,  235,  235,  213,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  226,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,   40,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,   41,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  145,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,   20,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  103,  235,  226,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  197,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  120,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      102,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,   75,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,   25,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,   38,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,   39,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  121,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,   28,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  185,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,   32,  235,
       33,  235,  235,  235,   78,  235,   79,  235,  235,   76,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,    7,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  163,  235,  235,  235,  235,  105,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
       29,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  137,  235,  136,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,   16,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,   42,  235,  235,
      235,  235,  235,  235,  235,  144,  235,  235,  235,  235,

       81,   80,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  131,  235,  235,  235,  235,  235,  235,  235,  235,
       89,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,   60,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,   64,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,   36,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  134,

      135,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,    6,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      195,  235,  235,  215,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,   26,  235,  235,  235,  235,  235,  235,  235,
      235,  127,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  149,  235,  128,  235,  235,  161,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,   27,  235,  235,  235,  235,   84,

      235,   85,  235,   83,  235,  235,  235,  235,  235,  235,
      235,  235,  100,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  184,  235,  235,  235,  235,  235,
      235,  235,  235,  129,  235,  235,  235,  235,  235,  132,
      235,  235,  160,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,   74,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,   34,  235,  235,   22,  235,
      235,  235,  235,   19,  235,  110,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,   49,   51,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  199,  235,  235,  235,  171,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,   86,  235,  235,  235,  235,  235,  235,
      235,   99,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  209,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  104,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  155,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  119,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  115,  235,  122,  235,  235,
      235,  235,  235,   92,  235,  235,   70,  235,  235,  235,
      235,  147,  235,  235,  235,  235,  235,  162,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      176,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  118,  235,  235,  235,  235,  235,
       52,   53,  235,  235,  235,  235,  235,   35,  235,  235,
      235,  235,  235,   59,  123,  235,  138,  235,  164,  133,
      235,  235,  235,   45,  235,  125,  235,  235,  235,  235,

      235,    9,  235,  235,  235,   73,  235,  235,  235,  235,
      189,  235,  146,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  106,  198,  235,  235,  235,  235,  175,  235,
      235,  235,  235,  235,  235,  235,  235,  157,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  212,  235,  124,  235,  235,  235,   44,   46,  235,

      235,  235,  235,  235,  235,  235,   72,  235,  235,  235,
      235,  187,  235,  194,  235,  235,  235,  235,  235,  151,
       23,   24,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,   69,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  153,  150,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,   43,  235,  235,  235,  235,  235,  235,
      235,  235,  101,   13,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  207,  235,  210,  235,  235,  235,  235,
      235,  235,   12,  235,  235,   21,  235,  235,  235,  193,

      235,  196,   47,  235,  159,  235,  152,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  114,  113,  235,  235,  235,  235,  235,  235,  235,
      154,  148,  235,  235,  235,  200,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,   54,  235,  235,
      235,  188,  235,  235,  235,  235,  235,  158,  235,  235,
      235,  235,  235,  235,  235,  235,   48,  235,  235,  235,
       82,  235,  107,  235,  109,  235,  139,  235,  235,  235,
      112,  235,  235,  165,  235,  235,  235,  235,  235,   94,

      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  172,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  140,  235,  235,  186,  235,
      211,  235,  235,  235,   30,  235,  235,  235,  235,    4,
      235,  235,   93,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  168,  235,  235,  235,  235,  235,
      235,  235,  201,  235,  235,  235,  235,  235,  235,  174,
      235,  235,  143,  235,  235,  235,  235,  235,  235,  235,
      235,   57,  235,   31,  192,  235,  169,  235,  235,   11,
      235,  235,  235,  235,  235,  235,  141,   61,  235,  235,

      235,  235,  235,  117,  235,  235,  235,  235,  235,   96,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  173,
       90,  235,   87,  235,  235,  235,   63,   67,   62,  235,
       55,  235,  235,  235,   10,  235,  235,  235,  190,  235,
      235,  235,  235,  116,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,   68,   66,  235,   56,  208,  235,  235,  235,  130,
      235,  235,  142,  235,  235,  235,  235,  235,  235,  108,
       50,  235,  235,  235,  235,  202,  235,  235,  235,  235,
      235,  235,  235,   91,   65,   97,   98,   58,  235,  191,

      111,  235,  235,  235,  235,  167,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,   71,  235,  166,  235,  183,
      205,  235,  235,  235,  235,  235,  235,  235,  235,    5,
      235,  235,  235,  206,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,   95,  235,  235,  235,  235,  235,  235,
      235,  235,  126,  235,  235,  235,  235,  235,  235,  235,
      235,  235,  235,  235,  235,  235,  235,  235,  235,  235,

      235,  235,  235,  235,  235,  235,  235,  235,  216,  235,
      235,  179,  235,  235,  235,  235,  235,  203,  235,  235,
      235,  235,  235,  235,  204,  235,  235,  235,  177,  235,
      180,  181,  235,  235,  235,  235,  235,  178,  182,    0
    } ;

static yyconst YY_CHAR yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    1,    5,    6,    1,    1,    1,    7,    1,
        1,    1,    1,    1,    8,    1,    1,    1,    9,    1,
       10,   11,    1,   12,    1,    1,    1,   13,    1,    1,
        1,    1,    1,    1,   14,   15,   16,   17,   18,   19,
       20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
       30,   31,   32,   33,   34,   35,   36,   37,   38,   39,
        1,   40,    1,    1,    1,    1,   41,   42,   43,   44,

       45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
       55,   56,   57,   58,   59,   60,   61,   62,   63,   64,
       65,   66,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    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 YY_CHAR yy_meta[67] =
    {   0,
        1,    2,    3,    4,    5,    1,    6,    1,    1,    1,
        1,    1,    7,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1
    } ;

static yyconst flex_uint16_t yy_base[2355] =
    {   0,
        0,    0,   64,   67,   70,   72,   78,   84,   89,   92,
      131,  137,  333,  290,   96, 6728, 6728, 6728,  109,  111,
       85,  142,  180,  129,  134,  138,  183,   50,  166,   75,
      214,  204,  124,  256,  141,  248,  304,  200,  258,  286,
      246,  283, 6728, 6728, 6728,   96,  240, 6728, 6728, 6728,
      102,  231,  265, 6728, 6728, 6728,  311,  221, 6728, 6728,
     6728,  115,  212, 6728,  336, 6728,  161,  343,  207,  349,
      115,    0,  353,    0,    0,  107,  216,  159,  252,  345,
      241,  242,  243,  346,  337,  284,  335,  364,  280,  340,
      357,  347,  351,  362,  371,  372,  391,  395,  381,  401,

      402,  388,  393,  413,  416,  418,  428,  429,  427,  430,
      445,  433,  454,  441,  464,  446,  458,  437,  468,  491,
      457,  269,  484,  479,  481,  403,  462,  485,  511,  497,
      503,  498,  512,  186,  324,  177,  217,  173,  556,  207,
      151,  379,  117,  560,  564,    0,  530,  514,  302,  544,
      551,  555,  546,  552,  561,  548,  560,  575,  572,  573,
      508,  606,  650,  579,  589,  592,  593,  587,  607,  612,
      601,  603,  634,  595,  616,  624,  662,  642,  638,  651,
      628,  656,  693,  665,  666,  679,  677,  691,  684,  692,
      694,  690,  702,  685,  704,  711,  707,  709,  719,  698,

      723,  721,  738,  726,  748,  732,  750,  737,  762,  747,
      759,  751,  768,  753,  774,  764,  783,  778,  792,  788,
      770,  786,  781,  794,  797,  799,  801,  814,  803,  808,
      819,  824,  828,  787,  813,  830,  841,  246,  826,  846,
      849,  840,  833,  851,  857,  843,  863,  858,  867,  865,
      875,  887,  869,  868,  870,  885,  899,  901,  888,  905,
      890,  902,  892,  917,  911,  916,  918,  912,  937,  913,
      931,  929,  941,  960,  537,  956,  950,  951,  965,  976,
      585,  983,  971,  980,  986,  984,  982,  989,  981,  994,
     1000, 1011, 1012, 1015, 1025, 1010, 1027, 1031, 1038, 1029,

     1047, 1039, 1042, 1035, 1057, 1061, 1058, 1106, 1074, 1067,
     1083, 1075, 1073, 1090, 1077, 1099, 1111, 1104, 1110, 1114,
     1124, 1123, 1129, 1054, 1126, 1131, 1145, 1084, 1135, 1147,
     1162, 1166, 1148, 1153, 1161, 1164, 1174, 1175, 1180, 1165,
     1171, 1200, 1188, 1203, 1210, 1204, 1087, 1196, 1212, 1215,
     1211, 1201, 1224, 1237, 1227, 1240, 1228, 1238, 1230, 1239,
     1257, 1249, 1251, 1256, 1265, 1270, 1267, 1252, 1274, 6728,
     1280, 1261, 1278, 1284, 1283, 1279, 6728, 1294, 1295, 1290,
     1321, 1310, 1318, 1311, 1316, 1331, 1307, 1326, 1337, 1322,
     1330, 1338, 1340, 1343, 1344, 1363, 1350, 1353, 1399, 1349,

     1356, 1365, 1384, 1385, 1394, 1383, 1408, 1379, 1412, 1402,
     1410, 1423, 1414, 1421, 1441, 1442, 1428, 1439, 1450, 6728,
     1449, 1396, 1445, 1440, 1455, 1448, 1460, 1463, 1464, 1468,
     1467, 1497, 1481, 1496, 1485, 1498, 1501, 1486, 1491, 1514,
     1506, 1510, 1511, 1520, 1516, 1517, 1526, 1515, 1530, 1521,
     1531, 1518, 1555, 1547, 1534, 1549, 1544, 1560, 1563, 1542,
     1572, 1559, 1569, 1567, 1583, 1587, 1579, 1574, 1578, 1591,
     1595, 1604, 1612, 1616, 1597, 1596, 1623, 1620, 1610, 1622,
     1637, 1627, 1635, 1639, 1636, 1640, 1632, 1650, 1647, 1656,
     1667, 1666, 1680, 1659, 1663, 1683, 1662, 1673, 1684, 1689,

     1679, 1690, 1701, 1703, 1688, 1710, 1700, 1718, 1705, 1706,
     1707, 1715, 1717, 1716, 1734, 1736, 1737, 1740, 1741, 1738,
     1739, 1759, 1765, 1751, 1761, 1766, 1763, 1775, 1764, 1773,
     1784, 1788, 1796, 1798, 1787, 1802, 1799, 1804, 1810, 1807,
     1814, 1816, 1806, 1813, 1841, 1824, 1829, 6728, 1830, 1746,
     1828, 1854, 1840, 1835, 1864, 1855, 1843, 1846, 1866, 1909,
     6728, 1845, 6728, 6728, 1857, 6728, 6728, 1869, 1877, 1885,
     1896, 1898, 1900, 1958, 1902, 1882, 1888, 1867, 1905, 1911,
     1910, 1919, 1924, 1941, 1947, 1937, 1948, 1954, 1945, 1944,
     1969, 1968, 1972, 1974, 1992, 1979, 1984, 1987, 1990, 2003,

     1922, 2007, 1983, 2018, 2013, 2017, 2014, 2019, 2006, 2021,
     2029, 2028, 2031, 2033, 2030, 2057, 2040, 6728, 2052, 2053,
     2063, 2065, 2050, 2067, 2056, 2054, 2069, 2048, 2098, 6728,
     2083, 2076, 2081, 2099, 2086, 2091, 2092, 2095, 2097, 2112,
     2103, 2108, 2123, 2125, 2126, 2138, 2120, 2129, 2131, 2128,
     2141, 2151, 2153, 2143, 2154, 2155, 2142, 2172, 2156, 2176,
     2159, 2178, 2180, 2165, 2194, 2184, 2195, 2181, 2193, 2190,
     6728, 2186, 2200, 6728, 2199, 2204, 2250, 2215, 2229, 2220,
     2205, 2236, 2223, 2243, 2231, 2249, 2237, 2264, 2254, 2274,
     2278, 2270, 2273, 2276, 2281, 2297, 2285,  156, 2324, 2292,

     2302, 2295, 2301, 2314, 2321, 2310, 2306, 2308, 2319, 2339,
     2340, 6728, 2328, 2346, 2337, 2345, 2365, 2357, 2342, 2354,
     2359, 2364, 2379, 2366, 2377, 2373, 2367, 2383, 2381, 2389,
     2390, 2384, 6728, 2395, 2393, 2400, 2388, 2408, 2414, 2416,
     2420, 2430, 2437, 2425, 6728, 2417, 2442, 2449, 2448, 2440,
     2435, 2444, 2439, 2441, 2460, 2452, 2465, 2467, 2458, 2478,
     2479, 2477, 6728, 2485, 2480, 2487, 2495, 2494, 2490, 2499,
     2497, 2500, 2505, 2518, 2514, 2523, 2529, 6728, 2520, 2510,
     2522, 2521, 2524, 2548, 2549, 2542, 2554, 2553, 2543, 2550,
     2555,  121, 2556, 2563, 2552, 2560, 6728, 2569,   68, 2578,

     2580, 2573, 2583, 2602, 2598, 2604, 2608, 2597, 2600, 2612,
     2594, 2599, 2616, 2619, 2628, 2632, 2635, 2624, 2631, 2633,
     2651, 6728, 2662, 2652, 2641, 2658, 2668, 2655, 2677, 2661,
     2682, 2676, 2683, 6728, 2687, 2692, 2697, 2690, 2688, 2703,
     2704, 2700, 2716, 2699, 2719, 2715, 2725, 2724, 2729, 2727,
     6728, 2730, 2739, 2733, 2738, 2745, 2743, 2774, 2754, 2761,
     2765, 2782, 2806, 2766, 2777, 2764, 2789, 2791, 2785, 2803,
     2817, 2823, 2800, 2827, 2821, 2818, 2810, 2804, 2812, 2835,
     2830, 2859, 2842,  164, 2847, 6728, 2856, 2849, 2853, 2857,
     2894, 2851, 2863, 2869, 2874, 2883, 2876, 2891, 2898, 2893,

     2887, 2908, 2916, 2902, 2919, 6728, 2920, 2921, 2903, 2927,
     2925, 2928, 2931, 2930, 2933, 2939, 2937, 2948, 2957, 2960,
     2940, 2943, 2967, 2964, 2963, 6728, 2979, 2982, 2975, 2984,
     2972, 2966, 2986, 2995, 2990, 2994, 2978, 3009, 3005, 2996,
     3003, 3004, 3002, 3026, 3013, 3023, 3017, 3029, 3038, 3028,
     3044, 6728, 3039, 3064, 3054, 3059, 3043, 3053, 3074, 3088,
     3070, 3073, 3078, 3075, 3071, 3084, 3081, 3086, 3105, 3094,
     3097, 6728, 3114, 3108, 3106, 3115, 3122, 3113, 3123, 3124,
     3141, 3140, 3151, 3130, 3149, 3159, 3154, 3155, 3145, 3157,
     3164, 3176, 3178, 3189, 6728, 3177, 3188, 3171, 3181, 3183,

     3185, 3187, 3201, 3191, 3205, 3204, 3206, 3203, 3239, 3242,
     3221, 3216, 3225, 3226, 3228, 3224, 3227, 3251, 3261, 3240,
     3255, 3256, 3260, 3249, 3237, 3265, 3269, 3278, 3277, 3291,
     3288, 3290, 3282, 3301, 3285, 3317, 6728, 3304, 3284, 3299,
     3308, 3325, 3326, 3312, 3315, 3314, 3343, 3345, 6728, 3331,
     6728, 3342, 3353, 3348, 6728, 3355, 6728, 3362, 3350, 6728,
     3361, 3367, 3356, 3340, 3372, 3370, 3374, 3363, 3385, 3382,
     3376, 3401, 3388, 3393, 3403, 3389, 3409, 6728, 3417, 3400,
     3405, 3420, 3428, 3422, 3423, 3429, 3434, 3431, 3450, 3435,
     3427, 3437, 3458, 6728, 3445, 3463, 3449, 3465, 6728, 3456,

     3472, 3474, 3467, 3464, 3478, 3484, 3488, 3485, 3476, 3507,
     3479, 3499, 3508, 3514, 3502, 3515, 3526, 3521, 3512, 3509,
     3523, 3537, 3533, 3552, 3535, 3546, 3556, 3554, 3545, 3541,
     3547, 3555, 3557, 3564, 3553, 3580, 3572, 3575, 3573, 3583,
     6728, 3589, 3581, 3600, 3596, 3591, 3598, 3593, 3603, 3602,
     3619, 3608, 3628, 3620, 6728, 3630, 6728, 3616, 3626, 3649,
     3648, 3633, 3653, 3638, 3647, 3643, 3657, 3664, 3582, 3659,
     3667, 3675, 3672, 3668, 3676, 3685, 6728, 3679, 3680, 3700,
     3689, 3699, 3706, 3719, 3709, 3695, 3742, 6728, 3728, 3712,
     3729, 3746, 3738, 3749, 3744, 6728, 3731, 3754, 3739, 3759,

     6728, 6728, 3745, 3755, 3740, 3756, 3765, 3772, 3780, 3771,
     3770, 6728, 3793, 3776, 3790, 3795, 3797, 3799, 3801, 3782,
     6728, 3791, 3808, 3811, 3809, 3807, 3818, 3820, 3821, 3845,
     3832, 3824, 3843, 3850, 3851, 3853, 6728, 3855, 3847, 3858,
     3852, 3859, 3862, 3870, 3871, 3857, 3876, 3868, 3887, 3889,
     3884, 3900, 3897, 3888, 3895, 3904, 3912, 3909, 3915, 3898,
     3913, 3921, 3929, 3917, 3943, 3945, 3952, 3947, 6728, 3956,
     3935, 3957, 3933, 3951, 3955, 3962, 3964, 3974, 3972, 3975,
     3969, 3977, 6728, 3971, 3980, 3998, 3999, 3990, 4008, 4002,
     3989, 3985, 4018, 4004, 4022, 4014, 4017, 4027, 4040, 6728,

     6728, 4033, 4025, 4043, 4032, 4041, 4044, 4036, 4050, 4038,
     4056, 6728, 4071, 4061, 4059, 4074, 4063, 4087, 4084, 4080,
     4083, 4073, 4075, 4097, 4101, 4078, 4089, 4112, 4102, 4114,
     6728, 4103, 4110, 6728, 4108, 4128, 4120, 4124, 4138, 4146,
     4143, 4129, 4144, 4147, 4151, 4148, 4168, 4169, 4171, 4153,
     4160, 4174, 6728, 4164, 4177, 4170, 4161, 4188, 4178, 4195,
     4180, 6728, 4190, 4201, 4210, 4211, 4194, 4217, 4212, 4219,
     4220, 4207, 6728, 4225, 6728, 4228, 4221, 6728, 4223, 4237,
     4227, 4236, 4247, 4260, 4261, 4240, 4248, 4262, 4251, 4253,
     4273, 4274, 4275, 4267, 6728, 4285, 4264, 4294, 4296, 6728,

     4284, 6728, 4291, 6728, 4295, 4300, 4290, 4298, 4318, 4324,
     4316, 4312, 6728, 4321, 4309, 4330, 4335, 4333, 4337, 4338,
     4340, 4342, 4346, 4353, 6728, 4343, 4362, 4366, 4357, 4358,
     4379, 4386, 4367, 6728, 4392, 4381, 4380, 4395, 4389, 6728,
     4394, 4402, 6728, 4401, 4411, 4406, 4407, 4418, 4421, 4430,
     4419, 4416, 4422, 4439, 4427, 4433, 6728, 4431, 4438, 4451,
     4454, 4446, 4449, 4475, 4467, 4478, 4462, 4482, 4484, 4481,
     4489, 4465, 4487, 4488, 4492, 6728, 4495, 4498, 6728, 4508,
     4506, 4505, 4512, 6728, 4530, 6728, 4531, 4511, 4514, 4515,
     4535, 4543, 4538, 4545, 4527, 4548, 4554, 4553, 4582, 4560,

     4558, 6728, 6728, 4569, 4587, 4574, 4584, 4589, 4579, 4576,
     4565, 4592, 4598, 4595, 4604, 6728, 4603, 4606, 4608, 6728,
     4611, 4615, 4605, 4622, 4618, 4625, 4630, 4641, 4640, 4633,
     4649, 4632, 4642, 6728, 4647, 4655, 4638, 4653, 4656, 4667,
     4663, 6728, 4671, 4687, 4688, 4682, 4683, 4689, 4699, 4692,
     4696, 4693, 4690, 4706, 4716, 4712, 4726, 6728, 4727, 4717,
     4718, 4709, 4740, 4741, 4723, 4746, 4729, 4749, 4751, 4743,
     4744, 6728, 4755, 4761, 4753, 4762, 4748, 4771, 4776, 4780,
     4783, 4767, 4770, 4773, 4791, 6728, 4775, 4778, 4794, 4807,
     4814, 4797, 4815, 4800, 4810, 4799, 4828, 4821, 4831, 6728,

     4823, 4827, 4824, 4826, 4819, 4856, 4858, 4850, 4855, 4859,
     4860, 4862, 4866, 4875, 4870, 6728, 4852, 6728, 4885, 4877,
     4886, 4899, 4889, 6728, 4888, 4897, 6728, 4898, 4901, 4904,
     4902, 6728, 4915, 4927, 4920, 4922, 4923, 6728, 4939, 4945,
     4938, 4925, 4956, 4953, 4941, 4957, 4950, 4946, 4944, 4968,
     6728, 4970, 4961, 4976, 4973, 4959, 4972, 4967, 4989, 4982,
     4999, 5003, 5001, 4994, 6728, 4995, 5005, 5018, 5006, 5013,
     6728, 6728, 5009, 5016, 5021, 5020, 5026, 6728, 5031, 5030,
     5037, 5052, 5047, 6728, 6728, 5055, 6728, 5041, 6728, 6728,
     5058, 5060, 5061, 6728, 5066, 6728, 5072, 5068, 5054, 5053,

     5073, 6728, 5079, 5077, 5084, 6728, 5082, 5076, 5083, 5092,
     6728, 5094, 6728, 5111, 5108, 5109, 5113, 5103, 5106, 5118,
     5122, 5124, 5126, 5119, 5125, 5128, 5136, 5142, 5130, 5147,
     5140, 5156, 5145, 5162, 5157, 5150, 5151, 5155, 5167, 5182,
     5172, 5170, 5183, 5158, 5181, 5187, 5188, 5200, 5206, 5212,
     5213, 5215, 6728, 6728, 5218, 5203, 5209, 5207, 6728, 5217,
     5223, 5227, 5231, 5243, 5235, 5238, 5258, 6728, 5257, 5254,
     5242, 5264, 5246, 5248, 5262, 5276, 5275, 5272, 5274, 5240,
     5277, 5281, 5278, 5301, 5289, 5290, 5307, 5298, 5311, 5313,
     5314, 6728, 5299, 6728, 5320, 5323, 5325, 6728, 6728, 5326,

     5327, 5331, 5333, 5337, 5332, 5345, 6728, 5336, 5357, 5335,
     5352, 6728, 5366, 6728, 5367, 5350, 5368, 5375, 5374, 6728,
     6728, 6728, 5382, 5359, 5372, 5378, 5384, 5376, 5386, 5392,
     5379, 5396, 6728, 5405, 5410, 5416, 5407, 5397, 5426, 5423,
     5424, 5433, 5431, 5434, 5425, 5439, 5438, 5441, 6728, 6728,
     5432, 5443, 5469, 5449, 5450, 5479, 5471, 5473, 5474, 5465,
     5476, 5481, 5477, 6728, 5482, 5488, 5472, 5501, 5509, 5510,
     5494, 5515, 6728, 6728, 5504, 5505, 5507, 5527, 5511, 5520,
     5528, 5533, 5521, 6728, 5534, 6728, 5538, 5535, 5564, 5544,
     5555, 5567, 6728, 5559, 5556, 6728, 5570, 5561, 5562, 6728,

     5578, 6728, 6728, 5573, 6728, 5560, 6728, 5583, 5591, 5581,
     5590, 5584, 5597, 5609, 5599, 5612, 5595, 5601, 5621, 5623,
     5625, 6728, 6728, 5632, 5608, 5627, 5626, 5618, 5630, 5637,
     6728, 6728, 5639, 5638, 5648, 6728, 5622, 5652, 5645, 5664,
     5649, 5657, 5654, 5680, 5666, 5675, 5673, 5686, 5696, 5698,
     5689, 5701, 5688, 5691, 5694, 5700, 5702, 6728, 5709, 5728,
     5716, 6728, 5711, 5730, 5739, 5735, 5732, 6728, 5724, 5745,
     5744, 5743, 5738, 5778, 5747, 5754, 6728, 5750, 5767, 5770,
     6728, 5758, 6728, 5772, 6728, 5765, 6728, 5788, 5790, 5780,
     6728, 5795, 5797, 6728, 5796, 5799, 5792, 5787, 5816, 6728,

     5761, 5824, 5825, 5804, 5814, 5813, 5831, 5819, 5843, 5817,
     5845, 6728, 5828, 5835, 5849, 5840, 5856, 5857, 5838, 5852,
     5865, 5863, 5859, 5875, 5869, 6728, 5878, 5882, 6728, 5870,
     6728, 5889, 5883, 5896, 6728, 5894, 5884, 5880, 5887, 6728,
     5907, 5905, 6728, 5895, 5913, 5920, 5915, 5909, 5918, 5926,
     5921, 5925, 5936, 5942, 6728, 5945, 5934, 5932, 5949, 5947,
     5960, 5940, 6728, 5966, 5968, 5956, 5965, 5961, 5962, 6728,
     5980, 5963, 6728, 5986, 5989, 5977, 5992, 5996, 5999, 6001,
     5998, 6728, 6008, 6728, 6728, 5993, 6728, 5988, 6013, 6728,
     6011, 6015, 6007, 6022, 6017, 6028, 6728, 6728, 6018, 6041,

     6035, 6046, 6042, 6728, 6030, 6044, 6048, 6039, 6055, 6728,
     6057, 6060, 6056, 6066, 6045, 6069, 6077, 6078, 6084, 6728,
     6728, 6080, 6728, 6081, 6097, 6098, 6728, 6728, 6728, 6101,
     6728, 6109, 2275, 6106, 6728, 6114, 6105, 6103, 6728, 6115,
     6111, 6116, 6104, 6728, 6121, 6125, 6148, 6135, 6140, 6136,
     6150, 6144, 6154, 6162, 6133, 6157, 6138, 6163, 6164, 6160,
     6170, 6728, 6728, 6173, 6728, 6728, 6174, 6188, 6192, 6728,
     6184, 6194, 6728, 6198, 6187, 6191, 6204, 6195, 6207, 6728,
     6728, 6190, 6206, 6186, 6215, 6728, 6220, 6229, 6213, 6221,
     6219, 6231, 6225, 6728, 6728, 6728, 6728, 6728, 6242, 6728,

     6728, 6228, 6240, 6237, 6246, 6728, 6236, 6250, 6265, 6264,
     6273, 6262, 6263, 6267, 6279, 6256, 6283, 6276, 6290, 6280,
     6302, 6299, 6312, 6305, 6314, 6297, 6315, 6322, 6323, 6294,
     6320, 6325, 6330, 6333, 6329, 6728, 6336, 6728, 6340, 6728,
     6728, 6334, 6345, 6346, 6341, 6342, 6350, 6357, 6347, 6728,
     6356, 6367, 6355, 6728, 6374, 6368, 6375, 6377, 6380, 6384,
     6391, 6382, 6386, 6398, 6415, 6411, 6414, 6416, 6417, 6401,
     6429, 6425, 6431, 6728, 6418, 6426, 6432, 6435, 6434, 6436,
     6452, 6439, 6728, 6459, 6445, 6456, 6457, 6460, 6469, 6480,
     6461, 6463, 6490, 6486, 6492, 6498, 6501, 6487, 6496, 6504,

     6503, 6507, 6510, 6517, 6520, 6519, 6534, 6521, 6728, 6522,
     6526, 6728, 6536, 6547, 6531, 6537, 6542, 6728, 6555, 6554,
     6557, 6558, 6560, 6564, 6728, 6562, 6575, 6581, 6728, 6585,
     6728, 6728, 6587, 6574, 6577, 6578, 6580, 6728, 6728, 6728,
     6636, 6643, 6650, 6657, 6664,   83, 6671, 6678, 6685, 6692,
     6699, 6706, 6713, 6720
    } ;

static yyconst flex_int16_t yy_def[2355] =
    {   0,
     2340,    1, 2341, 2341, 2342, 2342, 2343, 2343, 2344, 2344,
     2345, 2345, 2340, 2346, 2340, 2340, 2340, 2340, 2347, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2348, 2340, 2340, 2340, 2348, 2349, 2340, 2340, 2340,
     2349, 2350, 2340, 2340, 2340, 2340, 2350, 2351, 2340, 2340,
     2340, 2351, 2352, 2340, 2353, 2340, 2352, 2352, 2346, 2346,
     2340, 2354, 2347, 2354, 2347, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2348, 2348, 2349, 2349, 2350, 2350, 2340,
     2351, 2351, 2352, 2352, 2353, 2353, 2352, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2352, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2352,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2346, 2340, 2340, 2346, 2340, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2352, 2346, 2346, 2346,
     2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2352, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346,
     2340, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,

     2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,

     2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2340, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340,

     2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346,
     2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346,
     2340, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2340, 2340, 2346, 2340, 2346, 2340, 2340,
     2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346,

     2346, 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2340, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2340, 2346, 2346, 2346, 2340, 2340, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340,
     2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2340, 2346, 2346, 2346, 2340,

     2346, 2340, 2340, 2346, 2340, 2346, 2340, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2340, 2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346,
     2340, 2346, 2340, 2346, 2340, 2346, 2340, 2346, 2346, 2346,
     2340, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2340, 2346,
     2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2346, 2340, 2340, 2346, 2340, 2346, 2346, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2340, 2340, 2346, 2346,

     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2340, 2346, 2340, 2346, 2346, 2346, 2340, 2340, 2340, 2346,
     2340, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2340, 2340, 2346, 2340, 2340, 2346, 2346, 2346, 2340,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2340, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2340, 2340, 2340, 2340, 2346, 2340,

     2340, 2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2340, 2346, 2340, 2346, 2340,
     2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2340, 2346, 2346, 2346, 2346, 2346, 2346, 2346,
     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346,

     2346, 2346, 2346, 2346, 2346, 2346, 2346, 2346, 2340, 2346,
     2346, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2346, 2346,
     2346, 2346, 2346, 2346, 2340, 2346, 2346, 2346, 2340, 2346,
     2340, 2340, 2346, 2346, 2346, 2346, 2346, 2340, 2340,    0,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340
    } ;

static yyconst flex_uint16_t yy_nxt[6795] =
    {   0,
       14,   15,   16,   17,   18,   19,   18,   14,   14,   14,
       14,   14,   18,   20,   21,   22,   23,   24,   25,   14,
       26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
       36,   37,   38,   39,   40,   14,   14,   14,   14,   41,
       20,   21,   22,   23,   24,   25,   14,   26,   27,   28,
       29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
       39,   40,   14,   14,   14,   14,   43,   44,   45,   43,
       44,   45,   48,   49,   48,   49,   50,   99,   50,   53,
       54,   55,   56,   69,   18,   53,   54,   55,   56,   70,
       18,   59,   60,   61,   59,   60,   61,   71,   79,  134,

      134,   72,  101,   46,   99,  136,   46,  144,  136,   51,
       74,   51,   74,   74,   70,   74,   71,   57,  141,  141,
       72,   74,  148,   57,   70,   79,   76,   77,   62,  101,
      930,   62,   15,   16,   17,   64,   65,   66,   15,   16,
       17,   64,   65,   66,   78,   89,   70,   91,   75,  148,
       70,   93,   67,   76,   77,   80,  144,  109,   67,   94,
       70,   92,   81,   70,  835,   90,   82,  115,   70,   83,
       68,   78,   89,   70,   91, 1030,   68,   70,   93,   67,
       70,   70,   80,  100,  109,   67,   94,  147,   92,   81,
      142,  150,   90,   82,  115,   70,   83,   84,   70,   95,

      144,   85,   96,   70,   86,   70,   87,   88,  140,   97,
      100,   98,  139,  125,  147,  126,  137,  106,  150,   70,
      136,  107,   70,  136,   84,  135,   95,  102,   85,   96,
      127,   86,  149,   87,   88,  103,   97,  108,   98,   70,
      125,  104,  126,   70,  106,  105,   70,   69,  107,   69,
       69,  144,   69,   70,  102,   70,  328,  127,   69,  149,
      142,  116,  103,  155,  108,  117,  140,  151,  104,  156,
      139,  154,  105,  110,  128,  118,  208,  111,  119,  137,
       70,   70,   70,  112,  129,   70,  113,   70,  116,  130,
      155,   70,  117,  114,  151,   70,  156,   70,  154,  131,

      110,  128,  118,  132,  111,  119,  165,  133,   70,  224,
      112,  129,  138,  113,  138,  138,  130,  138,  161,   70,
      114,  120,  135,   70,  121,   70,  131,  134,  134,   70,
      132,  122, 2340,  165,  133,  123,  124,   74, 2340,   74,
       74,   70,   74,   70,  143,  161,  143,  143,  120,  143,
       69,  121,   69,   69,   74,   69,   74,   74,  122,   74,
      152,   69,  123,  124,  157,   74,  162,  159,  160, 2340,
      158,  163,  166,  153,   70,  146,   70,  168,  170,   70,
      167,  169,  141,  141,   70,   70,   70,  152,  171,  164,
       70,  157,   75,  162,  159,  160,   70,  158,  172,  166,

      153,   70,  177,   70,  168,  170,  173,  167,  169,  174,
       70,   70,  179, 2340, 2340,  171,  164,  182,  180,  185,
       70,  183,  175,  176,  184,  172,  178,   70, 2340,  186,
       70,  213,   70,  173,   70,  187,  174, 2340,  181,  179,
       70,   70,   70,  188,  182,  180,  185,  189,  183,  175,
      176,  184,   70,  178,  190,   70,  186,   70,  213,  191,
      192,  193,  187,  194,  202,  181,   70,   70,   70,   70,
      188,  195,   70,  197,  189,  196,   70,  198,  199, 2340,
       70,  190,  207,  200,   70,   70,  191,  192,  193,  201,
      194,  202,  210,   70, 2340,  214,   70,   70,  195,  203,

      197,   70,  196,   70,  198,  199,  204,   70,  209,  207,
      200,  212,  211,  215,  218,  237,  201,  205,   70,  210,
       70,  206,  214,   70,   70,  216,  203,  219,  220,  221,
       70,  223, 2340,  204, 2340,  209,   70,   70,  212,  211,
      215,  218,   70, 2340,  205,  222,  217,   70,  206,  370,
       70,   70,  216,   70,  219,  220,  221,  138,  223,  138,
      138,  143,  138,  143,  143,   74,  143,   74,   74,  144,
       74,  225,  222,  217,  226,  227,   70,  228,  230,  229,
      231,  232,  233,   70, 2340,   70,  236,   70,  234,  235,
       70,   70,  246, 2340,   70, 2340, 2340,  377,  225,   70,

       70,  226,  227,  146,  228,  230,  229,  231,  232,  248,
      249,   70,   70,  236,   70,  234,  235,  238,   70,  246,
      247,  239,  250,  251,   70,  257,   70,  253,   70,  252,
      254,   70,   70,  258,   70,  267,  248,  249,  240, 2340,
       70,  259,   70, 2340, 2340,   70,   70,  247,  239,  250,
      251,   70,  257, 2340,  253,   70,  252,  254,  255,  264,
      258,  256, 2340,   70, 2340,  240,  241,   70,  259,  268,
      265,  242,  271,   70, 2340,  260,  243,   70, 2340,  266,
      261,   70,  244,  245,  274,  255,  264,  272,  256,   70,
       70,  276,  262,  241,  263,   70,  268,  265,  242,  277,

      269,   70,  260,  243,   70,   70,  266,  261,  275,  244,
      245,  270,  273,  278,  272,  279,   70,  281,   70,  262,
      280,  263,  282,   70,   70,  287, 2340,  284, 2340,   70,
       70,   70,   70,   70,  285,  275,  286,   70,  270,  273,
      278,   70,  279,   70,  281,  283,   70,  280,   70,  282,
       70,  288,  287,  289,  284,  290,  291,  294,   70, 2340,
       70,  285,   70,  286,  292,   70,  293,  295,  296,  297,
      300,   70,  283,  299, 2340,  301,   70,   70,  288,  298,
      289,  303,  290,  291,  302,  306,   70,   70,  304,   70,
       70,  292,   70,  293,  295,  296,  305,  300,   70,  308,

      299,   70,  309,   70,  315,  311,  298,   70,  307,   70,
      312,  302,  313,   70,  314,  304,  316,   70,  317,  310,
       70,  318,   70,  305,  324,  144,   70,   70,  325,  309,
      319,   70,  311,   70,  320,  307,   70,  312,   70,  313,
       70,  314,   70,  316,  326,  317,  310,   70,  323,  321,
      322,  324,   70,   70,  327,  325,  329,  319,   70,  330,
      333,  320,  331,   70,  336,   70,  334,   70,  332,   70,
      337,  326,   70,  335,  339,  323,  321,  322,  340,   70,
       70,  327,   70,  329,  338,   70,  330,  333,   70,  331,
       70,  336,  341,  334,  342,  332,   70,   70,  344, 2340,

      335,  343,   70,  345,   70,  340,   70,   70,   70,   70,
      346,  338,  347, 2340,   70,  352,  348, 2340,  349,  341,
      351,  350,  353,  356,   70,  344,   70,   70,  343,   70,
      345,   70,  354,  357,  363,  355,  358,  346,   70,  347,
       70,   70,  352,  348,   70,  349,  364,  351,  350,  353,
       70,   70,   70, 2340,  366,   70,   70,   70,  359,  354,
      357,  363,  355,  358,  365,  367,  360,  361,   70,  362,
       70,  371, 2340,  364,  368,  369,   70, 2340,  374,  372,
       70,  366,  373, 2340,  379,  359,  375, 2340,  385,   70,
       70,  365,  367,  360,  361,   70,  362,  376,  371,   70,

      378,  368,  369,  381,   70,  374,  372,  380,  382,  373,
       70,  379, 2340,  375,  383,   70,  384,  387,  388,   70,
       70,   70,   70,   70,  376,   70,  386,  378,   70,  389,
      381, 2340,  390,   70,  380,  382,  394, 2340,  391,   70,
      392,  383,  393,  384,  387,  399,  400, 2340, 2340,   70,
       70,   70,  398,  386,   70,  395,  389, 2340,  396,  390,
      397,  434,  405,  394,   70,  391,   70,  392,   70,  393,
       70,  403,  401,  400,   70,  404,  407,   70,   70,  398,
      402,   70,  395,  406,  409,  396,   70,  397,  418,  405,
      419,  438,  408,   70,  461,  420,   70,   70,  403,  401,

       70,  417,  404,  407,  422, 2340,   70,  402,  421,  424,
      406,  409,   70,   70,  144,  418,   70,  423,  426,  408,
      410,  411,   70,   70, 2340,  425,   70,  427,  417,   70,
      412,  422,  413,  414,  415,  421,  424,  416,   70,  428,
      432, 2340,  429,   70,  423,   70,  430,  410,  411,   70,
       70,  431,  425,   70,  427,  436,  433,  412,  435,  413,
      414,  415,   70,   70,  416,   70,  428,  432,   70,  429,
       70,  437,  439,  430,   70,  440,  442,  443,  431,  441,
      444,  445,  436,  433,   70,  435,   70,   70,  448,  446,
      447,  449,   70, 2340, 2340,  452,  450,  453,  437,  439,

       70,   70,  440,   70,   70,   70,  441,  444,  445,  457,
       70,  451, 2340,   70,   70,  448,  446,  447,  449,   70,
      458,  454,  452,  450,  453,  460,  459,   70,  465,  462,
      463,  464,  455,  466,  456,   70,  457,  467,  451,   70,
       70,  471,   70,   70,  469,  472,  473,  458,  454,   70,
       70,   70,  460,  459,   70,  465,  462,  463,  464,  455,
      466,  456,  468,   70,  467,  470,   70,   70,  471,   70,
      476,  469,  474,  473,  475,  477,   70,   70,   70,   70,
      478,  479, 2340,  480,  481,  482, 2340,  483,   70,  468,
       70,   70,  470,  484,  485,   70,   70,  476,  486,  474,

       70,  475,  477,  489,   70,  487,   70,  478,  479,   70,
      480,  481,  482,   70,  483,  488,  493,   70,   70,   70,
      484,  485,   70,   70,  490,  486,  491,  492,  494,   70,
      489,  495,  487,   70,   70,  496,  498,  497,  499,  500,
     2340,  501,  488,  493,  502, 2340,   70,  505,  504,   70,
       70,  490, 2340,  491,  492,   70, 2340,   70,  495,  508,
       70,   70,  496,  498,  497,   70,  500,  503,  501,   70,
       70,  509,  506,  507,  505,  504,   70,   70,  511,   70,
      510,  519,   70,   70,  512, 2340,  508,  520,   70,   70,
     2340,  522,   70,  521,  503,   70, 2340, 2340,  509,  506,

      507,  523,   70,  541,   70,  511, 2340,  510,  519,  525,
     2340,  512,  513,  524,  520,  526,  528,  514,   70,  515,
      521,  527,   70,   70,   70,  529, 2340,  516,  523,  530,
      517, 2340, 2340,   70,  531,   70,  525,  518,   70,  513,
      524,   70,  526,  528,  514,  533,  515,   70,  527,   70,
      532,   70,  529,   70,  516,  534,  530,  517,  535,  537,
       70,  531,   70,  536,  518,  540,  538,   70,  539,  542,
      543,  544,  533,  545,  546,  549,  548,  532,   70,   70,
       70,   70,  534,  547,   70,  535,  537,   70,  144,   70,
      536,  550,  540,  538,   70,  539,  542,  543,  544,   70,

      545,  546,   70,   70,  551,  552,   70,   70, 2340, 2340,
      547,  553,  554, 2340,  557,  555,  556,  558,  550,  559,
       70,  560,  563,  564,   70,   70,  561,  565,  566,  567,
       70,  562,  552,  568,  573,   70,   70,   70,  553,  554,
       70,  557,  555,  556,  558,   70,  559,  570,  569,   70,
       70,  572,  571,   70,   70,   70,   70,   70,  562,   70,
       70,  573,  574,  575,  576,   70,  577,  579,  581,   70,
       70, 2340, 2340,   70,  570,  569,  578, 2340,  572,  571,
      580,   70,  586,   70, 2340,  592,   70,  582,   70,  585,
      575,  576,  583,  577,   70,  581,  584,  587,   70,   70,

      588,  591,   70,  578,  589,  590,   70,  580,   70,  586,
      594,   70,  593,   70,  582, 2340,  585,   70,   70,  583,
      595,  600,   70,  584,  587,  599,   70,  588,  591,  597,
       70,  589,  590,  598,   70,   70,   70,  594,  603,  593,
      601,  602,  596,   70,  605,  606,  604,  595,  600,   70,
      607,   70,  599,  609,  608,   70,  597,  612,  611,   70,
      598,   70,   70,  614,  613,  603,   70,  601,  602,  596,
      610,   70,  606,  604,   70,   70,   70,  607,   70,   70,
      609,  608,  615,  616,  619,  611,   70,  617,  620,   70,
      621,  613,  618,  622,  623,   70,  626,  610,   70,  624,

     2340,   70,   70,  627, 2340,   70,   70,  628,  629,  615,
      616,  619,   70,  630,  625,  620,  631, 2340,   70,   70,
      622,  623,   70,   70,  633,  632,  624,   70,   70,   70,
      627,  634,  635,  640,  628,  636,  637,  641,  638,   70,
       70,  625,   70,  631,   70,   70,   70,  639,  646,   70,
     2340,  633,  632,  677,   70,   70,   70,   70,  634,  635,
      640,  642,  636,  637,  641,  638,  643,  645,  644,  647,
      648, 2340,  649,   70,  639,   70,   70,   70,   70,   70,
       70,  650,  651,  653,  652,   70, 2340, 2340,  642,  656,
       70,  654,  657,  643,  645,  644,  647,  648,   70,  649,

       70,  658,   70,   70,   70,   70,  655,  659,  650,  651,
      653,  652,   70,  660,   70,  661,  656,  662,  654,  657,
      664,  663, 2340,   70,  667,  671,   70,   70,  658,  668,
      665,  666,  669,  655,  659,   70,  674,   70,   70,  670,
      660,   70,  661,   70,  662,   70,  144,  664,  663,   70,
      675,  667,   70,   70,  672,   70,  668,  665,  666,  669,
      678,  676,  673,   70,  680,  681,  670,   70,   70,   70,
      679,  682,  692,  684,   70,  683, 2340,  675, 2340,   70,
       70,  672,   70,  685,   70,   70,  693,  678,  676,  673,
      694,  680,  681,   70,   70,  695,   70,  679,  686,  692,

      684,  696,  683,   70,  710,   70,   70,  699,   70,  697,
      685,  698, 2340,  693, 2340,  708,   70,  694,  709,  707,
      711,   70,  695,  712,   70,  686,  687,   70,  696,  713,
      688,  710,  714,  689,  733,   70,  697,   70,  698,   70,
      690,   70,  708,  691,   70,  709,  707,  711,   70,   70,
       70,  715,  718,  687,  716, 2340,  713,  688,   70,  714,
      689,   70, 2340,   70,  717,  719, 2340,  690,  720,  721,
      691,  700,  701, 2340,  702,  722,   70,  703,  715,  718,
       70,  716,  704,   70,   70,  723,   70,   70,  705,  706,
      735,  717,  719,   70,  726,  720,  721,   70,  700,  701,

      724,  702,  722,  725,  703,  727,  728,   70,   70,  704,
      729,   70,  723,   70,  731,  705,  706,  730,   70, 2340,
      732,  726,   70,   70,  734,  736,   70,  724,  737,   70,
      725,   70,  727,  728,  739,  738,  741,  729,  742,  740,
     2340,  731,   70,  745,  730,   70,   70,  732,  743, 2340,
      747,  734,   70,   70,  746,  737,   70,   70,   70,  744,
       70,  739,  738,  741,  748,  742,  740,   70,   70,   70,
       70,  749,   70,  750,  751,  743,  754,  747,  752,   70,
      755,  746,  753,  756,  759,  757,  744,   70,  763,   70,
      758,   70,   70,   70, 2340,   70,   70,  762,  749, 2340,

      750,  751,   70,  754,   70,  752,   70,  755,   70,  753,
      756,  759,  757,  760,  764,   70,  765,  758,  770,  766,
       70,  761,   70,  767,  762,   70,  768,  769,  771, 2340,
       70,   70,  778,  772,   70,  781,   70,   70,   70,  773,
      760,  764,   70,  765,  774,  770,  766,   70,  761,  775,
      767,   70,  776,  768,  769,  771,  777,  780,  783,   70,
      772,  779,   70,  791,   70,   70,  773,   70,   70,  784,
       70,  774,  788,  782,  785,  789,  775,   70,  786,  776,
       70,   70,   70,  777,  780,  790,  787,  795,  779,  793,
       70,  792,   70,   70,   70,   70,  784,  796,   70,  788,

      782,  785,  789,  794,   70,  786,  797,  799,  800,  801,
     2340,   70,  790,  787,  798,   70,  793,   70,  792,   70,
       70,  802,  803,   70,  796,   70,  804, 2340,  813,   70,
      794,  805,   70,   70,  144,  800,  801,  806,   70,   70,
     2340,  798,  816,   70,   70,  814, 2340,  815,  802,  803,
      818, 2340,  817,  804,   70,  813,  821,  820,  805,   70,
      819,  822,   70,  823,  806,  807, 2340,  808,   70,  816,
       70,  809,  814,  810,  815,   70,   70,  818,  811,  817,
      824,  825,   70,  812,  820, 2167, 2168,  819,   70,   70,
      823,  826,  807,   70,  808,  828,  829,  834,  809,  832,

      810,  827,  831,   70,  833,  811,  830,  824,  825,   70,
      812, 2340,   70,   70,   70,   70,  841,   70,  826,  842,
       70,  843,  828,  829,   70,  844,  832,  845,  827,  831,
      847,   70,  848,  830,   70,  853,   70,  836,  846,  849,
       70,   70,  837,  841,  838,   70,  842,   70,  843,   70,
      850,  851,  844,   70,  845,  839,  852,  847,   70,  848,
       70,  854,  840,   70,  836,  846,  849,   70,  855,  837,
      856,  838,  857,  859,  858,  860,   70,  850,   70,   70,
      861,   70,  839,  852,   70,   70,  863,  864,  854,  840,
      866,  872,  862,   70, 2340,  855,   70,  856,   70,  867,

      859,  858,  860,   70,   70,   70,   70,  861,  865,  868,
      870,  871,   70,  869,  864,  876,   70,  866,   70,  862,
       70,  873,   70,   70,  874,  877,  867,   70,   70,   70,
      875,  878,   70,  879,   70,  865,  868,  870,  871,   70,
      869,  880,  876,  881,  882,  884,  893,   70,  873,  885,
      883,  874,  877,   70,  886,   70,   70,  875,  878,   70,
      879, 2340,  887,  889,   70,  888,  890,  891,  880,   70,
      881,  892,  884,  894,   70,  895,   70,  883,   70,   70,
       70,   70,  897,   70,  898,  896,  899,   70,   70,  887,
      889,   70,  888,  890,  891,  900,  901,   70,  892,   70,

      894,  902,  895,  903,   70,  905,   70,  906,  904,  897,
     2340,  898,  896,  899,  909,  907,   70,   70,   70,   70,
      908,  914,  900,  901,   70,  918,   70,  910,  902,   70,
      903,  911,  905,   70,   70,  904,   70,  912,   70,   70,
      915,  909,  907,  913,   70,  919,  916,  908,  921,   70,
      917,  920,  918,   70,  910,  922,  923,   70,  911,   70,
       70,   70,   70,   70,  912,  926, 2340,  915,   70,  924,
      913,  925,  919,  916,  927,  921,  928,  917,  920,  929,
     2340,   70,   70,  933,  932, 2340,  931,   70,   70,   70,
      939,   70,   70,   70,   70,   70,  924,  934,  925,   70,

      935,  927,   70,  928,  936,  938,  929,  937,   70,  940,
      933,  932,   70,  931, 2340,  941, 2340,   70,  942,   70,
     2340,  947,   70,  944,  934,  943,  945,  935, 2340,  946,
      948,  936,  938,   70,  937,  949,   70,   70,   70,   70,
     2340,   70,  941,   70,  952,  942,  950,   70,  947,  955,
      944,   70,  943,  945,  954,   70,  946,  948,   70,  951,
      963,  953,  949,   70, 2340,  956, 2340,   70,  957,  962,
       70,   70,   70,  950,   70,  961,  955,  958,  968,  959,
       70,  954,  960,  965,  964,  966,  951,  963,  953, 2340,
       70,   70,  956,  970,   70,  957,  962,   70,  967,  972,

       70,   70,  961, 2340,  958,  968,  959,   70,  973,  960,
      965,  964,  966,  969,  971,   70,   70,  975,  974,  976,
      970,   70,   70,  978,  979,  967,   70,   70, 2340,   70,
      977,   70,  981,  983, 2340,  973,   70,  988,   70,   70,
      969,  971,   70,   70,  975,  974,  976,  980,  987,  982,
      978,  979,  984,  990,   70,   70,  985,  977,   70,  981,
      983,  986,  992,   70,   70,  989,   70,  993,   70,   70,
      991, 1008,   70, 2340,  980,  987,  982,   70,   70,  984,
      990,  994,   70,  985,   70,  996,  995,  997,  986,  992,
      998, 1006,  989,   70,  993,  999, 2340,  991, 1007, 2340,

       70, 2340, 1009,   70,   70,   70, 1011, 2340, 1010, 2340,
     2340, 1020,  996,   70,  997, 2340,   70,  998, 1006, 1021,
     1012,   70,  999, 1000,   70, 1007, 1001, 1002,   70, 1009,
       70, 1003, 1015, 1011, 1013, 1010, 1014, 1004, 1017,   70,
     1019, 1005,   70,   70, 1018,   70, 1023, 1012, 1016,   70,
     1000,   70, 1022, 1001, 1002, 1029,   70,   70, 1003, 1015,
       70, 1013,   70, 1014, 1004, 1017,   70, 1019, 1005,   70,
     1031, 1018, 1032, 1023,   70, 1016, 1033, 1038, 1035, 1022,
     1024,   70, 1029, 1034, 1039, 1025,   70, 1026,   70, 1027,
       70, 1028,   70, 1043, 1041,   70,   70, 1031,   70, 1032,

     1040, 1036,   70, 1033, 1038, 1035, 1037, 1024,   70, 1042,
     1034, 1039, 1025,   70, 1026,   70, 1027, 1044, 1028, 1045,
     1043, 1041,   70, 1046, 1047, 1048,   70, 1040, 1049, 1050,
       70, 1051,   70,   70, 1054, 1052, 1042,   70, 1053, 1055,
     1057,   70,   70, 2340, 1044, 1060, 1045,   70, 1058, 2340,
     1046, 1047, 1048, 1066, 1062,   70, 1050, 1056,   70,   70,
       70, 1054, 1052, 1059,   70, 1053,   70,   70, 1063,   70,
       70, 1061,   70, 1067, 1064, 1058,   70, 1065,   70,   70,
     1066, 1062,   70, 1069, 1056, 1068, 1071,   70, 1070, 1072,
     1059, 1074, 1073, 1075, 2340, 1063,   70, 1076, 1061,   70,

     1067, 1064,   70,   70, 1065,   70,   70, 1078, 2340, 1077,
     1069,   70, 1068, 1081,   70, 1070, 1082,   70,   70, 1073,
     1075,   70, 1079,   70, 1076,   70, 1080, 1086, 1085,   70,
     1087, 1083, 1088,   70,   70,   70, 1077, 1084, 2340, 1089,
     1081,   70,   70,   70,   70, 1090, 1093, 1092,   70, 1079,
     1094, 2340,   70, 1080, 1086, 1085,   70, 1087, 1083, 1088,
     1091, 1096,   70, 1095, 1084,   70, 1089,   70,   70, 1102,
     1097, 1098, 1090, 1093, 1092, 1100, 1099,   70,   70, 1101,
     1103, 2340,   70,   70, 1108, 1110, 2340, 1091, 1096, 2340,
     1095, 1111,   70,   70, 1112, 2340, 1102, 1097,   70, 1109,

     2340, 1104, 1100,   70, 1105, 1106, 1101, 1103, 1107,   70,
       70, 1108,   70,   70,   70, 1113, 1115,   70, 1111, 1114,
       70, 1112, 1116,   70, 1117,   70, 1109,   70, 1104, 1118,
     1119, 1105, 1106,   70, 2340, 1107,   70, 1121, 1120, 1122,
     1124, 2340, 1113, 1115,   70,   70, 1114,   70, 1123, 1116,
     1125, 1117,   70,   70,   70, 1126, 1118, 1119, 1127, 1128,
     1130,   70,   70,   70, 1121, 1120, 1122, 1124, 1129,   70,
     1131, 1137, 1132, 1134, 1136, 1123, 2340, 1125, 1135,   70,
       70, 1133, 1126, 1138,   70, 1127, 1128, 1130,   70, 1141,
       70, 1139, 1143,   70,   70, 1129,   70, 1131,   70, 1132,

     1134, 1136, 1140,   70, 1142, 1135, 1147, 2340, 1133, 1145,
       70, 1144, 1146, 2340, 1148,   70,   70,   70, 1139, 1143,
       70, 1151,   70, 1149,   70, 1150,   70,   70,   70, 1140,
       70, 1142, 1152, 1147, 1153, 1162, 1145, 2340, 1144, 1146,
       70, 1148,   70,   70,   70,   70, 1154, 1159, 1151, 1156,
     1149, 1155, 1150, 1158, 1157,   70, 1160, 1161, 1164, 1152,
       70, 1153, 1163,   70,   70,   70,   70,   70, 1166, 1165,
     1172, 1167, 2340, 2340, 1159, 1171,   70, 2340,   70,   70,
     1158,   70, 1174, 1160, 1161, 1164, 1168, 1169,   70, 1163,
       70, 1170, 1173, 1175,   70,   70, 1165, 1172, 1167,   70,

       70, 1176, 1171, 1177,   70, 1178, 1179, 1180,   70, 1174,
     1182, 1188, 1187, 1168, 1169, 2340,   70,   70, 1170, 1173,
     1175,   70, 1181,   70,   70, 1189, 2340,   70, 1176,   70,
       70, 1183, 1178, 1179, 1180, 1184, 1186, 1182,   70, 1187,
       70, 1190, 1191,   70, 1192, 1193, 1194,   70, 1185, 1181,
     1195,   70, 1189,   70,   70, 1200,   70, 1196, 1183, 1198,
     2340, 1197, 1184, 1186,   70,   70, 1199, 1201, 1190, 1191,
       70, 1192, 1193, 1194, 1202, 1185, 1204, 1207, 1203,   70,
     1205,   70,   70, 1206,   70, 1208, 1198,   70, 1197,   70,
     1211, 1210,   70, 1199,   70,   70, 1209, 1212, 1213, 2340,

       70,   70,   70, 1204, 1207, 1203,   70, 1205, 1214,   70,
     1206,   70, 1208,   70, 1215,   70, 1217, 1211, 1210, 1218,
     1219,   70, 1216, 1209,   70, 1213, 1220,   70,   70, 1221,
     1222, 1223,   70, 1224, 1233, 1214, 2340, 2340, 2340,   70,
       70, 1215,   70, 1217,   70, 1225, 1218, 1219,   70, 1216,
     1228, 1229, 1232, 1220, 1226, 1227,   70, 1222, 1223,   70,
     1224,   70,   70, 1230, 1231, 1235,   70,   70,   70, 1234,
       70, 1236, 1225,   70,   70, 1237,   70, 1228, 1229, 1232,
     1238, 1226, 1227, 1239,   70, 1241, 1253, 1242,   70,   70,
     1230, 1231, 1240, 1243, 1244,   70, 1234,   70, 1236, 1246,

     2340, 1247,   70,   70,   70, 1245,   70, 1238, 1249, 1248,
     1239,   70, 1241,   70, 1242,   70, 1254,   70,   70, 1240,
     1243, 1244, 1250,   70,   70, 1251, 1246,   70, 1247, 1255,
     1258, 1256, 1245, 1259, 1260, 1249, 1248, 1252,   70, 1257,
     1262,   70, 1261, 1254, 1264, 2340,   70,   70,   70, 1250,
     1265,   70, 1251,   70,   70, 1263, 1255, 1258, 1256, 1266,
       70, 1260,   70, 1268, 1252,   70, 1257, 1262, 1269, 1261,
     1267, 1270,   70, 1272,   70, 1271,   70, 1265, 1277, 1273,
       70, 1274, 1263, 1275,   70,   70,   70, 1278, 1276, 1311,
     1268,   70,   70,   70,   70,   70,   70, 1267, 1270, 1281,

     1272, 1283, 1271,   70, 1279, 1277, 1273, 1280, 1274, 1286,
     1275,   70,   70, 1284,   70, 1276, 1282, 1285, 1287,   70,
       70,   70,   70, 1291, 1288, 2340, 1281, 1293,   70, 1289,
       70, 1279,   70, 1290, 1280,   70, 1286,   70, 1300,   70,
     1284,   70,   70, 1282, 1285, 1287, 1292,   70, 1296, 1294,
     1291, 1288, 1295, 1299, 1293,   70, 1289, 1297,   70,   70,
     1290, 1301, 1298, 1302, 1303,   70, 1305,   70, 1306,   70,
     1304, 1312,   70, 1292, 1307, 1296, 1294,   70, 1308, 1295,
     1299, 1309,   70, 2340, 1297, 1310,   70,   70,   70, 1298,
     1302, 1303,   70, 1305, 1316, 1306,   70, 1304,   70, 1313,

     1314, 1307, 1315,   70, 1317, 1308,   70,   70, 1309, 1318,
     1320,   70, 1310, 1321,   70,   70, 1319, 1322,   70,   70,
     1323, 1316, 2340, 1324,   70, 1329, 1313, 1314,   70, 1315,
     1327, 1317, 1325, 1328,   70, 1332, 1318, 1320,   70,   70,
     1321, 1334, 1333, 1319, 1322,   70, 1326, 1323,   70, 1330,
     1324,   70, 1329, 1335, 1331, 1336, 1337, 1327,   70, 1325,
     1328, 1340, 1338, 1339, 1341, 1346, 2340,   70,   70, 1333,
       70, 2340, 2340, 1326, 1342, 1345, 1344,   70,   70,   70,
     1343,   70, 1336,   70,   70,   70, 1347, 1350,   70, 1338,
     1339, 1341, 1346,   70,   70,   70, 1348, 1349,   70, 1351,

     1352, 1342, 1345, 1344,   70, 1353, 1355, 1343, 1354,   70,
       70,   70, 1356, 1347, 1357,   70, 1358, 1360, 1361,   70,
     1362,   70, 1359, 1348, 1349, 2340, 1351, 1352, 1364,   70,
       70, 1365,   70, 1355,   70, 1354,   70, 1363,   70, 1356,
       70, 1357, 1366, 1358, 1360, 1361,   70,   70,   70, 1359,
       70, 1367, 1369, 1368, 1371, 1364, 1370,   70, 1365,   70,
       70, 1372, 1373,   70, 1363, 1375, 1374, 2340, 1377, 1366,
     1378,   70, 1376, 1380, 2340, 2340, 1379, 1381, 1367, 2340,
     1368, 1371,   70, 1370,   70, 1386,   70, 1384, 1372,   70,
       70,   70,   70, 1374,   70, 1377,   70,   70,   70, 1376,

     1380,   70, 1382, 1379, 1381, 1383, 1385,   70, 1387,   70,
       70, 1389, 1386, 1388, 1384,   70, 1395, 1390, 1391, 1396,
     1393, 2340, 1394,   70, 2340, 1400,   70,   70,   70, 1382,
     1399, 1392, 1383, 1385,   70, 1387,   70,   70, 1389,   70,
     1388, 1402, 1397,   70, 1390, 1391, 1398, 1393,   70, 1394,
     1403,   70,   70, 1401,   70, 1404,   70, 1399, 1392, 1406,
       70, 1405, 1407, 1408, 1410, 1409, 1412, 1413,   70, 1397,
     1411, 1415,   70, 1398,   70, 1414, 1422, 1403, 1424, 2340,
     1401, 2340,   70, 1425,   70, 2340,   70, 2340, 1405, 1407,
       70,   70, 1409, 1412,   70,   70,   70, 1411, 1416, 1417,

     1418,   70, 1414,   70, 1420, 1419, 1426, 1421,   70, 1423,
       70,   70, 1427,   70,   70, 1430,   70, 1429, 1433,   70,
     2340, 1432, 1428, 1431,   70, 1416, 1417, 1418,   70,   70,
     1434, 1420, 1419, 1426, 1421, 1436, 1423,   70,   70, 1427,
     1439,   70, 1435,   70, 1429, 1433, 1437,   70, 1432, 1428,
     1431, 1438, 1440,   70, 1441, 1443,   70,   70, 1442, 1444,
     1445,   70, 1436, 1448,   70, 1446,   70, 1439, 1452, 1435,
     1455,   70,   70, 1437, 1447,   70, 1449,   70, 1438,   70,
       70, 1441,   70,   70, 1450, 1442, 1444, 1445, 1451,   70,
     1448, 1453, 1446, 1454, 1456,   70, 1457, 1458,   70, 2340,

       70, 1447,   70, 1449, 1459, 1460, 1461, 2340, 1464, 2340,
       70, 1450,   70,   70,   70, 1451, 1463,   70, 1453,   70,
     1454, 1462,   70,   70, 1458, 1466,   70, 1465,   70, 1467,
     1468, 1459, 1460, 1461, 1470, 1464,   70, 1471, 1474, 1472,
       70,   70,   70, 1463, 1473, 1475, 1469,   70, 1462,   70,
     1476,   70, 1466,   70, 1465, 1479, 1467, 1468, 1483,   70,
     1484, 1470, 1480,   70, 1471, 1474, 1472,   70,   70, 1477,
     1481, 1473, 1475, 1469, 1478, 1485, 1487,   70, 1488, 1482,
     1486, 1491,   70,   70, 1490,   70,   70,   70, 1492, 1480,
       70, 1489,   70, 1493, 1494, 1496, 1477, 1481, 1495,   70,

       70, 1478, 1498,   70, 1499, 1500, 1482,   70,   70,   70,
       70, 1490, 1497,   70, 1501, 1492,   70,   70, 1489,   70,
     1493, 1494, 1502, 1503, 1505, 1495, 1504,   70, 1509,   70,
     1506, 1499, 1500,   70,   70, 2340, 1507, 2340, 1508, 1497,
       70, 1501, 1510, 1511, 1515, 1512,   70, 1513, 1516,   70,
       70,   70, 1520, 1504, 2340, 1509,   70, 1506,   70,   70,
       70, 1514,   70, 1507,   70, 1508,   70,   70, 1517, 1510,
     1511, 1515, 1512, 2340, 1513,   70,   70, 1518, 1519,   70,
     1521, 1523, 1527, 1522, 1524, 2340,   70,   70, 1514, 1525,
       70, 1526,   70, 1528, 1531, 1517, 1534, 1538, 1529,   70,

       70,   70, 2340,   70, 1518, 1519,   70, 1521, 1523, 1530,
     1522, 1524,   70,   70,   70, 1532, 1525, 1533, 1526, 1535,
     1528, 1531, 1536,   70,   70, 1529, 1537, 1539, 1542,   70,
       70, 1540, 1543,   70,   70,   70, 1530,   70, 1541,   70,
     1544, 1545, 1532, 1546, 1533, 2340, 1535, 2340,   70, 1536,
     2340,   70, 2340, 1537, 1539,   70, 1547,   70, 1540, 1543,
       70, 1549, 1550,   70, 1551, 1541, 1548, 1544, 1545,   70,
     1546, 1554,   70, 1553,   70, 1556,   70,   70, 1558,   70,
     1552,   70,   70, 1547, 1555,   70, 1557, 1559, 1549, 1550,
     1560, 1551,   70, 1548, 1561, 1565,   70,   70, 1554, 1563,

     1553,   70, 1556, 1562, 2340,   70,   70, 1552, 1568, 1564,
     1566, 1555, 1567, 1557, 1559, 1569, 1570, 1560,   70,   70,
       70, 1561, 1565, 1572, 1574,   70, 1563, 1571,   70, 1580,
     1562,   70, 1575,   70,   70, 1568, 1564, 1566, 1576, 1567,
       70,   70, 1569, 1570, 1573,   70,   70, 1577, 1579, 1578,
       70, 1574, 1582, 1583, 1571,   70, 1581,   70,   70, 1575,
       70,   70, 1584, 1586, 1585, 1576,   70, 1587, 2340,   70,
       70, 1573,   70, 1588, 1577, 1579, 1578,   70,   70, 1582,
     1583, 1589, 1590, 1581, 1591,   70, 1593, 2340,   70, 1584,
       70, 1585, 1592,   70, 1587, 1594, 2340, 1595, 1599, 1600,

     1588,   70, 1596, 1598,   70, 1597,   70, 2340, 1589, 1601,
     2340, 1591, 1603, 1593,   70, 1604, 1602,   70, 2340, 1592,
       70,   70, 1594,   70, 1595, 1599,   70,   70,   70, 1596,
     1598,   70, 1597, 1605,   70, 1607, 1601,   70, 1606, 1603,
     1608, 1613, 1604, 1602,   70,   70, 1612,   70, 1609, 1611,
       70,   70, 1614,   70,   70, 1616, 1615, 1618, 1619, 1617,
     1605, 1610, 1607, 2340, 1620, 1606,   70, 1608, 1613,   70,
       70, 1621, 1636, 1612,   70, 1609, 1611,   70, 1622, 1614,
     1625, 1627,   70, 1615,   70, 1619, 1617,   70, 1610, 1623,
     1626, 1620,   70,   70, 1624, 1631, 1632,   70, 1621,   70,

     1628, 2340, 1633, 1634,   70, 1622, 1635, 1625,   70, 1637,
     1638, 1640, 1639,   70, 1629,   70, 2340, 1626,   70, 1641,
     2340,   70, 1631,   70, 1643, 1630,   70, 1628,   70, 1633,
     1634,   70, 1645, 1635,   70, 1648, 1637,   70, 1642, 1639,
     1646, 1629,   70,   70,   70,   70, 1641,   70, 1644, 1647,
       70, 1643, 1630, 1651,   70, 1649, 1652,   70, 1650, 1645,
     1653,   70, 1648, 2340,   70, 1642, 1654, 1646, 2340,   70,
     1655,   70,   70, 1656, 1659, 1644, 1647,   70, 1657,   70,
       70,   70, 1649, 1652, 1660, 1650,   70, 1653,   70, 1661,
     1658, 1662,   70, 1654,   70,   70, 1663, 1655, 1664, 1665,

     1656, 1659,   70, 1666, 1671, 1657,   70, 1667, 1672, 1668,
       70, 1660, 1670, 2340, 1669, 1674, 1661, 1658, 1662, 1675,
     1673,   70,   70, 1663, 1678, 1664,   70,   70,   70,   70,
     1666,   70,   70, 1683, 1667,   70, 1668, 1676,   70, 1670,
     1677, 1669, 1674, 1679, 1680,   70, 1675, 1673,   70, 1681,
     1682,   70, 1684, 1685, 1686,   70,   70,   70, 1687, 1688,
     1683, 1689,   70, 1690, 1676,   70,   70, 1677,   70, 1691,
     1679, 1680, 1693, 1694, 1696, 1692, 1681, 1682, 1697,   70,
       70, 1686,   70,   70, 1695,   70, 1688,   70,   70, 1698,
       70, 1699,   70, 1700,   70, 1702, 1691, 1704, 1703, 1693,

       70,   70, 1692, 1706, 1705, 1697,   70, 1707, 1701,   70,
       70, 1695,   70, 1708,   70,   70, 1698,   70, 1699,   70,
     1700, 1709,   70, 1710, 1704, 1703, 1711, 1713, 1712, 1715,
       70, 1705, 1714,   70, 1707, 1701,   70, 1716,   70,   70,
     1708, 1717, 1718, 2340, 1721, 1719,   70, 1720, 1709,   70,
     1710, 1723, 1724,   70,   70, 1712, 1715, 2340,   70, 1714,
       70, 1722,   70,   70, 1716,   70,   70,   70, 1717, 1718,
       70, 1721, 1719, 1725, 1720, 1726, 1728, 1727, 1723, 1724,
     1729, 1730, 1733, 1731, 1735, 2340, 1734, 2340, 1722,   70,
     1737,   70, 1732, 1738,   70,   70, 2340,   70,   70,   70,

     1725,   70, 1726, 1728, 1727,   70, 1736, 1729, 1730,   70,
     1731, 1735, 1739, 1734,   70, 1743,   70, 1737, 1744, 1732,
     1740, 1741, 1745, 1742,   70,   70, 1748,   70,   70, 1746,
     1749, 1747, 1757, 1736, 2340, 1753,   70,   70,   70, 1739,
       70,   70, 1743,   70, 1750, 1744, 1752, 1740, 1741, 1745,
     1742, 1754, 1751, 1748,   70, 1756, 1746, 1749, 1747,   70,
     1755,   70,   70, 1758,   70, 1759,   70, 1760, 2340, 2340,
     1761, 1750, 1763, 1752, 1762, 1764, 1767,   70,   70, 1751,
       70, 1765, 1756,   70,   70,   70, 1766, 1755, 1768,   70,
     1769, 1770,   70, 1772, 1760,   70,   70, 1761,   70, 1763,

       70, 1762, 1764, 1767, 1771, 1773,   70,   70, 1765,   70,
     1776,   70,   70, 1766, 1774,   70, 1775, 1769, 1770, 1777,
     1772,   70, 1780, 1779, 1778, 1781, 1782, 1783,   70, 1785,
     2340, 1771, 1773,   70,   70, 1784, 1786, 1790,   70, 1788,
       70, 1774,   70, 1775,   70,   70, 1777, 1789,   70, 1780,
     1779, 1778,   70, 1782, 1783,   70, 1785,   70, 1787,   70,
       70, 1791, 1784, 1786, 1792,   70, 1788, 1794, 1793,   70,
       70, 1795, 2340, 1798, 1789, 1796,   70, 1797, 1799, 1800,
       70, 1801, 1802, 1809, 2340, 1787,   70, 1803, 1791, 2340,
     1804,   70,   70,   70,   70, 1793, 1807,   70, 1795,   70,

       70, 1806, 1796, 1808, 1797,   70, 1812,   70, 1801, 1802,
     1805,   70,   70, 1810, 1803,   70,   70, 1804,   70, 1811,
     1814,   70,   70,   70, 1813, 2340, 1815, 1816, 1806, 1817,
     1808,   70, 1818,   70, 1820, 1819, 1821, 1805, 1822, 2340,
     1810, 1825,   70, 1823, 2340,   70, 1811,   70,   70, 1828,
       70, 1813,   70, 1815, 1816, 1824, 1817,   70,   70, 1818,
     1826,   70, 1819,   70,   70,   70, 1827,   70, 1825,   70,
     1823, 1829, 1830, 1831, 1833,   70, 1828, 1832, 1834,   70,
     1837,   70, 1824, 1836,   70, 1840,   70, 1826, 1835,   70,
       70, 1841, 1843, 1827,   70,   70,   70,   70, 1829, 1830,

     1831,   70, 1845, 1838, 1832, 1834,   70, 1837, 1839,   70,
     1836,   70, 1840, 1842, 1846, 1835, 1844, 1847, 1841, 1843,
       70,   70,   70, 1848, 1849, 1850,   70,   70, 1851, 1845,
     1838, 1852, 1854, 1853, 2340, 1839, 2340, 2340, 1855,   70,
     1842, 1846,   70, 1844, 1847,   70,   70, 1875,   70, 1856,
     1848,   70,   70, 1857,   70, 1851,   70,   70, 1852, 1854,
     1853, 1858,   70, 1859, 1860, 1855,   70, 1861, 1862, 1864,
       70, 1863, 1866, 1868,   70, 1865, 1856,   70, 1869,   70,
     1857,   70,   70, 1867, 1873,   70, 1874,   70, 1858, 2340,
     1859, 1860, 1870,   70, 1861, 1862,   70,   70, 1863, 1866,

     1868,   70, 1865,   70, 1871, 1869, 1872, 1876, 1877, 1878,
     1867,   70, 1883,   70,   70,   70,   70,   70, 1879, 1870,
       70, 1880, 1881, 1884, 1882, 2340, 1886, 1885,   70,   70,
     1887, 1871, 2340, 1872, 1876, 1877, 1878,   70,   70, 1883,
       70, 1888, 1892, 1893, 1896, 1879,   70, 1900, 1880, 1881,
       70, 1882,   70,   70, 1885, 1889, 1890, 1887, 1891,   70,
     1894, 1897,   70, 1898,   70,   70,   70, 1895, 1888, 1892,
       70,   70,   70, 1899,   70,   70,   70, 1901, 1902, 1903,
     1905, 1904, 1889, 1890,   70, 1891, 1907, 1894, 1897,   70,
     1898,   70, 1906, 1909, 1895, 1908,   70, 1910,   70, 1911,

     1899, 1912, 1913, 1914, 1901,   70,   70,   70, 1904, 1922,
     1916,   70, 1915,   70,   70,   70, 1917,   70,   70, 1906,
     1909,   70, 1908,   70, 1910,   70, 1911, 1919, 1912, 1913,
     1914,   70, 1918, 1920, 1921,   70,   70, 1916, 1923, 1915,
     1926, 1925, 1924, 1917,   70, 2340,   70, 1928, 1927,   70,
     1931, 2340, 1929, 1932, 1919,   70, 1930, 1933, 1934, 1918,
     1920, 1921,   70,   70,   70,   70, 1937, 1938, 1925, 1924,
       70,   70,   70,   70, 1928, 1927, 1935,   70,   70, 1929,
       70, 1936,   70, 1930, 1933, 1934, 1939, 1940,   70,   70,
     1941, 2340, 1943, 1937, 1938, 1942, 1944, 1947, 1945, 2340,

     2340, 1946, 1949, 2340,   70, 1948, 2340, 1953,   70, 2340,
       70,   70,   70,   70, 1940,   70,   70, 1941,   70, 1943,
       70,   70, 1942, 1944, 1947, 1945, 1950,   70, 1946, 1949,
     1951, 1952, 1948,   70, 1953, 1955, 1954, 1956, 1957, 1958,
       70, 1960, 1959,   70,   70, 1962,   70, 2340,   70,   70,
       70, 1966, 1963, 1950,   70, 1961, 1968, 1951, 1952,   70,
       70, 1964, 1955, 1954, 1956, 1957,   70,   70, 1960, 1959,
     1965, 1967,   70,   70,   70, 1969, 2340,   70, 1966, 1963,
     1971, 1972, 1961,   70, 1970, 1977, 1973, 1974, 1964, 1975,
     2340, 1976, 1978, 1981,   70,   70, 1983, 1965,   70,   70,

       70,   70, 1969,   70, 1980, 1982,   70, 1971, 1972,   70,
     1984, 1970,   70, 1973, 1974, 1979, 1975,   70, 1976, 1978,
       70, 1985,   70,   70, 1987, 1988, 1986, 1989, 1990,   70,
       70, 1980, 1982, 1997,   70, 1991,   70, 1984,   70, 1993,
       70, 1992, 1979, 1995, 1994, 1996, 1999,   70,   70, 2000,
     2340,   70, 1988, 1986, 1989, 1998, 2001,   70, 2002, 2004,
       70,   70,   70, 2003,   70,   70,   70, 2005, 1992,   70,
     1995,   70, 1996, 1999, 2006, 2007,   70,   70,   70, 2009,
     2011, 2008, 1998, 2001,   70, 2002, 2004,   70,   70, 2010,
     2003,   70, 2012,   70, 2005, 2014,   70, 2013, 2340, 2016,

     2340, 2006, 2007,   70, 2015,   70, 2009, 2011, 2008, 2017,
     2340, 2018,   70, 2340,   70, 2023, 2010, 2019, 2020,   70,
     2021, 2026, 2014, 2029, 2013,   70, 2016,   70,   70, 2022,
       70, 2015, 2024,   70, 2025,   70, 2017,   70, 2018,   70,
       70,   70, 2023, 2027, 2019, 2020, 2028, 2021,   70, 2030,
       70, 2031, 2032, 2033, 2034,   70, 2022, 2035, 2340, 2024,
     2036, 2025, 2043,   70, 2037, 2038, 2340,   70, 2060,   70,
     2027,   70, 2041, 2028,   70, 2042, 2030,   70,   70, 2032,
     2033, 2034,   70,   70,   70, 2039,   70, 2036, 2044,   70,
     2040, 2037, 2038,   70, 2045, 2046, 2047,   70, 2048, 2041,

       70, 2051, 2042, 2050,   70, 2049,   70, 2340, 2055,   70,
     2053,   70, 2052, 2054, 2340, 2044, 2063,   70, 2058,   70,
     2056, 2045, 2046, 2047, 2057, 2048,   70,   70, 2051,   70,
     2050,   70, 2049, 2059,   70,   70,   70, 2053,   70, 2052,
     2054, 2061, 2062,   70, 2064, 2058, 2065, 2056, 2066, 2067,
     2068, 2057,   70,   70, 2069,   70,   70, 2070,   70, 2071,
     2059, 2073, 2072,   70,   70, 2074, 2077,   70, 2061, 2062,
       70, 2064, 2075, 2065,   70, 2066, 2067,   70, 2076,   70,
     2080, 2069,   70, 2078,   70, 2079, 2071, 2082,   70, 2072,
     2084,   70, 2074, 2077, 2085,   70,   70, 2081,   70, 2075,

     2083, 2087,   70, 2086,   70, 2076, 2090, 2080,   70,   70,
     2078, 2088, 2079, 2089,   70, 2092, 2091,   70, 2093,   70,
     2094,   70,   70,   70, 2081, 2097,   70, 2083,   70, 2096,
     2086, 2095, 2098,   70,   70,   70, 2099, 2104, 2088, 2109,
     2089, 2100, 2092, 2091,   70, 2093,   70, 2094,   70, 2101,
     2102, 2105,   70, 2103,   70, 2106, 2096,   70, 2095,   70,
       70, 2110, 2111, 2099,   70,   70, 2108, 2112, 2100, 2107,
     2113,   70, 2117,   70, 2120,   70, 2101, 2102, 2105,   70,
     2103,   70, 2106, 2114,   70, 2115,   70, 2116,   70, 2111,
     2118, 2119, 2121, 2108, 2122,   70, 2107, 2113, 2123,   70,

       70,   70,   70, 2125,   70,   70, 2124,   70, 2127, 2126,
     2114, 2128, 2115, 2129, 2116, 2130,   70, 2118, 2119,   70,
     2131, 2122, 2133, 2135, 2132,   70, 2134,   70,   70, 2139,
     2125,   70,   70, 2124, 2340,   70, 2126,   70,   70, 2137,
       70, 2136, 2130, 2138, 2141, 2140,   70,   70, 2142, 2133,
       70, 2132,   70, 2134,   70, 2143,   70,   70, 2144, 2145,
     2340,   70, 2146, 2149, 2340, 2148, 2137,   70, 2136,   70,
     2138, 2141, 2140, 2150,   70, 2155, 2147, 2151,   70, 2340,
       70,   70, 2143,   70,   70,   70, 2145,   70, 2153, 2146,
     2149, 2152, 2148, 2162,   70,   70,   70, 2156, 2154,   70,

     2150, 2160, 2155, 2147, 2151,   70, 2157, 2158,   70, 2163,
     2340, 2159, 2161, 2165, 2164, 2153,   70,   70, 2152,   70,
       70, 2166, 2169,   70, 2156, 2154, 2170, 2173, 2160, 2172,
     2174, 2176, 2175, 2157, 2158, 2171,   70,   70, 2159, 2161,
       70, 2164,   70,   70,   70,   70, 2178, 2180,   70, 2169,
       70, 2177, 2181,   70,   70,   70, 2172, 2174, 2176, 2175,
       70, 2179, 2171, 2182,   70, 2184, 2186, 2183, 2185, 2187,
     2188, 2190,   70, 2178,   70,   70, 2340,   70, 2177,   70,
     2191, 2192, 2194,   70, 2189, 2195, 2196,   70, 2179,   70,
     2182, 2193, 2184,   70, 2183, 2185,   70, 2188, 2190,   70,

     2197,   70,   70,   70, 2198, 2199, 2200, 2191, 2192,   70,
     2201, 2189,   70,   70, 2202, 2203, 2340, 2204, 2193, 2206,
     2207, 2208, 2205,   70, 2209,   70,   70,   70, 2210,   70,
       70,   70, 2199,   70,   70, 2211, 2212,   70, 2214, 2213,
     2340, 2202, 2203,   70, 2204,   70,   70, 2207, 2208, 2205,
     2215, 2209,   70, 2217,   70, 2210, 2220, 2218,   70,   70,
       70, 2216, 2211, 2219,   70, 2214, 2213,   70,   70, 2221,
       70, 2223, 2222, 2224, 2340,   70,   70, 2215, 2226,   70,
     2217,   70, 2225, 2220, 2218,   70, 2227, 2228, 2216,   70,
     2219, 2340, 2236, 2232, 2229,   70, 2221, 2230, 2223, 2222,

     2224,   70,   70,   70,   70, 2226,   70, 2231, 2234, 2225,
     2233, 2238,   70, 2227, 2228,   70, 2235, 2240,   70,   70,
     2232, 2229,   70, 2237, 2230, 2239, 2241, 2340, 2242,   70,
     2243, 2246, 2248,   70, 2231, 2234,   70, 2233,   70, 2244,
     2245,   70, 2340, 2235,   70, 2250, 2254, 2247, 2257, 2258,
     2237,   70, 2239,   70,   70, 2242, 2249, 2243, 2246,   70,
     2251,   70,   70, 2252,   70, 2255, 2244, 2245,   70,   70,
     2253, 2264,   70,   70, 2247,   70, 2259, 2256, 2261,   70,
       70,   70, 2260, 2249,   70,   70,   70, 2251, 2262,   70,
     2252, 2265, 2255, 2263,   70,   70,   70, 2253, 2264, 2266,

     2267, 2270, 2268, 2259, 2256, 2261,   70,   70, 2271, 2260,
     2274, 2269, 2272,   70,   70, 2262,   70, 2273, 2265,   70,
     2263,   70, 2275,   70, 2276,   70, 2266, 2267, 2270, 2268,
       70, 2277, 2280, 2278, 2279, 2271, 2281,   70, 2269, 2272,
       70, 2288, 2282, 2283, 2273, 2285, 2340, 2340, 2340, 2284,
       70, 2276, 2291,   70,   70,   70,   70,   70, 2277, 2280,
     2278, 2279, 2294, 2286,   70,   70, 2287, 2289,   70, 2282,
       70,   70, 2285,   70,   70,   70, 2284, 2290,   70, 2291,
     2292, 2340, 2298, 2293,   70, 2297, 2300, 2295, 2296, 2294,
     2286,   70, 2340, 2287, 2289,   70,   70, 2299,   70,   70,

       70, 2301,   70, 2302, 2290, 2304, 2307, 2292,   70, 2298,
     2293, 2305, 2297, 2300, 2295, 2296, 2309, 2303, 2306,   70,
     2310, 2311, 2312, 2340, 2299,   70,   70, 2308, 2301,   70,
     2302,   70, 2304, 2307, 2318,   70, 2313,   70, 2305, 2314,
       70, 2340,   70,   70, 2303, 2306,   70, 2310, 2311,   70,
     2315, 2316, 2317, 2320, 2308, 2324,   70, 2319,   70,   70,
       70,   70, 2322, 2313, 2321,   70, 2314, 2325, 2323, 2340,
       70, 2328, 2329,   70, 2331,   70,   70, 2315, 2316, 2317,
     2320,   70, 2324, 2330, 2319, 2326,   70, 2332, 2327, 2322,
     2338, 2321, 2339,   70,   70, 2323,   70,   70, 2328,   70,

     2333,   70, 2334,   70, 2335, 2336, 2340, 2340, 2337, 2340,
     2330, 2340, 2326,   70,   70, 2327,   70,   70, 2340,   70,
       70, 2340, 2340, 2340,   70, 2340,   70, 2333, 2340, 2334,
     2340, 2335, 2336, 2340, 2340, 2337,   42,   42,   42,   42,
       42,   42,   42,   47,   47,   47,   47,   47,   47,   47,
       52,   52,   52,   52,   52,   52,   52,   58,   58,   58,
       58,   58,   58,   58,   63,   63,   63,   63,   63,   63,
       63,   73,   73, 2340,   73,   73,   73,   73,  134,  134,
     2340, 2340, 2340,  134,  134,  136,  136, 2340, 2340,  136,
     2340,  136,  138, 2340, 2340, 2340, 2340, 2340,  138,  141,

      141, 2340, 2340, 2340,  141,  141,  143, 2340, 2340, 2340,
     2340, 2340,  143,  145,  145, 2340,  145,  145,  145,  145,
       74,   74, 2340,   74,   74,   74,   74,   13, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340

    } ;

static yyconst flex_int16_t yy_chk[6795] =
    {   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,    3,    3,    3,    4,
        4,    4,    5,    5,    6,    6,    5,   28,    6,    7,
        7,    7,    7, 2346,    7,    8,    8,    8,    8,   28,
        8,    9,    9,    9,   10,   10,   10,   15,   21,   46,

       46,   15,   30,    3,   28,   51,    4,  799,   51,    5,
       19,    6,   19,   19,   30,   19,   71,    7,   62,   62,
       71,   19,   76,    8,   21,   21,   20,   20,    9,   30,
      792,   10,   11,   11,   11,   11,   11,   11,   12,   12,
       12,   12,   12,   12,   20,   24,   76,   25,   19,   76,
       20,   26,   11,   20,   20,   22,  143,   33,   12,   26,
      792,   25,   22,   33,  698,   24,   22,   35,   24,   22,
       11,   20,   24,   25,   25,  884,   12,   26,   26,   11,
       35,   22,   22,   29,   33,   12,   26,   67,   25,   22,
      141,   78,   24,   22,   35,  698,   22,   23,   78,   27,

       67,   23,   27,  884,   23,   29,   23,   23,  140,   27,
       29,   27,  138,   38,   67,   38,  136,   32,   78,   23,
      137,   32,   27,  137,   23,  134,   27,   31,   23,   27,
       38,   23,   77,   23,   23,   31,   27,   32,   27,   38,
       38,   31,   38,   32,   32,   31,   69,   41,   32,   41,
       41,   63,   41,   31,   31,   77,  238,   38,   41,   77,
       58,   36,   31,   82,   32,   36,   53,   79,   31,   83,
       52,   81,   31,   34,   39,   36,  122,   34,   36,   47,
       81,   82,   83,   34,   39,  238,   34,   36,   36,   39,
       82,   79,   36,   34,   79,   34,   83,   39,   81,   40,

       34,   39,   36,   40,   34,   36,   89,   40,  122,  149,
       34,   39,   57,   34,   57,   57,   39,   57,   86,   89,
       34,   37,   42,   86,   37,   40,   40,  135,  135,   14,
       40,   37,   13,   89,   40,   37,   37,   65,    0,   65,
       65,  149,   65,   37,   68,   86,   68,   68,   37,   68,
       70,   37,   70,   70,   73,   70,   73,   73,   37,   73,
       80,   70,   37,   37,   84,   73,   87,   85,   85,    0,
       84,   88,   90,   80,   87,   65,   85,   92,   94,   90,
       91,   93,  142,  142,   80,   84,   92,   80,   95,   88,
       93,   84,   73,   87,   85,   85,   91,   84,   96,   90,

       80,   94,   98,   88,   92,   94,   97,   91,   93,   97,
       95,   96,   99,    0,    0,   95,   88,  101,  100,  103,
       99,  101,   97,   97,  102,   96,   98,  102,    0,  104,
       97,  126,  103,   97,   98,  105,   97,    0,  100,   99,
      100,  101,  126,  106,  101,  100,  103,  107,  101,   97,
       97,  102,  104,   98,  108,  105,  104,  106,  126,  109,
      110,  111,  105,  112,  118,  100,  109,  107,  108,  110,
      106,  113,  112,  114,  107,  113,  118,  115,  116,    0,
      114,  108,  121,  117,  111,  116,  109,  110,  111,  117,
      112,  118,  124,  113,    0,  127,  121,  117,  113,  119,

      114,  127,  113,  115,  115,  116,  120,  119,  123,  121,
      117,  125,  124,  128,  130,  161,  117,  120,  124,  124,
      125,  120,  127,  123,  128,  129,  119,  131,  132,  133,
      120,  148,    0,  120,    0,  123,  130,  132,  125,  124,
      128,  130,  131,    0,  120,  147,  129,  161,  120,  275,
      129,  133,  129,  148,  131,  132,  133,  139,  148,  139,
      139,  144,  139,  144,  144,  145,  144,  145,  145,  147,
      145,  150,  147,  129,  151,  152,  275,  153,  155,  154,
      156,  157,  158,  150,    0,  153,  160,  156,  158,  159,
      151,  154,  164,    0,  152,    0,    0,  281,  150,  157,

      155,  151,  152,  145,  153,  155,  154,  156,  157,  166,
      167,  159,  160,  160,  158,  158,  159,  162,  164,  164,
      165,  162,  168,  169,  281,  174,  168,  171,  165,  170,
      172,  166,  167,  175,  174,  181,  166,  167,  162,    0,
      171,  176,  172,    0,    0,  162,  169,  165,  162,  168,
      169,  170,  174,    0,  171,  175,  170,  172,  173,  178,
      175,  173,    0,  176,    0,  162,  163,  181,  176,  182,
      179,  163,  184,  173,    0,  177,  163,  179,    0,  180,
      177,  178,  163,  163,  187,  173,  178,  185,  173,  163,
      180,  189,  177,  163,  177,  182,  182,  179,  163,  190,

      183,  177,  177,  163,  184,  185,  180,  177,  188,  163,
      163,  183,  186,  191,  185,  192,  187,  194,  186,  177,
      193,  177,  195,  189,  194,  200,    0,  197,    0,  192,
      188,  190,  183,  191,  198,  188,  199,  200,  183,  186,
      191,  193,  192,  195,  194,  196,  197,  193,  198,  195,
      196,  201,  200,  202,  197,  203,  204,  207,  199,    0,
      202,  198,  201,  199,  205,  204,  206,  208,  208,  209,
      212,  206,  196,  211,    0,  213,  208,  203,  201,  210,
      202,  215,  203,  204,  214,  218,  210,  205,  216,  207,
      212,  205,  214,  206,  208,  208,  217,  212,  211,  219,

      211,  209,  220,  216,  225,  221,  210,  213,  218,  221,
      222,  214,  223,  215,  224,  216,  226,  218,  227,  220,
      223,  228,  217,  217,  234,  222,  234,  220,  235,  220,
      229,  219,  221,  224,  230,  218,  225,  222,  226,  223,
      227,  224,  229,  226,  236,  227,  220,  230,  233,  231,
      232,  234,  235,  228,  237,  235,  239,  229,  231,  240,
      243,  230,  241,  232,  246,  239,  244,  233,  242,  236,
      247,  236,  243,  245,  249,  233,  231,  232,  250,  242,
      237,  237,  246,  239,  248,  240,  240,  243,  241,  241,
      244,  246,  251,  244,  252,  242,  245,  248,  254,    0,

      245,  253,  247,  255,  250,  250,  249,  254,  253,  255,
      256,  248,  257,    0,  251,  262,  258,    0,  259,  251,
      261,  260,  263,  266,  256,  254,  252,  259,  253,  261,
      255,  263,  264,  267,  270,  265,  268,  256,  257,  257,
      258,  262,  262,  258,  260,  259,  271,  261,  260,  263,
      265,  268,  270,    0,  272,  266,  264,  267,  269,  264,
      267,  270,  265,  268,  271,  273,  269,  269,  272,  269,
      271,  276,    0,  271,  274,  274,  269,    0,  278,  277,
      273,  272,  277,    0,  283,  269,  279,    0,  289,  277,
      278,  271,  273,  269,  269,  276,  269,  280,  276,  274,

      282,  274,  274,  285,  279,  278,  277,  284,  286,  277,
      283,  283,    0,  279,  287,  280,  288,  291,  292,  284,
      289,  287,  282,  286,  280,  285,  290,  282,  288,  293,
      285,    0,  294,  290,  284,  286,  296,    0,  294,  291,
      295,  287,  295,  288,  291,  299,  300,    0,    0,  296,
      292,  293,  298,  290,  294,  297,  293,    0,  297,  294,
      297,  324,  304,  296,  295,  294,  297,  295,  300,  295,
      298,  302,  301,  300,  304,  303,  306,  299,  302,  298,
      301,  303,  297,  305,  307,  297,  301,  297,  310,  304,
      311,  328,  306,  324,  347,  311,  305,  307,  302,  301,

      306,  309,  303,  306,  313,    0,  310,  301,  312,  315,
      305,  307,  313,  309,  312,  310,  315,  314,  317,  306,
      308,  308,  311,  328,    0,  316,  347,  317,  309,  314,
      308,  313,  308,  308,  308,  312,  315,  308,  316,  318,
      322,    0,  319,  318,  314,  308,  320,  308,  308,  319,
      317,  321,  316,  320,  317,  326,  323,  308,  325,  308,
      308,  308,  322,  321,  308,  325,  318,  322,  323,  319,
      326,  327,  329,  320,  329,  330,  332,  332,  321,  331,
      333,  334,  326,  323,  327,  325,  330,  333,  337,  335,
      336,  338,  334,    0,    0,  340,  339,  341,  327,  329,

      335,  331,  330,  336,  340,  332,  331,  333,  334,  343,
      341,  339,    0,  337,  338,  337,  335,  336,  338,  339,
      344,  342,  340,  339,  341,  346,  345,  343,  351,  348,
      349,  350,  342,  352,  342,  348,  343,  353,  339,  342,
      352,  357,  344,  346,  355,  358,  359,  344,  342,  345,
      351,  349,  346,  345,  350,  351,  348,  349,  350,  342,
      352,  342,  354,  353,  353,  356,  355,  357,  357,  359,
      362,  355,  360,  359,  361,  363,  354,  358,  360,  356,
      364,  365,    0,  366,  367,  368,    0,  369,  362,  354,
      363,  368,  356,  371,  372,  364,  361,  362,  373,  360,

      372,  361,  363,  376,  365,  374,  367,  364,  365,  366,
      366,  367,  368,  369,  369,  375,  380,  373,  376,  371,
      371,  372,  375,  374,  378,  373,  378,  379,  381,  380,
      376,  382,  374,  378,  379,  383,  385,  384,  386,  387,
        0,  388,  375,  380,  389,    0,  387,  391,  390,  382,
      384,  378,    0,  378,  379,  385,    0,  383,  382,  394,
      381,  390,  383,  385,  384,  388,  387,  389,  388,  391,
      386,  395,  392,  393,  391,  390,  389,  392,  397,  393,
      396,  400,  394,  395,  398,    0,  394,  401,  400,  397,
        0,  403,  398,  402,  389,  401,    0,    0,  395,  392,

      393,  403,  396,  422,  402,  397,    0,  396,  400,  405,
        0,  398,  399,  404,  401,  406,  408,  399,  408,  399,
      402,  407,  406,  403,  404,  409,    0,  399,  403,  410,
      399,    0,    0,  405,  411,  422,  405,  399,  399,  399,
      404,  410,  406,  408,  399,  413,  399,  407,  407,  411,
      412,  409,  409,  413,  399,  414,  410,  399,  415,  417,
      414,  411,  412,  416,  399,  421,  418,  417,  419,  423,
      424,  425,  413,  426,  427,  430,  429,  412,  418,  424,
      415,  416,  414,  428,  423,  415,  417,  426,  421,  419,
      416,  431,  421,  418,  425,  419,  423,  424,  425,  427,

      426,  427,  428,  429,  432,  433,  431,  430,    0,    0,
      428,  434,  435,    0,  438,  436,  437,  438,  431,  439,
      433,  440,  442,  443,  435,  438,  440,  444,  445,  446,
      439,  441,  433,  447,  452,  434,  432,  436,  434,  435,
      437,  438,  436,  437,  438,  441,  439,  449,  448,  442,
      443,  451,  450,  440,  448,  445,  446,  452,  441,  444,
      450,  452,  453,  454,  455,  447,  456,  458,  460,  449,
      451,    0,    0,  455,  449,  448,  457,    0,  451,  450,
      459,  460,  463,  457,    0,  469,  454,  461,  456,  462,
      454,  455,  461,  456,  453,  460,  461,  464,  462,  458,

      465,  468,  459,  457,  466,  467,  464,  459,  463,  463,
      471,  461,  470,  468,  461,    0,  462,  469,  467,  461,
      472,  476,  465,  461,  464,  475,  466,  465,  468,  473,
      470,  466,  467,  474,  471,  476,  475,  471,  479,  470,
      477,  478,  472,  472,  481,  482,  480,  472,  476,  479,
      483,  473,  475,  485,  484,  474,  473,  488,  487,  478,
      474,  480,  477,  490,  489,  479,  482,  477,  478,  472,
      486,  487,  482,  480,  483,  485,  481,  483,  484,  486,
      485,  484,  491,  492,  494,  487,  489,  493,  495,  488,
      496,  489,  493,  497,  498,  490,  500,  486,  494,  499,

        0,  497,  495,  501,    0,  492,  491,  502,  503,  491,
      492,  494,  498,  503,  499,  495,  504,    0,  501,  493,
      497,  498,  496,  499,  506,  505,  499,  505,  500,  502,
      501,  507,  508,  513,  502,  509,  510,  514,  511,  507,
      503,  499,  504,  504,  509,  510,  511,  512,  519,  506,
        0,  506,  505,  550,  512,  514,  513,  508,  507,  508,
      513,  515,  509,  510,  514,  511,  516,  518,  517,  520,
      521,    0,  522,  515,  512,  516,  517,  520,  521,  518,
      519,  523,  524,  526,  525,  550,    0,    0,  515,  529,
      524,  527,  530,  516,  518,  517,  520,  521,  522,  522,

      525,  531,  527,  529,  523,  526,  528,  532,  523,  524,
      526,  525,  530,  533,  528,  534,  529,  535,  527,  530,
      537,  536,    0,  531,  540,  544,  535,  532,  531,  541,
      538,  539,  542,  528,  532,  533,  546,  534,  537,  543,
      533,  536,  534,  538,  535,  543,  540,  537,  536,  539,
      547,  540,  544,  541,  545,  542,  541,  538,  539,  542,
      551,  549,  545,  546,  553,  554,  543,  551,  547,  549,
      552,  555,  562,  557,  554,  556,    0,  547,    0,  553,
      545,  545,  557,  558,  562,  558,  565,  551,  549,  545,
      568,  553,  554,  552,  556,  569,  565,  552,  559,  562,

      557,  570,  556,  555,  578,  559,  578,  573,  568,  571,
      558,  572,    0,  565,    0,  576,  569,  568,  577,  575,
      579,  576,  569,  580,  570,  559,  560,  577,  570,  581,
      560,  578,  582,  560,  601,  571,  571,  572,  572,  573,
      560,  575,  576,  560,  579,  577,  575,  579,  560,  581,
      580,  583,  586,  560,  584,    0,  581,  560,  582,  582,
      560,  601,    0,  583,  585,  587,    0,  560,  588,  589,
      560,  574,  574,    0,  574,  590,  586,  574,  583,  586,
      584,  584,  574,  590,  589,  591,  585,  587,  574,  574,
      603,  585,  587,  588,  594,  588,  589,  574,  574,  574,

      592,  574,  590,  593,  574,  595,  596,  592,  591,  574,
      597,  593,  591,  594,  599,  574,  574,  598,  596,    0,
      600,  594,  603,  597,  602,  604,  598,  592,  605,  599,
      593,  595,  595,  596,  607,  606,  609,  597,  610,  608,
        0,  599,  600,  613,  598,  609,  602,  600,  611,    0,
      615,  602,  605,  607,  614,  605,  606,  604,  608,  612,
      610,  607,  606,  609,  616,  610,  608,  612,  611,  615,
      613,  617,  614,  619,  620,  611,  623,  615,  621,  617,
      624,  614,  622,  625,  628,  626,  612,  628,  632,  623,
      627,  619,  620,  626,    0,  625,  616,  631,  617,    0,

      619,  620,  621,  623,  622,  621,  624,  624,  627,  622,
      625,  628,  626,  629,  633,  632,  634,  627,  639,  635,
      633,  629,  631,  636,  631,  635,  637,  638,  640,    0,
      636,  637,  647,  641,  638,  650,  639,  629,  634,  642,
      629,  633,  641,  634,  643,  639,  635,  642,  629,  644,
      636,  640,  645,  637,  638,  640,  646,  649,  652,  647,
      641,  648,  643,  659,  644,  645,  642,  650,  648,  653,
      649,  643,  656,  651,  654,  657,  644,  646,  655,  645,
      651,  657,  654,  646,  649,  658,  655,  663,  648,  661,
      652,  660,  653,  655,  656,  659,  653,  664,  661,  656,

      651,  654,  657,  662,  664,  655,  665,  667,  668,  669,
        0,  658,  658,  655,  666,  660,  661,  662,  660,  663,
      668,  670,  672,  666,  664,  672,  673,    0,  678,  670,
      662,  675,  669,  665,  667,  668,  669,  676,  675,  673,
        0,  666,  681,  676,  681,  679,    0,  680,  670,  672,
      683,    0,  682,  673,  678,  678,  686,  685,  675,  680,
      684,  686,  683,  687,  676,  677,    0,  677,  679,  681,
      685,  677,  679,  677,  680,  682,  687,  683,  677,  682,
      688,  689,  684,  677,  685, 2133, 2133,  684,  686,  677,
      687,  690,  677,  689,  677,  691,  692,  697,  677,  695,

      677,  690,  694,  688,  696,  677,  693,  688,  689,  692,
      677,    0,  693,  690, 2133,  694,  700,  691,  690,  701,
      695,  702,  691,  692,  697,  703,  695,  704,  690,  694,
      706,  700,  707,  693,  702,  713,  696,  699,  705,  708,
      703,  701,  699,  700,  699,  707,  701,  708,  702,  706,
      709,  710,  703,  704,  704,  699,  711,  706,  709,  707,
      705,  714,  699,  699,  699,  705,  708,  713,  715,  699,
      716,  699,  717,  719,  718,  720,  715,  709,  710,  711,
      721,  719,  699,  711,  716,  714,  723,  724,  714,  699,
      726,  732,  722,  720,    0,  715,  718,  716,  721,  727,

      719,  718,  720,  722,  717,  724,  727,  721,  725,  728,
      730,  731,  726,  729,  724,  737,  725,  726,  723,  722,
      729,  734,  728,  732,  735,  738,  727,  737,  730,  731,
      736,  739,  735,  740,  734,  725,  728,  730,  731,  736,
      729,  741,  737,  742,  743,  746,  753,  738,  734,  747,
      744,  735,  738,  739,  747,  740,  746,  736,  739,  741,
      740,    0,  748,  749,  744,  748,  750,  751,  741,  742,
      742,  752,  746,  754,  751,  755,  743,  744,  753,  750,
      754,  747,  757,  752,  758,  756,  759,  749,  748,  748,
      749,  756,  748,  750,  751,  760,  761,  759,  752,  755,

      754,  762,  755,  764,  757,  766,  758,  767,  765,  757,
        0,  758,  756,  759,  770,  768,  762,  760,  761,  765,
      769,  775,  760,  761,  764,  780,  766,  771,  762,  769,
      764,  772,  766,  768,  767,  765,  771,  773,  770,  772,
      776,  770,  768,  774,  773,  781,  777,  769,  783,  780,
      779,  782,  780,  775,  771,  784,  785,  774,  772,  779,
      782,  781,  776,  783,  773,  788,    0,  776,  777,  786,
      774,  787,  781,  777,  789,  783,  790,  779,  782,  791,
        0,  786,  789,  795,  794,    0,  793,  784,  785,  790,
      803,  795,  788,  787,  791,  793,  786,  796,  787,  796,

      798,  789,  794,  790,  800,  802,  791,  801,  798,  804,
      795,  794,  802,  793,    0,  805,    0,  800,  806,  801,
        0,  811,  803,  808,  796,  807,  809,  798,    0,  810,
      812,  800,  802,  811,  801,  813,  808,  805,  812,  809,
        0,  804,  805,  806,  816,  806,  814,  807,  811,  819,
      808,  810,  807,  809,  818,  813,  810,  812,  814,  815,
      825,  817,  813,  818,    0,  820,    0,  815,  821,  824,
      819,  816,  820,  814,  817,  823,  819,  821,  830,  821,
      825,  818,  821,  827,  826,  828,  815,  825,  817,    0,
      821,  824,  820,  832,  828,  821,  824,  826,  829,  835,

      830,  823,  823,    0,  821,  830,  821,  827,  836,  821,
      827,  826,  828,  831,  833,  832,  829,  838,  837,  839,
      832,  831,  833,  841,  842,  829,  835,  839,    0,  838,
      840,  836,  844,  846,    0,  836,  837,  852,  844,  842,
      831,  833,  840,  841,  838,  837,  839,  843,  850,  845,
      841,  842,  847,  854,  846,  843,  848,  840,  845,  844,
      846,  849,  856,  848,  847,  853,  850,  857,  849,  852,
      855,  866,  854,    0,  843,  850,  845,  855,  853,  847,
      854,  858,  857,  848,  856,  859,  858,  860,  849,  856,
      861,  864,  853,  859,  857,  862,    0,  855,  865,    0,

      860,    0,  867,  866,  861,  864,  869,    0,  868,    0,
        0,  878,  859,  858,  860,    0,  865,  861,  864,  879,
      870,  862,  862,  863,  869,  865,  863,  863,  867,  867,
      868,  863,  873,  869,  871,  868,  872,  863,  875,  873,
      877,  863,  870,  878,  876,  863,  881,  870,  874,  877,
      863,  879,  880,  863,  863,  883,  871,  876,  863,  873,
      875,  871,  872,  872,  863,  875,  874,  877,  863,  881,
      885,  876,  887,  881,  880,  874,  888,  892,  890,  880,
      882,  883,  883,  889,  893,  882,  885,  882,  888,  882,
      892,  882,  889,  897,  895,  887,  890,  885,  882,  887,

      894,  891,  893,  888,  892,  890,  891,  882,  894,  896,
      889,  893,  882,  895,  882,  897,  882,  898,  882,  899,
      897,  895,  896,  900,  901,  902,  901,  894,  903,  904,
      898,  905,  900,  891,  909,  907,  896,  899,  908,  910,
      912,  904,  909,    0,  898,  915,  899,  902,  913,    0,
      900,  901,  902,  921,  917,  903,  904,  911,  905,  907,
      908,  909,  907,  914,  911,  908,  910,  912,  918,  914,
      913,  916,  915,  922,  919,  913,  917,  920,  916,  921,
      921,  917,  922,  924,  911,  923,  927,  918,  925,  928,
      914,  930,  929,  931,    0,  918,  919,  932,  916,  920,

      922,  919,  925,  924,  920,  932,  923,  934,    0,  933,
      924,  931,  923,  937,  929,  925,  938,  937,  927,  929,
      931,  928,  935,  930,  932,  933,  936,  941,  940,  935,
      942,  939,  943,  936,  934,  940,  933,  939,    0,  944,
      937,  943,  941,  942,  939,  945,  948,  947,  938,  935,
      949,    0,  945,  936,  941,  940,  947,  942,  939,  943,
      946,  951,  946,  950,  939,  944,  944,  950,  948,  957,
      953,  954,  945,  948,  947,  955,  954,  949,  953,  956,
      958,    0,  957,  951,  961,  963,    0,  946,  951,    0,
      950,  964,  958,  955,  965,    0,  957,  953,  956,  962,

        0,  959,  955,  954,  959,  960,  956,  958,  960,  961,
      965,  961,  962,  959,  964,  966,  968,  963,  964,  967,
      967,  965,  969,  966,  970,  968,  962,  960,  959,  971,
      973,  959,  960,  970,    0,  960,  971,  975,  974,  976,
      978,    0,  966,  968,  969,  975,  967,  974,  977,  969,
      979,  970,  978,  973,  976,  980,  971,  973,  981,  982,
      984,  977,  979,  980,  975,  974,  976,  978,  983,  984,
      985,  991,  986,  988,  990,  977,    0,  979,  989,  982,
      981,  987,  980,  992,  989,  981,  982,  984,  985,  996,
      983,  993,  998,  987,  988,  983,  990,  985,  986,  986,

      988,  990,  994,  991,  997,  989, 1002,    0,  987, 1000,
      998,  999, 1001,    0, 1003,  992,  996,  993,  993,  998,
      999, 1006, 1000, 1004, 1001, 1005, 1002,  997,  994,  994,
     1004,  997, 1007, 1002, 1008, 1015, 1000,    0,  999, 1001,
     1003, 1003, 1008, 1006, 1005, 1007, 1009, 1012, 1006, 1010,
     1004, 1009, 1005, 1011, 1010, 1012, 1013, 1014, 1017, 1007,
     1011, 1008, 1016, 1016, 1013, 1014, 1017, 1015, 1019, 1018,
     1025, 1020,    0,    0, 1012, 1024, 1025,    0, 1009, 1020,
     1011, 1010, 1027, 1013, 1014, 1017, 1021, 1022, 1024, 1016,
     1018, 1023, 1026, 1028, 1021, 1022, 1018, 1025, 1020, 1023,

     1019, 1029, 1024, 1030, 1026, 1031, 1032, 1033, 1027, 1027,
     1035, 1040, 1039, 1021, 1022,    0, 1029, 1028, 1023, 1026,
     1028, 1033, 1034, 1039, 1035, 1041,    0, 1031, 1029, 1032,
     1030, 1036, 1031, 1032, 1033, 1036, 1038, 1035, 1040, 1039,
     1034, 1042, 1043, 1038, 1044, 1045, 1046, 1041, 1036, 1034,
     1047, 1044, 1041, 1046, 1045, 1054, 1036, 1048, 1036, 1052,
        0, 1050, 1036, 1038, 1042, 1043, 1053, 1056, 1042, 1043,
     1050, 1044, 1045, 1046, 1058, 1036, 1061, 1064, 1059, 1064,
     1062, 1052, 1047, 1063, 1048, 1065, 1052, 1054, 1050, 1059,
     1068, 1067, 1053, 1053, 1056, 1063, 1066, 1069, 1070,    0,

     1061, 1058, 1068, 1061, 1064, 1059, 1062, 1062, 1071, 1066,
     1063, 1065, 1065, 1067, 1072, 1071, 1074, 1068, 1067, 1075,
     1076, 1070, 1073, 1066, 1069, 1070, 1077, 1073, 1076, 1079,
     1080, 1081, 1074, 1082, 1091, 1071,    0,    0,    0, 1080,
     1072, 1072, 1075, 1074, 1081, 1083, 1075, 1076, 1077, 1073,
     1086, 1087, 1090, 1077, 1084, 1085, 1079, 1080, 1081, 1082,
     1082, 1084, 1085, 1088, 1089, 1093, 1091, 1083, 1086, 1092,
     1088, 1095, 1083, 1087, 1090, 1096, 1092, 1086, 1087, 1090,
     1097, 1084, 1085, 1098, 1095, 1101, 1111, 1102, 1097, 1089,
     1088, 1089, 1100, 1103, 1104, 1100, 1092, 1093, 1095, 1106,

        0, 1107, 1096, 1104, 1098, 1105, 1103, 1097, 1109, 1108,
     1098, 1101, 1101, 1102, 1102, 1109, 1112, 1105, 1111, 1100,
     1103, 1104, 1110, 1106, 1108, 1110, 1106, 1107, 1107, 1113,
     1116, 1114, 1105, 1117, 1118, 1109, 1108, 1110, 1112, 1115,
     1120, 1115, 1119, 1112, 1122,    0, 1110, 1113, 1120, 1110,
     1123, 1119, 1110, 1114, 1116, 1121, 1113, 1116, 1114, 1124,
     1118, 1118, 1121, 1126, 1110, 1117, 1115, 1120, 1127, 1119,
     1125, 1128, 1123, 1130, 1125, 1129, 1122, 1123, 1135, 1131,
     1130, 1132, 1121, 1133, 1129, 1126, 1131, 1136, 1134, 1169,
     1126, 1124, 1135, 1128, 1132, 1127, 1133, 1125, 1128, 1139,

     1130, 1142, 1129, 1134, 1137, 1135, 1131, 1138, 1132, 1145,
     1133, 1137, 1139, 1143, 1138, 1134, 1140, 1144, 1146, 1136,
     1143, 1169, 1140, 1150, 1147,    0, 1139, 1152, 1142, 1148,
     1146, 1137, 1148, 1149, 1138, 1145, 1145, 1147, 1159, 1144,
     1143, 1150, 1149, 1140, 1144, 1146, 1151, 1152, 1154, 1153,
     1150, 1147, 1153, 1158, 1152, 1158, 1148, 1156, 1151, 1154,
     1149, 1160, 1156, 1161, 1162, 1159, 1164, 1153, 1165, 1156,
     1163, 1170, 1162, 1151, 1166, 1154, 1153, 1164, 1167, 1153,
     1158, 1167, 1166,    0, 1156, 1168, 1165, 1161, 1160, 1156,
     1161, 1162, 1163, 1164, 1174, 1165, 1167, 1163, 1170, 1171,

     1172, 1166, 1173, 1168, 1175, 1167, 1171, 1174, 1167, 1176,
     1179, 1173, 1168, 1180, 1172, 1175, 1178, 1181, 1178, 1179,
     1182, 1174,    0, 1183, 1176, 1186, 1171, 1172, 1181, 1173,
     1185, 1175, 1184, 1185, 1186, 1189, 1176, 1179, 1182, 1180,
     1180, 1191, 1190, 1178, 1181, 1183, 1184, 1182, 1185, 1187,
     1183, 1190, 1186, 1192, 1187, 1193, 1194, 1185, 1184, 1184,
     1185, 1198, 1195, 1197, 1199, 1205,    0, 1189, 1191, 1190,
     1197,    0,    0, 1184, 1200, 1204, 1203, 1193, 1199, 1205,
     1200, 1187, 1193, 1195, 1203, 1192, 1206, 1209, 1194, 1195,
     1197, 1199, 1205, 1198, 1204, 1206, 1207, 1208, 1200, 1210,

     1211, 1200, 1204, 1203, 1207, 1213, 1215, 1200, 1214, 1211,
     1210, 1208, 1216, 1206, 1217, 1214, 1218, 1220, 1222, 1209,
     1223, 1220, 1219, 1207, 1208,    0, 1210, 1211, 1225, 1215,
     1222, 1226, 1213, 1215, 1216, 1214, 1217, 1224, 1218, 1216,
     1219, 1217, 1227, 1218, 1220, 1222, 1226, 1223, 1225, 1219,
     1224, 1228, 1230, 1229, 1232, 1225, 1231, 1227, 1226, 1228,
     1229, 1233, 1234, 1232, 1224, 1236, 1235,    0, 1239, 1227,
     1240, 1231, 1238, 1242,    0,    0, 1241, 1243, 1228,    0,
     1229, 1232, 1233, 1231, 1230, 1248, 1239, 1246, 1233, 1234,
     1235, 1241, 1236, 1235, 1238, 1239, 1246, 1240, 1242, 1238,

     1242, 1243, 1244, 1241, 1243, 1245, 1247, 1248, 1249, 1244,
     1245, 1251, 1248, 1250, 1246, 1247, 1256, 1252, 1253, 1257,
     1254,    0, 1255, 1251,    0, 1261, 1249, 1254, 1250, 1244,
     1260, 1253, 1245, 1247, 1255, 1249, 1253, 1260, 1251, 1252,
     1250, 1263, 1258, 1256, 1252, 1253, 1259, 1254, 1258, 1255,
     1264, 1257, 1261, 1262, 1259, 1265, 1264, 1260, 1253, 1267,
     1262, 1266, 1268, 1270, 1272, 1271, 1274, 1275, 1263, 1258,
     1273, 1277, 1273, 1259, 1271, 1276, 1281, 1264, 1284,    0,
     1262,    0, 1265, 1284, 1266,    0, 1268,    0, 1266, 1268,
     1274, 1267, 1271, 1274, 1275, 1270, 1272, 1273, 1278, 1278,

     1278, 1276, 1276, 1277, 1279, 1278, 1285, 1280, 1281, 1282,
     1284, 1279, 1286, 1278, 1280, 1289, 1282, 1288, 1292, 1285,
        0, 1291, 1287, 1290, 1292, 1278, 1278, 1278, 1291, 1288,
     1293, 1279, 1278, 1285, 1280, 1295, 1282, 1286, 1287, 1286,
     1298, 1290, 1294, 1294, 1288, 1292, 1296, 1289, 1291, 1287,
     1290, 1297, 1299, 1296, 1302, 1304, 1297, 1293, 1303, 1305,
     1306, 1295, 1295, 1309, 1303, 1307, 1298, 1298, 1314, 1294,
     1317, 1305, 1302, 1296, 1308, 1308, 1310, 1310, 1297, 1299,
     1306, 1302, 1304, 1307, 1311, 1303, 1305, 1306, 1313, 1309,
     1309, 1315, 1307, 1316, 1318, 1311, 1319, 1320, 1315,    0,

     1314, 1308, 1317, 1310, 1321, 1322, 1323,    0, 1326,    0,
     1313, 1311, 1322, 1316, 1323, 1313, 1325, 1326, 1315, 1320,
     1316, 1324, 1321, 1319, 1320, 1328, 1318, 1327, 1327, 1329,
     1330, 1321, 1322, 1323, 1332, 1326, 1324, 1333, 1337, 1335,
     1325, 1329, 1332, 1325, 1336, 1338, 1330, 1335, 1324, 1333,
     1339, 1328, 1328, 1330, 1327, 1341, 1329, 1330, 1345, 1337,
     1346, 1332, 1342, 1338, 1333, 1337, 1335, 1336, 1342, 1340,
     1343, 1336, 1338, 1330, 1340, 1347, 1348, 1339, 1349, 1344,
     1347, 1352, 1341, 1343, 1351, 1340, 1344, 1346, 1354, 1342,
     1345, 1350, 1350, 1355, 1356, 1358, 1340, 1343, 1357, 1351,

     1357, 1340, 1360, 1354, 1361, 1363, 1344, 1347, 1348, 1356,
     1349, 1351, 1359, 1352, 1364, 1354, 1355, 1359, 1350, 1361,
     1355, 1356, 1365, 1366, 1368, 1357, 1367, 1358, 1372, 1363,
     1369, 1361, 1363, 1367, 1360,    0, 1370,    0, 1371, 1359,
     1364, 1364, 1374, 1376, 1381, 1377, 1372, 1379, 1382, 1365,
     1366, 1369, 1386, 1367,    0, 1372, 1368, 1369, 1370, 1371,
     1377, 1380, 1379, 1370, 1374, 1371, 1381, 1376, 1383, 1374,
     1376, 1381, 1377,    0, 1379, 1382, 1380, 1384, 1385, 1386,
     1387, 1389, 1393, 1388, 1390,    0, 1383, 1387, 1380, 1391,
     1389, 1392, 1390, 1394, 1397, 1383, 1401, 1407, 1396, 1384,

     1385, 1388,    0, 1397, 1384, 1385, 1394, 1387, 1389, 1396,
     1388, 1390, 1391, 1392, 1393, 1398, 1391, 1399, 1392, 1403,
     1394, 1397, 1405, 1401, 1396, 1396, 1406, 1408, 1411, 1407,
     1403, 1409, 1412, 1398, 1405, 1399, 1396, 1408, 1410, 1406,
     1414, 1415, 1398, 1416, 1399,    0, 1403,    0, 1415, 1405,
        0, 1412,    0, 1406, 1408, 1411, 1417, 1409, 1409, 1412,
     1414, 1419, 1420, 1410, 1421, 1410, 1418, 1414, 1415, 1416,
     1416, 1424, 1418, 1423, 1417, 1426, 1419, 1420, 1428, 1421,
     1422, 1422, 1426, 1417, 1424, 1423, 1427, 1429, 1419, 1420,
     1430, 1421, 1424, 1418, 1431, 1436, 1429, 1430, 1424, 1433,

     1423, 1427, 1426, 1432,    0, 1428, 1433, 1422, 1439, 1435,
     1437, 1424, 1438, 1427, 1429, 1441, 1442, 1430, 1431, 1437,
     1436, 1431, 1436, 1445, 1447, 1432, 1433, 1444, 1439, 1453,
     1432, 1435, 1448, 1441, 1438, 1439, 1435, 1437, 1449, 1438,
     1444, 1442, 1441, 1442, 1446, 1446, 1447, 1450, 1452, 1451,
     1445, 1447, 1455, 1456, 1444, 1452, 1454, 1448, 1451, 1448,
     1449, 1453, 1458, 1460, 1459, 1449, 1455, 1461,    0, 1450,
     1458, 1446, 1456, 1462, 1450, 1452, 1451, 1459, 1454, 1455,
     1456, 1463, 1464, 1454, 1465, 1462, 1467,    0, 1463, 1458,
     1460, 1459, 1466, 1461, 1461, 1468,    0, 1469, 1472, 1473,

     1462, 1467, 1470, 1471, 1472, 1470, 1465,    0, 1463, 1474,
        0, 1465, 1477, 1467, 1464, 1478, 1475, 1466,    0, 1466,
     1470, 1468, 1468, 1469, 1469, 1472, 1473, 1474, 1471, 1470,
     1471, 1475, 1470, 1480, 1477, 1482, 1474, 1478, 1481, 1477,
     1483, 1489, 1478, 1475, 1482, 1481, 1488, 1480, 1485, 1487,
     1488, 1483, 1490, 1489, 1490, 1492, 1491, 1494, 1495, 1493,
     1480, 1485, 1482,    0, 1496, 1481, 1495, 1483, 1489, 1485,
     1487, 1497, 1511, 1488, 1491, 1485, 1487, 1493, 1498, 1490,
     1500, 1504, 1492, 1491, 1494, 1495, 1493, 1496, 1485, 1499,
     1501, 1496, 1498, 1497, 1499, 1506, 1507, 1501, 1497, 1500,

     1505,    0, 1508, 1509, 1511, 1498, 1510, 1500, 1504, 1512,
     1513, 1515, 1514, 1506, 1505, 1510,    0, 1501, 1509, 1517,
        0, 1499, 1506, 1507, 1519, 1505, 1505, 1505, 1508, 1508,
     1509, 1512, 1522, 1510, 1514, 1525, 1512, 1513, 1518, 1514,
     1523, 1505, 1517, 1515, 1523, 1518, 1517, 1519, 1521, 1524,
     1521, 1519, 1505, 1528, 1522, 1526, 1529, 1525, 1527, 1522,
     1530, 1524, 1525,    0, 1526, 1518, 1531, 1523,    0, 1527,
     1532, 1532, 1530, 1533, 1537, 1521, 1524, 1537, 1535, 1529,
     1528, 1533, 1526, 1529, 1538, 1527, 1535, 1530, 1531, 1539,
     1536, 1540, 1538, 1531, 1536, 1539, 1541, 1532, 1543, 1544,

     1533, 1537, 1541, 1545, 1550, 1535, 1540, 1546, 1551, 1547,
     1543, 1538, 1549,    0, 1548, 1553, 1539, 1536, 1540, 1554,
     1552, 1546, 1547, 1541, 1556, 1543, 1544, 1545, 1548, 1553,
     1545, 1550, 1552, 1562, 1546, 1551, 1547, 1555, 1549, 1549,
     1555, 1548, 1553, 1557, 1559, 1554, 1554, 1552, 1562, 1560,
     1561, 1556, 1563, 1564, 1565, 1555, 1560, 1561, 1566, 1567,
     1562, 1568, 1565, 1569, 1555, 1557, 1559, 1555, 1567, 1570,
     1557, 1559, 1573, 1574, 1576, 1571, 1560, 1561, 1577, 1563,
     1564, 1565, 1570, 1571, 1575, 1566, 1567, 1577, 1568, 1578,
     1569, 1579, 1575, 1580, 1573, 1581, 1570, 1583, 1582, 1573,

     1574, 1576, 1571, 1585, 1584, 1577, 1582, 1587, 1580, 1583,
     1578, 1575, 1584, 1588, 1587, 1579, 1578, 1588, 1579, 1580,
     1580, 1589, 1581, 1590, 1583, 1582, 1591, 1593, 1592, 1595,
     1585, 1584, 1594, 1589, 1587, 1580, 1592, 1596, 1596, 1594,
     1588, 1597, 1598,    0, 1602, 1599, 1590, 1601, 1589, 1595,
     1590, 1604, 1605, 1591, 1593, 1592, 1595,    0, 1605, 1594,
     1598, 1603, 1601, 1603, 1596, 1604, 1602, 1597, 1597, 1598,
     1599, 1602, 1599, 1606, 1601, 1607, 1609, 1608, 1604, 1605,
     1610, 1611, 1614, 1612, 1617,    0, 1615,    0, 1603, 1608,
     1620, 1617, 1613, 1621, 1609, 1606,    0, 1607, 1610, 1611,

     1606, 1612, 1607, 1609, 1608, 1613, 1619, 1610, 1611, 1615,
     1612, 1617, 1622, 1615, 1614, 1625, 1620, 1620, 1626, 1613,
     1622, 1623, 1628, 1623, 1619, 1621, 1631, 1625, 1623, 1629,
     1633, 1630, 1642, 1619,    0, 1637, 1626, 1628, 1622, 1622,
     1629, 1631, 1625, 1630, 1634, 1626, 1636, 1622, 1623, 1628,
     1623, 1639, 1635, 1631, 1633, 1641, 1629, 1633, 1630, 1635,
     1640, 1636, 1637, 1643, 1642, 1644, 1634, 1645,    0,    0,
     1646, 1634, 1648, 1636, 1647, 1649, 1653, 1641, 1639, 1635,
     1645, 1650, 1641, 1649, 1640, 1648, 1652, 1640, 1654, 1647,
     1655, 1656, 1644, 1658, 1645, 1643, 1646, 1646, 1656, 1648,

     1653, 1647, 1649, 1653, 1657, 1659, 1658, 1650, 1650, 1652,
     1662, 1657, 1655, 1652, 1660, 1654, 1661, 1655, 1656, 1663,
     1658, 1660, 1667, 1666, 1664, 1668, 1669, 1670, 1659, 1674,
        0, 1657, 1659, 1664, 1666, 1673, 1675, 1680, 1661, 1677,
     1663, 1660, 1662, 1661, 1667, 1669, 1663, 1679, 1673, 1667,
     1666, 1664, 1670, 1669, 1670, 1674, 1674, 1668, 1676, 1676,
     1675, 1681, 1673, 1675, 1682, 1677, 1677, 1686, 1683, 1680,
     1679, 1688,    0, 1693, 1679, 1691, 1681, 1692, 1695, 1697,
     1688, 1698, 1699, 1708,    0, 1676, 1683, 1700, 1681,    0,
     1701, 1682, 1700, 1699, 1686, 1683, 1705, 1691, 1688, 1692,

     1693, 1704, 1691, 1707, 1692, 1695, 1712, 1698, 1698, 1699,
     1703, 1697, 1701, 1709, 1700, 1708, 1704, 1701, 1703, 1710,
     1715, 1707, 1709, 1705, 1714,    0, 1716, 1717, 1704, 1718,
     1707, 1710, 1719, 1712, 1721, 1720, 1722, 1703, 1723,    0,
     1709, 1726, 1718, 1724,    0, 1719, 1710, 1715, 1716, 1729,
     1714, 1714, 1717, 1716, 1717, 1725, 1718, 1720, 1724, 1719,
     1727, 1721, 1720, 1722, 1725, 1723, 1728, 1726, 1726, 1729,
     1724, 1730, 1731, 1732, 1734, 1727, 1729, 1733, 1735, 1731,
     1738, 1728, 1725, 1737, 1733, 1741, 1730, 1727, 1736, 1736,
     1737, 1742, 1744, 1728, 1738, 1732, 1735, 1744, 1730, 1731,

     1732, 1734, 1746, 1739, 1733, 1735, 1739, 1738, 1740, 1742,
     1737, 1741, 1741, 1743, 1747, 1736, 1745, 1748, 1742, 1744,
     1745, 1740, 1743, 1749, 1750, 1751, 1746, 1747, 1752, 1746,
     1739, 1755, 1757, 1756,    0, 1740,    0,    0, 1758, 1748,
     1743, 1747, 1756, 1745, 1748, 1749, 1758, 1780, 1757, 1760,
     1749, 1750, 1751, 1761, 1752, 1752, 1760, 1755, 1755, 1757,
     1756, 1762, 1761, 1763, 1764, 1758, 1762, 1765, 1766, 1769,
     1763, 1767, 1771, 1773, 1765, 1770, 1760, 1766, 1774, 1780,
     1761, 1771, 1764, 1772, 1778, 1773, 1779, 1774, 1762,    0,
     1763, 1764, 1775, 1770, 1765, 1766, 1769, 1767, 1767, 1771,

     1773, 1775, 1770, 1772, 1776, 1774, 1777, 1781, 1782, 1783,
     1772, 1778, 1788, 1779, 1777, 1776, 1781, 1783, 1784, 1775,
     1782, 1785, 1786, 1789, 1787,    0, 1791, 1790, 1785, 1786,
     1793, 1776,    0, 1777, 1781, 1782, 1783, 1788, 1793, 1788,
     1784, 1795, 1801, 1802, 1805, 1784, 1787, 1810, 1785, 1786,
     1789, 1787, 1790, 1791, 1790, 1796, 1797, 1793, 1800, 1795,
     1803, 1806, 1796, 1808, 1797, 1800, 1801, 1804, 1795, 1801,
     1802, 1805, 1803, 1809, 1810, 1808, 1804, 1811, 1813, 1815,
     1817, 1816, 1796, 1797, 1806, 1800, 1819, 1803, 1806, 1816,
     1808, 1811, 1818, 1824, 1804, 1823, 1809, 1825, 1824, 1826,

     1809, 1827, 1828, 1829, 1811, 1813, 1815, 1817, 1816, 1838,
     1831, 1825, 1830, 1819, 1818, 1828, 1832, 1826, 1831, 1818,
     1824, 1823, 1823, 1827, 1825, 1829, 1826, 1835, 1827, 1828,
     1829, 1830, 1834, 1836, 1837, 1832, 1838, 1831, 1839, 1830,
     1842, 1841, 1840, 1832, 1834,    0, 1837, 1844, 1843, 1835,
     1847,    0, 1845, 1848, 1835, 1836, 1846, 1851, 1852, 1834,
     1836, 1837, 1840, 1841, 1845, 1839, 1854, 1855, 1841, 1840,
     1843, 1851, 1842, 1844, 1844, 1843, 1853, 1847, 1846, 1845,
     1848, 1853, 1852, 1846, 1851, 1852, 1856, 1857, 1854, 1855,
     1858,    0, 1860, 1854, 1855, 1859, 1861, 1865, 1862,    0,

        0, 1863, 1867,    0, 1860, 1866,    0, 1871, 1853,    0,
     1857, 1867, 1858, 1859, 1857, 1861, 1863, 1858, 1856, 1860,
     1862, 1865, 1859, 1861, 1865, 1862, 1868, 1866, 1863, 1867,
     1869, 1870, 1866, 1871, 1871, 1875, 1872, 1876, 1877, 1878,
     1868, 1880, 1879, 1875, 1876, 1882, 1877,    0, 1869, 1870,
     1879, 1888, 1883, 1868, 1872, 1881, 1890, 1869, 1870, 1880,
     1883, 1885, 1875, 1872, 1876, 1877, 1878, 1881, 1880, 1879,
     1887, 1889, 1882, 1885, 1888, 1891,    0, 1887, 1888, 1883,
     1894, 1895, 1881, 1890, 1892, 1904, 1897, 1898, 1885, 1899,
        0, 1901, 1906, 1910, 1891, 1895, 1912, 1887, 1894, 1906,

     1898, 1899, 1891, 1889, 1909, 1911, 1892, 1894, 1895, 1897,
     1913, 1892, 1904, 1897, 1898, 1908, 1899, 1901, 1901, 1906,
     1910, 1914, 1908, 1912, 1916, 1917, 1915, 1918, 1919, 1911,
     1909, 1909, 1911, 1927, 1917, 1920, 1913, 1913, 1915, 1924,
     1918, 1921, 1908, 1925, 1924, 1926, 1929, 1925, 1914, 1930,
        0, 1916, 1917, 1915, 1918, 1928, 1933, 1928, 1934, 1937,
     1919, 1937, 1920, 1935, 1921, 1927, 1926, 1938, 1921, 1929,
     1925, 1924, 1926, 1929, 1939, 1939, 1930, 1934, 1933, 1941,
     1943, 1940, 1928, 1933, 1939, 1934, 1937, 1935, 1941, 1942,
     1935, 1938, 1944, 1943, 1938, 1946, 1942, 1945,    0, 1948,

        0, 1939, 1939, 1940, 1947, 1945, 1941, 1943, 1940, 1949,
        0, 1950, 1947,    0, 1946, 1955, 1942, 1951, 1952, 1944,
     1953, 1959, 1946, 1963, 1945, 1948, 1948, 1953, 1951, 1954,
     1954, 1947, 1956, 1955, 1957, 1949, 1949, 1950, 1950, 1956,
     1952, 1957, 1955, 1960, 1951, 1952, 1961, 1953, 1959, 1964,
     1963, 1965, 1966, 1967, 1969, 1961, 1954, 1970,    0, 1956,
     1971, 1957, 1978, 1969, 1972, 1973,    0, 1960, 2001, 1964,
     1960, 1967, 1975, 1961, 1966, 1976, 1964, 1973, 1965, 1966,
     1967, 1969, 1972, 1971, 1970, 1974, 1975, 1971, 1979, 1978,
     1974, 1972, 1973, 1976, 1980, 1982, 1984, 1982, 1986, 1975,

     2001, 1990, 1976, 1989, 1986, 1988, 1979,    0, 1995, 1980,
     1993, 1984, 1992, 1993,    0, 1979, 2004, 1974, 1998, 1990,
     1996, 1980, 1982, 1984, 1997, 1986, 1998, 1988, 1990, 1989,
     1989, 1997, 1988, 1999, 1992, 1995, 1993, 1993, 1996, 1992,
     1993, 2002, 2003, 2004, 2005, 1998, 2006, 1996, 2007, 2008,
     2009, 1997, 2006, 2005, 2010, 1999, 2010, 2011, 2008, 2013,
     1999, 2015, 2014, 2002, 2003, 2016, 2019, 2013, 2002, 2003,
     2007, 2005, 2017, 2006, 2014, 2007, 2008, 2019, 2018, 2016,
     2022, 2010, 2009, 2020, 2011, 2021, 2013, 2024, 2015, 2014,
     2027, 2020, 2016, 2019, 2028, 2017, 2018, 2023, 2023, 2017,

     2025, 2032, 2022, 2030, 2021, 2018, 2036, 2022, 2025, 2030,
     2020, 2033, 2021, 2034, 2024, 2038, 2037, 2027, 2039, 2038,
     2041, 2028, 2033, 2037, 2023, 2045, 2039, 2025, 2032, 2044,
     2030, 2042, 2046, 2036, 2044, 2034, 2047, 2052, 2033, 2058,
     2034, 2048, 2038, 2037, 2042, 2039, 2041, 2041, 2048, 2049,
     2050, 2053, 2045, 2051, 2047, 2054, 2044, 2049, 2042, 2046,
     2051, 2059, 2060, 2047, 2052, 2050, 2057, 2061, 2048, 2056,
     2062, 2058, 2067, 2057, 2069, 2053, 2049, 2050, 2053, 2062,
     2051, 2054, 2054, 2064, 2056, 2065, 2060, 2066, 2059, 2060,
     2068, 2068, 2071, 2057, 2072, 2066, 2056, 2062, 2074, 2061,

     2068, 2069, 2072, 2076, 2067, 2064, 2075, 2065, 2078, 2077,
     2064, 2079, 2065, 2080, 2066, 2081, 2076, 2068, 2068, 2071,
     2083, 2072, 2088, 2091, 2086, 2074, 2089, 2088, 2075, 2095,
     2076, 2077, 2086, 2075,    0, 2078, 2077, 2081, 2079, 2093,
     2080, 2092, 2081, 2094, 2099, 2096, 2093, 2083, 2100, 2088,
     2091, 2086, 2089, 2089, 2092, 2101, 2095, 2099, 2102, 2103,
        0, 2094, 2105, 2108,    0, 2107, 2093, 2096, 2092, 2105,
     2094, 2099, 2096, 2109, 2101, 2115, 2106, 2111, 2108,    0,
     2100, 2103, 2101, 2106, 2115, 2102, 2103, 2107, 2113, 2105,
     2108, 2112, 2107, 2124, 2109, 2113, 2111, 2116, 2114, 2112,

     2109, 2119, 2115, 2106, 2111, 2114, 2117, 2117, 2116, 2125,
        0, 2118, 2122, 2130, 2126, 2113, 2117, 2118, 2112, 2122,
     2124, 2132, 2134, 2119, 2116, 2114, 2136, 2140, 2119, 2138,
     2141, 2143, 2142, 2117, 2117, 2137, 2125, 2126, 2118, 2122,
     2130, 2126, 2138, 2143, 2137, 2134, 2146, 2148, 2132, 2134,
     2141, 2145, 2149, 2136, 2140, 2142, 2138, 2141, 2143, 2142,
     2145, 2147, 2137, 2150, 2146, 2152, 2153, 2151, 2152, 2154,
     2155, 2157, 2155, 2146, 2148, 2150,    0, 2157, 2145, 2149,
     2158, 2159, 2161, 2152, 2156, 2164, 2167, 2147, 2147, 2151,
     2150, 2160, 2152, 2153, 2151, 2152, 2156, 2155, 2157, 2160,

     2168, 2154, 2158, 2159, 2169, 2171, 2172, 2158, 2159, 2161,
     2174, 2156, 2164, 2167, 2175, 2176,    0, 2177, 2160, 2179,
     2182, 2183, 2178, 2171, 2184, 2184, 2175, 2168, 2185, 2182,
     2176, 2169, 2171, 2172, 2178, 2187, 2188, 2174, 2190, 2189,
        0, 2175, 2176, 2177, 2177, 2183, 2179, 2182, 2183, 2178,
     2191, 2184, 2189, 2193, 2185, 2185, 2203, 2199, 2191, 2187,
     2190, 2192, 2187, 2202, 2193, 2190, 2189, 2202, 2188, 2204,
     2192, 2207, 2205, 2208,    0, 2207, 2204, 2191, 2210, 2203,
     2193, 2199, 2209, 2203, 2199, 2205, 2211, 2212, 2192, 2208,
     2202,    0, 2220, 2216, 2213, 2216, 2204, 2214, 2207, 2205,

     2208, 2212, 2213, 2210, 2209, 2210, 2214, 2215, 2218, 2209,
     2217, 2222, 2211, 2211, 2212, 2218, 2219, 2224, 2215, 2220,
     2216, 2213, 2217, 2221, 2214, 2223, 2225,    0, 2226, 2219,
     2227, 2230, 2232, 2230, 2215, 2218, 2226, 2217, 2222, 2228,
     2229, 2221,    0, 2219, 2224, 2234, 2242, 2231, 2245, 2246,
     2221, 2223, 2223, 2225, 2227, 2226, 2233, 2227, 2230, 2231,
     2235, 2228, 2229, 2237, 2232, 2243, 2228, 2229, 2235, 2233,
     2239, 2253, 2234, 2242, 2231, 2237, 2247, 2244, 2249, 2239,
     2245, 2246, 2248, 2233, 2243, 2244, 2249, 2235, 2251, 2247,
     2237, 2255, 2243, 2252, 2253, 2251, 2248, 2239, 2253, 2256,

     2257, 2260, 2258, 2247, 2244, 2249, 2252, 2256, 2261, 2248,
     2264, 2259, 2262, 2255, 2257, 2251, 2258, 2263, 2255, 2259,
     2252, 2262, 2265, 2260, 2266, 2263, 2256, 2257, 2260, 2258,
     2261, 2267, 2270, 2268, 2269, 2261, 2271, 2264, 2259, 2262,
     2270, 2279, 2272, 2273, 2263, 2276,    0,    0,    0, 2275,
     2266, 2266, 2282, 2267, 2265, 2268, 2269, 2275, 2267, 2270,
     2268, 2269, 2285, 2277, 2272, 2276, 2278, 2280, 2271, 2272,
     2273, 2277, 2276, 2279, 2278, 2280, 2275, 2281, 2282, 2282,
     2284,    0, 2289, 2284, 2285, 2288, 2291, 2286, 2287, 2285,
     2277, 2281,    0, 2278, 2280, 2286, 2287, 2290, 2284, 2288,

     2291, 2292, 2292, 2293, 2281, 2295, 2298, 2284, 2289, 2289,
     2284, 2296, 2288, 2291, 2286, 2287, 2300, 2294, 2297, 2290,
     2301, 2302, 2303,    0, 2290, 2294, 2298, 2299, 2292, 2293,
     2293, 2295, 2295, 2298, 2310, 2299, 2304, 2296, 2296, 2305,
     2297,    0, 2301, 2300, 2294, 2297, 2302, 2301, 2302, 2303,
     2306, 2307, 2308, 2313, 2299, 2317, 2304, 2311, 2306, 2305,
     2308, 2310, 2315, 2304, 2314, 2311, 2305, 2319, 2316,    0,
     2315, 2322, 2323, 2307, 2326, 2313, 2316, 2306, 2307, 2308,
     2313, 2317, 2317, 2324, 2311, 2320, 2314, 2327, 2321, 2315,
     2336, 2314, 2337, 2320, 2319, 2316, 2321, 2322, 2322, 2323,

     2328, 2326, 2330, 2324, 2333, 2334,    0,    0, 2335,    0,
     2324,    0, 2320, 2334, 2327, 2321, 2335, 2336,    0, 2337,
     2328,    0,    0,    0, 2330,    0, 2333, 2328,    0, 2330,
        0, 2333, 2334,    0,    0, 2335, 2341, 2341, 2341, 2341,
     2341, 2341, 2341, 2342, 2342, 2342, 2342, 2342, 2342, 2342,
     2343, 2343, 2343, 2343, 2343, 2343, 2343, 2344, 2344, 2344,
     2344, 2344, 2344, 2344, 2345, 2345, 2345, 2345, 2345, 2345,
     2345, 2347, 2347,    0, 2347, 2347, 2347, 2347, 2348, 2348,
        0,    0,    0, 2348, 2348, 2349, 2349,    0,    0, 2349,
        0, 2349, 2350,    0,    0,    0,    0,    0, 2350, 2351,

     2351,    0,    0,    0, 2351, 2351, 2352,    0,    0,    0,
        0,    0, 2352, 2353, 2353,    0, 2353, 2353, 2353, 2353,
     2354, 2354,    0, 2354, 2354, 2354, 2354, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
     2340, 2340, 2340, 2340

    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

extern int yy_flex_debug;
int yy_flex_debug = 0;

/* The intent behind this definition is that it'll catch
 * any uses of REJECT which flex missed.
 */
#define REJECT reject_used_but_not_detected
static int yy_more_flag = 0;
static int yy_more_len = 0;
#define yymore() ((yy_more_flag) = 1)
#define YY_MORE_ADJ (yy_more_len)
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "util/configlexer.lex"
#line 2 "util/configlexer.lex"
/*
 * configlexer.lex - lexical analyzer for unbound config file
 *
 * Copyright (c) 2001-2006, NLnet Labs. All rights reserved
 *
 * See LICENSE for the license.
 *
 */

/* because flex keeps having sign-unsigned compare problems that are unfixed*/
#if defined(__clang__)||(defined(__GNUC__)&&((__GNUC__ >4)||(defined(__GNUC_MINOR__)&&(__GNUC__ ==4)&&(__GNUC_MINOR__ >=2))))
#pragma GCC diagnostic ignored "-Wsign-compare"
#endif

#include <ctype.h>
#include <string.h>
#include <strings.h>
#ifdef HAVE_GLOB_H
# include <glob.h>
#endif

#include "util/config_file.h"
#include "util/configparser.h"
void ub_c_error(const char *message);

#if 0
#define LEXOUT(s)  printf s /* used ONLY when debugging */
#else
#define LEXOUT(s)
#endif

/** avoid warning in about fwrite return value */
#define ECHO ub_c_error_msg("syntax error at text: %s", yytext)

/** A parser variable, this is a statement in the config file which is
 * of the form variable: value1 value2 ...  nargs is the number of values. */
#define YDVAR(nargs, var) \
	num_args=(nargs); \
	LEXOUT(("v(%s%d) ", yytext, num_args)); \
	if(num_args > 0) { BEGIN(val); } \
	return (var);

struct inc_state {
	char* filename;
	int line;
	YY_BUFFER_STATE buffer;
	struct inc_state* next;
};
static struct inc_state* config_include_stack = NULL;
static int inc_depth = 0;
static int inc_prev = 0;
static int num_args = 0;

void init_cfg_parse(void)
{
	config_include_stack = NULL;
	inc_depth = 0;
	inc_prev = 0;
	num_args = 0;
}

static void config_start_include(const char* filename)
{
	FILE *input;
	struct inc_state* s;
	char* nm;
	if(inc_depth++ > 100000) {
		ub_c_error_msg("too many include files");
		return;
	}
	if(*filename == '\0') {
		ub_c_error_msg("empty include file name");
		return;
	}
	s = (struct inc_state*)malloc(sizeof(*s));
	if(!s) {
		ub_c_error_msg("include %s: malloc failure", filename);
		return;
	}
	if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot,
		strlen(cfg_parser->chroot)) == 0) {
		filename += strlen(cfg_parser->chroot);
	}
	nm = strdup(filename);
	if(!nm) {
		ub_c_error_msg("include %s: strdup failure", filename);
		free(s);
		return;
	}
	input = fopen(filename, "r");
	if(!input) {
		ub_c_error_msg("cannot open include file '%s': %s",
			filename, strerror(errno));
		free(s);
		free(nm);
		return;
	}
	LEXOUT(("switch_to_include_file(%s)\n", filename));
	s->filename = cfg_parser->filename;
	s->line = cfg_parser->line;
	s->buffer = YY_CURRENT_BUFFER;
	s->next = config_include_stack;
	config_include_stack = s;
	cfg_parser->filename = nm;
	cfg_parser->line = 1;
	yy_switch_to_buffer(yy_create_buffer(input,YY_BUF_SIZE));
}

static void config_start_include_glob(const char* filename)
{

	/* check for wildcards */
#ifdef HAVE_GLOB
	glob_t g;
	size_t i;
	int r, flags;
	if(!(!strchr(filename, '*') && !strchr(filename, '?') && !strchr(filename, '[') &&
		!strchr(filename, '{') && !strchr(filename, '~'))) {
		flags = 0
#ifdef GLOB_ERR
			| GLOB_ERR
#endif
#ifdef GLOB_NOSORT
			| GLOB_NOSORT
#endif
#ifdef GLOB_BRACE
			| GLOB_BRACE
#endif
#ifdef GLOB_TILDE
			| GLOB_TILDE
#endif
		;
		memset(&g, 0, sizeof(g));
		if(cfg_parser->chroot && strncmp(filename, cfg_parser->chroot,
			strlen(cfg_parser->chroot)) == 0) {
			filename += strlen(cfg_parser->chroot);
		}
		r = glob(filename, flags, NULL, &g);
		if(r) {
			/* some error */
			globfree(&g);
			if(r == GLOB_NOMATCH)
				return; /* no matches for pattern */
			config_start_include(filename); /* let original deal with it */
			return;
		}
		/* process files found, if any */
		for(i=0; i<(size_t)g.gl_pathc; i++) {
			config_start_include(g.gl_pathv[i]);
		}
		globfree(&g);
		return;
	}
#endif /* HAVE_GLOB */

	config_start_include(filename);
}

static void config_end_include(void)
{
	struct inc_state* s = config_include_stack;
	--inc_depth;
	if(!s) return;
	free(cfg_parser->filename);
	cfg_parser->filename = s->filename;
	cfg_parser->line = s->line;
	yy_delete_buffer(YY_CURRENT_BUFFER);
	yy_switch_to_buffer(s->buffer);
	config_include_stack = s->next;
	free(s);
}

#ifndef yy_set_bol /* compat definition, for flex 2.4.6 */
#define yy_set_bol(at_bol) \
        { \
	        if ( ! yy_current_buffer ) \
	                yy_current_buffer = yy_create_buffer(yyin,YY_BUF_SIZE ); \
	        yy_current_buffer->yy_ch_buf[0] = ((at_bol)?'\n':' '); \
        }
#endif

#define YY_NO_INPUT 1
#line 187 "util/configlexer.lex"
#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT 1
#endif
#ifndef YY_NO_INPUT
#define YY_NO_INPUT 1
#endif

#line 2916 "<stdout>"

#define INITIAL 0
#define quotedstring 1
#define singlequotedstr 2
#define include 3
#define include_quoted 4
#define val 5

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

#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif

static int yy_init_globals (void );

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

int yylex_destroy (void );

int yyget_debug (void );

void yyset_debug (int debug_flag  );

YY_EXTRA_TYPE yyget_extra (void );

void yyset_extra (YY_EXTRA_TYPE user_defined  );

FILE *yyget_in (void );

void yyset_in  (FILE * _in_str  );

FILE *yyget_out (void );

void yyset_out  (FILE * _out_str  );

			int yyget_leng (void );

char *yyget_text (void );

int yyget_lineno (void );

void yyset_lineno (int _line_number  );

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

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

#ifndef YY_NO_UNPUT
    
#endif

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

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

#ifndef YY_NO_INPUT

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

#endif

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k */
#define YY_READ_BUF_SIZE 16384
#else
#define YY_READ_BUF_SIZE 8192
#endif /* __ia64__ */
#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 do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
#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_LVALUE->yy_is_interactive ) \
		{ \
		int c = '*'; \
		int 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 \
		{ \
		errno=0; \
		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
			{ \
			if( errno != EINTR) \
				{ \
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
				break; \
				} \
			errno=0; \
			clearerr(yyin); \
			} \
		}\
\

#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

/* end tables serialization structures and prototypes */

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL_IS_OURS 1

extern int yylex (void);

#define YY_DECL int yylex (void)
#endif /* !YY_DECL */

/* 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 /*LINTED*/break;
#endif

#define YY_RULE_SETUP \
	YY_USER_ACTION

/** The main scanner function which does all the work.
 */
YY_DECL
{
	yy_state_type yy_current_state;
	char *yy_cp, *yy_bp;
	int yy_act;
    
	if ( !(yy_init) )
		{
		(yy_init) = 1;

#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 ) {
			yyensure_buffer_stack ();
			YY_CURRENT_BUFFER_LVALUE =
				yy_create_buffer(yyin,YY_BUF_SIZE );
		}

		yy_load_buffer_state( );
		}

	{
#line 207 "util/configlexer.lex"

#line 3139 "<stdout>"

	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
		{
		(yy_more_len) = 0;
		if ( (yy_more_flag) )
			{
			(yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
			(yy_more_flag) = 0;
			}
		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_match:
		do
			{
			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
			if ( yy_accept[yy_current_state] )
				{
				(yy_last_accepting_state) = yy_current_state;
				(yy_last_accepting_cpos) = 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 >= 2341 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
			++yy_cp;
			}
		while ( yy_base[yy_current_state] != 6728 );

yy_find_action:
		yy_act = yy_accept[yy_current_state];
		if ( yy_act == 0 )
			{ /* have to back up */
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			yy_act = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;

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

		switch ( yy_act )
	{ /* beginning of action switch */
			case 0: /* must back up */
			/* undo the effects of YY_DO_BEFORE_ACTION */
			*yy_cp = (yy_hold_char);
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			goto yy_find_action;

case 1:
YY_RULE_SETUP
#line 208 "util/configlexer.lex"
{ 
	LEXOUT(("SP ")); /* ignore */ }
	YY_BREAK
case 2:
YY_RULE_SETUP
#line 210 "util/configlexer.lex"
{ 
	/* note that flex makes the longest match and '.' is any but not nl */
	LEXOUT(("comment(%s) ", yytext)); /* ignore */ }
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 213 "util/configlexer.lex"
{ YDVAR(0, VAR_SERVER) }
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 214 "util/configlexer.lex"
{ YDVAR(1, VAR_QNAME_MINIMISATION) }
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 215 "util/configlexer.lex"
{ YDVAR(1, VAR_QNAME_MINIMISATION_STRICT) }
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 216 "util/configlexer.lex"
{ YDVAR(1, VAR_NUM_THREADS) }
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 217 "util/configlexer.lex"
{ YDVAR(1, VAR_VERBOSITY) }
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 218 "util/configlexer.lex"
{ YDVAR(1, VAR_PORT) }
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 219 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_RANGE) }
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 220 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_PORT_PERMIT) }
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 221 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_PORT_AVOID) }
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 222 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_NUM_TCP) }
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 223 "util/configlexer.lex"
{ YDVAR(1, VAR_INCOMING_NUM_TCP) }
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 224 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_IP4) }
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 225 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_IP6) }
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 226 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFER_IP6) }
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 227 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_UDP) }
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 228 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_TCP) }
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 229 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_UPSTREAM) }
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 230 "util/configlexer.lex"
{ YDVAR(1, VAR_TCP_MSS) }
	YY_BREAK
case 21:
YY_RULE_SETUP
#line 231 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_TCP_MSS) }
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 232 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_UPSTREAM) }
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 233 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_SERVICE_KEY) }
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 234 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_SERVICE_PEM) }
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 235 "util/configlexer.lex"
{ YDVAR(1, VAR_SSL_PORT) }
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 236 "util/configlexer.lex"
{ YDVAR(1, VAR_USE_SYSTEMD) }
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 237 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_DAEMONIZE) }
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 238 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE) }
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 239 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE) }
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 240 "util/configlexer.lex"
{ YDVAR(1, VAR_OUTGOING_INTERFACE) }
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 241 "util/configlexer.lex"
{ YDVAR(1, VAR_INTERFACE_AUTOMATIC) }
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 242 "util/configlexer.lex"
{ YDVAR(1, VAR_SO_RCVBUF) }
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 243 "util/configlexer.lex"
{ YDVAR(1, VAR_SO_SNDBUF) }
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 244 "util/configlexer.lex"
{ YDVAR(1, VAR_SO_REUSEPORT) }
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 245 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_TRANSPARENT) }
	YY_BREAK
case 36:
YY_RULE_SETUP
#line 246 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_FREEBIND) }
	YY_BREAK
case 37:
YY_RULE_SETUP
#line 247 "util/configlexer.lex"
{ YDVAR(1, VAR_CHROOT) }
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 248 "util/configlexer.lex"
{ YDVAR(1, VAR_USERNAME) }
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 249 "util/configlexer.lex"
{ YDVAR(1, VAR_DIRECTORY) }
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 250 "util/configlexer.lex"
{ YDVAR(1, VAR_LOGFILE) }
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 251 "util/configlexer.lex"
{ YDVAR(1, VAR_PIDFILE) }
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 252 "util/configlexer.lex"
{ YDVAR(1, VAR_ROOT_HINTS) }
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 253 "util/configlexer.lex"
{ YDVAR(1, VAR_EDNS_BUFFER_SIZE) }
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 254 "util/configlexer.lex"
{ YDVAR(1, VAR_MSG_BUFFER_SIZE) }
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 255 "util/configlexer.lex"
{ YDVAR(1, VAR_MSG_CACHE_SIZE) }
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 256 "util/configlexer.lex"
{ YDVAR(1, VAR_MSG_CACHE_SLABS) }
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 257 "util/configlexer.lex"
{ YDVAR(1, VAR_RRSET_CACHE_SIZE) }
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 258 "util/configlexer.lex"
{ YDVAR(1, VAR_RRSET_CACHE_SLABS) }
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 259 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MAX_TTL) }
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 260 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MAX_NEGATIVE_TTL) }
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 261 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHE_MIN_TTL) }
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 262 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_HOST_TTL) }
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 263 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_LAME_TTL) }
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 264 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_SLABS) }
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 265 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_NUMHOSTS) }
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 266 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_LAME_SIZE) }
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 267 "util/configlexer.lex"
{ YDVAR(1, VAR_INFRA_CACHE_MIN_RTT) }
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 268 "util/configlexer.lex"
{ YDVAR(1, VAR_NUM_QUERIES_PER_THREAD) }
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 269 "util/configlexer.lex"
{ YDVAR(1, VAR_JOSTLE_TIMEOUT) }
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 270 "util/configlexer.lex"
{ YDVAR(1, VAR_DELAY_CLOSE) }
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 271 "util/configlexer.lex"
{ YDVAR(1, VAR_TARGET_FETCH_POLICY) }
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 272 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_SHORT_BUFSIZE) }
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 273 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_LARGE_QUERIES) }
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 274 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_GLUE) }
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 275 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_DNSSEC_STRIPPED) }
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 276 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_BELOW_NXDOMAIN) }
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 277 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_REFERRAL_PATH) }
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 278 "util/configlexer.lex"
{ YDVAR(1, VAR_HARDEN_ALGO_DOWNGRADE) }
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 279 "util/configlexer.lex"
{ YDVAR(1, VAR_USE_CAPS_FOR_ID) }
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 280 "util/configlexer.lex"
{ YDVAR(1, VAR_CAPS_WHITELIST) }
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 281 "util/configlexer.lex"
{ YDVAR(1, VAR_UNWANTED_REPLY_THRESHOLD) }
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 282 "util/configlexer.lex"
{ YDVAR(1, VAR_PRIVATE_ADDRESS) }
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 283 "util/configlexer.lex"
{ YDVAR(1, VAR_PRIVATE_DOMAIN) }
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 284 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFETCH_KEY) }
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 285 "util/configlexer.lex"
{ YDVAR(1, VAR_PREFETCH) }
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 286 "util/configlexer.lex"
{ YDVAR(0, VAR_STUB_ZONE) }
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 287 "util/configlexer.lex"
{ YDVAR(1, VAR_NAME) }
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 288 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_ADDR) }
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 289 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_HOST) }
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 290 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_PRIME) }
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 291 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_FIRST) }
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 292 "util/configlexer.lex"
{ YDVAR(1, VAR_STUB_SSL_UPSTREAM) }
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 293 "util/configlexer.lex"
{ YDVAR(0, VAR_FORWARD_ZONE) }
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 294 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_ADDR) }
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 295 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_HOST) }
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 296 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_FIRST) }
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 297 "util/configlexer.lex"
{ YDVAR(1, VAR_FORWARD_SSL_UPSTREAM) }
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 298 "util/configlexer.lex"
{ YDVAR(0, VAR_VIEW) }
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 299 "util/configlexer.lex"
{ YDVAR(1, VAR_VIEW_FIRST) }
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 300 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_NOT_QUERY_ADDRESS) }
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 301 "util/configlexer.lex"
{ YDVAR(1, VAR_DO_NOT_QUERY_LOCALHOST) }
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 302 "util/configlexer.lex"
{ YDVAR(2, VAR_ACCESS_CONTROL) }
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 303 "util/configlexer.lex"
{ YDVAR(1, VAR_SEND_CLIENT_SUBNET) }
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 304 "util/configlexer.lex"
{ YDVAR(1, VAR_CLIENT_SUBNET_ZONE) }
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 305 "util/configlexer.lex"
{ YDVAR(1, VAR_CLIENT_SUBNET_ALWAYS_FORWARD) }
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 306 "util/configlexer.lex"
{ YDVAR(1, VAR_CLIENT_SUBNET_OPCODE) }
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 307 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV4) }
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 308 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_CLIENT_SUBNET_IPV6) }
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 309 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_IDENTITY) }
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 310 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_VERSION) }
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 311 "util/configlexer.lex"
{ YDVAR(1, VAR_HIDE_TRUSTANCHOR) }
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 312 "util/configlexer.lex"
{ YDVAR(1, VAR_IDENTITY) }
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 313 "util/configlexer.lex"
{ YDVAR(1, VAR_VERSION) }
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 314 "util/configlexer.lex"
{ YDVAR(1, VAR_MODULE_CONF) }
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 315 "util/configlexer.lex"
{ YDVAR(1, VAR_DLV_ANCHOR) }
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 316 "util/configlexer.lex"
{ YDVAR(1, VAR_DLV_ANCHOR_FILE) }
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 317 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUST_ANCHOR_FILE) }
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 318 "util/configlexer.lex"
{ YDVAR(1, VAR_AUTO_TRUST_ANCHOR_FILE) }
	YY_BREAK
case 109:
YY_RULE_SETUP
#line 319 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUSTED_KEYS_FILE) }
	YY_BREAK
case 110:
YY_RULE_SETUP
#line 320 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUST_ANCHOR) }
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 321 "util/configlexer.lex"
{ YDVAR(1, VAR_TRUST_ANCHOR_SIGNALING) }
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 322 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_OVERRIDE_DATE) }
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 323 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_SIG_SKEW_MIN) }
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 324 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_SIG_SKEW_MAX) }
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 325 "util/configlexer.lex"
{ YDVAR(1, VAR_BOGUS_TTL) }
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 326 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_CLEAN_ADDITIONAL) }
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 327 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_PERMISSIVE_MODE) }
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 328 "util/configlexer.lex"
{ YDVAR(1, VAR_IGNORE_CD_FLAG) }
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 329 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVE_EXPIRED) }
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 330 "util/configlexer.lex"
{ YDVAR(1, VAR_FAKE_DSA) }
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 331 "util/configlexer.lex"
{ YDVAR(1, VAR_FAKE_SHA1) }
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 332 "util/configlexer.lex"
{ YDVAR(1, VAR_VAL_LOG_LEVEL) }
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 333 "util/configlexer.lex"
{ YDVAR(1, VAR_KEY_CACHE_SIZE) }
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 334 "util/configlexer.lex"
{ YDVAR(1, VAR_KEY_CACHE_SLABS) }
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 335 "util/configlexer.lex"
{ YDVAR(1, VAR_NEG_CACHE_SIZE) }
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 336 "util/configlexer.lex"
{ 
				  YDVAR(1, VAR_VAL_NSEC3_KEYSIZE_ITERATIONS) }
	YY_BREAK
case 127:
YY_RULE_SETUP
#line 338 "util/configlexer.lex"
{ YDVAR(1, VAR_ADD_HOLDDOWN) }
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 339 "util/configlexer.lex"
{ YDVAR(1, VAR_DEL_HOLDDOWN) }
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 340 "util/configlexer.lex"
{ YDVAR(1, VAR_KEEP_MISSING) }
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 341 "util/configlexer.lex"
{ YDVAR(1, VAR_PERMIT_SMALL_HOLDDOWN) }
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 342 "util/configlexer.lex"
{ YDVAR(1, VAR_USE_SYSLOG) }
	YY_BREAK
case 132:
YY_RULE_SETUP
#line 343 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_IDENTITY) }
	YY_BREAK
case 133:
YY_RULE_SETUP
#line 344 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_TIME_ASCII) }
	YY_BREAK
case 134:
YY_RULE_SETUP
#line 345 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_QUERIES) }
	YY_BREAK
case 135:
YY_RULE_SETUP
#line 346 "util/configlexer.lex"
{ YDVAR(1, VAR_LOG_REPLIES) }
	YY_BREAK
case 136:
YY_RULE_SETUP
#line 347 "util/configlexer.lex"
{ YDVAR(2, VAR_LOCAL_ZONE) }
	YY_BREAK
case 137:
YY_RULE_SETUP
#line 348 "util/configlexer.lex"
{ YDVAR(1, VAR_LOCAL_DATA) }
	YY_BREAK
case 138:
YY_RULE_SETUP
#line 349 "util/configlexer.lex"
{ YDVAR(1, VAR_LOCAL_DATA_PTR) }
	YY_BREAK
case 139:
YY_RULE_SETUP
#line 350 "util/configlexer.lex"
{ YDVAR(1, VAR_UNBLOCK_LAN_ZONES) }
	YY_BREAK
case 140:
YY_RULE_SETUP
#line 351 "util/configlexer.lex"
{ YDVAR(1, VAR_INSECURE_LAN_ZONES) }
	YY_BREAK
case 141:
YY_RULE_SETUP
#line 352 "util/configlexer.lex"
{ YDVAR(1, VAR_STATISTICS_INTERVAL) }
	YY_BREAK
case 142:
YY_RULE_SETUP
#line 353 "util/configlexer.lex"
{ YDVAR(1, VAR_STATISTICS_CUMULATIVE) }
	YY_BREAK
case 143:
YY_RULE_SETUP
#line 354 "util/configlexer.lex"
{ YDVAR(1, VAR_EXTENDED_STATISTICS) }
	YY_BREAK
case 144:
YY_RULE_SETUP
#line 355 "util/configlexer.lex"
{ YDVAR(1, VAR_SHM_ENABLE) }
	YY_BREAK
case 145:
YY_RULE_SETUP
#line 356 "util/configlexer.lex"
{ YDVAR(1, VAR_SHM_KEY) }
	YY_BREAK
case 146:
YY_RULE_SETUP
#line 357 "util/configlexer.lex"
{ YDVAR(0, VAR_REMOTE_CONTROL) }
	YY_BREAK
case 147:
YY_RULE_SETUP
#line 358 "util/configlexer.lex"
{ YDVAR(1, VAR_CONTROL_ENABLE) }
	YY_BREAK
case 148:
YY_RULE_SETUP
#line 359 "util/configlexer.lex"
{ YDVAR(1, VAR_CONTROL_INTERFACE) }
	YY_BREAK
case 149:
YY_RULE_SETUP
#line 360 "util/configlexer.lex"
{ YDVAR(1, VAR_CONTROL_PORT) }
	YY_BREAK
case 150:
YY_RULE_SETUP
#line 361 "util/configlexer.lex"
{ YDVAR(1, VAR_CONTROL_USE_CERT) }
	YY_BREAK
case 151:
YY_RULE_SETUP
#line 362 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVER_KEY_FILE) }
	YY_BREAK
case 152:
YY_RULE_SETUP
#line 363 "util/configlexer.lex"
{ YDVAR(1, VAR_SERVER_CERT_FILE) }
	YY_BREAK
case 153:
YY_RULE_SETUP
#line 364 "util/configlexer.lex"
{ YDVAR(1, VAR_CONTROL_KEY_FILE) }
	YY_BREAK
case 154:
YY_RULE_SETUP
#line 365 "util/configlexer.lex"
{ YDVAR(1, VAR_CONTROL_CERT_FILE) }
	YY_BREAK
case 155:
YY_RULE_SETUP
#line 366 "util/configlexer.lex"
{ YDVAR(1, VAR_PYTHON_SCRIPT) }
	YY_BREAK
case 156:
YY_RULE_SETUP
#line 367 "util/configlexer.lex"
{ YDVAR(0, VAR_PYTHON) }
	YY_BREAK
case 157:
YY_RULE_SETUP
#line 368 "util/configlexer.lex"
{ YDVAR(1, VAR_DOMAIN_INSECURE) }
	YY_BREAK
case 158:
YY_RULE_SETUP
#line 369 "util/configlexer.lex"
{ YDVAR(1, VAR_MINIMAL_RESPONSES) }
	YY_BREAK
case 159:
YY_RULE_SETUP
#line 370 "util/configlexer.lex"
{ YDVAR(1, VAR_RRSET_ROUNDROBIN) }
	YY_BREAK
case 160:
YY_RULE_SETUP
#line 371 "util/configlexer.lex"
{ YDVAR(1, VAR_MAX_UDP_SIZE) }
	YY_BREAK
case 161:
YY_RULE_SETUP
#line 372 "util/configlexer.lex"
{ YDVAR(1, VAR_DNS64_PREFIX) }
	YY_BREAK
case 162:
YY_RULE_SETUP
#line 373 "util/configlexer.lex"
{ YDVAR(1, VAR_DNS64_SYNTHALL) }
	YY_BREAK
case 163:
YY_RULE_SETUP
#line 374 "util/configlexer.lex"
{ YDVAR(1, VAR_DEFINE_TAG) }
	YY_BREAK
case 164:
YY_RULE_SETUP
#line 375 "util/configlexer.lex"
{ YDVAR(2, VAR_LOCAL_ZONE_TAG) }
	YY_BREAK
case 165:
YY_RULE_SETUP
#line 376 "util/configlexer.lex"
{ YDVAR(2, VAR_ACCESS_CONTROL_TAG) }
	YY_BREAK
case 166:
YY_RULE_SETUP
#line 377 "util/configlexer.lex"
{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_ACTION) }
	YY_BREAK
case 167:
YY_RULE_SETUP
#line 378 "util/configlexer.lex"
{ YDVAR(3, VAR_ACCESS_CONTROL_TAG_DATA) }
	YY_BREAK
case 168:
YY_RULE_SETUP
#line 379 "util/configlexer.lex"
{ YDVAR(2, VAR_ACCESS_CONTROL_VIEW) }
	YY_BREAK
case 169:
YY_RULE_SETUP
#line 380 "util/configlexer.lex"
{ YDVAR(3, VAR_LOCAL_ZONE_OVERRIDE) }
	YY_BREAK
case 170:
YY_RULE_SETUP
#line 381 "util/configlexer.lex"
{ YDVAR(0, VAR_DNSTAP) }
	YY_BREAK
case 171:
YY_RULE_SETUP
#line 382 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_ENABLE) }
	YY_BREAK
case 172:
YY_RULE_SETUP
#line 383 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_SOCKET_PATH) }
	YY_BREAK
case 173:
YY_RULE_SETUP
#line 384 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_SEND_IDENTITY) }
	YY_BREAK
case 174:
YY_RULE_SETUP
#line 385 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_SEND_VERSION) }
	YY_BREAK
case 175:
YY_RULE_SETUP
#line 386 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_IDENTITY) }
	YY_BREAK
case 176:
YY_RULE_SETUP
#line 387 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSTAP_VERSION) }
	YY_BREAK
case 177:
YY_RULE_SETUP
#line 388 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_QUERY_MESSAGES) }
	YY_BREAK
case 178:
YY_RULE_SETUP
#line 390 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSTAP_LOG_RESOLVER_RESPONSE_MESSAGES) }
	YY_BREAK
case 179:
YY_RULE_SETUP
#line 392 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSTAP_LOG_CLIENT_QUERY_MESSAGES) }
	YY_BREAK
case 180:
YY_RULE_SETUP
#line 394 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSTAP_LOG_CLIENT_RESPONSE_MESSAGES) }
	YY_BREAK
case 181:
YY_RULE_SETUP
#line 396 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_QUERY_MESSAGES) }
	YY_BREAK
case 182:
YY_RULE_SETUP
#line 398 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSTAP_LOG_FORWARDER_RESPONSE_MESSAGES) }
	YY_BREAK
case 183:
YY_RULE_SETUP
#line 400 "util/configlexer.lex"
{ YDVAR(1, VAR_DISABLE_DNSSEC_LAME_CHECK) }
	YY_BREAK
case 184:
YY_RULE_SETUP
#line 401 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_RATELIMIT) }
	YY_BREAK
case 185:
YY_RULE_SETUP
#line 402 "util/configlexer.lex"
{ YDVAR(1, VAR_RATELIMIT) }
	YY_BREAK
case 186:
YY_RULE_SETUP
#line 403 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_RATELIMIT_SLABS) }
	YY_BREAK
case 187:
YY_RULE_SETUP
#line 404 "util/configlexer.lex"
{ YDVAR(1, VAR_RATELIMIT_SLABS) }
	YY_BREAK
case 188:
YY_RULE_SETUP
#line 405 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_RATELIMIT_SIZE) }
	YY_BREAK
case 189:
YY_RULE_SETUP
#line 406 "util/configlexer.lex"
{ YDVAR(1, VAR_RATELIMIT_SIZE) }
	YY_BREAK
case 190:
YY_RULE_SETUP
#line 407 "util/configlexer.lex"
{ YDVAR(2, VAR_RATELIMIT_FOR_DOMAIN) }
	YY_BREAK
case 191:
YY_RULE_SETUP
#line 408 "util/configlexer.lex"
{ YDVAR(2, VAR_RATELIMIT_BELOW_DOMAIN) }
	YY_BREAK
case 192:
YY_RULE_SETUP
#line 409 "util/configlexer.lex"
{ YDVAR(1, VAR_IP_RATELIMIT_FACTOR) }
	YY_BREAK
case 193:
YY_RULE_SETUP
#line 410 "util/configlexer.lex"
{ YDVAR(1, VAR_RATELIMIT_FACTOR) }
	YY_BREAK
case 194:
YY_RULE_SETUP
#line 411 "util/configlexer.lex"
{ YDVAR(2, VAR_RESPONSE_IP_TAG) }
	YY_BREAK
case 195:
YY_RULE_SETUP
#line 412 "util/configlexer.lex"
{ YDVAR(2, VAR_RESPONSE_IP) }
	YY_BREAK
case 196:
YY_RULE_SETUP
#line 413 "util/configlexer.lex"
{ YDVAR(2, VAR_RESPONSE_IP_DATA) }
	YY_BREAK
case 197:
YY_RULE_SETUP
#line 414 "util/configlexer.lex"
{ YDVAR(0, VAR_DNSCRYPT) }
	YY_BREAK
case 198:
YY_RULE_SETUP
#line 415 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_ENABLE) }
	YY_BREAK
case 199:
YY_RULE_SETUP
#line 416 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_PORT) }
	YY_BREAK
case 200:
YY_RULE_SETUP
#line 417 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_PROVIDER) }
	YY_BREAK
case 201:
YY_RULE_SETUP
#line 418 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_SECRET_KEY) }
	YY_BREAK
case 202:
YY_RULE_SETUP
#line 419 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_PROVIDER_CERT) }
	YY_BREAK
case 203:
YY_RULE_SETUP
#line 420 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SIZE) }
	YY_BREAK
case 204:
YY_RULE_SETUP
#line 422 "util/configlexer.lex"
{
		YDVAR(1, VAR_DNSCRYPT_SHARED_SECRET_CACHE_SLABS) }
	YY_BREAK
case 205:
YY_RULE_SETUP
#line 424 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SIZE) }
	YY_BREAK
case 206:
YY_RULE_SETUP
#line 425 "util/configlexer.lex"
{ YDVAR(1, VAR_DNSCRYPT_NONCE_CACHE_SLABS) }
	YY_BREAK
case 207:
YY_RULE_SETUP
#line 426 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_ENABLED) }
	YY_BREAK
case 208:
YY_RULE_SETUP
#line 427 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_IGNORE_BOGUS) }
	YY_BREAK
case 209:
YY_RULE_SETUP
#line 428 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_HOOK) }
	YY_BREAK
case 210:
YY_RULE_SETUP
#line 429 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_MAX_TTL) }
	YY_BREAK
case 211:
YY_RULE_SETUP
#line 430 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_WHITELIST) }
	YY_BREAK
case 212:
YY_RULE_SETUP
#line 431 "util/configlexer.lex"
{ YDVAR(1, VAR_IPSECMOD_STRICT) }
	YY_BREAK
case 213:
YY_RULE_SETUP
#line 432 "util/configlexer.lex"
{ YDVAR(0, VAR_CACHEDB) }
	YY_BREAK
case 214:
YY_RULE_SETUP
#line 433 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_BACKEND) }
	YY_BREAK
case 215:
YY_RULE_SETUP
#line 434 "util/configlexer.lex"
{ YDVAR(1, VAR_CACHEDB_SECRETSEED) }
	YY_BREAK
case 216:
YY_RULE_SETUP
#line 435 "util/configlexer.lex"
{ YDVAR(1, VAR_UDP_UPSTREAM_WITHOUT_DOWNSTREAM) }
	YY_BREAK
case 217:
/* rule 217 can match eol */
YY_RULE_SETUP
#line 436 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++; }
	YY_BREAK
/* Quoted strings. Strip leading and ending quotes */
case 218:
YY_RULE_SETUP
#line 439 "util/configlexer.lex"
{ BEGIN(quotedstring); LEXOUT(("QS ")); }
	YY_BREAK
case YY_STATE_EOF(quotedstring):
#line 440 "util/configlexer.lex"
{
        yyerror("EOF inside quoted string");
	if(--num_args == 0) { BEGIN(INITIAL); }
	else		    { BEGIN(val); }
}
	YY_BREAK
case 219:
YY_RULE_SETUP
#line 445 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
	YY_BREAK
case 220:
/* rule 220 can match eol */
YY_RULE_SETUP
#line 446 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end \""); 
			  cfg_parser->line++; BEGIN(INITIAL); }
	YY_BREAK
case 221:
YY_RULE_SETUP
#line 448 "util/configlexer.lex"
{
        LEXOUT(("QE "));
	if(--num_args == 0) { BEGIN(INITIAL); }
	else		    { BEGIN(val); }
        yytext[yyleng - 1] = '\0';
	yylval.str = strdup(yytext);
	if(!yylval.str)
		yyerror("out of memory");
        return STRING_ARG;
}
	YY_BREAK
/* Single Quoted strings. Strip leading and ending quotes */
case 222:
YY_RULE_SETUP
#line 460 "util/configlexer.lex"
{ BEGIN(singlequotedstr); LEXOUT(("SQS ")); }
	YY_BREAK
case YY_STATE_EOF(singlequotedstr):
#line 461 "util/configlexer.lex"
{
        yyerror("EOF inside quoted string");
	if(--num_args == 0) { BEGIN(INITIAL); }
	else		    { BEGIN(val); }
}
	YY_BREAK
case 223:
YY_RULE_SETUP
#line 466 "util/configlexer.lex"
{ LEXOUT(("STR(%s) ", yytext)); yymore(); }
	YY_BREAK
case 224:
/* rule 224 can match eol */
YY_RULE_SETUP
#line 467 "util/configlexer.lex"
{ yyerror("newline inside quoted string, no end '"); 
			     cfg_parser->line++; BEGIN(INITIAL); }
	YY_BREAK
case 225:
YY_RULE_SETUP
#line 469 "util/configlexer.lex"
{
        LEXOUT(("SQE "));
	if(--num_args == 0) { BEGIN(INITIAL); }
	else		    { BEGIN(val); }
        yytext[yyleng - 1] = '\0';
	yylval.str = strdup(yytext);
	if(!yylval.str)
		yyerror("out of memory");
        return STRING_ARG;
}
	YY_BREAK
/* include: directive */
case 226:
YY_RULE_SETUP
#line 481 "util/configlexer.lex"
{ 
	LEXOUT(("v(%s) ", yytext)); inc_prev = YYSTATE; BEGIN(include); }
	YY_BREAK
case YY_STATE_EOF(include):
#line 483 "util/configlexer.lex"
{
        yyerror("EOF inside include directive");
        BEGIN(inc_prev);
}
	YY_BREAK
case 227:
YY_RULE_SETUP
#line 487 "util/configlexer.lex"
{ LEXOUT(("ISP ")); /* ignore */ }
	YY_BREAK
case 228:
/* rule 228 can match eol */
YY_RULE_SETUP
#line 488 "util/configlexer.lex"
{ LEXOUT(("NL\n")); cfg_parser->line++;}
	YY_BREAK
case 229:
YY_RULE_SETUP
#line 489 "util/configlexer.lex"
{ LEXOUT(("IQS ")); BEGIN(include_quoted); }
	YY_BREAK
case 230:
YY_RULE_SETUP
#line 490 "util/configlexer.lex"
{
	LEXOUT(("Iunquotedstr(%s) ", yytext));
	config_start_include_glob(yytext);
	BEGIN(inc_prev);
}
	YY_BREAK
case YY_STATE_EOF(include_quoted):
#line 495 "util/configlexer.lex"
{
        yyerror("EOF inside quoted string");
        BEGIN(inc_prev);
}
	YY_BREAK
case 231:
YY_RULE_SETUP
#line 499 "util/configlexer.lex"
{ LEXOUT(("ISTR(%s) ", yytext)); yymore(); }
	YY_BREAK
case 232:
/* rule 232 can match eol */
YY_RULE_SETUP
#line 500 "util/configlexer.lex"
{ yyerror("newline before \" in include name"); 
				  cfg_parser->line++; BEGIN(inc_prev); }
	YY_BREAK
case 233:
YY_RULE_SETUP
#line 502 "util/configlexer.lex"
{
	LEXOUT(("IQE "));
	yytext[yyleng - 1] = '\0';
	config_start_include_glob(yytext);
	BEGIN(inc_prev);
}
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(val):
#line 508 "util/configlexer.lex"
{
	LEXOUT(("LEXEOF "));
	yy_set_bol(1); /* Set beginning of line, so "^" rules match.  */
	if (!config_include_stack) {
		yyterminate();
	} else {
		fclose(yyin);
		config_end_include();
	}
}
	YY_BREAK
case 234:
YY_RULE_SETUP
#line 519 "util/configlexer.lex"
{ LEXOUT(("unquotedstr(%s) ", yytext)); 
			if(--num_args == 0) { BEGIN(INITIAL); }
			yylval.str = strdup(yytext); return STRING_ARG; }
	YY_BREAK
case 235:
YY_RULE_SETUP
#line 523 "util/configlexer.lex"
{
	ub_c_error_msg("unknown keyword '%s'", yytext);
	}
	YY_BREAK
case 236:
YY_RULE_SETUP
#line 527 "util/configlexer.lex"
{
	ub_c_error_msg("stray '%s'", yytext);
	}
	YY_BREAK
case 237:
YY_RULE_SETUP
#line 531 "util/configlexer.lex"
ECHO;
	YY_BREAK
#line 4488 "<stdout>"

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

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

		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed 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_LVALUE->yy_n_chars;
			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
			}

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

			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state(  );

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

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = (yytext_ptr) + YY_MORE_ADJ;

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

			else
				{
				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_LVALUE->yy_ch_buf[(yy_n_chars)];

				yy_current_state = yy_get_previous_state(  );

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

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
	} /* end of user's declarations */
} /* 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 (void)
{
    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
	char *source = (yytext_ptr);
	yy_size_t number_to_move, i;
	int ret_val;

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

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

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

	/* Try to read more data. */

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

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

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

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

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

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

			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. */
					yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2)  );
				}
			else
				/* Can't grow it, we don't own it. */
				b->yy_ch_buf = NULL;

			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_LVALUE->yy_buf_size -
						number_to_move - 1;

			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

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

		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	if ( (yy_n_chars) == 0 )
		{
		if ( number_to_move == YY_MORE_ADJ )
			{
			ret_val = EOB_ACT_END_OF_FILE;
			yyrestart(yyin  );
			}

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

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

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

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

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

	return ret_val;
}

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

    static yy_state_type yy_get_previous_state (void)
{
	yy_state_type yy_current_state;
	char *yy_cp;
    
	yy_current_state = (yy_start);

	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
		{
		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		if ( yy_accept[yy_current_state] )
			{
			(yy_last_accepting_state) = yy_current_state;
			(yy_last_accepting_cpos) = 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 >= 2341 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
		}

	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 );
 */
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
{
	int yy_is_jam;
    	char *yy_cp = (yy_c_buf_p);

	YY_CHAR yy_c = 1;
	if ( yy_accept[yy_current_state] )
		{
		(yy_last_accepting_state) = yy_current_state;
		(yy_last_accepting_cpos) = 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 >= 2341 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
	yy_is_jam = (yy_current_state == 2340);

		return yy_is_jam ? 0 : yy_current_state;
}

#ifndef YY_NO_UNPUT

#endif

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

{
	int c;
    
	*(yy_c_buf_p) = (yy_hold_char);

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

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

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

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

					/*FALLTHROUGH*/

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

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

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

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

	return c;
}
#endif	/* ifndef YY_NO_INPUT */

/** Immediately switch to a different input stream.
 * @param input_file A readable stream.
 * 
 * @note This function does not reset the start condition to @c INITIAL .
 */
    void yyrestart  (FILE * input_file )
{
    
	if ( ! YY_CURRENT_BUFFER ){
        yyensure_buffer_stack ();
		YY_CURRENT_BUFFER_LVALUE =
            yy_create_buffer(yyin,YY_BUF_SIZE );
	}

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

/** Switch to a different input buffer.
 * @param new_buffer The new input buffer.
 * 
 */
    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
{
    
	/* TODO. We should be able to replace this entire function body
	 * with
	 *		yypop_buffer_state();
	 *		yypush_buffer_state(new_buffer);
     */
	yyensure_buffer_stack ();
	if ( YY_CURRENT_BUFFER == new_buffer )
		return;

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

	YY_CURRENT_BUFFER_LVALUE = new_buffer;
	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;
}

static void yy_load_buffer_state  (void)
{
    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
	(yy_hold_char) = *(yy_c_buf_p);
}

/** Allocate and initialize an input buffer state.
 * @param file A readable stream.
 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
 * 
 * @return the allocated buffer state.
 */
    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
{
	YY_BUFFER_STATE b;
    
	b = (YY_BUFFER_STATE) yyalloc(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 *) yyalloc((yy_size_t) (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;
}

/** Destroy the buffer.
 * @param b a buffer created with yy_create_buffer()
 * 
 */
    void yy_delete_buffer (YY_BUFFER_STATE  b )
{
    
	if ( ! b )
		return;

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

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

	yyfree((void *) b  );
}

/* Initializes or reinitializes a buffer.
 * This function is sometimes called more than once on the same buffer,
 * such as during a yyrestart() or at EOF.
 */
    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )

{
	int oerrno = errno;
    
	yy_flush_buffer(b );

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

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

        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
    
	errno = oerrno;
}

/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
 * 
 */
    void yy_flush_buffer (YY_BUFFER_STATE  b )
{
    	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( );
}

/** Pushes the new state onto the stack. The new state becomes
 *  the current state. This function will allocate the stack
 *  if necessary.
 *  @param new_buffer The new state.
 *  
 */
void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
{
    	if (new_buffer == NULL)
		return;

	yyensure_buffer_stack();

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

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

	/* copied from yy_switch_to_buffer. */
	yy_load_buffer_state( );
	(yy_did_buffer_switch_on_eof) = 1;
}

/** Removes and deletes the top of the stack, if present.
 *  The next element becomes the new top.
 *  
 */
void yypop_buffer_state (void)
{
    	if (!YY_CURRENT_BUFFER)
		return;

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

	if (YY_CURRENT_BUFFER) {
		yy_load_buffer_state( );
		(yy_did_buffer_switch_on_eof) = 1;
	}
}

/* Allocates the stack if it does not exist.
 *  Guarantees space for at least one push.
 */
static void yyensure_buffer_stack (void)
{
	int num_to_alloc;
    
	if (!(yy_buffer_stack)) {

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

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

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

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

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

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

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

	b->yy_buf_size = (int) (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 = NULL;
	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;
}

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

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

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

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

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

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

static void yynoreturn yy_fatal_error (yyconst char* msg )
{
			(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. */ \
        yy_size_t yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
		yytext[yyleng] = (yy_hold_char); \
		(yy_c_buf_p) = yytext + yyless_macro_arg; \
		(yy_hold_char) = *(yy_c_buf_p); \
		*(yy_c_buf_p) = '\0'; \
		yyleng = yyless_macro_arg; \
		} \
	while ( 0 )

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

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

/** Get the input stream.
 * 
 */
FILE *yyget_in  (void)
{
        return yyin;
}

/** Get the output stream.
 * 
 */
FILE *yyget_out  (void)
{
        return yyout;
}

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

/** Get the current token.
 * 
 */

char *yyget_text  (void)
{
        return yytext;
}

/** Set the current line number.
 * @param _line_number line number
 * 
 */
void yyset_lineno (int  _line_number )
{
    
    yylineno = _line_number;
}

/** Set the input stream. This does not discard the current
 * input buffer.
 * @param _in_str A readable stream.
 * 
 * @see yy_switch_to_buffer
 */
void yyset_in (FILE *  _in_str )
{
        yyin = _in_str ;
}

void yyset_out (FILE *  _out_str )
{
        yyout = _out_str ;
}

int yyget_debug  (void)
{
        return yy_flex_debug;
}

void yyset_debug (int  _bdebug )
{
        yy_flex_debug = _bdebug ;
}

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

    (yy_buffer_stack) = NULL;
    (yy_buffer_stack_top) = 0;
    (yy_buffer_stack_max) = 0;
    (yy_c_buf_p) = NULL;
    (yy_init) = 0;
    (yy_start) = 0;

/* Defined in main.c */
#ifdef YY_STDINIT
    yyin = stdin;
    yyout = stdout;
#else
    yyin = NULL;
    yyout = NULL;
#endif

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

/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy  (void)
{
    
    /* Pop the buffer stack, destroying each element. */
	while(YY_CURRENT_BUFFER){
		yy_delete_buffer(YY_CURRENT_BUFFER  );
		YY_CURRENT_BUFFER_LVALUE = NULL;
		yypop_buffer_state();
	}

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

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

    return 0;
}

/*
 * Internal utility routines.
 */

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

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

	return n;
}
#endif

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

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

void yyfree (void * ptr )
{
			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
}

#define YYTABLES_NAME "yytables"

#line 531 "util/configlexer.lex"



