/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.h>


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


#ifdef __cplusplus

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

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

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

#else	/* ! __cplusplus */

#if __STDC__

#define YY_USE_PROTOS
#define YY_USE_CONST

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

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

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


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

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

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

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

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

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

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

#define YY_END_OF_BUFFER_CHAR 0

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

typedef struct yy_buffer_state *YY_BUFFER_STATE;

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

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

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

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

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

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

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


struct yy_buffer_state
	{
	FILE *yy_input_file;

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

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

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

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

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

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

	/* Whether to try to fill the input buffer when we reach the
	 * end of it.
	 */
	int yy_fill_buffer;

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

static YY_BUFFER_STATE yy_current_buffer = 0;

/* We provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state".
 */
#define YY_CURRENT_BUFFER yy_current_buffer


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

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


int yyleng;

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

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

void yyrestart YY_PROTO(( FILE *input_file ));

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

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

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

#define yy_new_buffer yy_create_buffer

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

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

#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)


#define YY_USES_REJECT
typedef unsigned char YY_CHAR;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
typedef int yy_state_type;
extern char *yytext;
#define yytext_ptr yytext

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

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

#define YY_NUM_RULES 321
#define YY_END_OF_BUFFER 322
static yyconst short int yy_acclist[832] =
    {   0,
      322,  321,  320,  321,   13,  320,  321,  319,  320,  321,
       21,  321,  321, 8210,  321,16402,  321,  317,  321,  317,
      321,  316,  321,  315,  321,  315,  321,  315,  321,  315,
      321,  315,  321,   85,  315,  321,  315,  321,   84,  315,
      321,  315,  321,  315,  321,  315,  321,  321,  321,  314,
      321,   85,  314,  321,   84,  314,  321,  318,  318,  319,
     8210,16402,   88,   89,16458,   90,   91,   92,   88,   89,
    16458,   90,   91,   92,   13,   13,16458,  318,   88,   89,
    16458,   90,   91,   92,   88,   89,16458,   90,   91,   92,
       21,   15, 8210,   77,   78,   79,   80,   38,16416,   27,

       57,   58, 8266,16459,   94,   93, 8236,16428,   87,   86,
       69,  101,  102,  103,  113,  113,  113,  104,  114,  114,
      114,  105,  115,  115,  115,  106,  116,  116,  116,  116,
      116,  107,   93,   86,  294,  294,  294,  283,  294,  294,
      294,  174,  196,  117,  117,  117,  117,  117,  108,16458,
       94,   93,   87,   86,  101,  102,  103,  113,  113,  113,
      104,  114,  114,  114,  105,  115,  115,  115,  106,  116,
      116,  116,  116,  116,  107,   93,   86,  294,  283,  294,
      294,  294,  174,  196,  117,  117,  117,  117,  117,  108,
       15,   14,   15,  111,  109,   17,16457,   81,   82,   83,

       38,16412,16414,16416,16418,   27,   68,   60,   59, 8267,
     8236,   55,   56,   54,   51,   52,  168,  167,  302,  129,
      129,  129,  148,  226,  115,  169,  171,  304,  173,  284,
      175,  197,  295,  295,  295,  303,  188,  170,  301,  161,
      112,  110,   47,   48,  168,  167,  302,  129,  148,  226,
      115,  169,  171,  304,  173,  284,  175,  197,  295,  303,
      188,  170,  301,  161,   17,   17, 8265,   10, 8241,16433,
     8242,16434,   36, 8226,   36,   36,   36,   36,   36,   36,
       36,   36,   36,   39,16417,   61, 8214,16406, 8241,16433,
     8242,16434,  308,  146,  309,   62,  239,  187,  147,  306,

      227,   64,  181,  134,  134,  134,  131,  131,  131,  180,
      132,  132,  132,  189,  163,  182,  182,  305,  296,  296,
      296,  262,  261,  286,  290,  290,  290,  138,  138,  138,
      172,  199,  200,  204,  204,  204,  164,  121,  125,  118,
      118,  118,  190,  190,  130,  130,  130,  156,  156,  162,
      136,  136,  136,   10,  308,  146,  309,   62,  239,  187,
      147,  306,  227,   64,  181,  134,  131,  180,  132,  189,
      163,  182,  182,  305,  296,  262,  261,  286,  290,  138,
      172,  199,  200,  204,  164,  118,  190,  190,  130,  156,
      136,   10,   12, 8241, 8242, 8224,   39,16413,16415,16417,

    16419, 8214, 8215,16407, 8211,16403, 8241, 8216,16408, 8212,
    16404, 8242,   53,  263,   70,  205,  218,  215,  216,  276,
      258,  258,  307,  119,  119,  119,  228,  229,  230,  230,
      225,  297,  297,  297,  310,  311,  242,  241,  144,  144,
      144,  270,  269,  122,  126,  143,  143,  143,  142,  142,
      142,  124,  128,  157,  157,  135,  135,  135,  133,  133,
      133,  139,  139,  139,  154,  155,  137,  137,  137,  240,
      160,  233,  285,  176,  198,  166,  266,  265,  165,  183,
       63,16460,  312,  313,  244,  243,  145,  145,  145,  120,
      120,  120,  274,  273,  140,  140,  140,  123,  127,   12,

      263,  205,  218,  215,  216,  276,  258,  307,  119,  228,
      229,  230,  225,  297,  310,  311,  242,  241,  144,  270,
      269,  143,  142,  157,  135,  133,  139,  137,  240,  160,
      233,  285,  176,  198,  166,  266,  265,  183,   63,16460,
      312,  313,  244,  243,  145,  120,  274,  273,  140,   16,
       12,   11, 8224,   37, 8227,   37,   37,   37,   37,   37,
       37,   37,   37,   37,   95,   96,   97,   98, 8215,   42,
       40, 8211, 8237,16429, 8216,   43,   41, 8212, 8238,16430,
      217,  213,  214,  277,  206,  259,  232,  231,  247,  260,
      248,  224,  221,  222,  271,  210,  257,  255,  149,  150,

      194,  195,  158,  158,  141,  141,  141,  267,  287,  234,
      235,  236,  236,  177,  201,  291,  291,  291,  299,  299,
      299,  299, 8268,  275,   11,  217,  213,  214,  277,  206,
      259,  232,  231,  247,  260,  248,  224,  221,  222,  271,
      210,  257,  255,  149,  150,  194,  195,  158,  141,  267,
      287,  234,  235,  236,  177,  201,  291,  299,  299,  275,
       16,   16,    9,   11, 8222, 8220, 8222, 8222, 8222, 8222,
     8222, 8222, 8222, 8222, 8222, 8225,   99,  100, 8237, 8238,
      250,  249,  254,  279,  207,  223,  219,  220,  300,  300,
      300,  268,  211,  159,  159,  184,  151,  288,  208,  238,

      237,  251,  264,  252,  256,  293,  293,  293,  178,  202,
      292,  292,  292,   71,  191,  272,    9,  250,  249,  254,
      279,  207,  223,  219,  220,  300,  268,  211,  159,  184,
      151,  288,  208,  238,  237,  251,  264,  252,  256,  293,
      178,  202,  292,  191,  272,    9,    9, 8225, 8217,16409,
     8218,16410,  186,   65,  278,  280,  152,  298,  298,  298,
      253,  209,  212,  185,  192,  186,   65,  278,  280,  152,
      298,  253,  209,  212,  185,  192, 8223, 8221, 8223, 8223,
     8223, 8223, 8223, 8223, 8223, 8223, 8223, 8217, 8218,  246,
      153,  289,  179,  203,  245,  246,  153,  289,  179,  203,

      245,  281,  193,  281,  193,    1,    3,  282,  282,    1,
        1,   67,   66,   67,   66,    1,    2,    5,    5,   72,
        6,    6,    6,    4,    4,    8,    8,    8,    7,    7,
        7
    } ;

static yyconst short int yy_accept[2074] =
    {   0,
        1,    1,    1,    2,    3,    5,    8,   11,   13,   14,
       17,   18,   20,   22,   24,   26,   28,   30,   32,   34,
       37,   39,   42,   44,   46,   48,   49,   50,   52,   55,
       58,   59,   59,   61,   61,   63,   63,   63,   64,   66,
       67,   68,   69,   69,   69,   69,   69,   69,   69,   69,
       69,   69,   69,   69,   69,   70,   72,   73,   74,   75,
       75,   75,   75,   75,   75,   75,   75,   75,   75,   76,
       77,   77,   77,   78,   78,   78,   78,   78,   79,   79,
       80,   82,   83,   84,   85,   85,   85,   85,   85,   85,
       85,   85,   86,   88,   89,   90,   91,   91,   91,   91,

       91,   91,   91,   91,   91,   91,   92,   92,   93,   93,
       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
       94,   94,   94,   94,   94,   94,   94,   94,   94,   95,
       96,   96,   97,   97,   98,   98,   98,  100,  101,  101,
      102,  103,  103,  103,  103,  104,  105,  106,  107,  109,
      110,  111,  111,  111,  111,  111,  112,  112,  112,  113,
      114,  114,  114,  114,  114,  115,  115,  115,  115,  115,
      116,  117,  118,  119,  119,  119,  119,  119,  120,  121,
      122,  123,  123,  123,  123,  124,  125,  126,  127,  127,
      127,  127,  127,  128,  129,  130,  131,  132,  133,  133,

      133,  133,  133,  133,  133,  133,  133,  134,  134,  134,
      134,  134,  134,  134,  134,  134,  134,  135,  135,  135,
      135,  135,  135,  135,  135,  136,  137,  138,  138,  138,
      140,  141,  142,  142,  142,  143,  143,  144,  144,  144,
      144,  144,  144,  144,  145,  146,  147,  148,  149,  150,
      150,  150,  150,  150,  150,  150,  150,  151,  151,  151,
      151,  151,  151,  151,  151,  151,  151,  152,  153,  154,
      155,  155,  155,  155,  155,  155,  156,  157,  157,  157,
      157,  157,  158,  158,  158,  158,  158,  159,  160,  161,
      162,  162,  162,  162,  162,  163,  164,  165,  166,  166,

      166,  166,  167,  168,  169,  170,  170,  170,  170,  170,
      171,  172,  173,  174,  175,  176,  176,  176,  176,  176,
      176,  176,  176,  176,  177,  177,  177,  177,  177,  177,
      177,  177,  177,  177,  178,  178,  178,  178,  178,  178,
      178,  178,  179,  179,  179,  181,  182,  183,  183,  183,
      184,  184,  185,  185,  185,  185,  185,  185,  185,  186,
      187,  188,  189,  190,  191,  191,  191,  191,  191,  191,
      191,  192,  194,  195,  195,  196,  196,  197,  198,  198,
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
      198,  198,  199,  200,  201,  206,  206,  206,  206,  207,

      207,  208,  208,  209,  210,  211,  212,  212,  212,  213,
      213,  214,  215,  216,  216,  217,  217,  218,  218,  218,
      218,  219,  220,  220,  220,  220,  220,  220,  220,  220,
      220,  221,  222,  223,  223,  223,  223,  223,  224,  225,
      225,  225,  225,  225,  225,  225,  225,  225,  225,  226,
      226,  226,  227,  227,  227,  227,  227,  227,  227,  227,
      228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
      228,  228,  228,  228,  228,  228,  228,  229,  229,  230,
      230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
      230,  231,  231,  231,  231,  231,  231,  231,  231,  231,

      231,  231,  231,  231,  231,  231,  231,  231,  232,  232,
      232,  233,  233,  233,  233,  233,  233,  233,  233,  233,
      233,  233,  234,  235,  236,  236,  236,  237,  238,  238,
      239,  239,  239,  239,  239,  239,  239,  239,  239,  240,
      240,  240,  240,  241,  241,  241,  242,  242,  243,  243,
      243,  244,  244,  245,  245,  245,  245,  245,  245,  245,
      246,  246,  246,  246,  247,  248,  248,  248,  248,  248,
      248,  248,  248,  248,  249,  249,  249,  249,  249,  250,
      251,  251,  251,  251,  251,  251,  251,  251,  251,  251,
      252,  252,  252,  253,  253,  253,  253,  253,  253,  253,

      253,  254,  254,  254,  254,  254,  254,  254,  254,  254,
      254,  254,  254,  254,  254,  254,  254,  254,  255,  255,
      256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
      256,  256,  257,  257,  257,  257,  257,  257,  257,  257,
      257,  257,  257,  257,  257,  257,  257,  257,  257,  258,
      258,  258,  259,  259,  259,  259,  259,  259,  259,  259,
      259,  260,  260,  260,  261,  262,  262,  263,  263,  263,
      263,  263,  263,  263,  263,  263,  264,  264,  264,  264,
      265,  265,  265,  266,  267,  268,  268,  268,  268,  268,
      269,  269,  269,  269,  269,  269,  269,  271,  271,  273,

      274,  275,  276,  277,  278,  279,  280,  281,  282,  283,
      284,  284,  284,  284,  286,  287,  289,  289,  289,  291,
      291,  293,  293,  293,  294,  294,  294,  294,  295,  295,
      296,  296,  296,  297,  297,  297,  297,  298,  298,  298,
      299,  300,  301,  301,  301,  302,  302,  302,  302,  302,
      302,  303,  303,  303,  303,  303,  303,  303,  303,  303,
      303,  303,  304,  304,  304,  305,  306,  307,  307,  307,
      307,  307,  307,  308,  309,  310,  310,  310,  311,  311,
      311,  311,  311,  311,  311,  312,  313,  314,  314,  315,
      315,  316,  316,  317,  318,  318,  318,  318,  319,  319,

      319,  319,  320,  321,  322,  322,  322,  322,  322,  323,
      324,  324,  324,  324,  324,  325,  326,  327,  328,  328,
      328,  328,  328,  329,  330,  331,  331,  331,  331,  331,
      332,  332,  332,  332,  332,  332,  332,  332,  332,  332,
      332,  332,  332,  332,  333,  334,  335,  336,  337,  337,
      338,  338,  338,  338,  338,  338,  338,  339,  339,  340,
      340,  341,  342,  343,  343,  343,  344,  345,  345,  345,
      345,  345,  346,  347,  348,  348,  348,  348,  348,  348,
      349,  350,  350,  350,  350,  351,  351,  351,  352,  353,
      354,  354,  354,  354,  354,  355,  355,  355,  355,  355,

      356,  356,  356,  357,  357,  358,  358,  358,  359,  359,
      359,  359,  360,  360,  360,  361,  362,  363,  363,  363,
      364,  364,  364,  364,  364,  364,  365,  365,  365,  365,
      365,  365,  365,  365,  365,  365,  365,  366,  367,  367,
      367,  367,  367,  367,  368,  368,  368,  369,  369,  369,
      369,  369,  370,  370,  371,  371,  372,  372,  373,  374,
      374,  374,  374,  375,  375,  376,  376,  376,  376,  376,
      377,  378,  378,  378,  378,  378,  379,  380,  380,  380,
      380,  380,  381,  381,  381,  381,  381,  382,  382,  382,
      382,  382,  382,  382,  382,  382,  382,  382,  382,  382,

      382,  383,  384,  385,  385,  386,  386,  386,  386,  386,
      386,  386,  387,  387,  387,  388,  389,  389,  389,  389,
      389,  390,  390,  390,  390,  390,  390,  391,  391,  391,
      391,  392,  392,  392,  392,  392,  392,  392,  393,  393,
      393,  393,  393,  394,  394,  395,  396,  396,  396,  396,
      396,  396,  396,  396,  396,  396,  396,  397,  397,  397,
      397,  402,  402,  402,  402,  403,  403,  405,  407,  407,
      408,  410,  412,  412,  413,  414,  414,  415,  416,  417,
      418,  419,  420,  420,  420,  421,  421,  421,  421,  422,
      422,  423,  424,  425,  426,  427,  427,  428,  429,  430,

      431,  431,  431,  431,  431,  431,  432,  432,  432,  433,
      434,  435,  435,  435,  436,  437,  438,  439,  439,  440,
      441,  442,  442,  443,  444,  445,  445,  446,  446,  446,
      446,  446,  446,  446,  446,  447,  448,  449,  449,  449,
      449,  449,  450,  451,  452,  452,  453,  453,  454,  454,
      454,  455,  456,  456,  456,  456,  456,  457,  458,  459,
      459,  460,  461,  462,  462,  463,  464,  465,  465,  466,
      467,  467,  468,  469,  470,  470,  470,  470,  470,  470,
      470,  471,  471,  472,  473,  473,  473,  473,  474,  474,
      474,  474,  475,  476,  477,  477,  477,  477,  478,  479,

      479,  479,  480,  480,  480,  481,  482,  482,  483,  483,
      483,  483,  484,  485,  485,  486,  487,  487,  488,  489,
      490,  490,  491,  492,  493,  493,  494,  495,  496,  497,
      498,  498,  499,  499,  500,  500,  500,  500,  500,  501,
      501,  502,  503,  504,  505,  506,  506,  506,  507,  507,
      507,  507,  508,  508,  509,  510,  510,  511,  512,  513,
      513,  513,  513,  513,  513,  514,  514,  514,  515,  515,
      515,  516,  517,  518,  519,  519,  520,  520,  521,  522,
      522,  522,  522,  522,  522,  522,  523,  523,  523,  523,
      523,  524,  524,  524,  525,  525,  525,  525,  525,  526,

      526,  527,  527,  528,  528,  528,  529,  529,  529,  529,
      529,  529,  529,  530,  530,  531,  532,  532,  532,  532,
      533,  533,  533,  533,  534,  535,  536,  536,  536,  536,
      537,  538,  538,  538,  538,  538,  539,  540,  540,  541,
      541,  541,  541,  542,  543,  543,  544,  545,  545,  546,
      546,  547,  547,  548,  549,  550,  550,  550,  551,  551,
      551,  551,  551,  551,  551,  551,  551,  552,  553,  553,
      553,  553,  553,  553,  553,  553,  554,  554,  554,  554,
      554,  554,  554,  555,  556,  557,  558,  559,  560,  561,
      562,  563,  564,  565,  565,  565,  565,  566,  567,  567,

      568,  569,  570,  571,  572,  573,  575,  576,  577,  578,
      579,  581,  582,  584,  584,  584,  585,  585,  585,  585,
      586,  587,  588,  589,  590,  591,  592,  593,  594,  595,
      595,  596,  596,  597,  597,  597,  597,  598,  599,  599,
      599,  600,  601,  602,  603,  604,  605,  605,  605,  605,
      606,  607,  608,  608,  608,  609,  609,  610,  610,  610,
      611,  612,  613,  614,  614,  614,  614,  614,  614,  614,
      614,  614,  614,  614,  614,  614,  615,  615,  616,  617,
      618,  619,  619,  619,  620,  621,  622,  622,  623,  624,
      625,  625,  625,  625,  625,  625,  625,  625,  626,  627,

      629,  629,  629,  630,  630,  630,  630,  631,  632,  633,
      634,  635,  636,  637,  638,  639,  640,  640,  641,  641,
      642,  642,  642,  642,  643,  644,  644,  644,  645,  646,
      647,  648,  649,  649,  649,  649,  650,  650,  650,  651,
      651,  652,  652,  652,  653,  654,  655,  655,  655,  655,
      655,  655,  655,  655,  655,  655,  655,  655,  655,  656,
      656,  657,  658,  658,  658,  659,  659,  660,  661,  661,
      661,  661,  661,  662,  663,  663,  664,  664,  664,  664,
      664,  664,  664,  665,  665,  665,  665,  665,  666,  667,
      668,  669,  670,  671,  672,  673,  674,  675,  676,  676,

      676,  676,  676,  676,  676,  676,  676,  676,  676,  676,
      676,  676,  676,  676,  677,  677,  677,  677,  678,  679,
      680,  680,  681,  681,  682,  684,  684,  684,  684,  685,
      685,  685,  686,  687,  689,  690,  691,  692,  692,  693,
      693,  693,  694,  695,  696,  697,  697,  697,  698,  698,
      698,  699,  699,  700,  701,  702,  703,  704,  705,  705,
      705,  706,  706,  706,  706,  707,  708,  709,  709,  710,
      711,  712,  713,  714,  714,  715,  715,  716,  716,  717,
      717,  718,  719,  721,  721,  721,  721,  722,  722,  722,
      723,  724,  726,  727,  727,  728,  728,  728,  729,  730,

      731,  731,  731,  732,  732,  732,  733,  733,  734,  735,
      736,  737,  738,  739,  739,  739,  740,  740,  740,  740,
      741,  741,  742,  743,  744,  744,  744,  745,  745,  746,
      746,  747,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      748,  748,  748,  748,  748,  748,  748,  748,  748,  748,
      749,  749,  749,  749,  749,  749,  749,  751,  753,  754,
      754,  754,  754,  755,  755,  756,  757,  757,  758,  758,
      759,  760,  761,  761,  762,  763,  763,  764,  765,  765,
      765,  765,  766,  766,  767,  767,  767,  767,  768,  768,

      769,  770,  770,  771,  771,  772,  772,  773,  774,  774,
      775,  776,  776,  776,  777,  777,  777,  777,  777,  777,
      777,  777,  777,  777,  777,  777,  777,  777,  777,  777,
      777,  777,  777,  777,  777,  777,  777,  777,  777,  777,
      777,  777,  778,  779,  780,  781,  782,  783,  784,  785,
      786,  787,  788,  788,  788,  788,  788,  788,  789,  790,
      790,  790,  790,  790,  791,  791,  792,  793,  794,  795,
      795,  796,  796,  796,  796,  796,  797,  797,  798,  799,
      800,  801,  802,  802,  802,  802,  802,  802,  802,  802,
      802,  802,  802,  802,  802,  802,  802,  802,  802,  802,

      802,  802,  802,  802,  802,  802,  802,  802,  802,  802,
      802,  802,  802,  803,  803,  803,  803,  804,  804,  805,
      805,  805,  805,  806,  806,  806,  806,  807,  807,  807,
      808,  808,  808,  808,  808,  808,  808,  808,  808,  808,
      808,  808,  808,  808,  808,  808,  808,  808,  808,  808,
      808,  808,  808,  808,  808,  809,  809,  809,  809,  810,
      810,  810,  810,  810,  811,  811,  812,  812,  812,  812,
      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
      812,  812,  812,  812,  812,  813,  814,  814,  815,  816,
      816,  816,  818,  819,  819,  819,  819,  819,  819,  819,

      819,  819,  819,  819,  819,  819,  819,  819,  819,  819,
      819,  819,  819,  819,  820,  820,  820,  820,  820,  820,
      820,  820,  820,  820,  820,  820,  820,  821,  821,  821,
      822,  822,  822,  822,  822,  822,  822,  822,  822,  822,
      823,  824,  824,  824,  824,  824,  824,  824,  824,  825,
      825,  825,  825,  826,  826,  826,  826,  826,  826,  826,
      826,  826,  826,  826,  826,  827,  827,  828,  829,  830,
      831,  832,  832
    } ;

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

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

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

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

static yyconst short int yy_base[2133] =
    {   0,
        0,    0, 4038, 4039,   64,  128,  186,   72,   64,  136,
      145, 4027, 4039,  128,  245, 3995, 3974, 3979, 3978,    0,
     3991,    0, 3970, 3989,  102,   99,  163,    0,    0,    0,
        0,  283,    0,  230,  196,  334,    0, 3988,  203, 3967,
        0, 3972, 3971,  230, 4019,  233, 3983, 3997, 3961, 3980,
      114,  239, 4011,  175,  215,  392,  410,  428,  285,  442,
      480,  342, 3978,  126,  520, 3963,  248,  540,  298,  598,
      336, 3976,  312, 3955, 3960,  113,  128,    0,  336, 3973,
      351, 4039, 4039, 4039, 3958,  377, 4006,  378, 3985,  210,
      304,  362,  656,  674,  692,  467,  706,  744,  586, 3969,

      177,  784, 3954,  249,  804,  369, 4001, 4039,  633,  410,
      378,  432,  420, 3996,  539,  648, 3951, 3958, 3946, 3949,
     3950, 3945, 3946, 3941, 3940, 3948,  412,  545, 3977, 4039,
     3979, 4039, 3976, 4039,    0,    0,  668,  501,  650,  669,
      759,  765,  614, 3944,  607,  672,    0,    0,  690,    0,
        0, 3957,  809,  591,  826, 4039, 3933, 3945,    0, 3931,
     3929, 3935, 3944, 3941, 3926, 3938, 3938, 3920,  572,  863,
        0, 3936,    0,  155,  205, 3934, 3918,    0, 3929, 3918,
        0,  222, 3933,  237,    0, 3933, 3915,    0,  271, 3918,
      328, 3927,  277, 3923, 3928,  131,    0, 3910,  375,  179,

     3911, 3906, 3904,  369,  121, 3920, 3905, 3900, 3913, 3915,
     3914, 3898,  380, 3915, 3896, 3902, 3895,  264, 3908, 3892,
      239, 3891, 3892, 3891,    0, 3887, 3892,  793, 3902,  478,
      295,  823, 3887,  901,  871,  223,  518, 3900, 3896, 3901,
     3900,  946,  323,  345,  156,  404,  463,    0, 3882,  683,
      402,  419, 3894, 3897, 3877, 3895,  778,  443,  885,  877,
      902,  677,  887, 3894, 3887, 3881, 4039, 4039, 4039, 4039,
     3897, 3873, 3881, 3871, 3883, 4039, 3869, 3867, 3873, 3882,
     3879, 3864, 3876, 3876, 3858,  586,  899, 4039, 3874, 4039,
      451,  377, 3872, 3856, 4039, 3867, 3856, 4039,  660, 3871,

      451, 4039, 3871, 3853, 4039,  715, 3856,  716, 3865,  419,
     3861, 3866,  494, 4039, 3848,  743,  474, 3849, 3844, 3842,
      577,  509, 3858, 3843, 3838, 3851, 3853, 3852, 3836,  754,
     3853, 3834, 3840, 3833,  474, 3846, 3830,  535, 3829, 3830,
     3829, 4039,  938, 3842,  934,  564,  850, 3827,  983,  955,
      529,  957, 3840, 3836, 3841, 3840, 1028,  647,  684,  607,
      639,  646, 4039, 3822,  825,  776,  683, 3834, 3837, 3817,
     3864, 3863, 4039,  973, 4039, 3863, 1035,  952, 3819, 3816,
     3830, 3810, 3825, 3812, 3822, 3817, 3814, 3804, 1045,  978,
     1059, 4039, 4039, 4039, 1085, 3854, 3813, 3820, 1063, 3830,

     1080, 3800, 4039, 4039, 1079, 1099, 3849, 3821, 4039, 1083,
     4039, 4039, 1112, 1098, 1129,  896,    0, 3804, 3799, 3814,
        0, 3801,  880, 3796,  791, 3810, 3796, 3808, 3789,  865,
        0, 3786, 3791, 1113, 3785, 3803, 3794,    0,    0,  751,
     3787, 3796, 3799, 3798, 3797, 3793, 3783, 3790, 3774, 3788,
     3774,    0, 3773, 3772, 3771, 3786, 3771, 3768, 3767,  362,
     1145, 3782, 3778, 3761, 3763, 1175, 3779, 3763, 3758, 3776,
     3763, 3763, 1212, 3756, 3755, 3771,    0, 3763,  951, 3750,
     3749, 3766, 3755, 1249, 3761, 3745, 3743, 3748, 3747, 3756,
      713, 3755, 3752, 1279, 3740, 3745, 3738, 1309, 3753,  778,

     3738, 3741, 3751, 3747, 3742, 3737,  882,  795, 3730, 3729,
      894,  918, 1339,  824, 3728, 3736, 3730, 3725, 3739, 1027,
     1111,    0, 3720, 3725, 1145, 1369, 3734,  989, 3720,    0,
     3719, 3731, 3717, 1399, 3716, 3731, 3716, 3718,  997, 3712,
     3711, 3716, 3747, 1436, 3725, 4039, 1183, 4039, 1144, 1184,
     1148, 1204, 1153, 3707, 3708, 3719, 3726, 3710, 3700, 4039,
     3707, 3702, 3717, 4039, 3704, 1097, 3699,  964, 3713, 3699,
     3711, 3692,  968, 4039, 1212, 3690, 3708, 3699, 4039, 4039,
      988, 3692, 3701, 3704, 3703, 3702, 3698, 3688, 3695, 3679,
     3693, 3679, 4039, 3678, 3677, 3676, 3691, 3676, 3673, 3672,

     1035, 1267, 3687, 3683, 3666, 3668, 1238, 3684, 3668, 3663,
     3681, 3668, 3668, 1297, 3661, 3660, 3676, 4039, 3668, 1142,
     3655, 3654, 3671, 3660, 1327, 3666, 3650, 3648, 3653, 3652,
     3661,  922, 3660, 3657, 1338, 3645, 3650, 3643, 1368, 3658,
     1065, 3643, 3646, 3656, 3652, 3647, 3642, 1033,  926, 3635,
     3634, 1122, 1134, 1398,  980, 3633, 3641, 3635, 3630, 3644,
     4039, 1221, 1406, 3641, 1143, 3627, 4039, 3626, 3638, 3624,
     1435, 3623, 3638, 3623, 3625, 1151, 3619, 3618, 3623, 3654,
     1457, 3663, 1211, 1400, 1404, 3612, 3622, 3610, 3634, 1467,
     3619,  797, 3626, 3607, 3620, 1488, 1492, 1496, 1508, 4039,

     4039, 3623,  743, 3605, 3632, 3600, 3619, 3650, 3609, 3616,
     1512, 3597,  990, 1516, 4039, 1520, 3615, 1524, 1531, 1538,
     1545, 1574, 3613,    0, 3644, 3588, 3606,    0,  714,    0,
     3609, 3608,    0, 3596, 3591, 3601,    0, 3601, 1223,    0,
        0,    0, 3597, 1604, 1539, 3585, 3593, 3583, 1201, 3599,
        0, 1634, 3587, 3582, 3581, 3591, 3590, 3593, 1664, 3578,
     3577,    0, 1537, 1538,    0, 3570, 3575, 1566, 3577, 3585,
     3573, 3571,    0, 3564, 3569, 1574, 1151, 1694, 3575, 3564,
     3569, 1724, 1603, 1633,    0, 3559, 3564, 1683, 3566, 1236,
        0, 3559,    0, 1205, 3575, 1754, 1784,    0, 1814, 1254,

     1263,    0, 3554, 3559, 1713, 3561, 1844, 3554,    0,    0,
     3559, 3552, 3564, 3564,    0,    0, 3546, 3551, 1743, 1232,
     3556, 3559,    0, 3542, 3547, 1773, 3560, 3559, 3558,    0,
     3557, 3539, 3555, 3554, 3553, 3552, 1087, 3534, 3546, 3535,
     3534, 3530, 3542,    0,    0,    0, 3525, 3530, 1803, 3564,
     3527, 3533, 3527, 3525, 3523, 3533, 4039, 1833, 4039, 1850,
        0, 3516, 3521, 1853, 3523,    0, 1258, 3518, 3517, 3529,
     3526,    0, 3509, 3514, 1857, 3523, 3526, 1882, 1912, 3505,
        0, 3510, 3509, 1942, 4039, 1870, 1881,    0, 3502, 3507,
     1931, 3503, 3504, 3510, 1569, 3518, 3495, 3508, 3511, 4039,

     3487, 3499, 4039,  851, 4039, 3502, 3501, 4039, 3489, 3479,
     3489, 4039, 3489, 1291, 4039, 4039, 4039, 3485, 1941, 1956,
     3467, 3473, 3391, 1301, 3346, 4039, 1963, 3299, 3262,   29,
      105,  190,  241, 1972,  292,  307, 4039, 4039, 1955,  356,
      422,  424,  441, 4039, 1969, 1320, 1974,  489,  511,  580,
     1980, 4039, 1995,  626, 1284, 4039,  655, 4039, 1316,  753,
     1989, 1998, 4039, 2006, 4039, 2012,  767, 2015,  784, 4039,
     4039,  812,  811,  839,  882, 4039, 4039, 2021, 1285,  889,
      896, 4039, 2023,  926,  940,  966, 4039,  977, 1011, 1037,
     1065, 1069, 1078, 1328, 1065, 1092, 1123, 1124, 1124, 1138,

     4039, 4039, 4039, 2033, 1176, 1152, 1161, 1179, 1227, 1229,
     1244, 4039, 2038, 1258, 4039, 1318, 1256, 1261, 1304, 1305,
     4039, 2043, 1328, 1339, 2040, 2046, 4039, 1333, 1334, 2054,
     4039, 2054, 1388, 1375, 1362, 1370, 1380, 1606, 1378, 1378,
     1389, 1376, 1635, 1379, 1639, 1665, 1392, 1386, 1403, 1408,
     1430, 1402, 1399, 1669, 1407, 1433, 2105, 1435, 1436, 1443,
     2148, 1494, 1455, 1465, 1695, 1930, 1699, 1729, 1501, 2109,
     1759, 1789, 1502, 2116, 4039, 2101,    0, 4039,    0, 1487,
     1494,    0, 1487, 1500, 1513, 1502, 1512, 1522, 1525, 1565,
        0,    0,    0, 1523, 1532, 2113,    0,    0, 1531,    0,

     1681, 1546, 1550, 1556, 1569,    0, 1578, 1565,    0, 1573,
     1590, 2116, 1612,    0,    0,    0,    0, 1605,    0, 1603,
     1620, 2136,    0,    0, 4039, 2139, 4039, 2146, 1619, 1636,
     1640, 1650, 1650, 1664,    0, 1653, 1660, 2150, 1667, 1678,
     1711,    0, 1682, 1689, 2167, 4039, 2172, 4039, 2174, 1741,
     1684,    0, 1730, 1699, 1728, 1733,    0, 1724, 1732, 2176,
        0, 1742, 1749, 2177,    0, 1744, 1757, 2179, 4039, 4039,
     2204,    0, 1754, 1762, 2194, 1777, 1780, 1777, 1782, 1783,
        0, 1789,    0, 2215, 1776, 1786, 1784, 1803, 1792, 1790,
     1791, 1809, 1810,    0, 1797, 1809, 1822,    0,    0, 1819,

     1824, 4039, 2245, 1821,    0,    0, 2275, 2123, 1841, 1825,
     1839,    0,    0, 1845,    0,    0, 1846,    0, 1840, 1848,
     2232,    0, 1851, 1860, 2264,    0,    0,    0, 1855, 1862,
     2281, 4039, 2284, 4039, 2288, 1863, 1874, 1865, 2128, 1865,
     4039, 4039, 1887, 1888, 4039, 1882, 1890, 1909, 1888, 1902,
     1897, 4039, 1935, 4039, 4039, 2302, 4039, 4039, 4039, 1966,
     1913, 1921, 1927, 1960, 4039, 2011, 1954, 4039, 2304, 1978,
     4039, 4039, 4039, 4039, 1976, 4039, 2311, 4039, 4039, 1965,
     1983, 1981, 1995, 2003, 2003, 4039, 2312, 2015, 2028, 2040,
     4039, 2314, 2050, 4039, 2115, 2031, 2048, 2054, 4039, 2316,

     4039, 2319, 4039, 2326, 2213, 4039, 2328, 2058, 2059, 2058,
     2063, 2064, 4039, 2072, 4039, 2347, 2076, 2087, 2079, 2101,
     2107, 2107, 2108, 2127, 2128, 4039, 2117, 2134, 2141, 4039,
     4039, 2158, 2165, 2333, 2153, 4039, 4039, 2348, 2278, 2169,
     2153, 2167, 4039, 4039, 2177, 4039, 4039, 2183, 4039, 2346,
     4039, 2354, 4039, 4039, 4039, 2356, 2223, 2402, 2188, 2198,
     2189, 2186, 2206, 2208, 2202, 2214, 2406, 2412, 2208, 2215,
     2219, 2235, 2254, 2240, 2245, 2416, 2255, 2255, 2249, 2304,
     2258, 2270, 4039, 4039, 2296, 2328, 2288, 2334, 2318, 2347,
     2383, 2349, 2361, 2423, 2353, 2379, 2410, 4039, 2414, 4039,

     4039, 2430, 4039, 4039, 2443, 2459, 2467, 4039, 4039, 2471,
     2475,    0,    0, 2391, 2389, 2396, 2410, 2400, 2388, 2391,
        0,    0,    0,    0,    0,    0, 2410, 2411,    0, 2462,
        0, 2405,    0, 2420, 2414, 2412,    0,    0, 2456, 2428,
        0,    0, 2441,    0, 2429,    0, 2447, 2452, 2437,    0,
     2435, 2442, 2481, 2446,    0, 2458,    0, 2443, 2447,    0,
        0, 2450,    0, 2471, 2464, 2461, 2467, 2459, 2475, 2471,
     2472, 2465, 2466, 2506, 2484,    0, 2485,    0,    0, 2466,
     2479, 2514, 2539,    0, 2476, 2484, 2531, 2541, 2571,    0,
     2495, 2500, 2502, 2502, 2511, 2590, 2515, 2594, 4039, 4039,

     2541, 2519, 2527, 2559, 2529, 2523, 2520, 4039, 4039, 4039,
     4039, 4039, 4039, 2536, 2544, 4039, 2572, 4039, 2535, 4039,
     2557, 2551, 2550, 4039, 4039, 2582, 2554, 4039, 4039, 2567,
     4039, 4039, 2565, 2570, 2554, 4039, 2591, 2562, 4039, 2574,
     4039, 2558, 2562, 4039, 4039, 4039, 2580, 2569, 2568, 2574,
     2567, 2584, 2580, 2581, 2573, 2575, 2605, 2594, 4039, 2595,
     4039, 4039, 2617, 2611, 4039, 2619, 2646, 4039, 2597, 2603,
     2601, 2598, 2665, 2669, 2589, 2675, 2601, 2611, 2602, 2609,
     2609, 2620, 2679, 2636, 2625, 2642, 2647, 4039, 4039, 2648,
     2635, 2633, 2662, 2633, 2654, 2687, 2648, 2657, 2690, 2644,

     2656, 2647, 2656, 2657, 2651, 2661, 2666, 2683, 2655, 2652,
     2709, 2656, 2673, 2715, 2681, 2681, 2664, 4039, 4039, 2724,
     2715, 2728, 2725,    0,    0, 2680, 2678, 2695,    0, 2686,
     2684,    0,    0,    0,    0, 2679, 2686, 2720,    0, 2685,
     2703,    0, 2684,    0,    0, 2688, 2706,    0, 2704, 2745,
        0, 2702, 2693,    0,    0,    0,    0,    0, 2708, 2699,
        0, 2702, 2713, 2715,    0, 2701, 2708, 2751,    0,    0,
        0, 2703, 2710, 2753, 2780, 2725,    0, 2718,    0, 2799,
     2803, 4039, 4039, 2723, 2722, 2744, 4039, 2743, 2741, 4039,
     4039, 4039, 4039, 2787, 4039, 2741, 2769, 4039, 4039, 4039,

     2753, 2771, 4039, 2768, 2785, 4039, 2769, 2760, 4039, 4039,
     4039, 4039, 4039, 2775, 2766, 4039, 2768, 2778, 2779, 4039,
     2803, 4039, 4039, 4039, 2804, 2786, 4039, 2771, 4039, 2785,
     2838, 2844, 2776, 2777, 2826, 2811, 2798, 2800, 2799, 2811,
     2797, 2811, 2805, 2815, 2820, 2837, 2809, 2806, 2810, 2819,
     2826, 2814, 2813, 2810, 2814, 2829, 2843, 2829, 2826, 2877,
     2836, 2842, 2827, 2878, 2832, 2844, 2888, 2892,    0, 2853,
     2841, 2860,    0, 2856,    0,    0, 2857,    0, 2866,    0,
     2847, 2854, 2890,    0,    0, 2870,    0,    0, 2874, 2875,
     2872,    0, 2877, 4039, 2878, 2866, 2882, 4039, 2881, 4039,

     4039, 2882, 4039, 2888, 4039, 2908, 4039, 4039, 2891, 4039,
     4039, 2892, 2893, 4039, 2890, 2879, 2878, 2895, 2929, 2932,
     2883, 2932, 2909, 2901, 2893, 2899, 2894, 2891, 2895, 2910,
     2924, 2911, 2908, 2917, 2905, 2908, 2906, 2913, 2902, 2919,
     2924, 4039, 4039, 2925, 2912, 2910, 2939, 2910, 2931, 2964,
     2925, 2934, 2967, 2921, 2933, 2924, 2933, 2979, 2983, 2948,
     2945, 2936, 2943,    0, 2952,    0,    0,    0,    0, 2953,
        0, 2954, 2951, 2942, 2949, 4039, 2958, 4039, 4039, 4039,
     4039, 4039, 2941, 2960, 2992, 2992, 2993, 3009, 2969, 2972,
     2961, 2968, 2957, 2974, 2979, 2969, 2967, 2987, 2975, 2987,

     2974, 2988, 2982, 2992, 2997, 3014, 2986, 2983, 2987, 2996,
     3003, 2991,    0, 3005, 3003, 2994,    0, 2991, 4039, 3009,
     3007, 2998, 4039, 3004, 3010, 3044, 3063, 3058, 3047, 4039,
     3067, 3026, 3016, 3034, 3033, 3045, 3031, 3049, 3038, 3045,
     3051, 3043, 3049, 3043, 3040, 3044, 3059, 3073, 3059, 3056,
     3065, 3053, 3056, 3054,    0, 3069, 3066, 3056, 4039, 3072,
     3069, 3072, 3071, 3115, 3110, 3129, 3112, 3079, 3091, 3083,
     3089, 3084, 3091, 3097, 3088, 3100, 3089, 3096, 3085, 3102,
     3107, 3097, 3095, 3108,    0,    0, 3109, 4039, 4039, 3148,
     3097, 3154, 3158, 3153, 3110, 3123, 3112, 3124, 3115, 3129,

     3126, 3108, 3119, 3118, 3130, 3116, 3134, 3123, 3130, 3179,
     3147, 3131, 3166, 3186, 3180, 3129, 3140, 3154, 3151, 3152,
     3144, 3150, 3145, 3152, 3158, 3149, 3202, 3150, 3151, 3210,
     3200, 3173, 3162, 3174, 3165, 3179, 3176, 3173, 3172, 3222,
     3226, 3221, 3170, 3188, 3202, 3199, 3185, 3187, 3245, 3240,
     3208, 3256, 3260, 3208, 3239, 3263, 3214, 3242, 3219, 3217,
     3229, 3222, 3254, 3232, 3275, 3260, 3280, 3284, 3288, 3292,
     3296, 4039, 3300, 3315, 3325, 3334, 3294, 3348, 3296, 3351,
     3297, 3363, 3298, 3319, 3365, 3379, 3389, 3321, 3323, 3395,
     3328, 3400, 3405, 3330, 3332, 3355, 3357, 3359, 3410, 3361,

     3370, 3372, 3393, 3398, 3403, 3408, 3412, 3414, 3416, 3418,
     3420, 3422, 3424, 3426, 3428, 3430, 3432, 3446, 3461, 3464,
     3466, 3468, 3482, 3485, 3487, 3489, 3491, 3505, 3514, 3528,
     3537, 3547
    } ;

static yyconst short int yy_def[2133] =
    {   0,
     2072,    1, 2072, 2072, 2072, 2073, 2072, 2072, 2074, 2072,
     2075, 2072, 2072, 2072, 2073,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15, 2072, 2072,   15,   15,   15,
        5,   15,    7, 2072, 2072, 2072,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15, 2072, 2072,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   32, 2072,
     2076,   15,   15,   15,   15, 2072,   15,    7,   70, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2074, 2072, 2074, 2072,
     2077, 2072, 2072, 2078, 2072, 2072,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15, 2079, 2079, 2072, 2072,
     2072, 2072, 2072, 2072,   32,   79, 2072, 2072, 2077, 2072,
     2072, 2072, 2072, 2072, 2072, 2072,   15,   15, 2072,   15,
       15,   15, 2080, 2081, 2081, 2072,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,

       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15, 2072, 2072, 2072, 2082, 2072,
     2072, 2083, 2084,   15, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2085, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2078, 2078, 2086,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15, 2072, 2072,
     2072, 2072, 2072, 2072, 2087, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072,   15, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,

       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15, 2088,
     2089,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072,   15, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2090, 2072, 2072, 2072, 2072, 2091, 2072, 2072, 2072,
     2072, 2072, 2072, 2092, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2093, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2094, 2072, 2072, 2072, 2095, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2096, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2097, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2098, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2099, 2072, 2078, 2072, 2072,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072,   15, 2072, 2072, 2072,
     2072, 2072,   15,   15, 2072,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15, 2100, 2101,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15, 2102, 2103,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15, 2072,

     2072,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15, 2072, 2072, 2072, 2072,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15, 2072, 2104, 2105,   15,   15,   15,
       15, 2072,   15, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2106, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2107, 2072, 2072, 2072,
     2072, 2072, 2072, 2108, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2109, 2072, 2072, 2072,
     2110, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2111, 2112, 2072, 2113, 2072, 2072, 2072, 2114, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2115, 2116, 2072, 2072, 2072, 2117,
     2072, 2072, 2118,   15,   15,   15,   15, 2072,   15,   15,
       15,   15,   15,   15, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2119, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072,   15, 2072,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,

       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15, 2072, 2072, 2072, 2072,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15, 2072, 2072, 2072, 2072,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15, 2072, 2072,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,

       15, 2072,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15, 2072, 2072, 2072, 2072, 2072,   15, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2120, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2121, 2072, 2072, 2072, 2122, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2118, 2118,   15,   15,
       15,   15,   15,   15,   15,   15, 2072,   15, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2123, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15, 2072,   15,
       15,   15,   15,   15, 2072,   15, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2124, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2125, 2072, 2072, 2072,
     2072, 2072, 2072, 2126, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2118, 2072,   15,   15,   15,   15,   15,   15,
       15,   15, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15, 2072,   15,   15,   15,   15, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2127, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,   15,
     2072, 2072,   15,   15,   15,   15,   15,   15, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2128,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
     2072,   15,   15, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072,   15, 2072, 2072,   15, 2072,
       15,   15,   15, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,   15,
       15,   15,   15,   15,   15,   15,   15,   15,   15, 2072,
       15, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072,   15, 2072,   15, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072,   15,   15,   15,   15,   15, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072,   15, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072,   15,   15,   15, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2129,   15, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072,   15,   15, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2129,   15, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072,   15, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2130,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2130, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2131, 2072, 2072, 2131, 2132, 2072,
     2132,    0, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072
    } ;

static yyconst short int yy_nxt[4105] =
    {   0,
        4,    5,    6,    7,    5,    8,    9,   10,   11,    4,
        4,   12,   13,   14,   14,   14,   14,   14,   14,   14,
       13,   15,   16,   15,   17,   15,   18,   19,   15,   15,
       15,   20,   21,   22,   15,   23,   24,   25,   26,   27,
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
       28,   29,   28,   28,   28,   28,   28,   30,   28,   28,
       28,   28,   28,   28,   28,   31,   32,   33,   31,   34,
      108,   35,   36,  106,  106,  106,  106,  109,  109,  109,
      109,  109,  109,  109, 1272,   37,   38,   39,   40,   41,
       42,   43,   44,   45,   37,   46,   47,   48,   37,   49,

       50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
       60,   61,   37,   37,   37,   62,   37,   63,   64,   65,
       37,   66,   67,   68,   37,   37,   37,   37,   37,   69,
       69,   70,   69,   34,  127,   35,   71,  110,  110,  110,
      110,  115,  115,  115,  115,  115,  115,  115,  262, 1273,
       72,   73,   74,  111,   75,   43,  125,   45,  128,  126,
       47,  465,  466,   49,   50,   51,   76,  116,  125,  223,
       73,  126,  263,  113,  455,  264,  113,  129,  130,  131,
      132,  133,  134,  241,  456,  224,   77,   78,   79,   33,
       78,   34,  113,   35,   36,  171,  113,  110,  110,  110,

      110,  171,  531,  532,  145,  145,  145,  145,   80,   81,
       82,   83,   84,   85,   86,   87,  157,   88,  158,   89,
      340,  159,  458,   90,   52,   53,   91,   92,   93,   94,
       95,   96,   97,   98, 1274,  137,  341,   99,  459,  100,
      101,  102,  146,  103,  104,  105, 2072, 2072, 2072, 2072,
     2072,  147, 2072, 2072,  150,  153,  437,  148,  438,  137,
      151,  160,  178,  161,  272,  138,  509,  273,  178,   74,
      147,  117,  162,  150,  154,  163,  148,   47,  444,  151,
      445, 1275,  510, 2072,  135,  135,  136,  135,   34,  138,
       35,   71,  239,  354,  485,  240,  355,  486,  155,   69,

       69,   70,   69,  241,  356,   72,   73,  242,  357,   75,
       43,  185,   45,  145,  145,  145,  145,  185,   49,   50,
       51,   76,  481,  451,  482,   73,  185,  186,  185,  187,
      185,  188,  189,  190,  452,  495,  191,  136,  136,  136,
      136,   77,  139,  496,  259,  274, 1278,  275,  140,  141,
      276,  146,  145,  145,  145,  145,  112,  112,  112,  112,
      112, 1279,  113,  150,  261,  113,  527,  261,  449,  151,
      106,  106,  106,  106,  185,  142,  112,  143,  112,  112,
      528,  113,  150,  261,  762,  113,  216,  261,  217,  218,
      146,  529,  144,  145,  145,  145,  145,  219,  267,  269,

      220,  221,  530,  762,  268,  270,  374, 1280,  277,  374,
      278,  110,  110,  110,  110,  197,  463,  267,  269,  279,
      474,  197,  280,  268,  270,  374,  464,  475,  578,  374,
      579,  146,  164,  375,  375,  375,  375,  476,  165,  166,
      390,  112,  248,  390,  533,  534,  167,  112,  248,  168,
      169,  170,  171,  171,  172,  171,  173,  174,  175,  390,
      112,  174,  540,  390, 1281,  592,  112,  176,  177,  178,
      179,  180,  178,  178,  181,  182,  593, 1282,  541,  182,
      183,  184,  192,  193,  194,  195,  196,  197,  198,  199,
      545,  288,  585,  199,  586, 1283,  200,  288,  356,  201,

      202,  147,  399,  399,  399,  399,  535,  148,  302,  303,
      302,  304,  302,  305,  306,  307,  536,  599,  308,  491,
      147,  203,  204,  205,  206,  492,  207,  208,  209,  493,
      494,  210,  622,  600,  623,  211, 1288,  596,  212,  213,
      214,  215,  225,  225,  226,  225,  227,  597,  228,  606,
      607,  228,  115,  115,  115,  115,  115,  115,  115,  511,
      229,  225,  230,  231,  232,  225,  233,  234, 1289,  512,
      513,  235,  650,  390,  236,  514,  390,  515,  116,  237,
      243,  244,  245,  246,  247,  248,  249,  250,  651,  391,
      626,  251,  390,  627,  252,  253,  390,  254,  255,   70,

       70,   70,   70,   34,  636,   35,   71,  269,  145,  145,
      145,  145,  637,  270,  428,  375,  375,  375,  375,  414,
      256,  257,  414,  429,  604,   85,  269,   87,  571,  430,
      333, 1290,  334,  335,  605,   90,   76,  572,  414,  372,
      257,  336,  414,  573,  337,  338,  109,  109,  109,  109,
      109,  109,  109,  668,  669,  400,  258,  145,  145,  145,
      145,  378,  378,  378,  378,  378,  378,  378,  403,  395,
      395,  395,  395,  405,  405,  405,  405, 1293,  374,  670,
      671,  374,  401,  401,  401,  401,  401,  401,  401,  672,
      664,  406,  406,  406,  406,  146,  281,  374,  407,  673,

      295,  374,  282,  283,  665,  550,  295,  396,  550,  397,
      284,  398, 1295,  285,  286,  287,  288,  288,  289,  288,
      290,  291,  292,  248,  550,  291,  677,  538,  550,  248,
      666,  293,  294,  295,  296,  297,  295,  295,  298,  299,
      539,  667,  678,  299,  300,  301,  309,  310,  311,  312,
      313,  314,  315,  316,  812,  302,  590,  316, 1081, 1082,
      317,  302,  302,  318,  319,  267,  375,  375,  375,  375,
      813,  268,  401,  401,  401,  401,  401,  401,  401,  145,
      145,  145,  145,  314,  267,  320,  321,  322,  323,  314,
      324,  325,  326, 1298,  615,  327,  742, 1048,  743,  328,

     1049,  616,  329,  330,  331,  332,  342,  342,  342,  342,
      342,  617,  343,  402,  225,  343,  363,  146, 1305,  828,
      225,  829,  363, 1040,  344,  342,  345,  346,  347,  342,
      348,  349, 1041,  225,  731,  350,  838,  410,  351,  225,
      410, 1308,  732,  352,  358,  359,  360,  361,  362,  363,
      364,  365,  839,  411,  414,  366,  410,  414,  367,  368,
      410,  369,  370, 1309,  850,  363,  497,  412, 1310,  675,
      415,  363,  851,  414,  498,  499,  500,  414,  548,  548,
      548,  548,  676, 1311,  416,  431,  431,  432,  431,  433,
      400,  434,  225,  638,  434, 1244, 1245,  722,  225,  722,

      722,  639,  640,  641,  431,  431,  431,  431,  431,  737,
      434,  225,  508,  547,  434,  552,  547,  225,  552,  738,
      727,  435,  225,  260,  728, 1312,  729,  575,  225,  260,
      575,  553,  547,  836,  552,  842,  547, 1315,  552,  837,
     1316,  225,  260,  502,  503,  504,  575,  225,  260,  505,
      575,  843,  506,  685,  685,  685,  685,  576,  844,  342,
      507,  520,  521,  973,  845,  342, 1317,  995,  522,  522,
      523,  522,  524,  793,  525,  632,  342,  525,  342,  974,
     1318,  633,  342,  996,  342,  634,  635,  522,  522,  522,
      522,  522,  794,  525,  373,  342,  649,  525,  652,  389,

      373,  342,  795,  526,  342,  389, 1319,  906,  653,  654,
      342,  866,  912,  373,  655,  907,  656, 1320,  389,  373,
     1005,  880,  913,  342,  389,  643,  644,  645, 1006,  342,
      867,  646, 1059,  917,  647,  918,  683,  683,  684,  683,
      881, 1060,  648,  520,  521,  377,  696,  697,  696,  696,
      661,  661,  661,  661,  661,  858,  662,  937,  858,  662,
      698,  699,  698,  698,  399,  399,  399,  399, 1321,  661,
      661,  661,  661,  661,  858,  662,  937, 1322,  858,  662,
      405,  405,  405,  405,  993,  663,  395,  395,  395,  395,
      994,  701,  701,  401,  401,  401,  401,  401,  401,  401,

      406,  406,  406,  406,  409, 1323,  985,  702,  986, 1324,
      409,  703,  704,  718,  719,  718,  718,  705, 1325,  413,
      706,  707, 1328,  409,  708,  413,  709, 1194,  710,  409,
      720,  721,  720,  720,  431, 1195, 1329,  902,  413,  860,
      431,  903,  860,  904,  413,  718,  719,  718,  718,  718,
      719,  718,  718,  431,  720,  721,  720,  720,  860,  431,
      763,  764,  860,  999,  958, 1015,  522,  765,  765,  766,
      765,  767,  522,  768, 1001, 1027,  768, 1330, 1331, 1000,
     1002, 1332, 1333,  959, 1016,  522,  765,  765,  765,  765,
      765,  522,  768,  960, 1027, 1202,  768,  773,  773,  774,

      773,  775, 1133,  776,  546,  549,  776, 1334, 1134, 1335,
      546,  549,  683,  683,  684,  683,  773,  773,  773,  773,
      773,  377,  776,  546,  549,  551,  776,  783,  784,  546,
      549,  551, 1336,  574,  785,  785,  786,  785,  787,  574,
      788, 1105,  661,  788,  551, 1106, 1154, 1107,  661, 1089,
      551, 1090,  574,  785,  785,  785,  785,  785,  574,  788,
     1151,  661, 1155,  788,  800,  801,  945,  661, 1091,  945,
     1090,  802,  802,  803,  802,  804, 1181,  805, 1169, 1152,
      805, 1337,  763,  764, 1338,  945, 1182, 1170, 1339,  945,
      802,  802,  802,  802,  802,  939,  805, 1169,  939, 1210,

      805,  816,  816,  817,  816,  818, 1170,  819, 1294, 1340,
      819, 1343,  783,  784,  939, 1211, 1344, 1252,  939, 1253,
      816,  816,  816,  816,  816,  953,  819, 1294,  953, 1313,
      819,  823,  823,  824,  823,  825, 1252,  826, 1253, 1314,
      826, 1264,  800,  801,  953, 1265, 1345, 1266,  953, 1346,
      823,  823,  823,  823,  823,  966,  826, 1296,  966, 1341,
      826,  846,  846,  847,  846,  848,  978,  849, 1326,  978,
      849, 1284, 1347, 1297,  966, 1342, 1327, 1285,  966, 1348,
      846,  846,  846,  846,  846,  978,  849, 1353, 1354,  978,
      849,  861,  861,  862,  861,  863,  983,  864, 1358,  983,

      864,  684,  684,  684,  684,  685,  685,  685,  685, 1359,
      861,  861,  861,  861,  861,  983,  864, 1360, 1361,  983,
      864,  872,  872,  873,  872,  874, 1004,  875, 1362, 1004,
      875, 1363, 1364, 1365, 1013, 1366, 1368, 1013, 1369, 1370,
      872,  872,  872,  872,  872, 1004,  875, 1371, 1372, 1004,
      875,  886,  887, 1013, 1373, 1374, 1375, 1013,  888,  888,
      889,  888,  890, 1022,  891, 1377, 1022,  891, 1038, 1038,
     1038, 1038,  886,  887, 1380, 1378, 1381,  888,  888,  888,
      888,  888, 1022,  891, 1379, 1032, 1022,  891, 1032,  696,
      697,  696,  696, 1045, 1045, 1045, 1045,  698,  699,  698,

      698, 1382, 1394, 1395, 1032, 1396, 1406, 1411, 1032, 1046,
     1046, 1046, 1046, 1057, 1057, 1057, 1057, 1061, 1061, 1061,
     1061, 1065, 1065, 1065, 1065,  718,  719,  718,  718, 1067,
     1412, 1068, 1070, 1070, 1070, 1070, 1067, 1413, 1068,  720,
      721,  720,  720, 1071, 1414, 1072, 1074, 1074, 1074, 1074,
     1071, 1415, 1072, 1069, 1416, 1062, 1418, 1063, 1419, 1064,
     1069, 1097, 1098, 1099, 1417, 1126, 1128, 1073, 1126, 1128,
     1038, 1038, 1038, 1038, 1073,  722, 1420,  722,  722,  379,
     1097, 1098, 1100,  119, 1126, 1128,  379,  765, 1126, 1128,
     1101,  119, 1421,  765, 1424,  773, 1075, 1075, 1075, 1075,

     1075,  773, 1076, 1425, 1426, 1076,  765, 1038, 1038, 1038,
     1038, 1421,  765, 1427,  773, 1075, 1075, 1075, 1075, 1075,
      773, 1076, 1428, 1429, 1430, 1076, 1093, 1093, 1094, 1093,
     1095, 1147, 1096,  119, 1147, 1096, 1367, 1367, 1367, 1367,
     1045, 1045, 1045, 1045,  379, 1093, 1093, 1093, 1093, 1093,
     1147, 1096, 1431, 1432, 1147, 1096, 1109, 1109, 1110, 1109,
     1111, 1149, 1112,  119, 1149, 1112, 1046, 1046, 1046, 1046,
     1376, 1376, 1376, 1376,  379, 1109, 1109, 1109, 1109, 1109,
     1149, 1112, 1433, 1434, 1149, 1112, 1119, 1119, 1120, 1119,
     1121, 1435, 1122, 1436, 1437, 1122, 1065, 1065, 1065, 1065,

     1402, 1402, 1402, 1402,  785, 1119, 1119, 1119, 1119, 1119,
      785, 1122, 1438,  119,  379, 1122, 1135, 1135, 1136, 1135,
     1137, 1422, 1138,  785, 1439, 1138, 1440, 1423, 1403,  785,
     1405, 1405, 1405, 1405,  802, 1135, 1135, 1135, 1135, 1135,
      802, 1138,  119,  379,  119, 1138, 1142, 1142, 1143, 1142,
     1144, 1441, 1145,  802, 1445, 1145, 1447, 1442, 1404,  802,
     1407, 1407, 1407, 1407,  816, 1142, 1142, 1142, 1142, 1142,
      816, 1145, 1448, 1446, 1449, 1145, 1157, 1157, 1158, 1157,
     1159, 1443, 1160,  816,  119, 1160,  379, 1444, 1408,  816,
     1410, 1410, 1410, 1410,  823, 1157, 1157, 1157, 1157, 1157,

      823, 1160,  119,  379,  119, 1160, 1161, 1161, 1162, 1161,
     1163,  379, 1164,  823,  119, 1164,  379, 1454, 1409,  823,
     1455, 1456, 1457, 1458,  846, 1161, 1161, 1161, 1161, 1161,
      846, 1164, 1459, 1465, 1466, 1164, 1165, 1165, 1166, 1165,
     1167, 1467, 1168,  846, 1468, 1168, 1469, 1470, 1471,  846,
     1472, 1473, 1474, 1475,  857, 1165, 1165, 1165, 1165, 1165,
      857, 1168, 1476, 1477, 1478, 1168, 1172, 1172, 1173, 1172,
     1174,  859, 1175,  857,  861, 1175, 1483,  859,  872,  857,
      861, 1490, 1491, 1492,  872, 1172, 1172, 1172, 1172, 1172,
      859, 1175, 1493,  861, 1494, 1175,  859,  872, 1233,  861,

      119, 1233,  379,  872, 1218, 1218, 1219, 1218, 1220, 1235,
     1221,  119, 1235, 1221,  379,  119,  379, 1233, 1495, 1496,
     1497, 1233, 1498, 1218, 1218, 1218, 1218, 1218, 1235, 1221,
     1499, 1500, 1235, 1221, 1222, 1222, 1223, 1222, 1224, 1501,
     1225, 1502, 1505, 1225, 1397, 1398, 1399, 1400, 1506, 1401,
     1503, 1507,  888, 1222, 1222, 1222, 1222, 1222,  888, 1225,
     1504, 1511, 1508, 1225, 1228, 1228, 1229, 1228, 1230, 1256,
     1231,  888, 1256, 1231, 1512, 1513,  938,  888, 1257, 1258,
     1259, 1508,  938, 1228, 1228, 1228, 1228, 1228, 1256, 1231,
      944, 1269, 1256, 1231, 1269,  938,  944, 1257, 1258, 1259,

     1277,  938, 1287, 1277, 1514, 1287, 1509, 1260, 1292,  944,
     1269, 1292, 1510, 1517, 1269,  944,  952, 1300, 1518, 1277,
     1300, 1287,  952, 1277, 1519, 1287, 1302, 1292, 1520, 1302,
     1521, 1292, 1522,  965, 1304,  952, 1300, 1304, 1523,  965,
     1300,  952,  977, 1307,  982, 1302, 1307, 1524,  977, 1302,
      982, 1525,  965, 1304, 1003, 1515, 1516, 1304,  965, 1012,
     1003,  977, 1307,  982, 1021, 1012, 1307,  977, 1350,  982,
     1021, 1350, 1526, 1003, 1352, 1031, 1527, 1352, 1012, 1003,
     1528, 1031, 1356, 1021, 1012, 1356, 1529, 1350, 1533, 1021,
     1530, 1350, 1534, 1352, 1031, 1535, 1531, 1352, 1538, 1539,

     1031, 1356, 1540, 1541, 1542, 1356, 1057, 1057, 1057, 1057,
     1070, 1070, 1070, 1070, 1067, 1543, 1068, 1074, 1074, 1074,
     1074, 1071, 1075, 1072, 1489, 1489, 1489, 1489, 1075, 1367,
     1367, 1367, 1367, 1548, 1093, 1549, 1550, 1109, 1069, 1532,
     1093, 1075, 1551, 1109,  396, 1073,  397, 1075,  398, 1061,
     1061, 1061, 1061, 1093, 1384, 1384, 1109, 1119, 1532, 1093,
     1125, 1552, 1109, 1119, 1553, 1554, 1125, 1127, 1555, 1556,
     1385, 1135, 1557, 1127, 1386, 1387, 1119, 1135, 1558, 1125,
     1388, 1559, 1119, 1389, 1390, 1125, 1127, 1391, 1142, 1392,
     1135, 1393, 1127, 1146, 1142, 1148, 1135, 1157, 1161, 1146,

     1165, 1148, 1560, 1157, 1161, 1561, 1165, 1142, 1564, 1568,
     1569, 1570, 1146, 1142, 1148, 1172, 1157, 1161, 1146, 1165,
     1148, 1172, 1157, 1161, 1571, 1165, 1450, 1450, 1451, 1450,
     1452, 1572, 1453, 1358, 1172, 1453, 1575, 1460, 1461, 1462,
     1172, 1537, 1576, 1577, 1537, 1450, 1450, 1450, 1450, 1450,
     1578, 1453, 1579, 1218, 1581, 1453, 1460, 1461, 1463, 1218,
     1537,  686, 1582, 1584, 1537, 1580, 1464, 1479, 1479, 1480,
     1479, 1481, 1218, 1482,  701, 1585, 1482, 1586, 1218, 1489,
     1489, 1489, 1489,  701,  701, 1222, 1479, 1479, 1479, 1479,
     1479, 1222, 1482, 1587, 1599, 1600, 1482, 1484, 1484, 1485,

     1484, 1486, 1228, 1487, 1222, 1232, 1487, 1601, 1228, 1234,
     1222, 1232,  711, 1602, 1603, 1234, 1484, 1484, 1484, 1484,
     1488, 1228, 1487, 1255, 1232, 1268, 1487, 1228, 1234, 1255,
     1232, 1268, 1276, 1286, 1234, 1291, 1604, 1299, 1276, 1286,
     1301, 1291, 1255, 1299, 1268, 1607, 1301, 1303, 1255, 1306,
     1268, 1276, 1286, 1303, 1291, 1306, 1299, 1276, 1286, 1301,
     1291, 1563, 1299, 1608, 1563, 1301, 1303, 1349, 1306, 1544,
     1545, 1546, 1303, 1349, 1306, 1351, 1566, 1355, 1609, 1566,
     1563, 1351, 1605, 1355, 1563, 1606, 1349, 1610, 1544, 1545,
     1546, 1611, 1349, 1567, 1351, 1566, 1355, 1612, 1547, 1566,

     1351, 1613, 1355, 1573, 1573, 1574, 1573, 1367, 1367, 1367,
     1367, 1615, 1358, 1583, 1583, 1583, 1583, 1376, 1376, 1376,
     1376, 1616, 1589, 1589, 1614, 1614, 1614, 1614, 1618, 1619,
     1617, 1402, 1402, 1402, 1402, 1624, 1626, 1627, 1590, 1625,
     1630, 1631, 1591, 1592, 1405, 1405, 1405, 1405, 1593, 1632,
     1628, 1594, 1595, 1633, 1634, 1596, 1629, 1597, 1639, 1598,
     1620, 1620, 1620, 1620, 1640, 1641, 1642, 1621, 1407, 1407,
     1407, 1407, 1410, 1410, 1410, 1410, 1622, 1622, 1622, 1622,
     1643, 1645, 1646, 1623, 1635, 1635, 1636, 1635, 1637,  119,
     1638, 1647, 1648, 1638, 1649,  119,  379, 1650, 1651, 1644,

     1652, 1653, 1450, 1635, 1635, 1635, 1635, 1635, 1450, 1638,
      119, 1654, 1656, 1638, 1657, 1658, 1659, 1655, 1660, 1661,
     1662, 1450, 1663, 1664, 1669, 1670,  119, 1450, 1665, 1665,
     1666, 1665, 1667,  379, 1668, 1479,  119, 1668,  379, 1676,
     1677, 1479, 1675, 1675, 1675, 1675, 1678, 1665, 1665, 1665,
     1665, 1665, 1484, 1668, 1479, 1679, 1680, 1668, 1484, 1681,
     1479, 1671, 1671, 1672, 1671, 1673, 1684, 1674, 1685, 1688,
     1674, 1484, 1489, 1489, 1489, 1489, 1689, 1484, 1690, 1691,
     1671, 1671, 1671, 1671, 1671, 1682, 1674, 1692, 1695, 1683,
     1674, 1675, 1675, 1675, 1675, 1583, 1583, 1583, 1583, 1686,

     1694, 1696, 1697, 1694, 1698, 1687, 1699, 1700, 1701, 1702,
     1703, 1704, 1536, 1705, 1706, 1707, 1708, 1711, 1536, 1694,
     1709, 1712, 1713, 1694, 1714, 1699, 1710, 1715, 1716, 1717,
     1718, 1536, 1719, 1721, 1722, 1723, 1721, 1536, 1562, 1725,
     1565, 1726, 1725, 1727, 1562, 1728, 1565, 1675, 1675, 1675,
     1675, 1729, 1721, 1730, 1733, 1734, 1721, 1562, 1725, 1565,
     1735, 1736, 1725, 1562, 1737, 1565, 1573, 1573, 1574, 1573,
     1574, 1574, 1574, 1574, 1738, 1358, 1731, 1731, 1731, 1732,
     1583, 1583, 1583, 1583, 1739, 1740,  701, 1741, 1742, 1743,
     1745, 1746, 1744, 1747, 1748, 1054, 1055, 1056, 1054, 1749,

     1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
     1760, 1760, 1760, 1760, 1761, 1762, 1614, 1614, 1614, 1614,
     1764, 1765, 1766, 1767, 1763, 1620, 1620, 1620, 1620, 1622,
     1622, 1622, 1622, 1768, 1769, 1770, 1771, 1772, 1773,  119,
      379, 1635, 1774, 1775,  119, 1777, 1778, 1635, 1779, 1776,
     1784, 1785, 1786, 1787, 1062, 1788, 1063, 1789, 1064, 1790,
     1635,  119,  379,  119,  379, 1792, 1635, 1780, 1780, 1781,
     1780, 1782, 1665, 1783, 1671, 1793, 1783, 1794, 1665, 1795,
     1671, 1675, 1675, 1675, 1675, 1796, 1780, 1780, 1780, 1780,
     1780, 1665, 1783, 1671, 1797, 1798, 1783, 1665, 1799, 1671,

     1675, 1675, 1675, 1675, 1731, 1731, 1731, 1731, 1693, 1800,
     1802, 1803, 1804, 1806, 1693, 1801, 1806, 1807, 1808, 1809,
     1810, 1811, 1812, 1813, 1720, 1724, 1814, 1693, 1815, 1816,
     1720, 1724, 1806, 1693, 1735, 1819, 1806, 1820, 1791, 1731,
     1731, 1731, 1731, 1720, 1724, 1731, 1731, 1731, 1731, 1720,
     1724, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829,
     1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1384,
     1839, 1840, 1384, 1384, 1841, 1853, 1817, 1818, 1760, 1760,
     1760, 1760, 1854, 1843, 1843, 1855, 1394, 1856, 1857, 1858,
     1858, 1858, 1858, 1859, 1859, 1859, 1859, 1860, 1861, 1844,

     1864, 1865, 1862, 1845, 1846, 1863, 1866,  119,  379, 1847,
     1867, 1780, 1848, 1849, 1868, 1869, 1850, 1780, 1851, 1870,
     1852, 1871, 1872, 1873, 1874, 1876, 1877, 1875, 1878, 1805,
     1780, 1879, 1880, 1881, 1882, 1805, 1780, 1735, 1883, 1884,
     1885, 1886, 1887, 1888, 1889,  701, 1890, 1891, 1805, 1892,
     1589, 1893, 1894, 1589, 1805, 1589, 1895, 1896, 1897, 1898,
      711, 1899, 1900, 1384, 1901, 1902, 1903, 1905, 1906, 1904,
     1907, 1908, 1611, 1612, 1613, 1611, 1909, 1910, 1911, 1912,
     1858, 1858, 1858, 1858, 1859, 1859, 1859, 1859, 1913, 1914,
     1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924,

     1925, 1926, 1927, 1928, 1929, 1928, 1928, 1928, 1928, 1928,
     1928, 1928, 1930, 1932, 1933, 1934, 1935, 1936, 1589, 1937,
     1938, 1054, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1939,
     1941, 1942, 1940, 1943, 1944, 1945, 1946, 1947, 1948, 1949,
     1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959,
     1960, 1961, 1962, 1963, 1964, 1965, 1967, 1965, 1965, 1965,
     1965, 1965, 1965, 1965, 1966, 1966, 1966, 1966, 1927, 1928,
     1930, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1968,  701,
     1931, 1931, 1931, 1931, 1931, 1931, 1931,  701, 1969, 1970,
     1971, 1972, 1974, 1975, 1973, 1384, 1976, 1977, 1978, 1843,

     1979, 1980, 1843, 1843, 1981, 1982, 1983, 1984, 1394, 1985,
     1986, 1987, 1988, 1989, 1990, 1991, 1966, 1966, 1992, 1966,
     1964, 1965, 1993, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
     1966, 1966, 1966, 1966, 1995, 1589, 1996, 1997, 1998, 1999,
     2000, 2001, 2002, 2003, 2004, 2005, 1843, 2006, 2007, 1611,
     2008, 2010, 2011, 2009, 2013, 1966, 1966, 1966, 1966, 2014,
     2014, 2014, 2014, 1993, 2015, 2016, 2017, 2018, 2019,  711,
      711, 1384, 1384, 2020, 2021, 2022, 2023, 2025, 2026, 2024,
     2027, 2027, 2027, 2027, 2028, 2029, 2030, 2014, 2014, 2014,
     2014, 2031, 1589, 1589, 1054, 1054, 1843, 2032, 2033, 2034,

     2035, 2036, 2037, 2027, 2027, 2027, 2027, 2038, 2039, 2042,
     2012, 2040, 2040, 2040, 2040, 2043, 2044, 2045, 2046, 1394,
     1394, 2047, 2048, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
     2040, 2049, 2050, 1843, 2050, 2050, 2050, 2050, 2050, 2050,
     2050, 1843, 1611, 1611, 2051, 2052, 2053, 2053, 2053, 2053,
     2049, 2050, 2054, 2050, 2050, 2050, 2050, 2050, 2050, 2050,
     2055, 2053, 2053, 2053, 2053, 2056, 2057, 2058, 2059, 2060,
     2061, 2062, 2063, 2064, 2065, 2066, 2067, 2067, 2067, 2067,
     2069, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2070,
     2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070, 2070,

     2070,   37,   37,   37,   37,   37,  373,  373,  389,  413,
      549,   37,   37,   37,   37,  107,  107, 1271,  107,  107,
      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
      112,  551,  551,  857,  857,  859,  859,  112,  112,  260,
      944,  944,  977,  977,  982,  982,  260,  260,  376,  376,
     1270,  376,  376,  376,  376,  376,  376,  376,  376,  376,
      376,  376,  376,  409,  409,  409,  546, 1003, 1003, 1012,
     1012, 1021, 1021, 1125, 1125,  546,  546,  574,  574,  574,
      378,  378, 1127, 1127, 1146, 1146, 1267,  378,  378,  700,
      700,  700,  700,  700,  700,  700,  700,  700,  700,  700,

      700,  700,  700,  700,  938, 1148, 1148,  938,  938,  952,
     1232, 1232,  952,  952,  965, 1234, 1234,  965,  965, 1031,
     1255, 1255, 1031, 1031, 1268, 1268, 1276, 1276, 1286, 1286,
     1291, 1291, 1299, 1299, 1301, 1301, 1303, 1303, 1306, 1306,
     1349, 1349, 1351, 1351, 1355, 1355, 1357, 1357, 1263, 1357,
     1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357,
     1357, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
     1383, 1383, 1383, 1383, 1383, 1383, 1536, 1536, 1562, 1562,
     1565, 1565, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
     1588, 1588, 1588, 1588, 1588, 1588, 1588, 1693, 1693, 1720,

     1720, 1724, 1724, 1805, 1805, 1842, 1842, 1842, 1842, 1842,
     1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
     1994, 1262, 1994, 1994, 1261, 1994, 1994, 1994, 1994, 2041,
     2041, 1254, 1251, 1250, 1249, 2041, 2041, 2041, 2068, 2068,
     1248, 1247, 1246, 1243, 2068, 2068, 2068, 2068, 2071, 2071,
     1242, 1241, 1240, 1239, 2071, 2071, 2071, 1066, 1238, 1237,
     1236,  379,  119, 1227, 1226,  119, 1217, 1216,  379,  119,
     1215, 1214, 1213, 1212, 1209,  379,  119, 1208, 1207, 1206,
     1205, 1204, 1203, 1202,  379,  119, 1201, 1200, 1199, 1198,
     1197, 1196, 1193, 1192, 1191, 1190, 1189, 1188, 1187, 1186,

     1185,  379,  119, 1184, 1183,  379,  119, 1180, 1179, 1178,
     1177, 1176, 1171,  379,  119, 1156, 1153, 1150,  379,  119,
     1141, 1140, 1139,  379,  119, 1132, 1131, 1130, 1129,  379,
      119, 1124, 1123, 1118, 1117, 1116, 1115, 1114, 1113, 1108,
     1104, 1103, 1102, 1092, 1088, 1087, 1086, 1085, 1084, 1083,
     1080, 1079, 1078, 1077, 1066, 1058, 1056, 1055, 1054, 1053,
     1052, 1051, 1050, 1047, 1044, 1043, 1042, 1039, 1037, 1036,
     1035, 1034, 1033,  885, 1030, 1029, 1028, 1026, 1025, 1024,
     1023, 1020, 1019, 1018, 1017, 1014, 1011, 1010, 1009, 1008,
     1007,  998,  997,  992,  991,  990,  989,  988,  987,  984,

      981,  980,  979,  976,  975,  972,  971,  970,  969,  968,
      967,  964,  963,  962,  961,  957,  956,  955,  954,  951,
      950,  949,  948,  947,  946,  943,  942,  941,  940,  936,
      935,  934,  933,  932,  931,  930,  929,  928,  927,  926,
      925,  924,  923,  922,  921,  920,  919,  916,  915,  914,
      911,  910,  909,  908,  905,  901,  725,  900,  899,  898,
      897,  896,  895,  894,  893,  892,  885,  884,  883,  882,
      879,  878,  877,  876,  871,  870,  869,  868,  865,  379,
      119,  856,  855,  854,  853,  852,  841,  840,  835,  834,
      833,  832,  831,  830,  827,  822,  821,  820,  815,  814,

      811,  810,  809,  808,  807,  806,  799,  798,  797,  796,
      792,  791,  790,  789,  782,  781,  780,  779,  778,  777,
      772,  771,  770,  769,  761,  760,  759,  758,  757,  756,
      755,  754,  753,  752,  751,  750,  749,  748,  747,  746,
      745,  744,  741,  740,  739,  379,  119,  736,  735,  734,
      733,  730,  726,  725,  724,  723,  717,  716,  715,  714,
      713,  712,  711,  695,  694,  693,  692,  691,  690,  689,
      688,  687,  686,  377,  682,  682,  681,  680,  679,  674,
      660,  659,  658,  657,  642,  631,  630,  629,  628,  625,
      624,  621,  620,  619,  618,  614,  613,  612,  611,  610,

      609,  608,  603,  602,  601,  598,  595,  594,  591,  589,
      588,  587,  584,  583,  582,  581,  580,  577,  570,  569,
      568,  567,  566,  565,  564,  563,  562,  561,  560,  559,
      558,  557,  556,  555,  554,  265,  544,  543,  542,  537,
      519,  518,  517,  516,  501,  490,  379,  119,  489,  488,
      487,  484,  483,  480,  479,  478,  477,  473,  472,  471,
      470,  469,  468,  467,  462,  461,  460,  457,  454,  453,
      450,  448,  447,  446,  443,  442,  441,  440,  439,  436,
      427,  426,  425,  424,  423,  422,  421,  420,  419,  418,
      417,  408,  404,  394,  393,  392,  388,  387,  386,  385,

      384,  383,  382,  381,  380,  379,  377,  371,  353,  339,
      271,  149,  266,  265,  120,  119,  118,  238,  222,  156,
      124,  123,  152,  122,  149,  121,  120,  119,  118,  124,
      123,  122,  121,  120,  119,  118,  114, 2072,    3, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072
    } ;

static yyconst short int yy_chk[4105] =
    {   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,    5,    5,    5,    5,    5,
        9,    5,    5,    8,    8,    8,    8,    9,    9,    9,
        9,    9,    9,    9,  930,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,

        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    6,
        6,    6,    6,    6,   26,    6,    6,   10,   10,   10,
       10,   14,   14,   14,   14,   14,   14,   14,   76,  931,
        6,    6,    6,   11,    6,    6,   25,    6,   26,   25,
        6,  205,  205,    6,    6,    6,    6,   14,   51,   64,
        6,   51,   76,   11,  196,   77,   11,   27,   27,   27,
       27,   27,   27,   77,  196,   64,    6,    7,    7,    7,
        7,    7,   11,    7,    7,  174,   11,   35,   35,   35,

       35,  174,  245,  245,   39,   39,   39,   39,    7,    7,
        7,    7,    7,    7,    7,    7,   54,    7,   54,    7,
      101,   54,  200,    7,    7,    7,    7,    7,    7,    7,
        7,    7,    7,    7,  932,   34,  101,    7,  200,    7,
        7,    7,   39,    7,    7,    7,   15,   15,   15,   15,
       15,   44,   15,   15,   46,   52,  175,   44,  175,   34,
       46,   55,  182,   55,   90,   34,  236,   90,  182,   15,
       44,   15,   55,   46,   52,   55,   44,   15,  184,   46,
      184,  933,  236,   15,   32,   32,   32,   32,   32,   34,
       32,   32,   67,  104,  221,   67,  104,  221,   52,   69,

       69,   69,   69,   67,  104,   32,   32,   67,  104,   32,
       32,  189,   32,   73,   73,   73,   73,  189,   32,   32,
       32,   32,  218,  193,  218,   32,   59,   59,   59,   59,
       59,   59,   59,   59,  193,  231,   59,   79,   79,   79,
       79,   32,   36,  231,   71,   91,  935,   91,   36,   36,
       91,   73,   81,   81,   81,   81,   36,   36,   36,   36,
       36,  936,   36,   62,   71,   36,  243,   71,  191,   62,
      106,  106,  106,  106,  191,   36,   36,   36,   36,   36,
      243,   36,   62,   71,  460,   36,   62,   71,   62,   62,
       81,  244,   36,   56,   56,   56,   56,   62,   86,   88,

       62,   62,  244,  460,   86,   88,  111,  940,   92,  111,
       92,  110,  110,  110,  110,  199,  204,   86,   88,   92,
      213,  199,   92,   86,   88,  111,  204,  213,  292,  111,
      292,   56,   56,  112,  112,  112,  112,  213,   56,   56,
      127,  113,  251,  127,  246,  246,   56,  113,  251,   56,
       57,   57,   57,   57,   57,   57,   57,   57,   57,  127,
      113,   57,  252,  127,  941,  310,  113,   57,   57,   58,
       58,   58,   58,   58,   58,   58,  310,  942,  252,   58,
       58,   58,   60,   60,   60,   60,   60,   60,   60,   60,
      258,  291,  301,   60,  301,  943,   60,  291,  258,   60,

       60,   61,  138,  138,  138,  138,  247,   61,   96,   96,
       96,   96,   96,   96,   96,   96,  247,  317,   96,  230,
       61,   61,   61,   61,   61,  230,   61,   61,   61,  230,
      230,   61,  335,  317,  335,   61,  948,  313,   61,   61,
       61,   61,   65,   65,   65,   65,   65,  313,   65,  322,
      322,   65,  115,  115,  115,  115,  115,  115,  115,  237,
       65,   65,   65,   65,   65,   65,   65,   65,  949,  237,
      237,   65,  351,  128,   65,  237,  128,  237,  115,   65,
       68,   68,   68,   68,   68,   68,   68,   68,  351,  128,
      338,   68,  128,  338,   68,   68,  128,   68,   68,   70,

       70,   70,   70,   70,  346,   70,   70,   99,  145,  145,
      145,  145,  346,   99,  169,  143,  143,  143,  143,  154,
       70,   70,  154,  169,  321,   70,   99,   70,  286,  169,
       99,  950,   99,   99,  321,   70,   70,  286,  154,  109,
       70,   99,  154,  286,   99,   99,  109,  109,  109,  109,
      109,  109,  109,  360,  360,  139,   70,   93,   93,   93,
       93,  116,  116,  116,  116,  116,  116,  116,  143,  137,
      137,  137,  137,  146,  146,  146,  146,  954,  139,  361,
      361,  139,  140,  140,  140,  140,  140,  140,  140,  362,
      358,  149,  149,  149,  149,   93,   93,  139,  149,  362,

      299,  139,   93,   93,  358,  262,  299,  137,  262,  137,
       93,  137,  957,   93,   94,   94,   94,   94,   94,   94,
       94,   94,   94,  250,  262,   94,  367,  250,  262,  250,
      359,   94,   94,   95,   95,   95,   95,   95,   95,   95,
      250,  359,  367,   95,   95,   95,   97,   97,   97,   97,
       97,   97,   97,   97,  491,  306,  308,   97,  729,  729,
       97,  306,  308,   97,   97,   98,  142,  142,  142,  142,
      491,   98,  141,  141,  141,  141,  141,  141,  141,  257,
      257,  257,  257,  316,   98,   98,   98,   98,   98,  316,
       98,   98,   98,  960,  330,   98,  440,  703,  440,   98,

      703,  330,   98,   98,   98,   98,  102,  102,  102,  102,
      102,  330,  102,  142,  228,  102,  366,  257,  967,  500,
      228,  500,  366,  692,  102,  102,  102,  102,  102,  102,
      102,  102,  692,  228,  425,  102,  508,  153,  102,  228,
      153,  969,  425,  102,  105,  105,  105,  105,  105,  105,
      105,  105,  508,  153,  155,  105,  153,  155,  105,  105,
      153,  105,  105,  972,  514,  365,  232,  153,  973,  365,
      155,  365,  514,  155,  232,  232,  232,  155,  260,  260,
      260,  260,  365,  974,  155,  170,  170,  170,  170,  170,
      259,  170,  235,  347,  170,  904,  904,  416,  235,  416,

      416,  347,  347,  347,  170,  170,  170,  170,  170,  430,
      170,  235,  235,  259,  170,  263,  259,  235,  263,  430,
      423,  170,  234,  261,  423,  975,  423,  287,  234,  261,
      287,  263,  259,  507,  263,  511,  259,  980,  263,  507,
      981,  234,  261,  234,  234,  234,  287,  234,  261,  234,
      287,  511,  234,  378,  378,  378,  378,  287,  512,  343,
      234,  242,  242,  632,  512,  343,  984,  649,  242,  242,
      242,  242,  242,  479,  242,  345,  350,  242,  343,  632,
      985,  345,  350,  649,  343,  345,  345,  242,  242,  242,
      242,  242,  479,  242,  374,  350,  350,  242,  352,  390,

      374,  350,  479,  242,  349,  390,  986,  568,  352,  352,
      349,  528,  573,  374,  352,  568,  352,  988,  390,  374,
      655,  539,  573,  349,  390,  349,  349,  349,  655,  349,
      528,  349,  713,  581,  349,  581,  377,  377,  377,  377,
      539,  713,  349,  357,  357,  377,  389,  389,  389,  389,
      357,  357,  357,  357,  357,  520,  357,  601,  520,  357,
      391,  391,  391,  391,  399,  399,  399,  399,  989,  357,
      357,  357,  357,  357,  520,  357,  601,  990,  520,  357,
      405,  405,  405,  405,  648,  357,  395,  395,  395,  395,
      648,  395,  395,  401,  401,  401,  401,  401,  401,  401,

      406,  406,  406,  406,  410,  991,  641,  395,  641,  992,
      410,  395,  395,  413,  413,  413,  413,  395,  993,  414,
      395,  395,  995,  410,  395,  414,  395,  837,  395,  410,
      415,  415,  415,  415,  434,  837,  996,  566,  414,  521,
      434,  566,  521,  566,  414,  549,  549,  549,  549,  551,
      551,  551,  551,  434,  553,  553,  553,  553,  521,  434,
      461,  461,  521,  652,  620,  665,  525,  461,  461,  461,
      461,  461,  525,  461,  653,  676,  461,  997,  998,  652,
      653,  999, 1000,  620,  665,  525,  461,  461,  461,  461,
      461,  525,  461,  620,  676, 1005,  461,  466,  466,  466,

      466,  466,  777,  466,  547,  550,  466, 1006,  777, 1007,
      547,  550,  683,  683,  683,  683,  466,  466,  466,  466,
      466,  683,  466,  547,  550,  552,  466,  473,  473,  547,
      550,  552, 1008,  575,  473,  473,  473,  473,  473,  575,
      473,  749,  662,  473,  552,  749,  794,  749,  662,  739,
      552,  739,  575,  473,  473,  473,  473,  473,  575,  473,
      790,  662,  794,  473,  484,  484,  607,  662,  739,  607,
      739,  484,  484,  484,  484,  484,  820,  484,  800,  790,
      484, 1009,  602,  602, 1010,  607,  820,  801, 1011,  607,
      484,  484,  484,  484,  484,  602,  484,  800,  602,  867,

      484,  494,  494,  494,  494,  494,  801,  494,  955, 1014,
      494, 1017,  614,  614,  602,  867, 1018,  914,  602,  914,
      494,  494,  494,  494,  494,  614,  494,  955,  614,  979,
      494,  498,  498,  498,  498,  498,  914,  498,  914,  979,
      498,  924,  625,  625,  614,  924, 1019,  924,  614, 1020,
      498,  498,  498,  498,  498,  625,  498,  959,  625, 1016,
      498,  513,  513,  513,  513,  513,  635,  513,  994,  635,
      513,  946, 1023,  959,  625, 1016,  994,  946,  625, 1024,
      513,  513,  513,  513,  513,  635,  513, 1028, 1029,  635,
      513,  526,  526,  526,  526,  526,  639,  526, 1033,  639,

      526,  684,  684,  684,  684,  685,  685,  685,  685, 1034,
      526,  526,  526,  526,  526,  639,  526, 1035, 1036,  639,
      526,  534,  534,  534,  534,  534,  654,  534, 1037,  654,
      534, 1039, 1040, 1041,  663, 1042, 1044,  663, 1047, 1048,
      534,  534,  534,  534,  534,  654,  534, 1049, 1050,  654,
      534,  544,  544,  663, 1051, 1052, 1053,  663,  544,  544,
      544,  544,  544,  671,  544, 1055,  671,  544,  690,  690,
      690,  690,  681,  681, 1058, 1056, 1059,  544,  544,  544,
      544,  544,  671,  544, 1056,  681,  671,  544,  681,  696,
      696,  696,  696,  697,  697,  697,  697,  698,  698,  698,

      698, 1060, 1062, 1063,  681, 1064, 1069, 1073,  681,  699,
      699,  699,  699,  711,  711,  711,  711,  714,  714,  714,
      714,  716,  716,  716,  716,  718,  718,  718,  718,  718,
     1080,  718,  719,  719,  719,  719,  719, 1081,  719,  720,
      720,  720,  720,  720, 1083,  720,  721,  721,  721,  721,
      721, 1084,  721,  718, 1085,  714, 1086,  714, 1087,  714,
      719,  745,  745,  745, 1085,  763,  764,  720,  763,  764,
      895,  895,  895,  895,  721,  722, 1088,  722,  722, 1089,
      745,  745,  745, 1094,  763,  764, 1095,  768,  763,  764,
      745, 1099, 1090,  768, 1102,  776,  722,  722,  722,  722,

      722,  776,  722, 1103, 1104,  722,  768, 1038, 1038, 1038,
     1038, 1090,  768, 1105,  776,  722,  722,  722,  722,  722,
      776,  722, 1107, 1107, 1108,  722,  744,  744,  744,  744,
      744,  783,  744, 1110,  783,  744, 1043, 1043, 1043, 1043,
     1045, 1045, 1045, 1045, 1111,  744,  744,  744,  744,  744,
      783,  744, 1113, 1118,  783,  744,  752,  752,  752,  752,
      752,  784,  752, 1120,  784,  752, 1046, 1046, 1046, 1046,
     1054, 1054, 1054, 1054, 1121,  752,  752,  752,  752,  752,
      784,  752, 1129, 1130,  784,  752,  759,  759,  759,  759,
      759, 1131,  759, 1132, 1133,  759, 1065, 1065, 1065, 1065,

     1067, 1067, 1067, 1067,  788,  759,  759,  759,  759,  759,
      788,  759, 1134, 1136, 1137,  759,  778,  778,  778,  778,
      778, 1101,  778,  788, 1139,  778, 1140, 1101, 1067,  788,
     1068, 1068, 1068, 1068,  805,  778,  778,  778,  778,  778,
      805,  778, 1143, 1144, 1151,  778,  782,  782,  782,  782,
      782, 1141,  782,  805, 1153,  782, 1154, 1141, 1067,  805,
     1071, 1071, 1071, 1071,  819,  782,  782,  782,  782,  782,
      819,  782, 1155, 1153, 1156,  782,  796,  796,  796,  796,
      796, 1150,  796,  819, 1158,  796, 1159, 1150, 1071,  819,
     1072, 1072, 1072, 1072,  826,  796,  796,  796,  796,  796,

      826,  796, 1162, 1163, 1166,  796,  797,  797,  797,  797,
      797, 1167,  797,  826, 1173,  797, 1174, 1176, 1071,  826,
     1177, 1178, 1179, 1180,  849,  797,  797,  797,  797,  797,
      849,  797, 1182, 1185, 1186,  797,  799,  799,  799,  799,
      799, 1187,  799,  849, 1188,  799, 1189, 1190, 1191,  849,
     1192, 1193, 1195, 1196,  858,  799,  799,  799,  799,  799,
      858,  799, 1197, 1200, 1201,  799,  807,  807,  807,  807,
      807,  860,  807,  858,  864,  807, 1204,  860,  875,  858,
      864, 1209, 1210, 1211,  875,  807,  807,  807,  807,  807,
      860,  807, 1214,  864, 1217,  807,  860,  875,  886,  864,

     1219,  886, 1220,  875,  878,  878,  878,  878,  878,  887,
      878, 1223,  887,  878, 1224, 1229, 1230,  886, 1236, 1237,
     1238,  886, 1240,  878,  878,  878,  878,  878,  887,  878,
     1243, 1244,  887,  878,  879,  879,  879,  879,  879, 1246,
      879, 1247, 1249,  879, 1066, 1066, 1066, 1066, 1250, 1066,
     1248, 1251,  891,  879,  879,  879,  879,  879,  891,  879,
     1248, 1261, 1253,  879,  884,  884,  884,  884,  884,  919,
      884,  891,  919,  884, 1262, 1263,  939,  891,  920,  920,
      920, 1253,  939,  884,  884,  884,  884,  884,  919,  884,
      945,  927,  919,  884,  927,  939,  945,  920,  920,  920,

      934,  939,  947,  934, 1264,  947, 1260,  920,  951,  945,
      927,  951, 1260, 1267,  927,  945,  953,  961, 1270,  934,
      961,  947,  953,  934, 1275,  947,  962,  951, 1280,  962,
     1281,  951, 1282,  966,  964,  953,  961,  964, 1283,  966,
      961,  953,  978,  968,  983,  962,  968, 1284,  978,  962,
      983, 1285,  966,  964, 1004, 1266, 1266,  964,  966, 1013,
     1004,  978,  968,  983, 1022, 1013,  968,  978, 1025,  983,
     1022, 1025, 1288, 1004, 1026, 1032, 1289, 1026, 1013, 1004,
     1290, 1032, 1030, 1022, 1013, 1030, 1290, 1025, 1296, 1022,
     1293, 1025, 1297, 1026, 1032, 1298, 1293, 1026, 1308, 1309,

     1032, 1030, 1310, 1311, 1312, 1030, 1057, 1057, 1057, 1057,
     1070, 1070, 1070, 1070, 1070, 1314, 1070, 1074, 1074, 1074,
     1074, 1074, 1076, 1074, 1208, 1208, 1208, 1208, 1076, 1239,
     1239, 1239, 1239, 1317, 1096, 1318, 1319, 1112, 1070, 1295,
     1096, 1076, 1320, 1112, 1057, 1074, 1057, 1076, 1057, 1061,
     1061, 1061, 1061, 1096, 1061, 1061, 1112, 1122, 1295, 1096,
     1126, 1321, 1112, 1122, 1322, 1323, 1126, 1128, 1324, 1325,
     1061, 1138, 1327, 1128, 1061, 1061, 1122, 1138, 1328, 1126,
     1061, 1329, 1122, 1061, 1061, 1126, 1128, 1061, 1145, 1061,
     1138, 1061, 1128, 1147, 1145, 1149, 1138, 1160, 1164, 1147,

     1168, 1149, 1332, 1160, 1164, 1333, 1168, 1145, 1335, 1340,
     1341, 1342, 1147, 1145, 1149, 1175, 1160, 1164, 1147, 1168,
     1149, 1175, 1160, 1164, 1345, 1168, 1171, 1171, 1171, 1171,
     1171, 1348, 1171, 1357, 1175, 1171, 1359, 1184, 1184, 1184,
     1175, 1305, 1360, 1361, 1305, 1171, 1171, 1171, 1171, 1171,
     1362, 1171, 1363, 1221, 1365, 1171, 1184, 1184, 1184, 1221,
     1305, 1364, 1366, 1369, 1305, 1364, 1184, 1203, 1203, 1203,
     1203, 1203, 1221, 1203, 1370, 1371, 1203, 1372, 1221, 1339,
     1339, 1339, 1339, 1373, 1374, 1225, 1203, 1203, 1203, 1203,
     1203, 1225, 1203, 1375, 1377, 1378, 1203, 1207, 1207, 1207,

     1207, 1207, 1231, 1207, 1225, 1233, 1207, 1379, 1231, 1235,
     1225, 1233, 1380, 1381, 1382, 1235, 1207, 1207, 1207, 1207,
     1207, 1231, 1207, 1256, 1233, 1269, 1207, 1231, 1235, 1256,
     1233, 1269, 1277, 1287, 1235, 1292, 1385, 1300, 1277, 1287,
     1302, 1292, 1256, 1300, 1269, 1387, 1302, 1304, 1256, 1307,
     1269, 1277, 1287, 1304, 1292, 1307, 1300, 1277, 1287, 1302,
     1292, 1334, 1300, 1388, 1334, 1302, 1304, 1350, 1307, 1316,
     1316, 1316, 1304, 1350, 1307, 1352, 1338, 1356, 1389, 1338,
     1334, 1352, 1386, 1356, 1334, 1386, 1350, 1390, 1316, 1316,
     1316, 1391, 1350, 1338, 1352, 1338, 1356, 1392, 1316, 1338,

     1352, 1393, 1356, 1358, 1358, 1358, 1358, 1367, 1367, 1367,
     1367, 1395, 1358, 1368, 1368, 1368, 1368, 1376, 1376, 1376,
     1376, 1396, 1376, 1376, 1394, 1394, 1394, 1394, 1397, 1399,
     1396, 1402, 1402, 1402, 1402, 1414, 1415, 1416, 1376, 1414,
     1418, 1419, 1376, 1376, 1405, 1405, 1405, 1405, 1376, 1420,
     1417, 1376, 1376, 1427, 1428, 1376, 1417, 1376, 1432, 1376,
     1406, 1406, 1406, 1406, 1434, 1435, 1436, 1406, 1407, 1407,
     1407, 1407, 1410, 1410, 1410, 1410, 1411, 1411, 1411, 1411,
     1439, 1440, 1443, 1411, 1430, 1430, 1430, 1430, 1430, 1445,
     1430, 1447, 1448, 1430, 1449, 1451, 1452, 1454, 1456, 1439,

     1458, 1459, 1453, 1430, 1430, 1430, 1430, 1430, 1453, 1430,
     1462, 1464, 1465, 1430, 1466, 1467, 1468, 1464, 1469, 1470,
     1471, 1453, 1472, 1473, 1475, 1477, 1480, 1453, 1474, 1474,
     1474, 1474, 1474, 1481, 1474, 1482, 1485, 1474, 1486, 1491,
     1492, 1482, 1488, 1488, 1488, 1488, 1493, 1474, 1474, 1474,
     1474, 1474, 1487, 1474, 1482, 1494, 1495, 1474, 1487, 1497,
     1482, 1483, 1483, 1483, 1483, 1483, 1502, 1483, 1503, 1505,
     1483, 1487, 1489, 1489, 1489, 1489, 1506, 1487, 1507, 1514,
     1483, 1483, 1483, 1483, 1483, 1501, 1483, 1515, 1519, 1501,
     1483, 1496, 1496, 1496, 1496, 1498, 1498, 1498, 1498, 1504,

     1517, 1521, 1522, 1517, 1523, 1504, 1526, 1527, 1530, 1533,
     1534, 1535, 1537, 1538, 1540, 1542, 1543, 1548, 1537, 1517,
     1547, 1549, 1550, 1517, 1551, 1526, 1547, 1552, 1553, 1554,
     1555, 1537, 1556, 1557, 1558, 1560, 1557, 1537, 1563, 1564,
     1566, 1569, 1564, 1570, 1563, 1571, 1566, 1567, 1567, 1567,
     1567, 1572, 1557, 1575, 1577, 1578, 1557, 1563, 1564, 1566,
     1579, 1580, 1564, 1563, 1581, 1566, 1573, 1573, 1573, 1573,
     1574, 1574, 1574, 1574, 1582, 1573, 1576, 1576, 1576, 1576,
     1583, 1583, 1583, 1583, 1584, 1585, 1586, 1587, 1590, 1591,
     1592, 1593, 1591, 1594, 1595, 1596, 1597, 1598, 1599, 1600,

     1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610,
     1611, 1611, 1611, 1611, 1612, 1613, 1614, 1614, 1614, 1614,
     1615, 1616, 1617, 1621, 1613, 1620, 1620, 1620, 1620, 1622,
     1622, 1622, 1622, 1623, 1626, 1627, 1628, 1630, 1631, 1636,
     1637, 1638, 1640, 1641, 1643, 1646, 1647, 1638, 1649, 1641,
     1652, 1653, 1659, 1660, 1614, 1662, 1614, 1663, 1614, 1664,
     1638, 1666, 1667, 1672, 1673, 1676, 1638, 1650, 1650, 1650,
     1650, 1650, 1668, 1650, 1674, 1678, 1650, 1684, 1668, 1685,
     1674, 1675, 1675, 1675, 1675, 1686, 1650, 1650, 1650, 1650,
     1650, 1668, 1650, 1674, 1688, 1689, 1650, 1668, 1696, 1674,

     1680, 1680, 1680, 1680, 1681, 1681, 1681, 1681, 1694, 1697,
     1701, 1702, 1704, 1705, 1694, 1697, 1705, 1707, 1708, 1714,
     1715, 1717, 1718, 1719, 1721, 1725, 1726, 1694, 1728, 1730,
     1721, 1725, 1705, 1694, 1733, 1734, 1705, 1735, 1675, 1731,
     1731, 1731, 1731, 1721, 1725, 1732, 1732, 1732, 1732, 1721,
     1725, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744,
     1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754,
     1755, 1756, 1757, 1758, 1759, 1761, 1732, 1732, 1760, 1760,
     1760, 1760, 1762, 1760, 1760, 1763, 1764, 1765, 1766, 1767,
     1767, 1767, 1767, 1768, 1768, 1768, 1768, 1770, 1771, 1760,

     1774, 1777, 1772, 1760, 1760, 1772, 1779, 1781, 1782, 1760,
     1786, 1783, 1760, 1760, 1789, 1790, 1760, 1783, 1760, 1791,
     1760, 1793, 1795, 1796, 1797, 1799, 1802, 1797, 1804, 1806,
     1783, 1809, 1812, 1813, 1815, 1806, 1783, 1816, 1817, 1818,
     1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1806, 1827,
     1828, 1829, 1830, 1831, 1806, 1832, 1833, 1834, 1835, 1836,
     1837, 1838, 1839, 1840, 1841, 1844, 1845, 1846, 1847, 1845,
     1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
     1858, 1858, 1858, 1858, 1859, 1859, 1859, 1859, 1860, 1861,
     1862, 1863, 1865, 1870, 1872, 1873, 1874, 1875, 1877, 1883,

     1884, 1885, 1886, 1886, 1887, 1886, 1886, 1886, 1886, 1886,
     1886, 1886, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895,
     1896, 1897, 1888, 1888, 1888, 1888, 1888, 1888, 1888, 1898,
     1899, 1900, 1898, 1901, 1902, 1903, 1904, 1905, 1906, 1907,
     1908, 1909, 1910, 1911, 1912, 1914, 1915, 1916, 1918, 1920,
     1921, 1922, 1924, 1925, 1926, 1926, 1929, 1926, 1926, 1926,
     1926, 1926, 1926, 1926, 1927, 1927, 1927, 1927, 1928, 1928,
     1931, 1928, 1928, 1928, 1928, 1928, 1928, 1928, 1932, 1933,
     1931, 1931, 1931, 1931, 1931, 1931, 1931, 1934, 1935, 1936,
     1937, 1938, 1939, 1940, 1938, 1941, 1942, 1943, 1944, 1945,

     1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1956,
     1957, 1958, 1960, 1961, 1962, 1963, 1964, 1964, 1964, 1964,
     1965, 1965, 1967, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
     1966, 1966, 1966, 1966, 1968, 1969, 1970, 1971, 1972, 1973,
     1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983,
     1984, 1987, 1990, 1984, 1991, 1992, 1992, 1992, 1992, 1993,
     1993, 1993, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
     2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2007,
     2010, 2010, 2010, 2010, 2011, 2012, 2013, 2014, 2014, 2014,
     2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,

     2024, 2025, 2026, 2027, 2027, 2027, 2027, 2028, 2029, 2031,
     1990, 2030, 2030, 2030, 2030, 2032, 2033, 2034, 2035, 2036,
     2037, 2038, 2039, 2040, 2040, 2040, 2040, 2041, 2041, 2041,
     2041, 2042, 2042, 2043, 2042, 2042, 2042, 2042, 2042, 2042,
     2042, 2044, 2045, 2046, 2047, 2048, 2049, 2049, 2049, 2049,
     2050, 2050, 2051, 2050, 2050, 2050, 2050, 2050, 2050, 2050,
     2052, 2053, 2053, 2053, 2053, 2054, 2055, 2056, 2057, 2058,
     2059, 2060, 2061, 2062, 2063, 2064, 2065, 2065, 2065, 2065,
     2066, 2067, 2067, 2067, 2067, 2068, 2068, 2068, 2068, 2069,
     2069, 2069, 2069, 2070, 2070, 2070, 2070, 2071, 2071, 2071,

     2071, 2073, 2073, 2073, 2073, 2073, 2077, 2077, 2079, 2081,
     2083, 2073, 2073, 2073, 2073, 2074, 2074,  929, 2074, 2074,
     2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074, 2074,
     2075, 2084, 2084, 2088, 2088, 2089, 2089, 2075, 2075, 2076,
     2091, 2091, 2094, 2094, 2095, 2095, 2076, 2076, 2078, 2078,
      928, 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2078, 2078,
     2078, 2078, 2078, 2080, 2080, 2080, 2082, 2096, 2096, 2097,
     2097, 2098, 2098, 2100, 2100, 2082, 2082, 2085, 2085, 2085,
     2086, 2086, 2101, 2101, 2102, 2102,  925, 2086, 2086, 2087,
     2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,

     2087, 2087, 2087, 2087, 2090, 2103, 2103, 2090, 2090, 2092,
     2104, 2104, 2092, 2092, 2093, 2105, 2105, 2093, 2093, 2099,
     2106, 2106, 2099, 2099, 2107, 2107, 2108, 2108, 2109, 2109,
     2110, 2110, 2111, 2111, 2112, 2112, 2113, 2113, 2114, 2114,
     2115, 2115, 2116, 2116, 2117, 2117, 2118, 2118,  923, 2118,
     2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118, 2118,
     2118, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119,
     2119, 2119, 2119, 2119, 2119, 2119, 2120, 2120, 2121, 2121,
     2122, 2122, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123,
     2123, 2123, 2123, 2123, 2123, 2123, 2123, 2124, 2124, 2125,

     2125, 2126, 2126, 2127, 2127, 2128, 2128, 2128, 2128, 2128,
     2128, 2128, 2128, 2128, 2128, 2128, 2128, 2128, 2128, 2128,
     2129,  922, 2129, 2129,  921, 2129, 2129, 2129, 2129, 2130,
     2130,  918,  913,  911,  910, 2130, 2130, 2130, 2131, 2131,
      909,  907,  906,  902, 2131, 2131, 2131, 2131, 2132, 2132,
      901,  899,  898,  897, 2132, 2132, 2132,  896,  894,  893,
      892,  890,  889,  883,  882,  880,  877,  876,  874,  873,
      871,  870,  869,  868,  865,  863,  862,  856,  855,  854,
      853,  852,  851,  850,  848,  847,  843,  842,  841,  840,
      839,  838,  836,  835,  834,  833,  832,  831,  829,  828,

      827,  825,  824,  822,  821,  818,  817,  814,  813,  812,
      811,  808,  806,  804,  803,  795,  792,  789,  787,  786,
      781,  780,  779,  775,  774,  772,  771,  770,  769,  767,
      766,  761,  760,  758,  757,  756,  755,  754,  753,  750,
      748,  747,  746,  743,  738,  736,  735,  734,  732,  731,
      727,  726,  725,  723,  717,  712,  710,  709,  708,  707,
      706,  705,  704,  702,  695,  694,  693,  691,  689,  688,
      687,  686,  682,  680,  679,  678,  677,  675,  674,  673,
      672,  670,  669,  668,  666,  664,  660,  659,  658,  657,
      656,  651,  650,  647,  646,  645,  644,  643,  642,  640,

      638,  637,  636,  634,  633,  631,  630,  629,  628,  627,
      626,  624,  623,  622,  621,  619,  617,  616,  615,  613,
      612,  611,  610,  609,  608,  606,  605,  604,  603,  600,
      599,  598,  597,  596,  595,  594,  592,  591,  590,  589,
      588,  587,  586,  585,  584,  583,  582,  578,  577,  576,
      572,  571,  570,  569,  567,  565,  563,  562,  561,  559,
      558,  557,  556,  555,  554,  545,  543,  542,  541,  540,
      538,  537,  536,  535,  533,  532,  531,  529,  527,  524,
      523,  519,  518,  517,  516,  515,  510,  509,  506,  505,
      504,  503,  502,  501,  499,  497,  496,  495,  493,  492,

      490,  489,  488,  487,  486,  485,  483,  482,  481,  480,
      478,  476,  475,  474,  472,  471,  470,  469,  468,  467,
      465,  464,  463,  462,  459,  458,  457,  456,  455,  454,
      453,  451,  450,  449,  448,  447,  446,  445,  444,  443,
      442,  441,  437,  436,  435,  433,  432,  429,  428,  427,
      426,  424,  422,  420,  419,  418,  408,  407,  402,  400,
      398,  397,  396,  388,  387,  386,  385,  384,  383,  382,
      381,  380,  379,  376,  372,  371,  370,  369,  368,  364,
      356,  355,  354,  353,  348,  344,  341,  340,  339,  337,
      336,  334,  333,  332,  331,  329,  328,  327,  326,  325,

      324,  323,  320,  319,  318,  315,  312,  311,  309,  307,
      304,  303,  300,  297,  296,  294,  293,  289,  285,  284,
      283,  282,  281,  280,  279,  278,  277,  275,  274,  273,
      272,  271,  266,  265,  264,  256,  255,  254,  253,  249,
      241,  240,  239,  238,  233,  229,  227,  226,  224,  223,
      222,  220,  219,  217,  216,  215,  214,  212,  211,  210,
      209,  208,  207,  206,  203,  202,  201,  198,  195,  194,
      192,  190,  187,  186,  183,  180,  179,  177,  176,  172,
      168,  167,  166,  165,  164,  163,  162,  161,  160,  158,
      157,  152,  144,  133,  131,  129,  126,  125,  124,  123,

      122,  121,  120,  119,  118,  117,  114,  107,  103,  100,
       89,   87,   85,   80,   75,   74,   72,   66,   63,   53,
       50,   49,   48,   47,   45,   43,   42,   40,   38,   24,
       23,   21,   19,   18,   17,   16,   12,    3, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,
     2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072, 2072,

     2072, 2072, 2072, 2072
    } ;

static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
static char *yy_full_match;
static int yy_lp;
static int yy_looking_for_trail_begin = 0;
static int yy_full_lp;
static int *yy_full_state;
#define YY_TRAILING_MASK 0x2000
#define YY_TRAILING_HEAD_MASK 0x4000
#define REJECT \
{ \
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
yy_cp = yy_full_match; /* restore poss. backed-over text */ \
yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
yy_state_ptr = yy_full_state; /* restore orig. state */ \
yy_current_state = *yy_state_ptr; /* restore curr. state */ \
++yy_lp; \
goto find_rule; \
}
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "expressions.l"
#define INITIAL 0
/* lexical rules for bww2tex
   version 2.0
   by Walt Innes {walt@slac.stanford.edu}
*/
/* {QSTRING},[\(][TYMFIX][RLCN],{ANMB}*,{ANMB}*,[ a-zA-z]*,{ANMB}*,{ANMB}*,[0-9,]*[\)]{TSEP}*  */
#line 7 "expressions.l"
#define MAXLEN 1000
#define YYSTYPE char*
#include "y.tab.h"
#include <string.h>
#include <stdio.h>
#include "tokens.h"

/* _WIN32 definition added for use with MS VC++ compiler. */
#ifdef _WIN32
#include <stdlib.h>
#include <malloc.h>
#include <io.h>
#endif

char *addpit( char *, size_t, char * );
void unpitch( char *, size_t );
static int tiepending = 0;
static int letpending = 0;
char txttype, align;
char *font;
char *asciitext;
int pfx, pfy, fontsize, fontstyle;
char sh, sv, scf, jus, ori;
int mrl, mrr, mrt, mrb;
/* THEME ["THEME"] */
#line 2106 "lex.yy.c"

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

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

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

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

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

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

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

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

#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines.  This will fail
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 * or sizeof(void*) != sizeof(int).
 */
#endif
#endif

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

/* Copy whatever the last rule matched to the standard output. */

#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
	if ( yy_current_buffer->yy_is_interactive ) \
		{ \
		int c = '*', n; \
		for ( n = 0; n < max_size && \
			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( yyin ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
		  && ferror( yyin ) ) \
		YY_FATAL_ERROR( "input in flex scanner failed" );
#endif

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

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

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

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

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

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

#define YY_RULE_SETUP \
	YY_USER_ACTION

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

#line 51 "expressions.l"


#line 2260 "lex.yy.c"

	if ( yy_init )
		{
		yy_init = 0;

#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

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

		if ( ! yyin )
			yyin = stdin;

		if ( ! yyout )
			yyout = stdout;

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

		yy_load_buffer_state();
		}

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

		/* Support of yytext. */
		*yy_cp = yy_hold_char;

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

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

yy_find_action:
		yy_current_state = *--yy_state_ptr;
		yy_lp = yy_accept[yy_current_state];
find_rule: /* we branch to this label when backing up */
		for ( ; ; ) /* until we find what rule we matched */
			{
			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
				{
				yy_act = yy_acclist[yy_lp];
				if ( yy_act & YY_TRAILING_HEAD_MASK ||
				     yy_looking_for_trail_begin )
					{
					if ( yy_act == yy_looking_for_trail_begin )
						{
						yy_looking_for_trail_begin = 0;
						yy_act &= ~YY_TRAILING_HEAD_MASK;
						break;
						}
					}
				else if ( yy_act & YY_TRAILING_MASK )
					{
					yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
					yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
					}
				else
					{
					yy_full_match = yy_cp;
					yy_full_state = yy_state_ptr;
					yy_full_lp = yy_lp;
					break;
					}
				++yy_lp;
				goto find_rule;
				}
			--yy_cp;
			yy_current_state = *--yy_state_ptr;
			yy_lp = 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 1:
YY_RULE_SETUP
#line 53 "expressions.l"
{                                  }
	YY_BREAK
case 2:
YY_RULE_SETUP
#line 54 "expressions.l"
{                                  }
	YY_BREAK
case 3:
YY_RULE_SETUP
#line 55 "expressions.l"
{yylval = (char *) malloc(MAXLEN);
    strncpy(yylval,yytext,yyleng-1); strcpy(yylval+yyleng-1,"");     return COMMENT; }
	YY_BREAK
case 4:
YY_RULE_SETUP
#line 57 "expressions.l"
{                                  }
	YY_BREAK
case 5:
YY_RULE_SETUP
#line 58 "expressions.l"
{ asciitext = (char *) malloc(MAXLEN);
    if(sscanf(yytext,"%[^,],(%c,%c,%c,%c,%i,%i,%i,%i,%c",asciitext,&sh,&sv,&scf,&jus,&mrl,&mrr,&mrt,&mrb,&ori) != EOF )
          { if( ori == 'L' ) { yylval = (char *) malloc(MAXLEN);
                               strcpy(yylval,realwide);              return FORMAT;  }
          }              free(asciitext);  }
	YY_BREAK
case 6:
YY_RULE_SETUP
#line 63 "expressions.l"
{yylval = (char *) malloc(MAXLEN);
    strncpy(yylval,yytext,yyleng-1); strcpy(yylval+yyleng-1,"");     return COMMENT; }
	YY_BREAK
case 7:
YY_RULE_SETUP
#line 65 "expressions.l"
{yylval = (char *) malloc(MAXLEN);
    strncpy(yylval,yytext,yyleng-1); strcpy(yylval+yyleng-1,"");     return COMMENT; }
	YY_BREAK
case 8:
YY_RULE_SETUP
#line 67 "expressions.l"
{yylval = (char *) malloc(MAXLEN);
    strncpy(yylval,yytext,yyleng-1); strcpy(yylval+yyleng-1,"");     return COMMENT; }
	YY_BREAK
case 9:
YY_RULE_SETUP
#line 69 "expressions.l"
{   unput(' ');                    }
	YY_BREAK
case 10:
YY_RULE_SETUP
#line 70 "expressions.l"
{   unput(' ');                    }
	YY_BREAK
case 11:
YY_RULE_SETUP
#line 71 "expressions.l"
{   unput(' ');                    }
	YY_BREAK
case 12:
YY_RULE_SETUP
#line 72 "expressions.l"
{   unput(' ');                    }
	YY_BREAK
case 13:
YY_RULE_SETUP
#line 73 "expressions.l"
{unput(' ');                             return BEAT;      }
	YY_BREAK
case 14:
YY_RULE_SETUP
#line 74 "expressions.l"
{yylval = (char *) malloc(MAXLEN);
                     strncpy(yylval,yytext+1,yyleng-2);
                     strcpy(yylval+yyleng-2,"");         return NUMBER;    }
	YY_BREAK
case 15:
YY_RULE_SETUP
#line 77 "expressions.l"
{yylval = (char *) malloc(MAXLEN);
                     strncpy(yylval,yytext+1,yyleng-2);
                     strcpy(yylval+yyleng-2,"");         return TXT;       }
	YY_BREAK
case 16:
YY_RULE_SETUP
#line 80 "expressions.l"
{
    asciitext = (char *) malloc(MAXLEN); font = (char *) malloc(MAXLEN);
    if(sscanf(yytext,"\"%[^\"]\",(%c,%c,%i,%i,%[a-zA-Z ],%i,%i",asciitext,&txttype,&align,&pfx,&pfy,font,&fontsize,&fontstyle) != EOF )
                       { yylval = (char *) malloc(MAXLEN);    *yylval = '\0' ;
                         if( align == 'R' || align == 'C' ) strcat(yylval,"\\hss ");
                         if( fontsize > 14 )                 strcat(yylval,"\\moyen ");
                         else                                 strcat(yylval,"\\rm ");
                                                              strcat(yylval,asciitext);
                         if( align != 'R' )                  strcat(yylval,"\\hss ");
                         if( txttype == 'T' )                return TITLE;
                         else if ( txttype == 'Y' )          return TUNETYPE;
                         else if ( txttype == 'M' )          return COMPOSER;
                         else                                 return ANTXT;
                       }  free(asciitext); free(font);                     }
	YY_BREAK
case 17:
YY_RULE_SETUP
#line 94 "expressions.l"
{                              }
	YY_BREAK
case 18:
YY_RULE_SETUP
#line 95 "expressions.l"
{yylval=reprmorceau;               return CLEFT;     }
	YY_BREAK
case 19:
YY_RULE_SETUP
#line 96 "expressions.l"
{
     yylval=addpit(yytext, yyleng, itenu);               return TIECLEFT;  }
	YY_BREAK
case 20:
YY_RULE_SETUP
#line 98 "expressions.l"
{
     if(tiepending){ tiepending = 0; yylval=tten; unput(' ');
                     unput('&'); unput(' ');             return ETIE;      }
     else        { yylval=addpit(yytext, yyleng, itenu); return TIECLEFT; }}
	YY_BREAK
case 21:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 102 "expressions.l"
{yylval=xbarre;                           return BAR;       }
	YY_BREAK
case 22:
YY_RULE_SETUP
#line 103 "expressions.l"
{yylval=leftrepeatsymbol;          return BAR;       }
	YY_BREAK
case 23:
YY_RULE_SETUP
#line 104 "expressions.l"
{
       yylval=addpit(yytext, yyleng, itenu);             return TIEXBAR;   }
	YY_BREAK
case 24:
YY_RULE_SETUP
#line 106 "expressions.l"
{
     if(tiepending){ tiepending = 0; yylval=tten; unput(' ');
                     unput('!'); unput(' ');             return ETIE;      }
     else          {
       yylval=addpit(yytext, yyleng, itenu);             return TIEXBAR; } }
	YY_BREAK
case 25:
YY_RULE_SETUP
#line 111 "expressions.l"
{
       yylval=addpit(yytext, yyleng, itenu);             return TIELRBAR;  }
	YY_BREAK
case 26:
YY_RULE_SETUP
#line 113 "expressions.l"
{
     if(tiepending){ tiepending = 0; yylval=tten; unput(' '); unput('\'');
        unput('\''); unput('!'); unput('I');              return ETIE;    }
     else          {
       yylval=addpit(yytext, yyleng, itenu); unput(' ');   return TIELRBAR; }}
	YY_BREAK
case 27:
YY_RULE_SETUP
#line 118 "expressions.l"
{yylval=alaligne; unput(' ');       return EOL;    }
	YY_BREAK
case 28:
YY_RULE_SETUP
#line 121 "expressions.l"
{yylval=setdoublebar; unput(' '); return EOL;   }
	YY_BREAK
case 29:
YY_RULE_SETUP
#line 122 "expressions.l"
{yylval=setrightrepeat; unput(' '); return EOL;  }
	YY_BREAK
case 30:
YY_RULE_SETUP
#line 124 "expressions.l"
{yylval=setdoublebar; unput(' ');  return BAR; }
	YY_BREAK
case 31:
YY_RULE_SETUP
#line 125 "expressions.l"
{yylval=setrightrepeat; unput(' '); return BAR; }
	YY_BREAK
case 32:
YY_RULE_SETUP
#line 127 "expressions.l"
{yylval=setdoublebar; unput(' ');         return EOL;    }
	YY_BREAK
case 33:
YY_RULE_SETUP
#line 128 "expressions.l"
{yylval=setrightrepeat; unput(' ');        return EOL;    }
	YY_BREAK
case 34:
YY_RULE_SETUP
#line 130 "expressions.l"
{yylval=setdoublebar; unput(' '); return EOL;   }
	YY_BREAK
case 35:
YY_RULE_SETUP
#line 131 "expressions.l"
{yylval=setrightrepeat; unput(' '); return EOL;  }
	YY_BREAK
case 36:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 133 "expressions.l"
{yylval=setdoublebar; unput(' ');         return BAR; }
	YY_BREAK
case 37:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 134 "expressions.l"
{yylval=setrightrepeat; unput(' ');        return BAR; }
	YY_BREAK
case 38:
YY_RULE_SETUP
#line 136 "expressions.l"
{yylval=setdoublebar; unput(' ');         return EOL;    }
	YY_BREAK
case 39:
YY_RULE_SETUP
#line 137 "expressions.l"
{yylval=setrightrepeat; unput(' ');        return EOL;    }
	YY_BREAK
case 40:
YY_RULE_SETUP
#line 140 "expressions.l"
{yylval=addpit(yytext, yyleng, itenu);
                                                         return TIEALA;    }
	YY_BREAK
case 41:
YY_RULE_SETUP
#line 142 "expressions.l"
{
     if(tiepending){ tiepending = 0; yylval=tten; unput(' '); unput('!');
                          unput('t');  unput(' ');       return ETIE;   }
     else          {
                 yylval=addpit(yytext, yyleng, itenu);   return TIEALA; }  }
	YY_BREAK
case 42:
YY_RULE_SETUP
#line 147 "expressions.l"
{
                   yylval=addpit(yytext, yyleng, itenu); return TIEDBL;    }
	YY_BREAK
case 43:
YY_RULE_SETUP
#line 149 "expressions.l"
{
     if(tiepending){ tiepending = 0; yylval=tten; unput(' '); unput('!');
                          unput('I');  unput(' ');       return ETIE;   }
     else          {
                   yylval=addpit(yytext, yyleng, itenu); return TIEDBL; }  }
	YY_BREAK
case 44:
YY_RULE_SETUP
#line 154 "expressions.l"
{yylval=doublebar;                   return BAR;       }
	YY_BREAK
case 45:
YY_RULE_SETUP
#line 155 "expressions.l"
{
       yylval=addpit(yytext, yyleng, itenu);             return TIEDBAR;   }
	YY_BREAK
case 46:
YY_RULE_SETUP
#line 157 "expressions.l"
{
     if(tiepending){ tiepending = 0; yylval=tten; unput(' '); unput('I');
                          unput('!');                      return ETIE;    }
     else          {
       yylval=addpit(yytext, yyleng, itenu);             return TIEDBAR; } }
	YY_BREAK
case 47:
YY_RULE_SETUP
#line 162 "expressions.l"
{yylval = addpit(yytext, yyleng, itenu);
                                                         return TIEBEAT;   }
	YY_BREAK
case 48:
YY_RULE_SETUP
#line 164 "expressions.l"
{
     if(tiepending){ tiepending = 0;  unput(' '); unput('e');
                     unput('t'); unput('^'); unput(' '); return BEAT;   }
     else          {
                yylval = addpit(yytext, yyleng, itenu);  return TIEBEAT;}  }
	YY_BREAK
case 49:
YY_RULE_SETUP
#line 169 "expressions.l"
{
    yylval = addpit(yytext, yyleng, itenu);  unput(' '); return TIEBEAT;   }
	YY_BREAK
case 50:
YY_RULE_SETUP
#line 171 "expressions.l"
{
     if(tiepending){ tiepending = 0;  unput(' '); unput('\t');
                    yylval=tten;                          return ETIE;     }
     else          { yylval = addpit(yytext, yyleng, itenu);
                                             unput(' '); return TIEBEAT; } }
	YY_BREAK
case 51:
YY_RULE_SETUP
#line 176 "expressions.l"
{yylval = addpit(yytext, yyleng, itenu); return TIE;}
	YY_BREAK
case 52:
YY_RULE_SETUP
#line 177 "expressions.l"
{
     if(tiepending){ tiepending = 0;  yylval=tten;            return ETIE; }
     else      { yylval = addpit(yytext, yyleng, itenu); return TIE;  }    }
	YY_BREAK
case 53:
YY_RULE_SETUP
#line 180 "expressions.l"
{yylval = addpit(yytext, yyleng, itenu);
                  tiepending = 1; unpitch(yytext, yyleng);  return EMBP;   }
	YY_BREAK
case 54:
YY_RULE_SETUP
#line 182 "expressions.l"
{yylval = triolet; letpending=1;      return EMB;       }
	YY_BREAK
case 55:
YY_RULE_SETUP
#line 183 "expressions.l"
{yylval=triolet;                     return TRIPLET;   }
	YY_BREAK
case 56:
YY_RULE_SETUP
#line 184 "expressions.l"
{
            if (letpending) { letpending=0; }
            else            {yylval=triolet;             return TRIPLET; } }
	YY_BREAK
case 57:
YY_RULE_SETUP
#line 187 "expressions.l"
{yylval=first;                            return STARTFS;   }
	YY_BREAK
case 58:
YY_RULE_SETUP
#line 188 "expressions.l"
{yylval= second;                          return STARTFS;   }
	YY_BREAK
case 59:
YY_RULE_SETUP
#line 189 "expressions.l"
{yylval=sing;                             return EMB;       }
	YY_BREAK
case 60:
YY_RULE_SETUP
#line 190 "expressions.l"
{yylval=doub;                             return EMB;       }
	YY_BREAK
case 61:
YY_RULE_SETUP
#line 191 "expressions.l"
{yylval=bis;                              return EMB;       }
	YY_BREAK
case 62:
YY_RULE_SETUP
#line 192 "expressions.l"
{yylval=coda;                             return EMB;       }
	YY_BREAK
case 63:
YY_RULE_SETUP
#line 193 "expressions.l"
{yylval=segno;                            return EMB;       }
	YY_BREAK
case 64:
YY_RULE_SETUP
#line 194 "expressions.l"
{yylval=fine;                             return EMB;       }
	YY_BREAK
case 65:
YY_RULE_SETUP
#line 195 "expressions.l"
{yylval=dalsegno;                       return REP;       }
	YY_BREAK
case 66:
YY_RULE_SETUP
#line 196 "expressions.l"
{yylval=dacapoalfine;               return REP;       }
	YY_BREAK
case 67:
YY_RULE_SETUP
#line 197 "expressions.l"
{yylval=dacapoalcoda;               return REP;       }
	YY_BREAK
case 68:
YY_RULE_SETUP
#line 198 "expressions.l"
{yylval=(char *) malloc(MAXLEN);
     strncpy(yylval,yytext+2,yyleng-1);
                           strcpy(yylval+yyleng-1,"");   return STARTFS;   }
	YY_BREAK
case 69:
YY_RULE_SETUP
#line 201 "expressions.l"
{ yylval=endfs;                          return ENDFS;     }
	YY_BREAK
case 70:
YY_RULE_SETUP
#line 202 "expressions.l"
{ yylval=endfs;                          return ENDFS;     }
	YY_BREAK
case 71:
YY_RULE_SETUP
#line 203 "expressions.l"
{ unput(' '); yylval = one;       return SIGNATURE; }
	YY_BREAK
case 72:
YY_RULE_SETUP
#line 204 "expressions.l"
{
                               unput(' '); yylval = two; return SIGNATURE; }
	YY_BREAK
case 73:
YY_RULE_SETUP
#line 206 "expressions.l"
{ yylval = (char *) malloc(MAXLEN);
                  strncpy(yylval,yytext,yyleng+1);
                  strcat(yylval+yyleng+1,"");            return METERFRAC; }
	YY_BREAK
case 74:
YY_RULE_SETUP
#line 209 "expressions.l"
{yylval=meterC;                     return METER;     }
	YY_BREAK
case 75:
YY_RULE_SETUP
#line 210 "expressions.l"
{yylval=allabreve;                  return METER;     }
	YY_BREAK
case 76:
YY_RULE_SETUP
#line 211 "expressions.l"
{                                                  }
	YY_BREAK
case 77:
YY_RULE_SETUP
#line 213 "expressions.l"
{yylval=wh ; return TIME; }
	YY_BREAK
case 78:
YY_RULE_SETUP
#line 214 "expressions.l"
{yylval=hh ; return TIME; }
	YY_BREAK
case 79:
YY_RULE_SETUP
#line 215 "expressions.l"
{yylval=ql ; return TIME; }
	YY_BREAK
case 80:
YY_RULE_SETUP
#line 216 "expressions.l"
{yylval=c  ; return TIME; }
	YY_BREAK
case 81:
YY_RULE_SETUP
#line 217 "expressions.l"
{yylval=s  ; return TIME; }
	YY_BREAK
case 82:
YY_RULE_SETUP
#line 218 "expressions.l"
{yylval=t  ; return TIME; }
	YY_BREAK
case 83:
YY_RULE_SETUP
#line 219 "expressions.l"
{yylval=sf ; return TIME; }
	YY_BREAK
case 84:
YY_RULE_SETUP
#line 221 "expressions.l"
{yylval=r  ; return BEAM; }
	YY_BREAK
case 85:
YY_RULE_SETUP
#line 222 "expressions.l"
{yylval=l  ; return BEAM; }
	YY_BREAK
case 86:
YY_RULE_SETUP
#line 225 "expressions.l"
{ yylval=N  ; return THEME; }
	YY_BREAK
case 87:
YY_RULE_SETUP
#line 226 "expressions.l"
{ yylval=a  ; return THEME; }
	YY_BREAK
case 88:
YY_RULE_SETUP
#line 227 "expressions.l"
{ yylval=b  ; return THEME; }
	YY_BREAK
case 89:
YY_RULE_SETUP
#line 228 "expressions.l"
{ yylval=c  ; return THEME; }
	YY_BREAK
case 90:
YY_RULE_SETUP
#line 229 "expressions.l"
{ yylval=d  ; return THEME; }
	YY_BREAK
case 91:
YY_RULE_SETUP
#line 230 "expressions.l"
{ yylval=e  ; return THEME; }
	YY_BREAK
case 92:
YY_RULE_SETUP
#line 231 "expressions.l"
{ yylval=f  ; return THEME; }
	YY_BREAK
case 93:
YY_RULE_SETUP
#line 232 "expressions.l"
{ yylval=g  ; return THEME; }
	YY_BREAK
case 94:
YY_RULE_SETUP
#line 233 "expressions.l"
{ yylval=hh ; return THEME; }
	YY_BREAK
case 95:
YY_RULE_SETUP
#line 235 "expressions.l"
{yylval=pause ;       return REST; }
	YY_BREAK
case 96:
YY_RULE_SETUP
#line 236 "expressions.l"
{yylval=hpause ;      return REST; }
	YY_BREAK
case 97:
YY_RULE_SETUP
#line 237 "expressions.l"
{yylval=soupir ;      return REST; }
	YY_BREAK
case 98:
YY_RULE_SETUP
#line 238 "expressions.l"
{yylval=dsoupir ;     return REST; }
	YY_BREAK
case 99:
YY_RULE_SETUP
#line 239 "expressions.l"
{yylval=quantsoupir ; return REST; }
	YY_BREAK
case 100:
YY_RULE_SETUP
#line 240 "expressions.l"
{yylval=huitsoupir ;  return REST; }
	YY_BREAK
case 101:
YY_RULE_SETUP
#line 242 "expressions.l"
{yylval=gra; return EMB; }
	YY_BREAK
case 102:
YY_RULE_SETUP
#line 243 "expressions.l"
{yylval=grb; return EMB; }
	YY_BREAK
case 103:
YY_RULE_SETUP
#line 244 "expressions.l"
{yylval=grc; return EMB; }
	YY_BREAK
case 104:
YY_RULE_SETUP
#line 245 "expressions.l"
{yylval=grd; return EMB; }
	YY_BREAK
case 105:
YY_RULE_SETUP
#line 246 "expressions.l"
{yylval=gre; return EMB; }
	YY_BREAK
case 106:
YY_RULE_SETUP
#line 247 "expressions.l"
{yylval=grf; return EMB; }
	YY_BREAK
case 107:
YY_RULE_SETUP
#line 248 "expressions.l"
{yylval=grg; return EMB; }
	YY_BREAK
case 108:
YY_RULE_SETUP
#line 249 "expressions.l"
{yylval=grh; return EMB; }
	YY_BREAK
case 109:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 251 "expressions.l"
{             return DOT;  }
	YY_BREAK
case 110:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 252 "expressions.l"
{unput('\t'); return DOT;  }
	YY_BREAK
case 111:
YY_RULE_SETUP
#line 253 "expressions.l"
{             return DDOT; }
	YY_BREAK
case 112:
YY_RULE_SETUP
#line 254 "expressions.l"
{unput('\t'); return DDOT; }
	YY_BREAK
case 113:
YY_RULE_SETUP
#line 256 "expressions.l"
{yylval=addpit(yytext,yyleng,ddgr);   return EMBP; }
	YY_BREAK
case 114:
YY_RULE_SETUP
#line 257 "expressions.l"
{yylval=addpit(yytext,yyleng,edgr);   return EMBP; }
	YY_BREAK
case 115:
YY_RULE_SETUP
#line 258 "expressions.l"
{yylval=addpit(yytext,yyleng,fdgr);   return EMBP; }
	YY_BREAK
case 116:
YY_RULE_SETUP
#line 259 "expressions.l"
{yylval=addpit(yytext,yyleng,gdgr);   return EMBP; }
	YY_BREAK
case 117:
YY_RULE_SETUP
#line 260 "expressions.l"
{yylval=addpit(yytext,yyleng,tdgr);   return EMBP; }
	YY_BREAK
case 118:
YY_RULE_SETUP
#line 261 "expressions.l"
{yylval=addpit(yytext,yyleng,gr);     return EMBP; }
	YY_BREAK
case 119:
YY_RULE_SETUP
#line 262 "expressions.l"
{yylval=addpit(yytext,yyleng,echo);   return EMBP; }
	YY_BREAK
case 120:
YY_RULE_SETUP
#line 263 "expressions.l"
{yylval=addpit(yytext,yyleng,them);   return EMBP; }
	YY_BREAK
case 121:
YY_RULE_SETUP
#line 264 "expressions.l"
{yylval=addpit(yytext,yyleng,dstr);   return EMBP; }
	YY_BREAK
case 122:
YY_RULE_SETUP
#line 265 "expressions.l"
{yylval=addpit(yytext,yyleng,gdstr);  return EMBP; }
	YY_BREAK
case 123:
YY_RULE_SETUP
#line 266 "expressions.l"
{yylval=addpit(yytext,yyleng,tdstr);  return EMBP; }
	YY_BREAK
case 124:
YY_RULE_SETUP
#line 267 "expressions.l"
{yylval=addpit(yytext,yyleng,hdstr);  return EMBP; }
	YY_BREAK
case 125:
YY_RULE_SETUP
#line 268 "expressions.l"
{yylval=addpit(yytext,yyleng,tstr);   return EMBP; }
	YY_BREAK
case 126:
YY_RULE_SETUP
#line 269 "expressions.l"
{yylval=addpit(yytext,yyleng,gtstr);  return EMBP; }
	YY_BREAK
case 127:
YY_RULE_SETUP
#line 270 "expressions.l"
{yylval=addpit(yytext,yyleng,ttstr);  return EMBP; }
	YY_BREAK
case 128:
YY_RULE_SETUP
#line 271 "expressions.l"
{yylval=addpit(yytext,yyleng,htstr);  return EMBP; }
	YY_BREAK
case 129:
YY_RULE_SETUP
#line 272 "expressions.l"
{yylval=addpit(yytext,yyleng,dbl);    return EMBP; }
	YY_BREAK
case 130:
YY_RULE_SETUP
#line 273 "expressions.l"
{yylval=addpit(yytext,yyleng,tdbl);   return EMBP; }
	YY_BREAK
case 131:
YY_RULE_SETUP
#line 274 "expressions.l"
{yylval=addpit(yytext,yyleng,hdbl);   return EMBP; }
	YY_BREAK
case 132:
YY_RULE_SETUP
#line 275 "expressions.l"
{yylval=addpit(yytext,yyleng,hslur);  return EMBP; }
	YY_BREAK
case 133:
YY_RULE_SETUP
#line 276 "expressions.l"
{yylval=addpit(yytext,yyleng,hshk);   return EMBP; }
	YY_BREAK
case 134:
YY_RULE_SETUP
#line 277 "expressions.l"
{yylval=addpit(yytext,yyleng,slur);   return EMBP; }
	YY_BREAK
case 135:
YY_RULE_SETUP
#line 278 "expressions.l"
{yylval=addpit(yytext,yyleng,shk);    return EMBP; }
	YY_BREAK
case 136:
YY_RULE_SETUP
#line 279 "expressions.l"
{yylval=addpit(yytext,yyleng,tslur);  return EMBP; }
	YY_BREAK
case 137:
YY_RULE_SETUP
#line 280 "expressions.l"
{yylval=addpit(yytext,yyleng,tshk);   return EMBP; }
	YY_BREAK
case 138:
YY_RULE_SETUP
#line 281 "expressions.l"
{yylval=addpit(yytext,yyleng,pel);    return EMBP; }
	YY_BREAK
case 139:
YY_RULE_SETUP
#line 282 "expressions.l"
{yylval=addpit(yytext,yyleng,lpel);   return EMBP; }
	YY_BREAK
case 140:
YY_RULE_SETUP
#line 283 "expressions.l"
{yylval=addpit(yytext,yyleng,tpel);   return EMBP; }
	YY_BREAK
case 141:
YY_RULE_SETUP
#line 284 "expressions.l"
{yylval=addpit(yytext,yyleng,ltpel);  return EMBP; }
	YY_BREAK
case 142:
YY_RULE_SETUP
#line 285 "expressions.l"
{yylval=addpit(yytext,yyleng,hpel);   return EMBP; }
	YY_BREAK
case 143:
YY_RULE_SETUP
#line 286 "expressions.l"
{yylval=addpit(yytext,yyleng,catch);  return EMBP; }
	YY_BREAK
case 144:
YY_RULE_SETUP
#line 287 "expressions.l"
{yylval=addpit(yytext,yyleng,scatch); return EMBP; }
	YY_BREAK
case 145:
YY_RULE_SETUP
#line 288 "expressions.l"
{yylval=addpit(yytext,yyleng,tcatch); return EMBP; }
	YY_BREAK
case 146:
YY_RULE_SETUP
#line 289 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,them);
                           strcat(yylval,e);                return EMBP; }
	YY_BREAK
case 147:
YY_RULE_SETUP
#line 291 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,dbl);
                           strcat(yylval,hh);               return EMBP; }
	YY_BREAK
case 148:
YY_RULE_SETUP
#line 293 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,echo);
                           strcat(yylval,N);                return EMBP; }
	YY_BREAK
case 149:
YY_RULE_SETUP
#line 295 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,ddgr);
                           strcat(yylval,a);                return EMBP; }
	YY_BREAK
case 150:
YY_RULE_SETUP
#line 297 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,ddgr);
                           strcat(yylval,N);                return EMBP; }
	YY_BREAK
case 151:
YY_RULE_SETUP
#line 299 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,grip);
           strcat(yylval,pointdorgue); strcat(yylval," e"); return EMBP; }
	YY_BREAK
case 152:
YY_RULE_SETUP
#line 301 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,dgrip);
           strcat(yylval,pointdorgue); strcat(yylval," e"); return EMBP; }
	YY_BREAK
case 153:
YY_RULE_SETUP
#line 303 "expressions.l"
{yylval=(char *)malloc(MAXLEN); strcpy(yylval,ddgr);
                          strcat(yylval,a); strcat(yylval,pointdorgue);
                                       strcat(yylval," e"); return EMBP; }
	YY_BREAK
case 154:
YY_RULE_SETUP
#line 308 "expressions.l"
{yylval=ldstrd;     return EMB;    }
	YY_BREAK
case 155:
YY_RULE_SETUP
#line 309 "expressions.l"
{yylval=ltstrd;     return EMB;    }
	YY_BREAK
case 156:
YY_RULE_SETUP
#line 310 "expressions.l"
{yylval=thrwd;      return EMB;    }
	YY_BREAK
case 157:
YY_RULE_SETUP
#line 311 "expressions.l"
{yylval=hthrwd;     return EMB;    }
	YY_BREAK
case 158:
YY_RULE_SETUP
#line 312 "expressions.l"
{yylval=gripthrwd;  return EMB;    }
	YY_BREAK
case 159:
YY_RULE_SETUP
#line 313 "expressions.l"
{yylval=hgripthrwd; return EMB;    }
	YY_BREAK
case 160:
YY_RULE_SETUP
#line 314 "expressions.l"
{yylval=trille;     return EMB;    }
	YY_BREAK
case 161:
YY_RULE_SETUP
#line 315 "expressions.l"
{yylval=tra;        return EMB;    }
	YY_BREAK
case 162:
YY_RULE_SETUP
#line 316 "expressions.l"
{yylval=trac;       return EMB;    }
	YY_BREAK
case 163:
YY_RULE_SETUP
#line 317 "expressions.l"
{yylval=htra;       return EMB;    }
	YY_BREAK
case 164:
YY_RULE_SETUP
#line 318 "expressions.l"
{yylval=trille;     return EMB;    }
	YY_BREAK
case 165:
YY_RULE_SETUP
#line 319 "expressions.l"
{yylval=trille;     return EMB;    }
	YY_BREAK
case 166:
YY_RULE_SETUP
#line 320 "expressions.l"
{yylval=trille;     return EMB;    }
	YY_BREAK
case 167:
YY_RULE_SETUP
#line 321 "expressions.l"
{yylval=wbirl;      return EMB;    }
	YY_BREAK
case 168:
YY_RULE_SETUP
#line 322 "expressions.l"
{yylval=birl;       return EMB;    }
	YY_BREAK
case 169:
YY_RULE_SETUP
#line 323 "expressions.l"
{yylval=sbirl;      return EMB;    }
	YY_BREAK
case 170:
YY_RULE_SETUP
#line 324 "expressions.l"
{yylval=tbirl;      return EMB;    }
	YY_BREAK
case 171:
YY_RULE_SETUP
#line 325 "expressions.l"
{yylval=grip;       return EMB;    }
	YY_BREAK
case 172:
YY_RULE_SETUP
#line 326 "expressions.l"
{yylval=trille;     return EMB;    }
	YY_BREAK
case 173:
YY_RULE_SETUP
#line 327 "expressions.l"
{yylval=grip;       return EMB;    }
	YY_BREAK
case 174:
YY_RULE_SETUP
#line 328 "expressions.l"
{yylval=abrleum;    return EMB;    }
	YY_BREAK
case 175:
YY_RULE_SETUP
#line 329 "expressions.l"
{yylval=abrleum;    return EMB;    }
	YY_BREAK
case 176:
YY_RULE_SETUP
#line 330 "expressions.l"
{yylval=abrleum;    return EMB;    }
	YY_BREAK
case 177:
YY_RULE_SETUP
#line 331 "expressions.l"
{yylval=abrleumbr;  return EMB;    }
	YY_BREAK
case 178:
YY_RULE_SETUP
#line 332 "expressions.l"
{yylval=abrleumbr;  return EMB;    }
	YY_BREAK
case 179:
YY_RULE_SETUP
#line 333 "expressions.l"
{yylval=abrleumbr;  return EMB;    }
	YY_BREAK
case 180:
YY_RULE_SETUP
#line 334 "expressions.l"
{yylval=Ngrip;      return EMB;    }
	YY_BREAK
case 181:
YY_RULE_SETUP
#line 335 "expressions.l"
{yylval=dgrip;      return EMB;    }
	YY_BREAK
case 182:
YY_RULE_SETUP
#line 336 "expressions.l"
{yylval=dgrip;      return EMB;    }
	YY_BREAK
case 183:
YY_RULE_SETUP
#line 337 "expressions.l"
{yylval=dgrip;      return EMB;    }
	YY_BREAK
case 184:
YY_RULE_SETUP
#line 338 "expressions.l"
{yylval=hiharin;    return EMB;    }
	YY_BREAK
case 185:
YY_RULE_SETUP
#line 339 "expressions.l"
{yylval=pince;      return EMB;    }
	YY_BREAK
case 186:
YY_RULE_SETUP
#line 340 "expressions.l"
{yylval=chelalho;   return EMB;    }
	YY_BREAK
case 187:
YY_RULE_SETUP
#line 341 "expressions.l"
{yylval=deda;       return EMB;    }
	YY_BREAK
case 188:
YY_RULE_SETUP
#line 342 "expressions.l"
{yylval=taor;       return EMB;    }
	YY_BREAK
case 189:
YY_RULE_SETUP
#line 343 "expressions.l"
{yylval=htaor;      return EMB;    }
	YY_BREAK
case 190:
YY_RULE_SETUP
#line 344 "expressions.l"
{yylval=dtaor;      return EMB;    }
	YY_BREAK
case 191:
YY_RULE_SETUP
#line 345 "expressions.l"
{yylval=taor;       return EMB;    }
	YY_BREAK
case 192:
YY_RULE_SETUP
#line 346 "expressions.l"
{yylval=Ntaor;      return EMB;    }
	YY_BREAK
case 193:
YY_RULE_SETUP
#line 347 "expressions.l"
{yylval=ahtaorb;    return EMB;    }
	YY_BREAK
case 194:
YY_RULE_SETUP
#line 348 "expressions.l"
{yylval=ahtaor;     return EMB;    }
	YY_BREAK
case 195:
YY_RULE_SETUP
#line 349 "expressions.l"
{yylval=Ntaor;      return EMB;    }
	YY_BREAK
case 196:
YY_RULE_SETUP
#line 350 "expressions.l"
{yylval=abrtaor;    return EMB;    }
	YY_BREAK
case 197:
YY_RULE_SETUP
#line 351 "expressions.l"
{yylval=abrtaor;    return EMB;    }
	YY_BREAK
case 198:
YY_RULE_SETUP
#line 352 "expressions.l"
{yylval=abrtaor;    return EMB;    }
	YY_BREAK
case 199:
YY_RULE_SETUP
#line 353 "expressions.l"
{yylval=abrtaor;    return EMB;    }
	YY_BREAK
case 200:
YY_RULE_SETUP
#line 354 "expressions.l"
{yylval=abrtaor;    return EMB;    }
	YY_BREAK
case 201:
YY_RULE_SETUP
#line 355 "expressions.l"
{yylval=abrtaorbr;  return EMB;    }
	YY_BREAK
case 202:
YY_RULE_SETUP
#line 356 "expressions.l"
{yylval=abrtaorbr;  return EMB;    }
	YY_BREAK
case 203:
YY_RULE_SETUP
#line 357 "expressions.l"
{yylval=abrtaorbr;  return EMB;    }
	YY_BREAK
case 204:
YY_RULE_SETUP
#line 358 "expressions.l"
{yylval=abrtaorm;  return EMB;    }
	YY_BREAK
case 205:
YY_RULE_SETUP
#line 359 "expressions.l"
{yylval=darodo;     return EMB;    }
	YY_BREAK
case 206:
YY_RULE_SETUP
#line 360 "expressions.l"
{yylval=darodo;     return EMB;    }
	YY_BREAK
case 207:
YY_RULE_SETUP
#line 361 "expressions.l"
{yylval=darodos;    return EMB;    }
	YY_BREAK
case 208:
YY_RULE_SETUP
#line 362 "expressions.l"
{yylval=turn;       return EMB;    }
	YY_BREAK
case 209:
YY_RULE_SETUP
#line 363 "expressions.l"
{yylval=turn;       return EMB;    }
	YY_BREAK
case 210:
YY_RULE_SETUP
#line 364 "expressions.l"
{yylval=Ndarodo;    return EMB;    }
	YY_BREAK
case 211:
YY_RULE_SETUP
#line 365 "expressions.l"
{yylval=Ndarodo;    return EMB;    }
	YY_BREAK
case 212:
YY_RULE_SETUP
#line 366 "expressions.l"
{yylval=turn;       return EMB;    }
	YY_BREAK
case 213:
YY_RULE_SETUP
#line 367 "expressions.l"
{yylval=cadged;     return EMB;    }
	YY_BREAK
case 214:
YY_RULE_SETUP
#line 368 "expressions.l"
{yylval=cadged;     return EMB;    }
	YY_BREAK
case 215:
YY_RULE_SETUP
#line 369 "expressions.l"
{yylval=cadge;      return EMB;    }
	YY_BREAK
case 216:
YY_RULE_SETUP
#line 370 "expressions.l"
{yylval=cadgf;      return EMB;    }
	YY_BREAK
case 217:
YY_RULE_SETUP
#line 371 "expressions.l"
{yylval=cadaed;     return EMB;    }
	YY_BREAK
case 218:
YY_RULE_SETUP
#line 372 "expressions.l"
{yylval=cadae;      return EMB;    }
	YY_BREAK
case 219:
YY_RULE_SETUP
#line 373 "expressions.l"
{yylval=fcadged;    return EMB;    }
	YY_BREAK
case 220:
YY_RULE_SETUP
#line 374 "expressions.l"
{yylval=fcadged;    return EMB;    }
	YY_BREAK
case 221:
YY_RULE_SETUP
#line 375 "expressions.l"
{yylval=fcadge;     return EMB;    }
	YY_BREAK
case 222:
YY_RULE_SETUP
#line 376 "expressions.l"
{yylval=fcadgf;     return EMB;    }
	YY_BREAK
case 223:
YY_RULE_SETUP
#line 377 "expressions.l"
{yylval=fcadaed;    return EMB;    }
	YY_BREAK
case 224:
YY_RULE_SETUP
#line 378 "expressions.l"
{yylval=fcadae;     return EMB;    }
	YY_BREAK
case 225:
YY_RULE_SETUP
#line 379 "expressions.l"
{yylval=fcade;      return EMB;    }
	YY_BREAK
case 226:
YY_RULE_SETUP
#line 381 "expressions.l"
{yylval=hdre;    return EMB;    }
	YY_BREAK
case 227:
YY_RULE_SETUP
#line 382 "expressions.l"
{yylval=edre;    return EMB;    }
	YY_BREAK
case 228:
YY_RULE_SETUP
#line 383 "expressions.l"
{yylval=edreb;   return EMB;    }
	YY_BREAK
case 229:
YY_RULE_SETUP
#line 384 "expressions.l"
{yylval=edrec;   return EMB;    }
	YY_BREAK
case 230:
YY_RULE_SETUP
#line 385 "expressions.l"
{yylval=edred;   return EMB;    }
	YY_BREAK
case 231:
YY_RULE_SETUP
#line 386 "expressions.l"
{yylval=scatchb; return EMB;    }
	YY_BREAK
case 232:
YY_RULE_SETUP
#line 387 "expressions.l"
{yylval=scatchc; return EMB;    }
	YY_BREAK
case 233:
YY_RULE_SETUP
#line 388 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 234:
YY_RULE_SETUP
#line 389 "expressions.l"
{yylval=upz;     return EMB;    }
	YY_BREAK
case 235:
YY_RULE_SETUP
#line 390 "expressions.l"
{yylval=upz;     return EMB;    }
	YY_BREAK
case 236:
YY_RULE_SETUP
#line 391 "expressions.l"
{yylval=upz;     return EMB;    }
	YY_BREAK
case 237:
YY_RULE_SETUP
#line 392 "expressions.l"
{yylval=abrcrunm; return EMB;   }
	YY_BREAK
case 238:
YY_RULE_SETUP
#line 393 "expressions.l"
{yylval=abrcrunm; return EMB;   }
	YY_BREAK
case 239:
YY_RULE_SETUP
#line 394 "expressions.l"
{yylval=dare;    return EMB;    }
	YY_BREAK
case 240:
YY_RULE_SETUP
#line 395 "expressions.l"
{yylval=pdare;   return EMB;    }
	YY_BREAK
case 241:
YY_RULE_SETUP
#line 396 "expressions.l"
{yylval=gedre;   return EMB;    }
	YY_BREAK
case 242:
YY_RULE_SETUP
#line 397 "expressions.l"
{yylval=gdare;   return EMB;    }
	YY_BREAK
case 243:
YY_RULE_SETUP
#line 398 "expressions.l"
{yylval=tedre;   return EMB;    }
	YY_BREAK
case 244:
YY_RULE_SETUP
#line 399 "expressions.l"
{yylval=tdare;   return EMB;    }
	YY_BREAK
case 245:
YY_RULE_SETUP
#line 400 "expressions.l"
{yylval=tchechere; return EMB;  }
	YY_BREAK
case 246:
YY_RULE_SETUP
#line 401 "expressions.l"
{yylval=hchechere; return EMB;  }
	YY_BREAK
case 247:
YY_RULE_SETUP
#line 402 "expressions.l"
{yylval=edre;    return EMB;    }
	YY_BREAK
case 248:
YY_RULE_SETUP
#line 403 "expressions.l"
{yylval=edre;    return EMB;    }
	YY_BREAK
case 249:
YY_RULE_SETUP
#line 404 "expressions.l"
{yylval=dare;    return EMB;    }
	YY_BREAK
case 250:
YY_RULE_SETUP
#line 405 "expressions.l"
{yylval=dare;    return EMB;    }
	YY_BREAK
case 251:
YY_RULE_SETUP
#line 406 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 252:
YY_RULE_SETUP
#line 407 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 253:
YY_RULE_SETUP
#line 408 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 254:
YY_RULE_SETUP
#line 409 "expressions.l"
{yylval=dare;    return EMB;    }
	YY_BREAK
case 255:
YY_RULE_SETUP
#line 410 "expressions.l"
{yylval=hedari;  return EMB;    }
	YY_BREAK
case 256:
YY_RULE_SETUP
#line 411 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 257:
YY_RULE_SETUP
#line 412 "expressions.l"
{yylval=hedale;  return EMB;    }
	YY_BREAK
case 258:
YY_RULE_SETUP
#line 413 "expressions.l"
{yylval=dbstf;   return EMB;    }
	YY_BREAK
case 259:
YY_RULE_SETUP
#line 414 "expressions.l"
{yylval=dbsth;   return EMB;    }
	YY_BREAK
case 260:
YY_RULE_SETUP
#line 415 "expressions.l"
{yylval=enbain;  return EMB;    }
	YY_BREAK
case 261:
YY_RULE_SETUP
#line 416 "expressions.l"
{yylval=otro;    return EMB;    }
	YY_BREAK
case 262:
YY_RULE_SETUP
#line 417 "expressions.l"
{yylval=odro;    return EMB;    }
	YY_BREAK
case 263:
YY_RULE_SETUP
#line 418 "expressions.l"
{yylval=adela;   return EMB;    }
	YY_BREAK
case 264:
YY_RULE_SETUP
#line 419 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 265:
YY_RULE_SETUP
#line 420 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 266:
YY_RULE_SETUP
#line 421 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 267:
YY_RULE_SETUP
#line 422 "expressions.l"
{yylval=pince;   return EMB;    }
	YY_BREAK
case 268:
YY_RULE_SETUP
#line 423 "expressions.l"
{yylval=genbain; return EMB;    }
	YY_BREAK
case 269:
YY_RULE_SETUP
#line 424 "expressions.l"
{yylval=gotro;   return EMB;    }
	YY_BREAK
case 270:
YY_RULE_SETUP
#line 425 "expressions.l"
{yylval=godro;   return EMB;    }
	YY_BREAK
case 271:
YY_RULE_SETUP
#line 426 "expressions.l"
{yylval=gadela;  return EMB;    }
	YY_BREAK
case 272:
YY_RULE_SETUP
#line 427 "expressions.l"
{yylval=tenbain; return EMB;    }
	YY_BREAK
case 273:
YY_RULE_SETUP
#line 428 "expressions.l"
{yylval=totro;   return EMB;    }
	YY_BREAK
case 274:
YY_RULE_SETUP
#line 429 "expressions.l"
{yylval=todro;   return EMB;    }
	YY_BREAK
case 275:
YY_RULE_SETUP
#line 430 "expressions.l"
{yylval=tadela;  return EMB;    }
	YY_BREAK
case 276:
YY_RULE_SETUP
#line 431 "expressions.l"
{yylval=crun;    return EMB;    }
	YY_BREAK
case 277:
YY_RULE_SETUP
#line 432 "expressions.l"
{yylval=dcrun;   return EMB;    }
	YY_BREAK
case 278:
YY_RULE_SETUP
#line 433 "expressions.l"
{yylval=ahcrun;  return EMB;    }
	YY_BREAK
case 279:
YY_RULE_SETUP
#line 434 "expressions.l"
{yylval=Nhcrun;  return EMB;    }
	YY_BREAK
case 280:
YY_RULE_SETUP
#line 435 "expressions.l"
{yylval=Nhcrun;  return EMB;    }
	YY_BREAK
case 281:
YY_RULE_SETUP
#line 436 "expressions.l"
{yylval=dcrunbr; return EMB;    }
	YY_BREAK
case 282:
YY_RULE_SETUP
#line 437 "expressions.l"
{yylval=hcrunbr; return EMB;    }
	YY_BREAK
case 283:
YY_RULE_SETUP
#line 438 "expressions.l"
{yylval=abrcrun; return EMB;    }
	YY_BREAK
case 284:
YY_RULE_SETUP
#line 439 "expressions.l"
{yylval=abrcrun; return EMB;    }
	YY_BREAK
case 285:
YY_RULE_SETUP
#line 440 "expressions.l"
{yylval=abrcrun; return EMB;    }
	YY_BREAK
case 286:
YY_RULE_SETUP
#line 441 "expressions.l"
{yylval=abrcrun; return EMB;    }
	YY_BREAK
case 287:
YY_RULE_SETUP
#line 442 "expressions.l"
{yylval=abrcrunbr; return EMB;  }
	YY_BREAK
case 288:
YY_RULE_SETUP
#line 443 "expressions.l"
{yylval=abrcrunbr; return EMB;  }
	YY_BREAK
case 289:
YY_RULE_SETUP
#line 444 "expressions.l"
{yylval=abrcrunbr; return EMB;  }
	YY_BREAK
case 290:
YY_RULE_SETUP
#line 445 "expressions.l"
{yylval=abrcrunm;  return EMB;  }
	YY_BREAK
case 291:
YY_RULE_SETUP
#line 446 "expressions.l"
{yylval=abrtrip; return EMB;   }
	YY_BREAK
case 292:
YY_RULE_SETUP
#line 447 "expressions.l"
{yylval=abrtrip; return EMB;  }
	YY_BREAK
case 293:
YY_RULE_SETUP
#line 448 "expressions.l"
{yylval=abrtrip; return EMB;  }
	YY_BREAK
case 294:
YY_RULE_SETUP
#line 449 "expressions.l"
{yylval=upz;     return EMB;    }
	YY_BREAK
case 295:
YY_RULE_SETUP
#line 451 "expressions.l"
{yylval=addpit(yytext,yyleng,hslur); return EMBP; }
	YY_BREAK
case 296:
YY_RULE_SETUP
#line 452 "expressions.l"
{yylval=addpit(yytext,yyleng,hshk);  return EMBP; }
	YY_BREAK
case 297:
YY_RULE_SETUP
#line 454 "expressions.l"
{yylval=addpit(yytext,yyleng,fl);    return EMBP; }
	YY_BREAK
case 298:
YY_RULE_SETUP
#line 455 "expressions.l"
{yylval=addpit(yytext,yyleng,na);    return EMBP; }
	YY_BREAK
case 299:
YY_RULE_SETUP
#line 456 "expressions.l"
{yylval=addpit(yytext,yyleng,shp);   return EMBP; }
	YY_BREAK
case 300:
YY_RULE_SETUP
#line 458 "expressions.l"
{yylval=strcat(addpit(yytext,yyleng,fermat),"}");
                                                             return EMBP; }
	YY_BREAK
case 301:
YY_RULE_SETUP
#line 461 "expressions.l"
{yylval=thrwd;   return EMB;    }
	YY_BREAK
case 302:
YY_RULE_SETUP
#line 462 "expressions.l"
{yylval=dgrip;   return EMB;    }
	YY_BREAK
case 303:
YY_RULE_SETUP
#line 463 "expressions.l"
{yylval=dtaor;   return EMB;    }
	YY_BREAK
case 304:
YY_RULE_SETUP
#line 464 "expressions.l"
{yylval=darodo;  return EMB;    }
	YY_BREAK
case 305:
YY_RULE_SETUP
#line 465 "expressions.l"
{yylval=Ndarodo; return EMB;    }
	YY_BREAK
case 306:
YY_RULE_SETUP
#line 466 "expressions.l"
{yylval=dbstf;   return EMB;    }
	YY_BREAK
case 307:
YY_RULE_SETUP
#line 467 "expressions.l"
{yylval=dbsth;   return EMB;    }
	YY_BREAK
case 308:
YY_RULE_SETUP
#line 469 "expressions.l"
{yylval=hgrpb;   return EMB;    }
	YY_BREAK
case 309:
YY_RULE_SETUP
#line 470 "expressions.l"
{yylval=hgrpc;   return EMB;    }
	YY_BREAK
case 310:
YY_RULE_SETUP
#line 471 "expressions.l"
{yylval=scatchb; return EMB;    }
	YY_BREAK
case 311:
YY_RULE_SETUP
#line 472 "expressions.l"
{yylval=scatchc; return EMB;    }
	YY_BREAK
case 312:
YY_RULE_SETUP
#line 473 "expressions.l"
{yylval=tcatchb; return EMB;    }
	YY_BREAK
case 313:
YY_RULE_SETUP
#line 474 "expressions.l"
{yylval=tcatchc; return EMB;    }
	YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 476 "expressions.l"
{ return ENDFILE;   }
	YY_BREAK
case 314:
YY_RULE_SETUP
#line 478 "expressions.l"
{ ECHO; unput(' '); }
	YY_BREAK
case 315:
YY_RULE_SETUP
#line 479 "expressions.l"
{ ECHO; unput(' '); }
	YY_BREAK
case 316:
YY_RULE_SETUP
#line 480 "expressions.l"
{ ECHO; unput(' '); }
	YY_BREAK
case 317:
YY_RULE_SETUP
#line 481 "expressions.l"
{ ECHO; unput(' '); }
	YY_BREAK
case 318:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 482 "expressions.l"
{                   }
	YY_BREAK
case 319:
YY_RULE_SETUP
#line 483 "expressions.l"
{                   }
	YY_BREAK
case 320:
YY_RULE_SETUP
#line 484 "expressions.l"
{                   }
	YY_BREAK
case 321:
YY_RULE_SETUP
#line 486 "expressions.l"
ECHO;
	YY_BREAK
#line 4075 "lex.yy.c"

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

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

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

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

			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state();

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

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = yytext_ptr + YY_MORE_ADJ;

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

			else
				{
				yy_cp = yy_c_buf_p;
				goto yy_find_action;
				}
			}

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

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

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

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

			case EOB_ACT_CONTINUE_SCAN:
				yy_c_buf_p =
					yytext_ptr + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state();

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

			case EOB_ACT_LAST_MATCH:
				yy_c_buf_p =
				&yy_current_buffer->yy_ch_buf[yy_n_chars];

				yy_current_state = yy_get_previous_state();

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

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


/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
 */

static int yy_get_next_buffer()
	{
	register char *dest = yy_current_buffer->yy_ch_buf;
	register char *source = yytext_ptr;
	register int number_to_move, i;
	int ret_val;

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

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

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

	/* Try to read more data. */

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

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

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

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

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

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

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

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

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

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

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

			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];

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

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

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

		yy_current_buffer->yy_n_chars = yy_n_chars;
		}

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

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

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

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

	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];

	return ret_val;
	}


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

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

	yy_current_state = yy_start;
	yy_state_ptr = yy_state_buf;
	*yy_state_ptr++ = yy_current_state;

	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
		{
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
			{
			yy_current_state = (int) yy_def[yy_current_state];
			if ( yy_current_state >= 2073 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		*yy_state_ptr++ = yy_current_state;
		}

	return yy_current_state;
	}


/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
 *	next_state = yy_try_NUL_trans( current_state );
 */

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

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

	return yy_is_jam ? 0 : yy_current_state;
	}


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

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

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

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

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

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

	*--yy_cp = (char) c;


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


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

	*yy_c_buf_p = yy_hold_char;

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

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

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

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

					/* fall through */

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

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

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

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


	return c;
	}


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

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


#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
	{
	if ( yy_current_buffer == new_buffer )
		return;

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

	yy_current_buffer = new_buffer;
	yy_load_buffer_state();

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


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


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

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

	b->yy_buf_size = size;

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

	b->yy_is_our_buffer = 1;

	yy_init_buffer( b, file );

	return b;
	}


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

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

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

	yy_flex_free( (void *) b );
	}


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

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


	{
	yy_flush_buffer( b );

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

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


#ifdef YY_USE_PROTOS
void yy_flush_buffer( YY_BUFFER_STATE b )
#else
void yy_flush_buffer( b )
YY_BUFFER_STATE b;
#endif

	{
	if ( ! b )
		return;

	b->yy_n_chars = 0;

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

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

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

	if ( b == yy_current_buffer )
		yy_load_buffer_state();
	}


#ifndef YY_NO_SCAN_BUFFER
#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
#else
YY_BUFFER_STATE yy_scan_buffer( base, size )
char *base;
yy_size_t size;
#endif
	{
	YY_BUFFER_STATE b;

	if ( size < 2 ||
	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
	     base[size-1] != YY_END_OF_BUFFER_CHAR )
		/* They forgot to leave room for the EOB's. */
		return 0;

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

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

	yy_switch_to_buffer( b );

	return b;
	}
#endif


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

	return yy_scan_bytes( yy_str, len );
	}
#endif


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

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

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

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

	b = yy_scan_buffer( buf, n );
	if ( ! b )
		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );

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

	return b;
	}
#endif


#ifndef YY_NO_PUSH_STATE
#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#endif
	{
	if ( yy_start_stack_ptr >= yy_start_stack_depth )
		{
		yy_size_t new_size;

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

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

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

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

	yy_start_stack[yy_start_stack_ptr++] = YY_START;

	BEGIN(new_state);
	}
#endif


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

	BEGIN(yy_start_stack[yy_start_stack_ptr]);
	}
#endif


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

#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif

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



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

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


/* Internal utility routines. */

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

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

	return n;
	}
#endif


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

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

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

#if YY_MAIN
int main()
	{
	yylex();
	return 0;
	}
#endif
#line 486 "expressions.l"


yywrap(){return 1;}

char *addpit( char *yyt, size_t yyl, char *tok )
  { char *retptr;

    retptr = (char *) malloc(MAXLEN);
    strcpy(retptr,tok);

    while( *(yyt+yyl-1) != 'b' &&
           *(yyt+yyl-1) != 'c' &&
           *(yyt+yyl-1) != 'd' &&
           *(yyt+yyl-1) != 'e' &&
           *(yyt+yyl-1) != 'f' &&
           *(yyt+yyl-1) != 'g' &&
           *(yyt+yyl-1) != 'a' &&
           *(yyt+yyl-1) != 'B' &&
           *(yyt+yyl-1) != 'C' &&
           *(yyt+yyl-1) != 'D' &&
           *(yyt+yyl-1) != 'E' &&
           *(yyt+yyl-1) != 'F' &&
           *(yyt+yyl-1) != 'G' &&
           *(yyt+yyl-1) != 'A' &&
           yyl > 1               ) yyl--;

    if       ( *(yyt+yyl-1) == 'b' ||
               *(yyt+yyl-1) == 'B'    ) strcat(retptr,b);
    else if  ( *(yyt+yyl-1) == 'c' ||
               *(yyt+yyl-1) == 'C'    ) strcat(retptr,c);
    else if  ( *(yyt+yyl-1) == 'd' ||
               *(yyt+yyl-1) == 'D'    ) strcat(retptr,d);
    else if  ( *(yyt+yyl-1) == 'e' ||
               *(yyt+yyl-1) == 'E'    ) strcat(retptr,e);
    else if  ( *(yyt+yyl-1) == 'f' ||
               *(yyt+yyl-1) == 'F'    ) strcat(retptr,f);
    else if  ( (*(yyt+yyl-1) == 'g' || *(yyt+yyl-1) == 'G')
            && (*(yyt+yyl-2) == 'h' || *(yyt+yyl-2) == 'H')) strcat(retptr,g);
    else if  ( (*(yyt+yyl-1) == 'g' || *(yyt+yyl-1) == 'G')
            && (*(yyt+yyl-2) == 'l' || *(yyt+yyl-2) == 'L')) strcat(retptr,N);
    else if  ( (*(yyt+yyl-1) == 'a' || *(yyt+yyl-1) == 'A')
            && (*(yyt+yyl-2) == 'l' || *(yyt+yyl-2) == 'L')) strcat(retptr,a);
    else if  ( (*(yyt+yyl-1) == 'a' || *(yyt+yyl-1) == 'A')
            && (*(yyt+yyl-2) == 'h' || *(yyt+yyl-2) == 'H')) strcat(retptr,hh);

    return retptr;
  }

void unpitch( char *yyt, size_t yyl)
  {
    if       ( *(yyt+yyl-1) == 'b' ||
               *(yyt+yyl-1) == 'B'    ) unput('B');
    else if  ( *(yyt+yyl-1) == 'c' ||
               *(yyt+yyl-1) == 'C'    ) unput('C');
    else if  ( *(yyt+yyl-1) == 'd' ||
               *(yyt+yyl-1) == 'D'    ) unput('D');
    else if  ( *(yyt+yyl-1) == 'e' ||
               *(yyt+yyl-1) == 'E'    ) unput('E');
    else if  ( *(yyt+yyl-1) == 'f' ||
               *(yyt+yyl-1) == 'F'    ) unput('F');
    else if  ( (*(yyt+yyl-1) == 'g' || *(yyt+yyl-1) == 'G')
            && (*(yyt+yyl-2) == 'h' || *(yyt+yyl-2) == 'H')) {unput('G'); unput('H');}
    else if  ( (*(yyt+yyl-1) == 'g' || *(yyt+yyl-1) == 'G')
            && (*(yyt+yyl-2) == 'l' || *(yyt+yyl-2) == 'L')) {unput('G'); unput('L');}
    else if  ( (*(yyt+yyl-1) == 'a' || *(yyt+yyl-1) == 'A')
            && (*(yyt+yyl-2) == 'l' || *(yyt+yyl-2) == 'L')) {unput('A'); unput('L');}
    else if  ( (*(yyt+yyl-1) == 'a' || *(yyt+yyl-1) == 'A')
            && (*(yyt+yyl-2) == 'h' || *(yyt+yyl-2) == 'H')) {unput('A'); unput('H');}
    unput(' ');
    return;
  }
