Logo Search packages:      
Sourcecode: nmap version File versions

scanner.c

/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header: /CVS/nmap/libpcap-possiblymodified/scanner.c,v 1.5 2004/08/01 05:54:55 fyodor Exp $
 */

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

#include <stdio.h>
#include <unistd.h>


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


#ifdef __cplusplus

#include <stdlib.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)

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 124
#define YY_END_OF_BUFFER 125
static yyconst short int yy_accept[1299] =
    {   0,
        0,    0,  125,  122,   82,   82,   82,   83,  122,   83,
       83,   83,  123,   91,   91,   83,   83,   83,   83,  120,
      120,  122,  120,  120,  120,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
      120,  120,   83,  122,   86,   90,   55,    0,  120,   91,
        0,  120,  120,  120,   94,   88,   85,   87,   84,   89,
      121,  121,  120,  120,   18,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,    7,  120,
       32,   33,  120,  120,  120,  120,  120,  120,  120,  120,

      120,  120,  120,  120,   76,   56,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,   70,  120,  120,
      120,  120,  120,  120,    4,  120,  120,  120,  120,  120,
      120,   56,   90,   92,   92,   91,  120,    0,   94,   91,
       94,   94,   94,  120,  120,   55,    5,  120,   65,  120,
      120,  120,  120,  120,  120,    1,    0,  120,   19,  120,
      120,  120,  120,  120,  120,  120,  120,  120,   34,  120,
      120,   16,   41,    0,  120,   27,  120,   23,   58,  120,
      120,   63,   35,  120,  120,  120,  120,   44,   57,   66,
      120,   14,  120,    3,  120,  120,  120,  120,   78,  120,

      120,   24,  120,  120,   36,    2,  120,   40,  120,    9,
       10,   73,  120,   72,  120,  120,  120,  120,   91,    0,
      120,    0,   95,   94,   94,    0,   94,    0,   94,    0,
       94,    0,   21,  120,  120,  120,   52,   39,  120,   37,
      120,  120,   28,  120,  120,  120,   43,   11,  120,   12,
       13,  120,  120,  120,   30,   62,  120,   50,   45,  120,
      120,  120,  120,  120,  120,  120,   46,  120,   38,    6,
      120,   77,  120,    8,   79,  120,    0,  120,   61,   15,
       92,   92,   92,   91,    0,   94,    0,    0,   94,    0,
       94,   95,   94,    0,    0,    0,    0,   94,   94,   94,

       94,   94,    0,  120,   20,  120,  120,  120,   29,  120,
      120,    0,   17,  120,  120,  120,   71,  120,   31,  120,
       64,   26,   25,  120,  120,   67,  120,   47,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
      120,    0,    0,   94,   94,   94,    0,    0,   95,   94,
       94,   95,   94,    0,    0,   94,   94,   94,   94,   94,
        0,    0,    0,    0,   94,   94,    0,   94,    0,   94,
        0,   81,  120,  120,   22,  120,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,   58,  120,
      120,  120,  120,  120,  120,  120,   80,  120,  120,  120,

      120,  120,  120,  120,  120,  120,  120,   92,   92,   92,
        0,   94,   94,    0,   94,    0,    0,   94,    0,   94,
       95,   94,    0,    0,    0,   94,   94,    0,   94,   95,
       94,    0,    0,    0,    0,    0,    0,    0,   94,   94,
       94,   94,   94,    0,  120,  120,   49,   51,  120,  120,
      120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
       59,  120,  120,   42,   68,   69,  120,  120,  120,  118,
      114,  120,  116,  115,  119,  120,  120,    0,    0,   94,
       94,   94,   94,   94,   94,    0,    0,   95,   94,   94,
       94,    0,    0,   94,   94,   94,   94,   94,    0,    0,

        0,    0,    0,    0,    0,   94,   94,   94,   94,   94,
        0,    0,    0,    0,    0,   94,   94,    0,   94,    0,
       94,    0,  120,  120,  120,  120,  120,  120,  120,  120,
      120,  120,  120,  120,   97,   96,  120,  120,   60,  120,
      120,  117,  113,   92,    0,   94,   94,    0,   94,   94,
        0,   94,    0,    0,   94,    0,   94,   95,   94,    0,
        0,    0,   94,   94,    0,   94,   95,   94,    0,    0,
        0,    0,    0,   94,   94,    0,   94,   95,   94,    0,
       94,   94,    0,    0,    0,    0,    0,    0,    0,   94,
       94,   94,   94,   94,    0,   53,  120,  102,  109,  120,

      120,  120,  120,  120,  120,  120,  120,  120,   54,  120,
      120,    0,    0,   94,   94,   94,   94,   94,   94,   94,
       94,   94,    0,    0,   95,   94,   94,   94,    0,    0,
       94,   94,   94,   94,   94,    0,    0,    0,    0,    0,
        0,    0,   94,   94,   94,   94,   94,    0,   94,   94,
        0,    0,    0,    0,    0,    0,    0,   94,   94,   94,
       94,   94,    0,    0,    0,    0,    0,    0,   94,   94,
        0,   94,    0,   94,    0,   74,  120,  120,  120,  120,
      120,  120,  120,  120,  120,  120,  120,   48,    0,   94,
       94,    0,   94,   94,    0,   94,   94,    0,   94,    0,

       93,   94,    0,   94,   95,   94,    0,    0,    0,   94,
       94,    0,   94,   95,   94,    0,    0,    0,    0,    0,
       94,   94,    0,   94,   95,   94,    0,    0,    0,    0,
        0,    0,   94,   94,    0,   94,   95,   94,    0,   94,
       94,   94,    0,    0,    0,    0,    0,    0,    0,   94,
       94,   94,   94,   94,    0,  120,  120,  120,  120,  120,
      120,  120,  120,  107,  120,   75,    0,    0,   94,   94,
       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
        0,   93,   95,   94,   94,   94,    0,    0,   94,   94,
       94,   94,   94,    0,    0,    0,    0,    0,    0,    0,

       94,   94,   94,   94,   94,    0,   94,   94,    0,    0,
        0,    0,    0,    0,    0,   94,   94,   94,   94,   94,
        0,   94,   94,   94,    0,    0,    0,    0,    0,    0,
        0,   94,   94,   94,   94,   94,    0,    0,    0,    0,
        0,    0,   94,   94,    0,   94,    0,   94,    0,  120,
      120,  120,  111,  120,  120,  120,  120,  120,  120,  120,
       99,    0,   94,   94,    0,   94,   94,    0,   94,   94,
        0,   94,   94,    0,   94,    0,    0,    0,   94,    0,
        0,   94,   95,   94,    0,    0,    0,   94,   94,    0,
       94,   95,   94,    0,    0,    0,    0,    0,   94,   94,

        0,   94,   95,   94,    0,    0,    0,    0,    0,    0,
       94,   94,    0,   94,   95,   94,    0,    0,    0,    0,
        0,    0,   94,   94,    0,   94,   95,   94,    0,   94,
       94,   94,    0,    0,    0,    0,    0,    0,    0,   94,
       94,   94,   94,   94,    0,  120,  120,  120,  120,  101,
      120,  120,  120,  105,  120,    0,    0,   94,   94,   94,
       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
       94,   94,    0,    0,    0,   95,    0,    0,   94,    0,
        0,   94,   94,   94,    0,    0,    0,    0,    0,    0,
        0,   94,   94,   94,    0,   94,   94,    0,    0,    0,

        0,    0,    0,    0,   94,   94,   94,    0,   94,   94,
       94,    0,    0,    0,    0,    0,    0,    0,   94,   94,
       94,    0,   94,   94,   94,    0,    0,    0,    0,    0,
        0,    0,   94,   94,   94,    0,    0,    0,    0,    0,
        0,   94,   94,    0,   94,    0,   94,    0,   98,  110,
      112,  106,  120,  120,  120,  120,    0,    0,   94,    0,
       94,    0,   94,   94,    0,   94,   94,    0,   94,   94,
        0,   94,   94,    0,   94,    0,    0,    0,    0,   94,
       94,    0,   94,    0,    0,   94,   94,   94,    0,    0,
        0,    0,   94,   94,   94,    0,    0,    0,    0,    0,

       94,   94,   94,    0,    0,    0,    0,    0,   94,   94,
       94,    0,    0,    0,    0,    0,   94,   94,   94,   94,
       94,   94,    0,    0,    0,    0,    0,    0,    0,   94,
       94,   94,    0,  120,  120,  120,  120,    0,    0,    0,
       94,   94,   94,   94,   94,   94,    0,    0,    0,    0,
       94,   94,    0,    0,    0,    0,   94,   94,   94,    0,
        0,    0,    0,    0,   94,   94,   94,   94,    0,    0,
        0,    0,    0,   94,   94,   94,   94,    0,    0,    0,
        0,    0,   94,   94,   94,   94,    0,    0,    0,    0,
        0,   94,    0,    0,    0,    0,    0,   94,   94,   94,

      120,  120,  120,  108,   94,   94,   94,   94,   94,   94,
       94,   94,    0,    0,    0,    0,   94,   94,    0,    0,
       94,    0,    0,    0,   94,    0,    0,    0,   94,    0,
        0,    0,   94,    0,    0,    0,   94,   94,   94,   94,
        0,    0,    0,    0,    0,   94,  103,  120,  100,   94,
        0,    0,   94,   94,    0,   94,   94,   94,    0,   94,
       94,   94,    0,   94,   94,   94,    0,   94,   94,   94,
        0,    0,    0,    0,   94,  104,   94,   94,    0,    0,
        0,    0,    0,    0,   94,   94,   94,    0,    0,   94,
       94,   94,   94,   94,    0,   94,   94,    0

    } ;

static yyconst int yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    2,    5,    1,    1,    6,    1,    7,    1,    8,
        8,    9,    9,    1,   10,   11,    9,   12,   13,   14,
       15,   16,   15,   17,   15,   15,   15,   18,    1,   19,
       20,   21,    1,    1,   22,   22,   22,   22,   22,   22,
       23,   23,   23,   23,   23,   23,   23,   23,   23,   23,
       23,   23,   23,   23,   23,   23,   23,   24,   23,   23,
       25,   26,   25,    1,   27,    1,   28,   29,   30,   31,

       32,   33,   34,   35,   36,   23,   37,   38,   39,   40,
       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
       51,   23,    1,   52,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

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

static yyconst short int yy_base[1672] =
    {   0,
        0,    0, 3355,   52, 6584, 6584,   53, 3334,   59, 3326,
     6584,   63, 6584,   80,   49,  131,   55, 3312,   62,  147,
      186,  147,  106,   36,  129,   56,   60, 3300,   56, 3288,
      190,  193,  140,  101,  138,  147,  205,  209,  125, 3296,
      204, 3288, 3273,  253, 6584,    0, 6584,    0,  251,  269,
     3292,  261,    0,  291,  324, 6584, 6584, 6584, 6584, 6584,
      308,    0,  347,   99,    0, 3278, 3266, 3279,  146, 3265,
     3258, 3263, 3262, 3252,  149, 3245,  144, 3235,  165, 3223,
     3236, 3219, 3224, 3222,  100, 3212, 3207, 3216,  160,  251,
        0,    0,  165,  182, 3204, 3213, 3199, 3194, 3183, 3186,

     3169, 3160, 3159, 3164,    0,    0, 3155, 3161, 3139, 3140,
     3140, 3140, 3134, 3149, 3132, 3134, 3107,  166, 3108, 3101,
       46, 3099, 3110, 3096,    0, 3095, 3091, 3098, 3069, 3060,
     3075, 6584, 6584,  381,  219,  420,  354, 3083,  442, 3087,
      465,  220, 3079, 3045, 3029,    0,    0, 3026,  361, 3035,
     3029, 3017, 3018, 3015,  505,    0, 3011, 3001,    0, 2993,
      200, 2992, 2995, 2975, 2977, 2990, 2975, 2965,    0, 2970,
     2944,    0,    0, 2948, 2938,    0, 2949,    0, 2945, 2933,
     2940,    0,    0, 2918, 2926,  285, 2907, 2923,    0, 2918,
     2920,    0, 2902,    0, 2901, 2856, 2855, 2851,    0, 2849,

     2862,    0, 2850, 2849,    0,    0, 2846,    0, 2832,  278,
        0,    0, 2835,    0, 2832, 2833,  367,  534,  557, 2854,
     2852, 2851, 2850,  565,  265, 2810, 2809,  373,  605,  627,
      395,    0,    0, 2785, 2788, 2793,    0,    0, 2790,    0,
     2789, 2775,    0, 2762, 2756, 2758,    0,  482, 2764,    0,
        0, 2772, 2753, 2754,    0,    0, 2752,    0,    0, 2728,
     2719, 2726, 2719, 2722, 2736, 2710,    0, 2709,    0,    0,
     2695,    0,  250,    0,    0, 2688,  371, 2696,    0,    0,
      650,  294, 2722, 2714, 2712,  689, 2711, 2710,  711,  407,
      734,  756,  489,    0, 2676,  390,  518,  779,  525,  802,

      376, 2675, 2681, 2651,    0, 2660, 2658, 2641,    0, 2658,
     2640,  821,    0, 2630, 2619, 2637,    0, 2628,    0, 2631,
     2624,    0,    0, 2634, 2596,  300, 2595, 2611, 2600, 2592,
     2605, 2598, 2605, 2578, 2566, 2567, 2560, 2566, 2580,  587,
      857, 2589, 2588,  880,  378, 2587, 2574, 2573, 2572,  920,
      379, 2571, 2570,  419,  594,  960,  664,  983,  415, 2568,
     2574, 2566,  656,    0,  240, 2543,  670, 1023, 1045,  677,
        0,    0, 2532, 2513,    0, 2507, 2512, 2525, 2510, 2512,
     2511,  106, 2497,  139, 2497, 2503, 2491, 2501,    0, 2469,
     2480, 2471, 2476, 2474, 2463, 2467,    0, 2449, 2441, 2454,

     2448, 2441, 2435, 2419, 2424, 2429, 2428, 1067,  417, 2450,
     2441, 1106, 2440, 1128, 2439, 2424, 2423, 1150,  824, 1173,
     1195,  831,    0,  902,    0,  450, 2421,  908, 1218, 1240,
      943,    0,  502,  950, 2426, 1006,  503, 1013, 1263, 1081,
     1286,  438, 2418, 2410, 2375, 2379,    0,    0, 2382, 2383,
     2368, 2359, 2350, 2333, 2332, 2336, 2328, 2314, 2325, 2324,
        0, 2315, 2307,    0,    0,    0, 2319, 2312, 2299,    0,
        0, 2283,    0,    0,    0, 2272, 1325, 2298, 2296, 1348,
      460, 2293, 1388,  461, 2292, 2277, 2276, 2274, 1428,  534,
     2273,  601, 1088, 1468, 1095, 1491,  535, 2271, 2277,  602,

     1309, 2276, 1316,  684, 1371, 1531, 1378, 1554,  536, 2259,
     2244, 1073,    0, 1410,    0,  543, 2236, 1416, 1594, 1616,
     1451,    0, 2207, 2206, 2206, 2189, 2192, 2200, 2190, 2179,
     2180, 2142, 2163, 2158,    0,    0, 2156, 2140,    0, 2149,
     2137,    0,    0,    0, 2156, 1638, 1661, 1683, 1458, 1706,
     1728, 1514, 2155, 2134, 1750, 1520, 1773, 1795, 1577,    0,
     1583,    0,  613, 2133, 1817, 1824, 1846, 1869,    0, 1875,
        0, 1881,    0,  635, 2132, 1887, 1894, 1916, 1939,    0,
      564, 1945, 2137,  685, 1952, 2134, 1959,  686, 1966, 1973,
     1996, 2003,  604, 2126, 2123,  283,  703,  480,  481,  688,

     2012,  958,  728,  321,  417, 2013,  620,  436,  689, 1106,
     2016, 2094, 2093, 2045,  707, 2090, 2085,  729, 2088, 2125,
      730, 2087, 2086, 2076, 2054, 2165,  752, 2052,  851, 2033,
     2205, 2068, 2228,  753, 2048, 2053,  853, 2075, 2027, 2108,
     1020, 2115, 2268, 2148, 2291,  775, 2012, 2017,  799, 2154,
     1989, 1102, 2188, 1988, 2195, 1103, 2251, 2331, 2258, 2354,
      804, 1980, 1986,    0, 2313,    0, 2319,    0,  696, 1978,
     2376, 2394, 2416, 2383,    0,  748,  773,  849,  851, 1022,
      976, 1105,  977, 1036, 1325,  916, 1466,  771, 1976, 2438,
     2461, 2483, 2506, 2513, 2535, 2558, 2565, 2587, 2610, 1975,

     1974, 2616, 2638, 2645, 2667, 2690,    0, 2696,    0,  811,
     1925, 2702, 2709, 2731, 2754,    0, 2760,    0, 2766,    0,
      840, 1924, 2772, 2779, 2801, 2824,    0,    0, 2830,    0,
     2836,    0,  888, 1903, 2842, 2849, 2871, 2894,    0,    0,
      832, 2900, 1906, 1385, 2907, 1861, 2914, 1527, 2921, 2928,
     2951, 2958,  956, 1853, 1856, 1592, 1593, 2392, 1324, 1121,
     1529, 1467, 1144, 2027, 1120,  794, 1833, 1829, 2998,  960,
     1798, 3038, 1019, 1758, 3078, 1146, 1757, 3118, 1149, 1756,
     1755, 1737, 3157, 3180, 1150, 1735, 1590, 2981, 3220, 2988,
     3243, 1168, 1734, 1719, 1632, 3021, 1698, 3028, 1677, 3061,

     3283, 3068, 3306, 1169, 1647, 1646, 1170, 3100, 1626, 2018,
     3107, 1610, 3141, 2122, 3148, 3346, 3203, 3369, 1191, 1600,
     1606,    0, 1192, 3209, 1604, 2327, 3266, 1568, 3273, 2390,
     3329, 3409, 3336, 3432, 1213, 1555, 1543,    0, 3391,    0,
     3397,    0,  889, 1534, 3454, 3472, 3494, 3461,    0, 3502,
     3503, 3504,  918, 3505, 2203, 1212, 3507, 1387, 1234, 1256,
     1038, 1532, 3537, 3560, 3582, 3605, 3612, 3634, 3657, 3664,
     3686, 3709, 3716, 3738, 3761, 1522, 3768, 1214, 1498, 1493,
     3790, 3808, 1477, 3797,    0, 3830,    0,  929, 1471, 3836,
     3843, 1469, 3866,    0, 3872,    0, 3878,    0, 1203, 1433,

     3884, 3891, 1431, 3914,    0,    0, 3920,    0, 3926,    0,
     1249, 1429, 3932, 3939, 1395, 3962,    0,    0, 3968,    0,
     3974,    0, 1271, 1393, 3980, 3987, 1389, 4010,    0,    0,
     1262, 4016, 1362, 2432, 4023, 1339, 4030, 3075, 4037, 4044,
     4067, 4074, 1263, 1328, 1333, 1653, 1675, 1698, 1280, 1426,
     1721, 3509, 1548, 1427, 3157, 1293, 4113, 4136, 1319, 1288,
     4176, 1321, 1287, 4216, 1324, 1266, 4256, 1325, 1241, 4296,
     1464, 1227, 1180, 4096, 4336, 1179, 4103,    0, 1159, 3216,
     4159, 4359, 4166, 1157, 1158, 3405, 4199, 1118, 4206, 3468,
     4239, 4382, 4246, 1107, 1113, 1467, 4278, 1061, 3533, 4285,

     1060, 4319, 3534, 4326, 4405, 4428, 1048, 1039,    0, 1468,
     4434, 1036, 4112, 4441, 1031, 4448, 4253, 4455, 4462, 4485,
      965,  970,    0, 1531, 4491,  968, 4333, 4498,  958, 4505,
     4512, 4513, 4552, 4526,  923,  928,    0, 4532,    0, 4538,
        0, 1397,  911, 4544, 4575,    0, 4598,    0, 1631, 1632,
     1654, 1676, 1719, 2474, 4589, 4590, 4619, 1589,    0,  909,
     4659,    0, 4607, 4682,    0, 4642, 4705,    0, 4649, 4728,
        0, 4751, 4758,    0, 4781, 4656, 4788, 4795, 4818,  887,
      866,  869,  837, 4824,    0, 1437,  832,  809, 4830,    0,
     4836,    0, 1736,  788,  764,    0, 4842,    0, 4848,    0,

     1759,  743,  741,    0, 4854,    0, 4860,    0, 1781,  694,
      632,    0, 4866,    0, 4872,    0, 1782,  627,  614,    0,
     1612, 4878,  618, 4885, 4886,  581, 4899, 4893, 4907, 4933,
     4914,    0,  580, 2204, 1788, 1839, 2014, 4956,  572, 4925,
        0,    0,    0,    0,    0,    0, 4978,    0, 1803,  539,
      537,    0, 4972, 4986,  533, 4993,    0, 1637, 4999,  532,
     5006, 5012,  512, 5020,    0,    0, 1660, 5026,  498, 5033,
     5034,  475, 5047,    0,    0, 1682, 5053,  434, 5060, 5061,
      414, 5074,    0,    0, 1683, 5080,  406, 5087, 5088,  338,
     5101,    0,    0, 5107,    0, 5113,    0, 1832,  329,    0,

     2266, 2526, 1838, 1908,    0, 6584,    0,    0,    0,    0,
        0,    0, 5120, 5134,  332, 5141,    0, 6584, 5126,    0,
     6584,    0, 5147,    0, 6584,    0, 5159,    0, 6584,    0,
     5165,    0, 6584,    0, 5171,    0, 6584,    0, 1747, 5177,
      324, 5184, 5185,  316, 5198,    0, 1909, 2327, 1910,    0,
     5204,    0, 1770, 5210,  285,    0, 1772, 5216,  283,    0,
     1795, 5223,  249,    0, 1820, 5229,  230,    0, 1889, 5235,
      202,    0, 5241,    0, 6584, 2083, 1890, 5247,  184,    0,
        0,    0,    0,    0,    0, 1891, 5253,   44,    0,    0,
        0,    0,    0,    0,    0,    0,    0, 6584, 5270, 5278,

     5282, 5285, 5288, 5291, 5294, 5297, 5300, 5303, 5306, 5309,
     5312, 5315, 5318, 5321, 5324, 5328, 5332, 5335, 5338, 5341,
     5344, 5347, 5351, 5355, 5358, 5362, 5364, 5367, 5370, 5373,
     5376, 5379, 5383, 5385, 5389, 5394, 5398, 5401, 5404, 5407,
     5410, 5413, 5416, 5419, 5423, 5427, 5431, 5436, 5440, 5443,
     5446, 5450, 5452, 5455, 5458, 5461, 5464, 5467, 5471, 5473,
     5476, 5479, 5483, 5485, 5488, 5493, 5498, 5502, 5506, 5510,
     5515, 5519, 5522, 5525, 5528, 5531, 5534, 5537, 5540, 5544,
     5548, 5552, 5556, 5561, 5565, 5569, 5573, 5576, 5581, 5585,
     5590, 5594, 5598, 5602, 5605, 5608, 5611, 5615, 5617, 5622,

     5626, 5629, 5632, 5635, 5638, 5642, 5644, 5647, 5650, 5654,
     5656, 5659, 5662, 5665, 5669, 5671, 5674, 5677, 5682, 5686,
     5691, 5695, 5699, 5703, 5708, 5712, 5715, 5718, 5721, 5724,
     5727, 5730, 5733, 5737, 5741, 5745, 5749, 5754, 5758, 5762,
     5766, 5769, 5774, 5778, 5783, 5787, 5791, 5795, 5798, 5801,
     5806, 5810, 5815, 5819, 5823, 5827, 5830, 5833, 5836, 5840,
     5842, 5847, 5851, 5854, 5857, 5860, 5863, 5866, 5869, 5873,
     5875, 5878, 5881, 5884, 5888, 5890, 5893, 5896, 5899, 5902,
     5906, 5908, 5911, 5914, 5917, 5920, 5924, 5926, 5929, 5932,
     5935, 5940, 5944, 5949, 5953, 5957, 5961, 5966, 5970, 5973,

     5976, 5979, 5982, 5985, 5988, 5991, 5994, 5998, 6002, 6006,
     6010, 6015, 6019, 6023, 6027, 6030, 6035, 6039, 6044, 6048,
     6052, 6056, 6059, 6062, 6067, 6071, 6076, 6080, 6084, 6088,
     6091, 6094, 6099, 6103, 6108, 6112, 6116, 6120, 6123, 6126,
     6129, 6133, 6135, 6138, 6143, 6147, 6150, 6153, 6156, 6159,
     6162, 6165, 6169, 6173, 6176, 6180, 6183, 6186, 6190, 6192,
     6195, 6198, 6202, 6204, 6207, 6210, 6213, 6217, 6219, 6222,
     6225, 6228, 6232, 6234, 6237, 6240, 6243, 6247, 6249, 6252,
     6255, 6260, 6264, 6269, 6273, 6277, 6281, 6286, 6290, 6293,
     6296, 6299, 6302, 6305, 6308, 6311, 6315, 6317, 6320, 6324,

     6329, 6332, 6335, 6340, 6344, 6349, 6352, 6355, 6358, 6363,
     6367, 6372, 6375, 6378, 6381, 6386, 6390, 6395, 6398, 6401,
     6404, 6409, 6413, 6418, 6421, 6424, 6427, 6430, 6434, 6436,
     6441, 6445, 6448, 6451, 6454, 6457, 6460, 6463, 6467, 6472,
     6475, 6478, 6481, 6484, 6487, 6490, 6493, 6496, 6499, 6502,
     6505, 6510, 6514, 6517, 6520, 6523, 6527, 6531, 6535, 6539,
     6543, 6546, 6549, 6553, 6556, 6559, 6562, 6565, 6568, 6572,
     6575
    } ;

static yyconst short int yy_def[1672] =
    {   0,
     1298,    1, 1298, 1298, 1298, 1298, 1298, 1298, 1299, 1298,
     1298, 1298, 1298, 1298,   14, 1298, 1298, 1298, 1298,   14,
       20, 1300,   20,   20,   20,   20,   20,   20,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21, 1298, 1298, 1298, 1301, 1298,   21,   21,   20,
     1302,   50,   21,   21, 1298, 1298, 1298, 1298, 1298, 1298,
     1300, 1300,   50,   63,   21,   21,   21,   21,   63,   21,
       21,   21,   21,   21,   63,   21,   21,   21,   63,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,

       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21, 1298, 1298,   21,  134,   50,  136, 1303, 1298,   54,
     1298,  141, 1304,   21,   21,   21,   21,   21,  136,   21,
       21,   21,   21,   21,  136,   21,   21,   21,   21,   21,
      155,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,

       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21, 1305,
       21, 1306, 1307, 1298,  224, 1308, 1309, 1298, 1298, 1298,
      229, 1310,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,  281,  218,  219, 1311, 1298, 1312, 1313, 1298, 1298,
     1298, 1298,  291, 1314, 1315, 1316, 1298, 1298,  298, 1298,

      300, 1317, 1310,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21, 1306, 1318, 1298,  344, 1319, 1298, 1320, 1321, 1298,
      350, 1308, 1322, 1323, 1298, 1298,  356, 1298,  358, 1324,
     1314, 1298, 1298, 1325, 1326, 1298, 1298, 1298, 1298,  368,
     1327,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,

       21,   21,   21,   21,   21,   21,   21,   21,  408,  341,
     1328, 1298,  291, 1298,  293, 1329, 1330, 1298, 1298, 1298,
     1298,  420, 1331, 1298, 1332, 1333, 1298, 1298, 1298, 1298,
      429, 1334, 1335, 1298, 1325, 1298, 1336, 1298, 1298,  439,
     1298,  441, 1337, 1327,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21, 1338, 1339, 1298,
      480, 1340, 1298,  483, 1341, 1298, 1342, 1343, 1298,  489,
     1344, 1345, 1298, 1298,  494, 1298,  496, 1346, 1331, 1347,

     1298, 1332, 1298, 1348, 1298, 1298,  506, 1298,  508, 1349,
     1334, 1298, 1350, 1298, 1351, 1352, 1298, 1298, 1298, 1298,
      519, 1353,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,  477, 1354, 1298, 1298, 1298,  547, 1298,
     1298,  550, 1355, 1356, 1298, 1298, 1298, 1298,  557, 1357,
     1298, 1358, 1359, 1298, 1298, 1298, 1298,  566, 1360, 1298,
     1361, 1298, 1362, 1363, 1298, 1298, 1298, 1298,  577, 1364,
     1365, 1298, 1350, 1366, 1298, 1367, 1298, 1368, 1298, 1298,
      590, 1298,  592, 1369, 1370, 1371, 1371, 1371, 1371, 1371,

     1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
     1371, 1372, 1373, 1298,  614, 1374, 1298,  617, 1375, 1298,
      620, 1376, 1298, 1377, 1378, 1298,  626, 1379, 1380, 1298,
     1298,  631, 1298,  633, 1381, 1382, 1383, 1298, 1384, 1298,
     1385, 1298, 1298,  643, 1298,  645, 1386, 1387, 1388, 1298,
     1389, 1390, 1298, 1391, 1298, 1392, 1298, 1298,  658, 1298,
      660, 1393, 1394, 1395, 1298, 1396, 1298, 1397, 1398, 1298,
     1298, 1298, 1298,  672, 1399, 1400, 1400, 1400, 1400, 1400,
     1400, 1400, 1400, 1400, 1400, 1400, 1400, 1400, 1401, 1298,
     1298, 1298,  691, 1298, 1298,  694, 1298, 1298,  697, 1402,

     1403, 1298, 1298, 1298, 1298,  704, 1404, 1298, 1405, 1406,
     1298, 1298, 1298, 1298,  713, 1407, 1298, 1408, 1298, 1409,
     1410, 1298, 1298, 1298, 1298,  724, 1411, 1412, 1298, 1413,
     1298, 1414, 1415, 1298, 1298, 1298, 1298,  736, 1416, 1417,
     1418, 1298, 1419, 1420, 1298, 1421, 1298, 1422, 1298, 1298,
      750, 1298,  752, 1423, 1424, 1425, 1425, 1425, 1425, 1425,
     1425, 1425, 1425, 1425, 1425, 1425, 1426, 1427, 1298,  769,
     1428, 1298,  772, 1429, 1298,  775, 1430, 1298,  778, 1431,
     1298, 1432, 1298, 1298,  784, 1433, 1434, 1298, 1298,  789,
     1298,  791, 1435, 1436, 1437, 1298, 1438, 1298, 1439, 1298,

     1298,  801, 1298,  803, 1440, 1441, 1442, 1298, 1443, 1444,
     1298, 1445, 1298, 1446, 1298, 1298,  816, 1298,  818, 1447,
     1448, 1449, 1450, 1298, 1451, 1452, 1298, 1453, 1298, 1454,
     1298, 1298,  832, 1298,  834, 1455, 1456, 1457, 1298, 1458,
     1298, 1459, 1460, 1298, 1298, 1298, 1298,  846, 1461, 1462,
     1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462,
     1462, 1463, 1298, 1298, 1298,  864, 1298, 1298,  867, 1298,
     1298,  870, 1298, 1298,  873, 1464, 1298,  877, 1465, 1466,
     1298, 1298, 1467,  882, 1468, 1298, 1469, 1470, 1298, 1298,
     1298, 1471,  891, 1472, 1298, 1473, 1298, 1474, 1475, 1298,

     1298, 1298, 1476,  902, 1477, 1478, 1298, 1479, 1298, 1480,
     1481, 1298, 1298, 1298, 1482,  914, 1483, 1484, 1298, 1485,
     1298, 1486, 1487, 1298, 1298, 1298, 1488,  926, 1489, 1490,
     1491, 1298, 1492, 1493, 1298, 1494, 1298, 1495, 1298, 1298,
      940, 1298,  942, 1496, 1497, 1498, 1498, 1498, 1498, 1498,
     1498, 1498, 1498, 1498, 1498, 1499, 1298, 1298,  958, 1500,
     1298,  961, 1501, 1298,  964, 1502, 1298,  967, 1503, 1298,
      970, 1504, 1298, 1298, 1298, 1505,  975, 1506, 1507, 1508,
     1298, 1298,  982, 1509, 1510, 1511, 1298, 1512, 1298, 1513,
     1298, 1298,  992, 1514, 1515, 1516, 1298, 1517, 1518, 1298,

     1519, 1298, 1520, 1298, 1298, 1005, 1521, 1522, 1523, 1524,
     1298, 1525, 1526, 1298, 1527, 1298, 1528, 1298, 1298, 1019,
     1529, 1530, 1531, 1532, 1298, 1533, 1534, 1298, 1535, 1298,
     1536, 1298, 1298, 1033, 1537, 1538, 1539, 1298, 1540, 1298,
     1541, 1542, 1298, 1298, 1298, 1543, 1045, 1544, 1545, 1545,
     1545, 1545, 1545, 1545, 1545, 1545, 1298, 1057, 1546, 1547,
     1298, 1548, 1061, 1298, 1549, 1064, 1298, 1550, 1067, 1298,
     1551, 1070, 1298, 1552, 1073, 1553, 1298, 1298, 1078, 1554,
     1555, 1556, 1557, 1298, 1558, 1559, 1298, 1560, 1298, 1561,
     1298, 1562, 1563, 1298, 1564, 1565, 1298, 1566, 1298, 1567,

     1568, 1298, 1569, 1570, 1298, 1571, 1298, 1572, 1573, 1298,
     1574, 1575, 1298, 1576, 1298, 1577, 1578, 1298, 1579, 1580,
     1581, 1298, 1582, 1583, 1298, 1584, 1298, 1585, 1298, 1298,
     1130, 1586, 1587, 1588, 1588, 1588, 1588, 1298, 1589, 1138,
     1590, 1591, 1592, 1593, 1594, 1595, 1298, 1596, 1597, 1298,
     1598, 1599, 1600, 1298, 1601, 1298, 1602, 1603, 1298, 1604,
     1605, 1298, 1606, 1298, 1607, 1608, 1609, 1298, 1610, 1611,
     1298, 1612, 1298, 1613, 1614, 1615, 1298, 1616, 1617, 1298,
     1618, 1298, 1619, 1620, 1621, 1298, 1622, 1623, 1298, 1624,
     1298, 1625, 1626, 1298, 1627, 1298, 1628, 1629, 1298, 1630,

     1631, 1631, 1631, 1631, 1632, 1298, 1633, 1634, 1635, 1636,
     1637, 1638, 1639, 1298, 1640, 1298, 1641, 1298, 1298, 1642,
     1298, 1643, 1298, 1644, 1298, 1645, 1298, 1646, 1298, 1647,
     1298, 1648, 1298, 1649, 1298, 1650, 1298, 1626, 1651, 1298,
     1627, 1652, 1298, 1628, 1298, 1653, 1631, 1631, 1631, 1654,
     1298, 1655, 1656, 1298, 1642, 1643, 1657, 1298, 1644, 1645,
     1658, 1298, 1646, 1647, 1659, 1298, 1648, 1649, 1660, 1298,
     1650, 1661, 1298, 1662, 1298, 1631, 1663, 1298, 1655, 1664,
     1665, 1666, 1667, 1668, 1661, 1669, 1298, 1662, 1670, 1664,
     1665, 1666, 1667, 1668, 1671, 1670, 1671,    0, 1298, 1298,

     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,

     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,

     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,

     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298
    } ;

static yyconst short int yy_nxt[6637] =
    {   0,
        4,    5,    6,    7,    8,    9,   10,   11,   12,   11,
       13,   14,   15,   15,   15,   15,   15,   16,   17,   18,
       19,   20,   21,   21,   11,   22,   13,   23,   24,   25,
       26,   27,   28,   29,   30,   31,   21,   32,   33,   34,
       35,   36,   21,   37,   38,   39,   40,   41,   42,   21,
       21,   43,   44,   44, 1273,   44,   44,   44,   44,   44,
       44,   44,   44,   44,   44,   69,   44,   44,   44,   44,
       44,   44,   53,   56,   57,  206,   44,   44,   44,   70,
       44,   59,   60,   80,   44,  207,   71,   75,   44,   48,
       49,   50,   50,   50,   50,   50,   50,   51,   53,   81,

       76,   52,   53,   54,   77,   78,   48,   52,   52,   52,
       52,   52,   52,   53,   53,   53,   53,   53,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   53,   53,   54,
       53,   44,  102,   63,   44,   64,   44,  453,  167,   44,
       65,  103,   53,  168,  145,   66,  454,   61,   55,   67,
       61,   68,   61,  157,  124,   61,   44,   53,   52,   52,
       52,   52,   52,   52,   61,  104,   72,   98,  125,   73,
       53,   99,   61,   74,  456,  149,  172,  105,  155,  158,
      100,  106,  108,  457,  107,  159,  101,  109,  110,   53,
      111,  112,   53,  202, 1251,  161,   53,   53,   53,   53,

       53,   53,   53, 1298,  177,   91,   92,   53,   53,  173,
      178,  203, 1235,   53,   53,   53,   53,   53,   53,   83,
       93,  179,   84,   85,   94,   86,  180,   87,   95,   88,
       96,   89,  113,  127,   90,  125,  114,   97,  118,   53,
     1231,  128,   53, 1298,  115,  129,  119,  130,  120,  116,
      228,  117,  121,   44,  122,  123,   44,  230,   44, 1227,
      174,   44,  134,  135,  135,  135,  135,  135,   53, 1298,
       44,   53,  137,  137,  137,  137,  137,  137,   44,   49,
      136,  136,  136,  136,  136,  136,  175,  277, 1298,  330,
      137,  176,   48, 1223,  331, 1219,  137,  137,  137,  137,

      137,  137,  140,  140,  140,  140,  140,  140,   61,   48,
      278,   61,  140,   61, 1298,  261,   61,   53,  140,  140,
      140,  140,  140,  140,   44,   61, 1196,   44,  262,   44,
       48,  393,   44,   61, 1194,  141,  142,  142,  142,  142,
      142,   44, 1147,   53,  394,  143, 1046,   48, 1115,   44,
      683,  143,  143,  143,  143,  143,  143,   53,  137,  137,
      137,  137,  137,  137,   53,  221,  221,  221,  221,  221,
      221,   53,  221,  221,  221,  221,  221,  221,  281,  282,
      282,  282,  282,  282,  296,  297,  297,  297,  297,  297,
      144,  217,  135,  135,  135,  135,  135,  135,  333, 1298,

      363, 1298, 1298,  334,  218, 1298,  299,  299,  299,  299,
      299,  299,  335,  364,  336,  337, 1113,  338,  354,  355,
      355,  355,  355,  355, 1107, 1298,   48, 1298, 1298,  424,
      218,  219,  219,  219,  219,  219,  219,  220, 1298,  364,
       53,  221,  425,   48, 1105,   48,  684,  221,  221,  221,
      221,  221,  221,  224,  225,  225,  225,  225,  225,  226,
      290, 1298,   48,  227, 1298,  687,   53,  414,  425,  227,
      227,  227,  227,  227,  227,  228,  229,  229,  229,  229,
      229,  229,  230, 1298, 1298, 1099,  231, 1298,  232,   48,
       48,  312,  231,  231,  231,  231,  231,  231,  313, 1298,

      357,  357,  357,  357,  357,  357,   48,   48, 1097, 1298,
     1298,  314,  512,  514,  232,   53,  221,  221,  221,  221,
      221,  221, 1091,  677,  678,  513,  515,  315,  363,  297,
      297,  297,  297,  297,  297, 1298,  366,  366,  366,  366,
      366,  366, 1089, 1084,  241,  283,  283,  283,  283,  283,
      283,  513,  515,  367,  352,  283, 1139, 1298, 1298, 1298,
      369,  283,  283,  283,  283,  283,  283,   49,  284,  284,
      284,  284,  284,  284,  220,  290,  291,  291,  291,  291,
      291,  291,  292, 1298, 1298, 1298,  293,  664,  294, 1206,
     1044, 1040,  293,  293,  293,  293,  293,  293,  408,  409,

      409,  409,  409,  409,  424,  355,  355,  355,  355,  355,
      355,  561,  570,  664,  294,  228,  298,  298,  298,  298,
      298,  298,  230,  419,  562,  571,  299, 1298, 1038,   48,
      548,  352,  299,  299,  299,  299,  299,  299,  300,  301,
      301,  301,  301,  301, 1074,  428,   48,  686,  302,  352,
      562,  571,  551, 1298,  302,  302,  302,  302,  302,  302,
      340,  282,  282,  282,  282,  282,  282,  433,  434,  434,
      434,  434,  434,  341, 1298,  427,  427,  427,  427,  427,
      427,  437,  438,  438,  438,  438,  438, 1298,  440,  440,
      440,  440,  440,  440,  572,  665,  667,   48,   48,  341,

      344,  345,  345,  345,  345,  345,  518,  573,  666,  668,
      346, 1071,   48,  520,   48,   48,  346,  346,  346,  346,
      346,  346,  350,  351,  351,  351,  351,  351,  352,   48,
     1298,  679,  353,  573,  666,  668,  676,   48,  353,  353,
      353,  353,  353,  353,  290,  356,  356,  356,  356,  356,
      356,  292, 1298, 1298,   48,  357, 1298,   48,  352,  682,
     1068,  357,  357,  357,  357,  357,  357,  358,  359,  359,
      359,  359,  359,  352,   48, 1298, 1298,  360, 1298, 1298,
       48,  352,   48,  360,  360,  360,  360,  360,  360,  228,
      365,  365,  365,  365,  365,  365,  230,   48, 1298,   48,

      366, 1298, 1298,   48,  756, 1065,  366,  366,  366,  366,
      366,  366,  367,  368,  368,  368,  368,  368,  368,  369,
       48,  556,  728,  370, 1298,  371,  352, 1298,  692,  370,
      370,  370,  370,  370,  370,  492,  493,  493,  493,  493,
      493, 1298,  495,  495,  495,  495,  495,  495,  728, 1062,
      565,  371,  378, 1298,  352,  838,  379,  695,   48,  380,
       48,  708,  381,  717,  382,  383,  384,  385,  410,  410,
      410,  410,  410,  410,  709,   48,  718,   48,  410,  974,
      757,  838,  758,  352,  410,  410,  410,  410,  410,  410,
      290,  413,  413,  413,  413,  413,  413,  414,  576,  671,

      709,  415,  718,  294,  352,  698,  673,  415,  415,  415,
      415,  415,  415,  500,  501,  501,  501,  501,  501,  504,
      505,  505,  505,  505,  505,   48, 1139,   48,  847,  294,
      419,  420,  420,  420,  420,  420,  420,  421,  925,  703,
      352,  422,   48,  423,   48,  765,  865,  422,  422,  422,
      422,  422,  422, 1298,  507,  507,  507,  507,  507,  507,
      512,  434,  434,  434,  434,  434,  434,   48,  921,  423,
      290,  426,  426,  426,  426,  426,  426,  414,  919, 1298,
      913,  427,  352, 1298,   48,   48,   48,  427,  427,  427,
      427,  427,  427,  428,  429,  429,  429,  429,  429,  429,

      430,  681,   48,   48,  431, 1298,  432,  760,  762, 1298,
      431,  431,  431,  431,  431,  431,  228,  436,  436,  436,
      436,  436,  436,  514,  438,  438,  438,  438,  438,  438,
      719,   48,  432,  367,  439,  439,  439,  439,  439,  439,
      369,  909, 1298,  720,  440,   48,  907,   48,   48,  901,
      440,  440,  440,  440,  440,  440,  441,  442,  442,  442,
      442,  442,   48,  759,   48,  352,  443,  763, 1298,  720,
      897,  895,  443,  443,  443,  443,  443,  443,  409,  409,
      409,  409,  409,  409,  581,  582,  582,  582,  582,  582,
      477, 1298,  517,  517,  517,  517,  517,  517,  561,  493,

      493,  493,  493,  493,  493, 1298,  564,  564,  564,  564,
      564,  564,  729,  731,   48,   48,  477,  480,  481,  481,
      481,  481,  481,  890,  352,  730,  732,  482,  886,   48,
       48,   48,   48,  482,  482,  482,  482,  482,  482,  483,
      484,  484,  484,  484,  484,  688,   48,   48,  761,  485,
      855,  730,  732,   48,  861,  485,  485,  485,  485,  485,
      485,  489,  490,  490,  490,  490,  490,  352,  881, 1298,
       48,  491, 1298, 1298,  352,  859,  352,  491,  491,  491,
      491,  491,  491,  419,  494,  494,  494,  494,  494,  494,
      421, 1298, 1298,  906,  495, 1298, 1081,  957, 1298, 1298,

      495,  495,  495,  495,  495,  495,  496,  497,  497,  497,
      497,  497,  352,  712, 1298,  918,  498, 1298, 1298,  906,
      868,   48,  498,  498,  498,  498,  498,  498,  428,  506,
      506,  506,  506,  506,  506,  430, 1298, 1298,   48,  507,
     1298,  918,  951,   48, 1074,  507,  507,  507,  507,  507,
      507,  508,  509,  509,  509,  509,  509,  352, 1071,  723,
       48,  510, 1298, 1298,  954,   48,  871,  510,  510,  510,
      510,  510,  510,  367,  516,  516,  516,  516,  516,  516,
      369,  735,   48, 1068,  517, 1037, 1298,  955,  874,   48,
      517,  517,  517,  517,  517,  517,  518,  519,  519,  519,

      519,  519,  519,  520, 1065, 1062,   48,  521, 1052,  522,
      957, 1037, 1298,  521,  521,  521,  521,  521,  521,  570,
      501,  501,  501,  501,  501,  501,  290,  503,  503,  503,
      503,  503,  503,   48,   48,  522,  544,  544,  544,  544,
      544,  544, 1298,  845, 1298, 1046,  544, 1298, 1298,  841,
       48,   48,  544,  544,  544,  544,  544,  544,  419,  547,
      547,  547,  547,  547,  547,  548,  764,  854, 1298,  549,
     1298,  423,  839, 1298, 1298,  549,  549,  549,  549,  549,
      549,  572,  505,  505,  505,  505,  505,  505, 1298,  575,
      575,  575,  575,  575,  575,  839,   48,  423,  428,  550,

      550,  550,  550,  550,  550,  551,  352,  845,  840,  552,
      874,  432,  352,   48,  847,  552,  552,  552,  552,  552,
      552,  584,  585,  585,  585,  585,  585,  588,  589,  589,
      589,  589,  589,  953,  840,   48,   48,  432,  556,  557,
      557,  557,  557,  557,  557,  558,  871,  881,  352,  559,
      868,  560,   48,   48, 1062,  559,  559,  559,  559,  559,
      559, 1298,  591,  591,  591,  591,  591,  591, 1298,  495,
      495,  495,  495,  495,  495,   48,   48,  560,  419,  563,
      563,  563,  563,  563,  563,  548,  352, 1298,  865,  564,
     1096, 1104,   48,   48,  352,  564,  564,  564,  564,  564,

      564,  565,  566,  566,  566,  566,  566,  566,  567,  858,
      976,  766,  568, 1298,  569,  352, 1096, 1104,  568,  568,
      568,  568,  568,  568, 1298,  507,  507,  507,  507,  507,
      507,  629,  630,  630,  630,  630,  630,  841,   48,  957,
      569,  428,  574,  574,  574,  574,  574,  574,  551,  957,
      842,  673,  575,  735, 1112,   48,  856,   48,  575,  575,
      575,  575,  575,  575,  576,  577,  577,  577,  577,  577,
      577,  578,  927,  857,   48,  579,  842,  580,  731, 1055,
     1112,  579,  579,  579,  579,  579,  579, 1298,  632,  632,
      632,  632,  632,  632,  637,  638,  638,  638,  638,  638,

      886,   48,   48,  580,  518,  590,  590,  590,  590,  590,
      590,  520, 1298,  887,  729,  591,  723,  915,   48,   48,
      719,  591,  591,  591,  591,  591,  591,  592,  593,  593,
      593,  593,  593,  850,  851, 1193,  717,  594, 1298,  887,
       48,   48,  895,  594,  594,  594,  594,  594,  594,  614,
      615,  615,  615,  615,  615,  896,  712,   48,   48,  616,
     1222, 1193,   48,   48,  903,  616,  616,  616,  616,  616,
      616,  419,  494,  494,  494,  494,  494,  494,  548,   48,
       48,  896,  495, 1226,   48,   48, 1222,  897,  495,  495,
      495,  495,  495,  495,  617,  618,  618,  618,  618,  618,

      898,   48,   48, 1049,  619, 1230, 1234,   48,  708, 1226,
      619,  619,  619,  619,  619,  619,  428,  506,  506,  506,
      506,  506,  506,  551,   48, 1050,  898,  507,   48,  703,
       48, 1230, 1234,  507,  507,  507,  507,  507,  507,  620,
      621,  621,  621,  621,  621,   48,  890,   48, 1051,  622,
     1134,  892,  883, 1065,  783,  622,  622,  622,  622,  622,
      622,  626,  627,  627,  627,  627,  627,  352, 1053,  901,
     1272,  628,  768,  874,  871,  868, 1068,  628,  628,  628,
      628,  628,  628,  556,  631,  631,  631,  631,  631,  631,
      558,  913,  925, 1280,  632, 1281, 1272,   48, 1071, 1074,

      632,  632,  632,  632,  632,  632,  633,  634,  634,  634,
      634,  634,  352,  974,   48,  865,  635, 1202, 1282, 1280,
     1139, 1281,  635,  635,  635,  635,  635,  635,  641,  642,
      642,  642,  642,  642,  565,  643,  643,  643,  643,  643,
      643,  567, 1044, 1283, 1282,  644,  863,   48,   48, 1046,
      768,  644,  644,  644,  644,  644,  644,  645,  646,  646,
      646,  646,  646,  352,   48,   48,  671,  647, 1203, 1283,
      847,  667, 1249,  647,  647,  647,  647,  647,  647, 1298,
      644,  644,  644,  644,  644,  644,  649,  650,  650,  650,
      650,  650,  652,  653,  653,  653,  653,  653,  656,  657,

      657,  657,  657,  657,  576,  658,  658,  658,  658,  658,
      658,  578, 1284, 1289, 1295,  659,  665,   48,   48,   48,
      698,  659,  659,  659,  659,  659,  659,  660,  661,  661,
      661,  661,  661,  352,   48,   48,   48,  662, 1284, 1289,
     1295,  695,  692,  662,  662,  662,  662,  662,  662, 1298,
      659,  659,  659,  659,  659,  659,  582,  582,  582,  582,
      582,  582,  665,  585,  585,  585,  585,  585,  585,  367,
      587,  587,  587,  587,  587,  587,  667,  589,  589,  589,
      589,  589,  589,  518,  669,  669,  669,  669,  669,  669,
      520,  783,  768,  768,  670,  520,  576,  737,  572,  570,

      670,  670,  670,  670,  670,  670, 1298,  670,  670,  670,
      670,  670,  670,  671,  672,  672,  672,  672,  672,  672,
      673,   48,   48,   48,  674,   48,  675,  565,  907,  725,
      674,  674,  674,  674,  674,  674,   48,  561,   48,   48,
       48,  908,   48,  708,  630,  630,  630,  630,  630,  630,
      680,  685,  675,   48,  275,  556,  691,  691,  691,  691,
      691,  691,  692,  556, 1204,  714,  693,  908,  560,  705,
      860,  702,  693,  693,  693,  693,  693,  693, 1298,  711,
      711,  711,  711,  711,  711,  717,  638,  638,  638,  638,
      638,  638,   48,  625,  560,  565,  694,  694,  694,  694,

      694,  694,  695,  613,  698,  695,  696,  692,  569,   48,
      690,  613,  696,  696,  696,  696,  696,  696,  419,  640,
      640,  640,  640,  640,  640,  719,  642,  642,  642,  642,
      642,  642,  909,  518,  569,  576,  697,  697,  697,  697,
      697,  697,  698,  673,  514,  910,  699,  512,  580,  551,
      548,  625,  699,  699,  699,  699,  699,  699, 1298,  722,
      722,  722,  722,  722,  722,  650,  650,  650,  650,  650,
      650,  910,  613,  613,  580,  703,  704,  704,  704,  704,
      704,  704,  705,  611,  610,  609,  706,  608,  707,  607,
      606,  605,  706,  706,  706,  706,  706,  706,  729,  653,

      653,  653,  653,  653,  653,  428,  655,  655,  655,  655,
      655,  655,   48,   48,  707,  556,  710,  710,  710,  710,
      710,  710,  692,  604,  603,  602,  711,  601,  600,   48,
       48,  599,  711,  711,  711,  711,  711,  711,  712,  713,
      713,  713,  713,  713,  713,  714,  598, 1201,  950,  715,
      597,  716,  596,  369,  428,  715,  715,  715,  715,  715,
      715,  731,  657,  657,  657,  657,  657,  657, 1298,  734,
      734,  734,  734,  734,  734,   48,  578,  716,  565,  721,
      721,  721,  721,  721,  721,  695,  424,  419,  567,  722,
      558,  555,   48,  488,  479,  722,  722,  722,  722,  722,

      722,  723,  724,  724,  724,  724,  724,  724,  725,  551,
      548, 1247,  726,  546,  727,  479,  543,  542,  726,  726,
      726,  726,  726,  726,  741,  742,  742,  742,  742,  742,
      744,  745,  745,  745,  745,  745,   48,  919,  541,  540,
      727,  576,  733,  733,  733,  733,  733,  733,  698,  539,
      920,  538,  734,   48,  537,  536,  535,  534,  734,  734,
      734,  734,  734,  734,  735,  736,  736,  736,  736,  736,
      736,  737, 1276,  533,  532,  738,  920,  739,  531,  530,
      529,  738,  738,  738,  738,  738,  738,  748,  749,  749,
      749,  749,  749, 1298,  751,  751,  751,  751,  751,  751,

      921,   48,  528,  739,  671,  750,  750,  750,  750,  750,
      750,  673,  527,  922,  526,  751,  525,  524,   48,  523,
      367,  751,  751,  751,  751,  751,  751,  752,  753,  753,
      753,  753,  753,  852,  853,  520,  363,  754,  414,  922,
      488,  479, 1038,  754,  754,  754,  754,  754,  754,  769,
      770,  770,  770,  770,  770, 1039,  414,  414,  479,  771,
      340,  476,  475,  474,  473,  771,  771,  771,  771,  771,
      771,  556,  631,  631,  631,  631,  631,  631,  692,  472,
      471, 1039,  632,   48,  470,  469,  272,  199,  632,  632,
      632,  632,  632,  632,  772,  773,  773,  773,  773,  773,

       48,  468,  467,  466,  774,  465,  464,  463,  462, 1135,
      774,  774,  774,  774,  774,  774, 1298,  632,  632,  632,
      632,  632,  632,  565,  643,  643,  643,  643,  643,  643,
      695,  461,  460,  459,  644,   48,  458,  455,  452,  451,
      644,  644,  644,  644,  644,  644,  775,  776,  776,  776,
      776,  776,   48,  450,  449,  448,  777,  447,  446,  445,
      230, 1248,  777,  777,  777,  777,  777,  777, 1298,  644,
      644,  644,  644,  644,  644,  576,  658,  658,  658,  658,
      658,  658,  698,  352,  290,  430,  659,  421,  352,  418,
      349,  343,  659,  659,  659,  659,  659,  659,  778,  779,

      779,  779,  779,  779,  414,  412,  343,  407,  780,  406,
      405,  404,  403,  402,  780,  780,  780,  780,  780,  780,
     1298,  659,  659,  659,  659,  659,  659,  784,  785,  785,
      785,  785,  785,  352,  401,  400,  399,  786,  398,  397,
      396,  395,  392,  786,  786,  786,  786,  786,  786,  787,
      788,  788,  788,  788,  788,  703,  789,  789,  789,  789,
      789,  789,  705,  391,  390,  389,  790,  388,  105,  387,
      386,  377,  790,  790,  790,  790,  790,  790,  791,  792,
      792,  792,  792,  792,  352,  376,  375,  374,  793,  373,
      372,  228,  369,  352,  793,  793,  793,  793,  793,  793,

     1298,  790,  790,  790,  790,  790,  790,  795,  796,  796,
      796,  796,  796,  799,  800,  800,  800,  800,  800,  712,
      801,  801,  801,  801,  801,  801,  714,  349,  343,  343,
      802, 1298,  217,  339,  332,  329,  802,  802,  802,  802,
      802,  802,  803,  804,  804,  804,  804,  804,  352,  328,
      327,  326,  805,  325,  324,  323,  322,  321,  805,  805,
      805,  805,  805,  805, 1298,  802,  802,  802,  802,  802,
      802,  807,  808,  808,  808,  808,  808,  810,  811,  811,
      811,  811,  811,  814,  815,  815,  815,  815,  815,  723,
      816,  816,  816,  816,  816,  816,  725,  320,  319,  318,

      817,  317,  316,  311,  310,  194,  817,  817,  817,  817,
      817,  817,  818,  819,  819,  819,  819,  819,  352,  309,
      308,  307,  820,  306,  305,  304,  292,  226,  820,  820,
      820,  820,  820,  820, 1298,  817,  817,  817,  817,  817,
      817,  823,  824,  824,  824,  824,  824,  826,  827,  827,
      827,  827,  827,  830,  831,  831,  831,  831,  831,  735,
      832,  832,  832,  832,  832,  832,  737,  289,  223,  220,
      833,  286,  125,  280,  279,  276,  833,  833,  833,  833,
      833,  833,  834,  835,  835,  835,  835,  835,  352,  275,
      194,  274,  836,  273,  272,  271,  270,  269,  836,  836,

      836,  836,  836,  836, 1298,  833,  833,  833,  833,  833,
      833,  742,  742,  742,  742,  742,  742,  839,  745,  745,
      745,  745,  745,  745,  518,  747,  747,  747,  747,  747,
      747,  841,  749,  749,  749,  749,  749,  749,  671,  843,
      843,  843,  843,  843,  843,  673,  268,  267,  266,  844,
      265,  264,  263,  260,  259,  844,  844,  844,  844,  844,
      844, 1298,  844,  844,  844,  844,  844,  844,  845,  846,
      846,  846,  846,  846,  846,  847,  194,  258,  257,  848,
      256,  849,  255,  254,  253,  848,  848,  848,  848,  848,
      848,  886,  788,  788,  788,  788,  788,  788, 1298,  889,

      889,  889,  889,  889,  889,  252,  251,  849,  703,  864,
      864,  864,  864,  864,  864,  865,  250,  249,  248,  866,
      247,  707,  246,  245,  244,  866,  866,  866,  866,  866,
      866,  895,  796,  796,  796,  796,  796,  796,  556,  798,
      798,  798,  798,  798,  798,  243,  242,  707,  712,  867,
      867,  867,  867,  867,  867,  868,  240,  239,  238,  869,
      237,  716,  236,  235,  234,  869,  869,  869,  869,  869,
      869,  897,  800,  800,  800,  800,  800,  800, 1298,  900,
      900,  900,  900,  900,  900, 1040,  233,  716,  723,  870,
      870,  870,  870,  870,  870,  871,  230,   49, 1041,  872,

      223,  727,  216,  215,  214,  872,  872,  872,  872,  872,
      872,  808,  808,  808,  808,  808,  808,  907,  811,  811,
      811,  811,  811,  811, 1041,  213,  212,  727,  735,  873,
      873,  873,  873,  873,  873,  874,  211,  210,  209,  875,
      208,  739,  205,  204,  201,  875,  875,  875,  875,  875,
      875,  565,  813,  813,  813,  813,  813,  813,  909,  815,
      815,  815,  815,  815,  815,  200,   48,  739,  877,  878,
      878,  878,  878,  878,  879,  199,  198,  197,  880,  196,
      195,  194,  193,   48,  880,  880,  880,  880,  880,  880,
      881,  882,  882,  882,  882,  882,  882,  883, 1056,  192,

      191,  884,  190,  885,  189,  188,  187,  884,  884,  884,
      884,  884,  884, 1298,  912,  912,  912,  912,  912,  912,
      824,  824,  824,  824,  824,  824, 1084,  186,  185,  885,
      703,  888,  888,  888,  888,  888,  888,  865,  184, 1085,
      183,  889,  182,  181,  171,  170,  169,  889,  889,  889,
      889,  889,  889,  890,  891,  891,  891,  891,  891,  891,
      892,  166,  165,  164,  893, 1085,  894,  163,  162,  160,
      893,  893,  893,  893,  893,  893,  919,  827,  827,  827,
      827,  827,  827,  576,  829,  829,  829,  829,  829,  829,
      156,  154,  894,  712,  899,  899,  899,  899,  899,  899,

      868,  153,  152,  151,  900,  150,  148,  147,  146,  139,
      900,  900,  900,  900,  900,  900,  901,  902,  902,  902,
      902,  902,  902,  903,  132,  131,  126,  904,   82,  905,
       79,   58,   47,  904,  904,  904,  904,  904,  904,  921,
      831,  831,  831,  831,  831,  831, 1298,  924,  924,  924,
      924,  924,  924,   45, 1298,  905,  723,  911,  911,  911,
      911,  911,  911,  871, 1298, 1298, 1298,  912, 1298, 1298,
     1298, 1298, 1298,  912,  912,  912,  912,  912,  912,  913,
      914,  914,  914,  914,  914,  914,  915, 1298, 1298, 1298,
      916, 1298,  917, 1298, 1298, 1298,  916,  916,  916,  916,

      916,  916,  931,  932,  932,  932,  932,  932,  934,  935,
      935,  935,  935,  935, 1298, 1089, 1298, 1298,  917,  735,
      923,  923,  923,  923,  923,  923,  874, 1298, 1090, 1298,
      924, 1298, 1298, 1298, 1298, 1298,  924,  924,  924,  924,
      924,  924,  925,  926,  926,  926,  926,  926,  926,  927,
     1298, 1298, 1298,  928, 1090,  929, 1298, 1298, 1298,  928,
      928,  928,  928,  928,  928,  938,  939,  939,  939,  939,
      939, 1298,  941,  941,  941,  941,  941,  941, 1091, 1298,
     1298,  929,  845,  940,  940,  940,  940,  940,  940,  847,
     1298, 1092, 1298,  941, 1298, 1298, 1298, 1298, 1298,  941,

      941,  941,  941,  941,  941,  942,  943,  943,  943,  943,
      943,   48,   48,   48,   48,  944,   48, 1092,   48, 1298,
     1298,  944,  944,  944,  944,  944,  944, 1298,   48,   48,
       48,   48, 1298,   48, 1298,   48, 1298, 1298, 1298,  946,
      947,  948, 1298, 1097, 1099,  949, 1054,  952,  958,  959,
      959,  959,  959,  959, 1298, 1298, 1098, 1100,  960, 1298,
     1298, 1298, 1298, 1298,  960,  960,  960,  960,  960,  960,
      703,  789,  789,  789,  789,  789,  789,  865, 1298, 1298,
     1298,  790, 1098, 1100, 1298, 1298, 1298,  790,  790,  790,
      790,  790,  790,  961,  962,  962,  962,  962,  962, 1298,

     1298, 1298, 1298,  963, 1298, 1298, 1298, 1298, 1298,  963,
      963,  963,  963,  963,  963, 1298,  790,  790,  790,  790,
      790,  790,  712,  801,  801,  801,  801,  801,  801,  868,
     1298, 1298, 1298,  802, 1298, 1298, 1298, 1298, 1298,  802,
      802,  802,  802,  802,  802,  964,  965,  965,  965,  965,
      965, 1298, 1298, 1298, 1298,  966, 1298, 1298, 1298, 1298,
     1298,  966,  966,  966,  966,  966,  966, 1298,  802,  802,
      802,  802,  802,  802,  723,  816,  816,  816,  816,  816,
      816,  871, 1298, 1298, 1298,  817, 1298, 1298, 1298, 1298,
     1298,  817,  817,  817,  817,  817,  817,  967,  968,  968,

      968,  968,  968, 1298, 1298, 1298, 1298,  969, 1298, 1298,
     1298, 1298, 1298,  969,  969,  969,  969,  969,  969, 1298,
      817,  817,  817,  817,  817,  817,  735,  832,  832,  832,
      832,  832,  832,  874, 1298, 1298, 1298,  833, 1298, 1298,
     1298, 1298, 1298,  833,  833,  833,  833,  833,  833,  970,
      971,  971,  971,  971,  971, 1298, 1298, 1298, 1298,  972,
     1298, 1298, 1298, 1298, 1298,  972,  972,  972,  972,  972,
      972, 1298,  833,  833,  833,  833,  833,  833,  974,  975,
      975,  975,  975,  975,  975,  976, 1298, 1298, 1298,  977,
     1298,  978, 1298, 1298, 1298,  977,  977,  977,  977,  977,

      977,  980,  981,  981,  981,  981,  981, 1298,  983,  983,
      983,  983,  983,  983, 1298, 1298, 1298,  978,  881,  982,
      982,  982,  982,  982,  982,  883, 1298, 1298, 1298,  983,
     1298, 1298, 1298, 1298, 1298,  983,  983,  983,  983,  983,
      983,  986,  987,  987,  987,  987,  987,  990,  991,  991,
      991,  991,  991,  890,  992,  992,  992,  992,  992,  992,
      892, 1298, 1298, 1298,  993, 1298, 1298, 1298, 1298, 1298,
      993,  993,  993,  993,  993,  993, 1298,  993,  993,  993,
      993,  993,  993,  996,  997,  997,  997,  997,  997,  999,
     1000, 1000, 1000, 1000, 1000, 1003, 1004, 1004, 1004, 1004,

     1004,  901, 1005, 1005, 1005, 1005, 1005, 1005,  903, 1298,
     1298, 1298, 1006, 1298, 1298, 1298, 1298, 1298, 1006, 1006,
     1006, 1006, 1006, 1006, 1298, 1006, 1006, 1006, 1006, 1006,
     1006, 1010, 1011, 1011, 1011, 1011, 1011, 1013, 1014, 1014,
     1014, 1014, 1014, 1017, 1018, 1018, 1018, 1018, 1018,  913,
     1019, 1019, 1019, 1019, 1019, 1019,  915, 1298, 1298, 1298,
     1020, 1298, 1298, 1298, 1298, 1298, 1020, 1020, 1020, 1020,
     1020, 1020, 1298, 1020, 1020, 1020, 1020, 1020, 1020, 1024,
     1025, 1025, 1025, 1025, 1025, 1027, 1028, 1028, 1028, 1028,
     1028, 1031, 1032, 1032, 1032, 1032, 1032,  925, 1033, 1033,

     1033, 1033, 1033, 1033,  927, 1298, 1298, 1298, 1034, 1298,
     1298, 1298, 1298, 1298, 1034, 1034, 1034, 1034, 1034, 1034,
     1298, 1034, 1034, 1034, 1034, 1034, 1034,  932,  932,  932,
      932,  932,  932, 1038,  935,  935,  935,  935,  935,  935,
      671,  937,  937,  937,  937,  937,  937, 1040,  939,  939,
      939,  939,  939,  939,  845, 1042, 1042, 1042, 1042, 1042,
     1042,  847, 1298, 1298, 1298, 1043, 1298, 1298, 1298, 1298,
     1298, 1043, 1043, 1043, 1043, 1043, 1043, 1298, 1043, 1043,
     1043, 1043, 1043, 1043, 1044, 1045, 1045, 1045, 1045, 1045,
     1045, 1046, 1298, 1298, 1298, 1047, 1298, 1048, 1298, 1298,

     1298, 1047, 1047, 1047, 1047, 1047, 1047, 1076, 1077, 1077,
     1077, 1077, 1077, 1298, 1079, 1079, 1079, 1079, 1079, 1079,
     1298, 1298, 1105, 1048, 1057, 1058, 1058, 1058, 1058, 1058,
     1059, 1298, 1298, 1298, 1060, 1106, 1298, 1298, 1298, 1298,
     1060, 1060, 1060, 1060, 1060, 1060,  881, 1061, 1061, 1061,
     1061, 1061, 1061, 1062, 1298, 1298, 1298, 1063, 1298,  885,
     1298, 1106, 1298, 1063, 1063, 1063, 1063, 1063, 1063, 1084,
      981,  981,  981,  981,  981,  981, 1298, 1087, 1087, 1087,
     1087, 1087, 1087, 1298, 1298,  885,  890, 1064, 1064, 1064,
     1064, 1064, 1064, 1065, 1298, 1298, 1298, 1066, 1298,  894,

     1298, 1298, 1298, 1066, 1066, 1066, 1066, 1066, 1066, 1089,
      987,  987,  987,  987,  987,  987,  703,  989,  989,  989,
      989,  989,  989, 1298, 1298,  894,  901, 1067, 1067, 1067,
     1067, 1067, 1067, 1068, 1298, 1298, 1298, 1069, 1298,  905,
     1298, 1298, 1298, 1069, 1069, 1069, 1069, 1069, 1069, 1091,
      991,  991,  991,  991,  991,  991, 1298, 1094, 1094, 1094,
     1094, 1094, 1094, 1107, 1298,  905,  913, 1070, 1070, 1070,
     1070, 1070, 1070, 1071, 1298, 1298, 1108, 1072, 1298,  917,
     1298, 1298, 1298, 1072, 1072, 1072, 1072, 1072, 1072,  997,
      997,  997,  997,  997,  997, 1097, 1000, 1000, 1000, 1000,

     1000, 1000, 1108, 1298, 1298,  917,  925, 1073, 1073, 1073,
     1073, 1073, 1073, 1074, 1298, 1298, 1298, 1075, 1298,  929,
     1298, 1298, 1298, 1075, 1075, 1075, 1075, 1075, 1075,  712,
     1002, 1002, 1002, 1002, 1002, 1002, 1099, 1004, 1004, 1004,
     1004, 1004, 1004, 1113, 1298,  929,  974, 1078, 1078, 1078,
     1078, 1078, 1078,  976, 1298, 1298, 1114, 1079, 1298, 1298,
     1298, 1298, 1298, 1079, 1079, 1079, 1079, 1079, 1079,  881,
     1086, 1086, 1086, 1086, 1086, 1086, 1062, 1298, 1298, 1298,
     1087, 1298, 1114, 1298, 1298, 1298, 1087, 1087, 1087, 1087,
     1087, 1087,  890, 1093, 1093, 1093, 1093, 1093, 1093, 1065,

     1298, 1298, 1298, 1094, 1298, 1298, 1298, 1298, 1298, 1094,
     1094, 1094, 1094, 1094, 1094,  901, 1101, 1101, 1101, 1101,
     1101, 1101, 1068, 1298, 1298, 1298, 1102, 1298, 1298, 1298,
     1298, 1298, 1102, 1102, 1102, 1102, 1102, 1102, 1298, 1102,
     1102, 1102, 1102, 1102, 1102, 1011, 1011, 1011, 1011, 1011,
     1011, 1105, 1014, 1014, 1014, 1014, 1014, 1014,  723, 1016,
     1016, 1016, 1016, 1016, 1016, 1107, 1018, 1018, 1018, 1018,
     1018, 1018,  913, 1109, 1109, 1109, 1109, 1109, 1109, 1071,
     1298, 1298, 1298, 1110, 1298, 1298, 1298, 1298, 1298, 1110,
     1110, 1110, 1110, 1110, 1110, 1298, 1110, 1110, 1110, 1110,

     1110, 1110, 1025, 1025, 1025, 1025, 1025, 1025, 1113, 1028,
     1028, 1028, 1028, 1028, 1028,  735, 1030, 1030, 1030, 1030,
     1030, 1030, 1115, 1115, 1032, 1032, 1032, 1032, 1032, 1032,
     1298, 1298, 1298, 1298, 1298, 1116, 1298, 1118, 1118, 1118,
     1118, 1118, 1118, 1121, 1122, 1122, 1122, 1122, 1122, 1124,
     1125, 1125, 1125, 1125, 1125, 1128, 1129, 1129, 1129, 1129,
     1129, 1116,  925, 1117, 1117, 1117, 1117, 1117, 1117, 1074,
     1298, 1298, 1298, 1118, 1298, 1298, 1298, 1298, 1298, 1118,
     1118, 1118, 1118, 1118, 1118, 1044, 1130, 1130, 1130, 1130,
     1130, 1130, 1046, 1298, 1298, 1298, 1131, 1298,   48,   48,

     1298, 1298, 1131, 1131, 1131, 1131, 1131, 1131, 1298, 1131,
     1131, 1131, 1131, 1131, 1131,   48,   48, 1298,  983,  983,
      983,  983,  983,  983, 1298, 1298, 1298, 1137, 1136,  974,
     1138, 1138, 1138, 1138, 1138, 1138, 1139, 1298, 1298, 1298,
     1140, 1298,  978, 1298, 1298, 1298, 1140, 1140, 1140, 1140,
     1140, 1140, 1298,  993,  993,  993,  993,  993,  993, 1298,
     1006, 1006, 1006, 1006, 1006, 1006, 1147, 1298,  978,  881,
      982,  982,  982,  982,  982,  982, 1062, 1298, 1298, 1148,
      983, 1298, 1298, 1298, 1298, 1298,  983,  983,  983,  983,
      983,  983,  890,  992,  992,  992,  992,  992,  992, 1065,

     1298, 1298, 1298,  993, 1298, 1148, 1298, 1298, 1298,  993,
      993,  993,  993,  993,  993,  901, 1005, 1005, 1005, 1005,
     1005, 1005, 1068, 1298, 1298, 1298, 1006, 1298, 1298, 1298,
     1298, 1298, 1006, 1006, 1006, 1006, 1006, 1006,  913, 1019,
     1019, 1019, 1019, 1019, 1019, 1071, 1298, 1298, 1298, 1020,
     1298, 1298, 1298, 1298, 1298, 1020, 1020, 1020, 1020, 1020,
     1020, 1298, 1020, 1020, 1020, 1020, 1020, 1020,  925, 1033,
     1033, 1033, 1033, 1033, 1033, 1074, 1298, 1298, 1298, 1034,
     1298, 1298, 1298, 1298, 1298, 1034, 1034, 1034, 1034, 1034,
     1034, 1298, 1034, 1034, 1034, 1034, 1034, 1034, 1147, 1077,

     1077, 1077, 1077, 1077, 1077,  974, 1149, 1149, 1149, 1149,
     1149, 1149, 1139, 1298, 1298, 1298, 1150, 1298, 1298, 1298,
     1298, 1298, 1150, 1150, 1150, 1150, 1150, 1150, 1298, 1150,
     1150, 1150, 1150, 1150, 1150, 1153, 1154, 1154, 1154, 1154,
     1154, 1158, 1159, 1159, 1159, 1159, 1159, 1161, 1162, 1162,
     1162, 1162, 1162, 1167, 1168, 1168, 1168, 1168, 1168, 1170,
     1171, 1171, 1171, 1171, 1171, 1176, 1177, 1177, 1177, 1177,
     1177, 1179, 1180, 1180, 1180, 1180, 1180, 1185, 1186, 1186,
     1186, 1186, 1186, 1188, 1189, 1189, 1189, 1189, 1189, 1122,
     1122, 1122, 1122, 1122, 1122, 1194, 1194, 1125, 1125, 1125,

     1125, 1125, 1125, 1196, 1298, 1298, 1298, 1298, 1195,  845,
     1127, 1127, 1127, 1127, 1127, 1127, 1197, 1196, 1129, 1129,
     1129, 1129, 1129, 1129, 1298, 1199, 1199, 1199, 1199, 1199,
     1199, 1298, 1298, 1298, 1195, 1298, 1079, 1079, 1079, 1079,
     1079, 1079, 1197, 1044, 1198, 1198, 1198, 1198, 1198, 1198,
     1046, 1298, 1298, 1298, 1199, 1298, 1298, 1298, 1298, 1298,
     1199, 1199, 1199, 1199, 1199, 1199,  974, 1078, 1078, 1078,
     1078, 1078, 1078, 1139, 1298, 1298, 1298, 1079, 1298, 1298,
     1298, 1298, 1219, 1079, 1079, 1079, 1079, 1079, 1079, 1213,
     1214, 1214, 1214, 1214, 1214, 1220, 1219, 1154, 1154, 1154,

     1154, 1154, 1154,  881, 1156, 1156, 1156, 1156, 1156, 1156,
     1159, 1159, 1159, 1159, 1159, 1159, 1223, 1298, 1298, 1298,
     1298, 1220, 1223, 1162, 1162, 1162, 1162, 1162, 1162, 1224,
      890, 1164, 1164, 1164, 1164, 1164, 1164, 1168, 1168, 1168,
     1168, 1168, 1168, 1227, 1227, 1171, 1171, 1171, 1171, 1171,
     1171, 1298, 1298, 1298, 1298, 1224, 1228,  901, 1173, 1173,
     1173, 1173, 1173, 1173, 1177, 1177, 1177, 1177, 1177, 1177,
     1231, 1231, 1180, 1180, 1180, 1180, 1180, 1180, 1298, 1298,
     1298, 1298, 1228, 1232,  913, 1182, 1182, 1182, 1182, 1182,
     1182, 1186, 1186, 1186, 1186, 1186, 1186, 1235, 1235, 1189,

     1189, 1189, 1189, 1189, 1189, 1298, 1298, 1298, 1298, 1232,
     1236,  925, 1191, 1191, 1191, 1191, 1191, 1191, 1239, 1240,
     1240, 1240, 1240, 1240, 1242, 1243, 1243, 1243, 1243, 1243,
     1251, 1298, 1298, 1298, 1298, 1298, 1236, 1253, 1254, 1254,
     1254, 1254, 1254, 1252, 1251, 1214, 1214, 1214, 1214, 1214,
     1214,  974, 1216, 1216, 1216, 1216, 1216, 1216, 1257, 1258,
     1258, 1258, 1258, 1258, 1298, 1298, 1298, 1298, 1298, 1252,
     1261, 1262, 1262, 1262, 1262, 1262, 1265, 1266, 1266, 1266,
     1266, 1266, 1269, 1270, 1270, 1270, 1270, 1270, 1240, 1240,
     1240, 1240, 1240, 1240, 1273, 1273, 1243, 1243, 1243, 1243,

     1243, 1243, 1298, 1298, 1298, 1298, 1298, 1274, 1044, 1245,
     1245, 1245, 1245, 1245, 1245, 1277, 1278, 1278, 1278, 1278,
     1278, 1254, 1254, 1254, 1254, 1254, 1254, 1258, 1258, 1258,
     1258, 1258, 1258, 1274, 1262, 1262, 1262, 1262, 1262, 1262,
     1266, 1266, 1266, 1266, 1266, 1266, 1270, 1270, 1270, 1270,
     1270, 1270, 1286, 1287, 1287, 1287, 1287, 1287, 1278, 1278,
     1278, 1278, 1278, 1278, 1287, 1287, 1287, 1287, 1287, 1287,
       46, 1298, 1298, 1298, 1298,   46,   46,   46,   62, 1298,
       62,   62,   62,   62,   62,   62,   62,  133, 1298,  133,
      138,  138,  138,  222,  222,  222,  231,  231,  231,  285,

      285,  285,  287,  287,  287,  288,  288,  288,  295,  295,
      295,  293,  293,  293,  303, 1298,  303,  342,  342,  342,
      347,  347,  347,  348,  348,  348,  361, 1298,  361,  362,
      362,  362,  297,  297, 1298, 1298,  297,  370,  370,  370,
      411,  411,  411,  415,  415,  415,  416,  416,  416,  417,
      417,  417,  422,  422,  422,  355,  355, 1298, 1298,  355,
      431,  431,  431,  435, 1298,  435,  436,  436,  436,  444,
     1298,  444,  478,  478,  478,  486,  486,  486,  487,  487,
      487,  499, 1298,  499,  502, 1298,  502,  503,  503,  503,
      511, 1298,  511,  434,  434, 1298, 1298,  434,  438,  438,

     1298, 1298,  438,  521,  521,  521,  416,  416,  416,  545,
      545,  545,  549,  549,  549,  552,  552,  552,  553,  553,
      553,  554,  554,  554,  559,  559,  559,  493,  493, 1298,
     1298,  493,  568,  568,  568,  501,  501, 1298, 1298,  501,
      505,  505, 1298, 1298,  505,  579,  579,  579,  583, 1298,
      583,  586, 1298,  586,  587,  587,  587,  595, 1298,  595,
      612,  612,  612,  623,  623,  623,  624,  624,  624,  636,
     1298,  636,  639, 1298,  639,  640,  640,  640,  648, 1298,
      648,  651, 1298,  651,  654, 1298,  654,  655,  655,  655,
      663, 1298,  663,  582, 1298, 1298,  582,  585,  585, 1298,

     1298,  585,  586,  586, 1298,  586,  589,  589, 1298, 1298,
      589,  674,  674,  674,  595,  595, 1298,  595,   53,   53,
       53, 1298,   53,   53,  553,  553,  553,  689,  689,  689,
      693,  693,  693,  696,  696,  696,  699,  699,  699,  700,
      700,  700,  701,  701,  701,  706,  706,  706,  630,  630,
     1298, 1298,  630,  715,  715,  715,  636,  636, 1298,  636,
      638,  638, 1298, 1298,  638,  639,  639, 1298,  639,  642,
      642, 1298, 1298,  642,  726,  726,  726,  648,  648, 1298,
      648,  650, 1298, 1298,  650,  651,  651, 1298,  651,  653,
      653, 1298, 1298,  653,  654,  654, 1298,  654,  657,  657,

     1298, 1298,  657,  738,  738,  738,  663,  663, 1298,  663,
      740, 1298,  740,  743, 1298,  743,  746, 1298,  746,  747,
      747,  747,  755, 1298,  755,   53,   53,   53, 1298,   53,
       53,  767,  767,  767,  781,  781,  781,  782,  782,  782,
      794, 1298,  794,  797, 1298,  797,  798,  798,  798,  806,
     1298,  806,  809, 1298,  809,  812, 1298,  812,  813,  813,
      813,  821, 1298,  821,  822, 1298,  822,  825, 1298,  825,
      828, 1298,  828,  829,  829,  829,  837, 1298,  837,  740,
     1298,  740,  742, 1298, 1298,  742,  743,  743, 1298,  743,
      745,  745, 1298, 1298,  745,  746,  746, 1298,  746,  749,

      749, 1298, 1298,  749,  848,  848,  848,  755,  755, 1298,
      755,   53,   53,   53, 1298,   53,   53,  700,  700,  700,
      862,  862,  862,  866,  866,  866,  869,  869,  869,  872,
      872,  872,  875,  875,  875,  876,  876,  876,  884,  884,
      884,  788,  788, 1298, 1298,  788,  893,  893,  893,  794,
      794, 1298,  794,  796,  796, 1298, 1298,  796,  797,  797,
     1298,  797,  800,  800, 1298, 1298,  800,  904,  904,  904,
      806,  806, 1298,  806,  808, 1298, 1298,  808,  809,  809,
     1298,  809,  811,  811, 1298, 1298,  811,  812,  812, 1298,
      812,  815,  815, 1298, 1298,  815,  916,  916,  916,  821,

      821, 1298,  821,  822, 1298,  822,  824, 1298, 1298,  824,
      825,  825, 1298,  825,  827,  827, 1298, 1298,  827,  828,
      828, 1298,  828,  831,  831, 1298, 1298,  831,  928,  928,
      928,  837,  837, 1298,  837,  930, 1298,  930,  933, 1298,
      933,  936, 1298,  936,  937,  937,  937,  945, 1298,  945,
       53,   53,   53, 1298,   53,   53,  956,  956,  956,  973,
      973,  973,  979,  979,  979,  977,  977,  977,  984,  984,
      984,  985, 1298,  985,  988, 1298,  988,  989,  989,  989,
      994,  994,  994,  995, 1298,  995,  998, 1298,  998, 1001,
     1298, 1001, 1002, 1002, 1002, 1007, 1007, 1007, 1008, 1298,

     1008, 1009, 1298, 1009, 1012, 1298, 1012, 1015, 1298, 1015,
     1016, 1016, 1016, 1021, 1021, 1021, 1022, 1298, 1022, 1023,
     1298, 1023, 1026, 1298, 1026, 1029, 1298, 1029, 1030, 1030,
     1030, 1035, 1035, 1035, 1036, 1298, 1036,  930, 1298,  930,
      932, 1298, 1298,  932,  933,  933, 1298,  933,  935,  935,
     1298, 1298,  935,  936,  936, 1298,  936,  939,  939, 1298,
     1298,  939, 1047, 1047, 1047,  945,  945, 1298,  945,   53,
       53,   53, 1298,   53,   53,  876,  876,  876, 1063, 1063,
     1063, 1066, 1066, 1066, 1069, 1069, 1069, 1072, 1072, 1072,
     1075, 1075, 1075, 1080, 1080, 1080, 1082, 1298, 1082, 1083,

     1083, 1083,  981,  981, 1298, 1298,  981, 1088, 1088, 1088,
      985,  985, 1298,  985,  987,  987, 1298, 1298,  987,  988,
      988, 1298,  988,  991,  991, 1298, 1298,  991, 1095, 1095,
     1095,  995,  995, 1298,  995,  997, 1298, 1298,  997,  998,
      998, 1298,  998, 1000, 1000, 1298, 1298, 1000, 1001, 1001,
     1298, 1001, 1004, 1004, 1298, 1298, 1004, 1103, 1103, 1103,
     1008, 1008, 1298, 1008, 1009, 1298, 1009, 1011, 1298, 1298,
     1011, 1012, 1012, 1298, 1012, 1014, 1014, 1298, 1298, 1014,
     1015, 1015, 1298, 1015, 1018, 1018, 1298, 1298, 1018, 1111,
     1111, 1111, 1022, 1022, 1298, 1022, 1023, 1298, 1023, 1025,

     1298, 1298, 1025, 1026, 1026, 1298, 1026, 1028, 1028, 1298,
     1298, 1028, 1029, 1029, 1298, 1029, 1032, 1032, 1298, 1298,
     1032, 1119, 1119, 1119, 1036, 1036, 1298, 1036, 1120, 1298,
     1120, 1123, 1298, 1123, 1126, 1298, 1126, 1127, 1127, 1127,
     1132, 1298, 1132, 1133, 1298, 1133,   53,   53,   53, 1298,
       53,   53, 1141, 1298, 1141, 1140, 1140, 1140, 1142, 1298,
     1142, 1143, 1298, 1143, 1144, 1298, 1144, 1145, 1298, 1145,
     1146, 1298, 1146, 1077, 1077, 1298, 1298, 1077, 1151, 1151,
     1151,  295,  295,  295, 1082, 1082, 1298, 1082, 1152, 1152,
     1152, 1155, 1298, 1155, 1156, 1156, 1156, 1157, 1157, 1157,

     1160, 1298, 1160, 1163, 1298, 1163, 1164, 1164, 1164, 1165,
     1165, 1165, 1166, 1298, 1166, 1169, 1298, 1169, 1172, 1298,
     1172, 1173, 1173, 1173, 1174, 1174, 1174, 1175, 1298, 1175,
     1178, 1298, 1178, 1181, 1298, 1181, 1182, 1182, 1182, 1183,
     1183, 1183, 1184, 1298, 1184, 1187, 1298, 1187, 1190, 1298,
     1190, 1191, 1191, 1191, 1192, 1192, 1192, 1120, 1298, 1120,
     1122, 1298, 1298, 1122, 1123, 1123, 1298, 1123, 1125, 1125,
     1298, 1298, 1125, 1126, 1126, 1298, 1126, 1129, 1129, 1298,
     1298, 1129, 1200, 1298, 1200, 1133, 1133, 1298, 1133,   53,
       53,   53, 1298,   53,   53, 1205, 1205, 1205, 1207, 1298,

     1207, 1208, 1298, 1208, 1209, 1298, 1209, 1210, 1298, 1210,
     1211, 1298, 1211, 1212, 1298, 1212, 1215, 1298, 1215, 1216,
     1216, 1216, 1217, 1217, 1217, 1218, 1298, 1218, 1154, 1154,
     1298, 1298, 1154, 1155, 1155, 1298, 1155, 1221, 1298, 1221,
     1159, 1298, 1298, 1159, 1160, 1160, 1298, 1160, 1162, 1162,
     1298, 1298, 1162, 1163, 1163, 1298, 1163, 1225, 1298, 1225,
     1166, 1298, 1166, 1168, 1298, 1298, 1168, 1169, 1169, 1298,
     1169, 1171, 1171, 1298, 1298, 1171, 1172, 1172, 1298, 1172,
     1229, 1298, 1229, 1175, 1298, 1175, 1177, 1298, 1298, 1177,
     1178, 1178, 1298, 1178, 1180, 1180, 1298, 1298, 1180, 1181,

     1181, 1298, 1181, 1233, 1298, 1233, 1184, 1298, 1184, 1186,
     1298, 1298, 1186, 1187, 1187, 1298, 1187, 1189, 1189, 1298,
     1298, 1189, 1190, 1190, 1298, 1190, 1237, 1298, 1237, 1238,
     1298, 1238, 1241, 1298, 1241, 1244, 1298, 1244, 1245, 1245,
     1245, 1246, 1298, 1246,   53,   53,   53, 1298,   53,   53,
     1250, 1298, 1250, 1152, 1298, 1152, 1157, 1298, 1157, 1165,
     1298, 1165, 1174, 1298, 1174, 1183, 1298, 1183, 1192, 1298,
     1192, 1214, 1214, 1298, 1298, 1214, 1215, 1215, 1298, 1215,
     1206, 1298, 1206, 1255, 1298, 1255, 1256, 1298, 1256, 1259,
     1298, 1259, 1260, 1298, 1260, 1263, 1298, 1263, 1264, 1298,

     1264, 1267, 1298, 1267, 1268, 1298, 1268, 1271, 1298, 1271,
     1240, 1298, 1298, 1240, 1243, 1243, 1298, 1298, 1243, 1275,
     1298, 1275, 1217, 1298, 1217, 1279, 1298, 1279, 1254, 1298,
     1298, 1254, 1258, 1298, 1298, 1258, 1262, 1298, 1298, 1262,
     1266, 1298, 1298, 1266, 1270, 1298, 1298, 1270, 1285, 1298,
     1285, 1288, 1298, 1288, 1278, 1298, 1298, 1278, 1290, 1298,
     1290, 1291, 1298, 1291, 1292, 1298, 1292, 1293, 1298, 1293,
     1294, 1298, 1294, 1287, 1298, 1298, 1287, 1296, 1298, 1296,
     1297, 1298, 1297,    3, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,

     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298
    } ;

static yyconst short int yy_chk[6637] =
    {   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,    4,    7, 1288,    4,    7,    4,    7,    9,
        4,    7,    9,   12,    9,   24,   12,    9,   12,    4,
        7,   12,   15,   17,   17,  121,    9,    4,    7,   24,
       12,   19,   19,   29,    9,  121,   24,   26,   12,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   15,   29,

       26,   14,   14,   14,   27,   27,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
       14,   16,   34,   23,   16,   23,   16,  382,   85,   16,
       23,   34,   64,   85,   64,   23,  382,   22,   16,   23,
       22,   23,   22,   77,   39,   22,   16,   20,   20,   20,
       20,   20,   20,   20,   22,   35,   25,   33,   39,   25,
       20,   33,   22,   25,  384,   69,   89,   35,   75,   77,
       33,   35,   36,  384,   35,   77,   33,   36,   36,   69,
       36,   36,   75,  118, 1279,   79,   20,   21,   21,   21,

       21,   21,   21,   21,   93,   32,   32,   21,   79,   89,
       93,  118, 1271,   21,   21,   21,   21,   21,   21,   31,
       32,   94,   31,   31,   32,   31,   94,   31,   32,   31,
       32,   31,   37,   41,   31,  161,   37,   32,   38,  161,
     1267,   41,  135,  142,   37,   41,   38,   41,   38,   37,
      365,   37,   38,   44,   38,   38,   44,  365,   44, 1263,
       90,   44,   49,   49,   49,   49,   49,   49,  135,  142,
       44,   52,   52,   52,   52,   52,   52,   52,   44,   50,
       50,   50,   50,   50,   50,   50,   90,  210,  225,  273,
       50,   90,  596, 1259,  273, 1255,   50,   50,   50,   50,

       50,   50,   54,   54,   54,   54,   54,   54,   61,  596,
      210,   61,   54,   61,  225,  186,   61,  282,   54,   54,
       54,   54,   54,   54,   55,   61, 1244,   55,  186,   55,
      604,  326,   55,   61, 1241,   55,   55,   55,   55,   55,
       55,   55, 1215,  282,  326,   55, 1199,  604, 1190,   55,
      604,   55,   55,   55,   55,   55,   55,   63,   63,   63,
       63,   63,   63,   63,  137,  137,  137,  137,  137,  137,
      137,  149,  149,  149,  149,  149,  149,  149,  217,  217,
      217,  217,  217,  217,  228,  228,  228,  228,  228,  228,
       63,  134,  134,  134,  134,  134,  134,  134,  277,  301,

      296,  345,  351,  277,  134,  231,  231,  231,  231,  231,
      231,  231,  277,  296,  277,  277, 1187,  277,  290,  290,
      290,  290,  290,  290, 1181,  301,  605,  345,  351,  354,
      134,  136,  136,  136,  136,  136,  136,  136,  359,  296,
      409,  136,  354,  605, 1178,  608,  605,  136,  136,  136,
      136,  136,  136,  139,  139,  139,  139,  139,  139,  139,
      426,  442,  608,  139,  359,  608,  409,  426,  354,  139,
      139,  139,  139,  139,  139,  141,  141,  141,  141,  141,
      141,  141,  141,  481,  484, 1172,  141,  442,  141,  598,
      599,  248,  141,  141,  141,  141,  141,  141,  248,  293,

      293,  293,  293,  293,  293,  293,  598,  599, 1169,  481,
      484,  248,  433,  437,  141,  155,  155,  155,  155,  155,
      155,  155, 1163,  598,  599,  433,  437,  248,  297,  297,
      297,  297,  297,  297,  297,  299,  299,  299,  299,  299,
      299,  299, 1160, 1155,  155,  218,  218,  218,  218,  218,
      218,  433,  437,  516, 1151,  218, 1150,  490,  497,  509,
      516,  218,  218,  218,  218,  218,  218,  219,  219,  219,
      219,  219,  219,  219,  219,  224,  224,  224,  224,  224,
      224,  224,  224,  490,  497,  509,  224,  581,  224, 1139,
     1133, 1126,  224,  224,  224,  224,  224,  224,  340,  340,

      340,  340,  340,  340,  355,  355,  355,  355,  355,  355,
      355,  492,  500,  581,  224,  229,  229,  229,  229,  229,
      229,  229,  229,  563,  492,  500,  229,  593, 1123,  607,
      563, 1119,  229,  229,  229,  229,  229,  229,  230,  230,
      230,  230,  230,  230, 1118,  574,  607,  607,  230, 1111,
      492,  500,  574,  593,  230,  230,  230,  230,  230,  230,
      281,  281,  281,  281,  281,  281,  281,  363,  363,  363,
      363,  363,  363,  281,  357,  357,  357,  357,  357,  357,
      357,  367,  367,  367,  367,  367,  367,  370,  370,  370,
      370,  370,  370,  370,  504,  584,  588,  600,  609,  281,

      286,  286,  286,  286,  286,  286,  669,  504,  584,  588,
      286, 1110,  597,  669,  600,  609,  286,  286,  286,  286,
      286,  286,  289,  289,  289,  289,  289,  289,  289,  597,
      615,  600,  289,  504,  584,  588,  597,  603,  289,  289,
      289,  289,  289,  289,  291,  291,  291,  291,  291,  291,
      291,  291,  618,  621,  603,  291,  615,  676, 1103,  603,
     1102,  291,  291,  291,  291,  291,  291,  292,  292,  292,
      292,  292,  292,  292,  676,  627,  634,  292,  618,  621,
      688, 1095,  677,  292,  292,  292,  292,  292,  292,  298,
      298,  298,  298,  298,  298,  298,  298,  688,  646,  677,

      298,  627,  634,  766,  677, 1094,  298,  298,  298,  298,
      298,  298,  300,  300,  300,  300,  300,  300,  300,  300,
      766,  710,  649,  300,  646,  300, 1088,  661,  710,  300,
      300,  300,  300,  300,  300,  419,  419,  419,  419,  419,
      419,  422,  422,  422,  422,  422,  422,  422,  649, 1087,
      721,  300,  312,  661, 1083,  741,  312,  721,  678,  312,
      679,  629,  312,  637,  312,  312,  312,  312,  341,  341,
      341,  341,  341,  341,  629,  678,  637,  679,  341, 1082,
      678,  741,  679, 1081,  341,  341,  341,  341,  341,  341,
      344,  344,  344,  344,  344,  344,  344,  344,  733,  843,

      629,  344,  637,  344, 1080,  733,  843,  344,  344,  344,
      344,  344,  344,  424,  424,  424,  424,  424,  424,  428,
      428,  428,  428,  428,  428,  686, 1060,  853, 1043,  344,
      350,  350,  350,  350,  350,  350,  350,  350, 1036,  888,
     1035,  350,  686,  350,  853,  686,  888,  350,  350,  350,
      350,  350,  350,  431,  431,  431,  431,  431,  431,  431,
      434,  434,  434,  434,  434,  434,  434,  602, 1029,  350,
      356,  356,  356,  356,  356,  356,  356,  356, 1026,  753,
     1022,  356, 1021,  770,  602,  681,  683,  356,  356,  356,
      356,  356,  356,  358,  358,  358,  358,  358,  358,  358,

      358,  602,  681,  683,  358,  753,  358,  681,  683,  770,
      358,  358,  358,  358,  358,  358,  436,  436,  436,  436,
      436,  436,  436,  438,  438,  438,  438,  438,  438,  438,
      641,  680,  358,  368,  368,  368,  368,  368,  368,  368,
      368, 1015,  773,  641,  368,  684, 1012,  861,  680, 1008,
      368,  368,  368,  368,  368,  368,  369,  369,  369,  369,
      369,  369,  684,  680,  861, 1007,  369,  684,  773,  641,
     1001,  998,  369,  369,  369,  369,  369,  369,  408,  408,
      408,  408,  408,  408,  512,  512,  512,  512,  512,  512,
      408,  440,  440,  440,  440,  440,  440,  440,  493,  493,

      493,  493,  493,  493,  493,  495,  495,  495,  495,  495,
      495,  495,  652,  656,  682,  610,  408,  412,  412,  412,
      412,  412,  412,  995,  994,  652,  656,  412,  988,  765,
      760,  682,  610,  412,  412,  412,  412,  412,  412,  414,
      414,  414,  414,  414,  414,  610,  765,  760,  682,  414,
      760,  652,  656,  763,  765,  414,  414,  414,  414,  414,
      414,  418,  418,  418,  418,  418,  418,  418,  985,  776,
      763,  418,  779,  785,  984,  763,  979,  418,  418,  418,
      418,  418,  418,  420,  420,  420,  420,  420,  420,  420,
      420,  792,  804,  807,  420,  776,  976,  973,  779,  785,

      420,  420,  420,  420,  420,  420,  421,  421,  421,  421,
      421,  421,  421,  899,  819,  823,  421,  792,  804,  807,
      899,  856,  421,  421,  421,  421,  421,  421,  429,  429,
      429,  429,  429,  429,  429,  429,  835,  878,  856,  429,
      819,  823,  856,  859,  972,  429,  429,  429,  429,  429,
      429,  430,  430,  430,  430,  430,  430,  430,  969,  911,
      859,  430,  835,  878,  859,  860,  911,  430,  430,  430,
      430,  430,  430,  439,  439,  439,  439,  439,  439,  439,
      439,  923,  860,  966,  439,  931,  943,  860,  923,  949,
      439,  439,  439,  439,  439,  439,  441,  441,  441,  441,

      441,  441,  441,  441,  963,  960,  949,  441,  949,  441,
      956,  931,  943,  441,  441,  441,  441,  441,  441,  501,
      501,  501,  501,  501,  501,  501,  503,  503,  503,  503,
      503,  503,  503,  759,  685,  441,  477,  477,  477,  477,
      477,  477,  959,  945,  962,  944,  477,  965,  968,  936,
      759,  685,  477,  477,  477,  477,  477,  477,  480,  480,
      480,  480,  480,  480,  480,  480,  685,  759,  959,  480,
      962,  480,  933,  965,  968,  480,  480,  480,  480,  480,
      480,  505,  505,  505,  505,  505,  505,  505,  507,  507,
      507,  507,  507,  507,  507,  744,  858,  480,  483,  483,

      483,  483,  483,  483,  483,  483,  927, 1042,  744,  483,
      924,  483,  915,  858, 1042,  483,  483,  483,  483,  483,
      483,  514,  514,  514,  514,  514,  514,  518,  518,  518,
      518,  518,  518,  858,  744,  950,  954,  483,  489,  489,
      489,  489,  489,  489,  489,  489,  912, 1086,  903,  489,
      900,  489,  950,  954, 1086,  489,  489,  489,  489,  489,
      489,  521,  521,  521,  521,  521,  521,  521,  549,  549,
      549,  549,  549,  549,  549,  687,  762,  489,  494,  494,
      494,  494,  494,  494,  494,  494,  892,  971,  889,  494,
      996, 1010,  687,  762,  883,  494,  494,  494,  494,  494,

      494,  496,  496,  496,  496,  496,  496,  496,  496,  762,
      880,  687,  496,  971,  496,  879,  996, 1010,  496,  496,
      496,  496,  496,  496,  552,  552,  552,  552,  552,  552,
      552,  556,  556,  556,  556,  556,  556,  748,  761,  876,
      496,  506,  506,  506,  506,  506,  506,  506,  506,  862,
      748,  844,  506,  837, 1024,  761,  761,  953,  506,  506,
      506,  506,  506,  506,  508,  508,  508,  508,  508,  508,
      508,  508,  836,  761,  953,  508,  748,  508,  828,  953,
     1024,  508,  508,  508,  508,  508,  508,  559,  559,  559,
      559,  559,  559,  559,  561,  561,  561,  561,  561,  561,

      787,  756,  757,  508,  519,  519,  519,  519,  519,  519,
      519,  519, 1058,  787,  825,  519,  821,  820,  756,  757,
      812,  519,  519,  519,  519,  519,  519,  520,  520,  520,
      520,  520,  520,  756,  757, 1121,  809,  520, 1058,  787,
     1049, 1050,  795,  520,  520,  520,  520,  520,  520,  546,
      546,  546,  546,  546,  546,  795,  806, 1049, 1050,  546,
     1158, 1121,  946, 1051,  805,  546,  546,  546,  546,  546,
      546,  547,  547,  547,  547,  547,  547,  547,  547,  946,
     1051,  795,  547, 1167,  947, 1052, 1158,  799,  547,  547,
      547,  547,  547,  547,  548,  548,  548,  548,  548,  548,

      799,  947, 1052,  946,  548, 1176, 1185,  948,  797, 1167,
      548,  548,  548,  548,  548,  548,  550,  550,  550,  550,
      550,  550,  550,  550,  948,  947,  799,  550, 1053,  794,
      951, 1176, 1185,  550,  550,  550,  550,  550,  550,  551,
      551,  551,  551,  551,  551, 1053, 1093,  951,  948,  551,
     1053,  793,  786, 1093,  782,  551,  551,  551,  551,  551,
      551,  555,  555,  555,  555,  555,  555,  555,  951, 1101,
     1239,  555,  781,  780,  777,  774, 1101,  555,  555,  555,
      555,  555,  555,  557,  557,  557,  557,  557,  557,  557,
      557, 1109, 1117, 1253,  557, 1257, 1239, 1135, 1109, 1117,

      557,  557,  557,  557,  557,  557,  558,  558,  558,  558,
      558,  558,  558, 1149, 1135,  771,  558, 1135, 1261, 1253,
     1149, 1257,  558,  558,  558,  558,  558,  558,  565,  565,
      565,  565,  565,  565,  566,  566,  566,  566,  566,  566,
      566,  566, 1198, 1265, 1261,  566,  768, 1203, 1136, 1198,
      767,  566,  566,  566,  566,  566,  566,  567,  567,  567,
      567,  567,  567,  567, 1203, 1136,  755,  567, 1136, 1265,
      754,  746, 1203,  567,  567,  567,  567,  567,  567,  568,
      568,  568,  568,  568,  568,  568,  570,  570,  570,  570,
      570,  570,  572,  572,  572,  572,  572,  572,  576,  576,

      576,  576,  576,  576,  577,  577,  577,  577,  577,  577,
      577,  577, 1269, 1277, 1286,  577,  743, 1204, 1247, 1249,
      734,  577,  577,  577,  577,  577,  577,  578,  578,  578,
      578,  578,  578,  578, 1204, 1247, 1249,  578, 1269, 1277,
     1286,  722,  711,  578,  578,  578,  578,  578,  578,  579,
      579,  579,  579,  579,  579,  579,  582,  582,  582,  582,
      582,  582,  585,  585,  585,  585,  585,  585,  585,  587,
      587,  587,  587,  587,  587,  587,  589,  589,  589,  589,
      589,  589,  589,  590,  590,  590,  590,  590,  590,  590,
      590,  701,  700,  689,  590,  670,  663,  662,  654,  651,

      590,  590,  590,  590,  590,  590,  591,  591,  591,  591,
      591,  591,  591,  592,  592,  592,  592,  592,  592,  592,
      592,  601,  606, 1137,  592,  611,  592,  648,  810,  647,
      592,  592,  592,  592,  592,  592,  764,  639,  601,  606,
     1137,  810,  611,  630,  630,  630,  630,  630,  630,  630,
      601,  606,  592,  764,  611,  614,  614,  614,  614,  614,
      614,  614,  614,  636, 1137,  635,  614,  810,  614,  628,
      764,  625,  614,  614,  614,  614,  614,  614,  632,  632,
      632,  632,  632,  632,  632,  638,  638,  638,  638,  638,
      638,  638, 1276,  624,  614,  617,  617,  617,  617,  617,

      617,  617,  617,  623,  622,  619,  617,  616,  617, 1276,
      613,  612,  617,  617,  617,  617,  617,  617,  640,  640,
      640,  640,  640,  640,  640,  642,  642,  642,  642,  642,
      642,  642,  814,  595,  617,  620,  620,  620,  620,  620,
      620,  620,  620,  594,  586,  814,  620,  583,  620,  575,
      564,  554,  620,  620,  620,  620,  620,  620,  644,  644,
      644,  644,  644,  644,  644,  650,  650,  650,  650,  650,
      650,  814,  553,  545,  620,  626,  626,  626,  626,  626,
      626,  626,  626,  541,  540,  538,  626,  537,  626,  534,
      533,  532,  626,  626,  626,  626,  626,  626,  653,  653,

      653,  653,  653,  653,  653,  655,  655,  655,  655,  655,
      655,  655,  855, 1134,  626,  631,  631,  631,  631,  631,
      631,  631,  631,  531,  530,  529,  631,  528,  527,  855,
     1134,  526,  631,  631,  631,  631,  631,  631,  633,  633,
      633,  633,  633,  633,  633,  633,  525, 1134,  855,  633,
      524,  633,  523,  517,  511,  633,  633,  633,  633,  633,
      633,  657,  657,  657,  657,  657,  657,  657,  659,  659,
      659,  659,  659,  659,  659, 1201,  510,  633,  643,  643,
      643,  643,  643,  643,  643,  643,  502,  499,  498,  643,
      491,  488, 1201,  487,  486,  643,  643,  643,  643,  643,

      643,  645,  645,  645,  645,  645,  645,  645,  645,  485,
      482, 1201,  645,  479,  645,  478,  476,  472,  645,  645,
      645,  645,  645,  645,  665,  665,  665,  665,  665,  665,
      667,  667,  667,  667,  667,  667, 1248,  826,  469,  468,
      645,  658,  658,  658,  658,  658,  658,  658,  658,  467,
      826,  463,  658, 1248,  462,  460,  459,  458,  658,  658,
      658,  658,  658,  658,  660,  660,  660,  660,  660,  660,
      660,  660, 1248,  457,  456,  660,  826,  660,  455,  454,
      453,  660,  660,  660,  660,  660,  660,  671,  671,  671,
      671,  671,  671,  674,  674,  674,  674,  674,  674,  674,

      830,  758,  452,  660,  672,  672,  672,  672,  672,  672,
      672,  672,  451,  830,  450,  672,  449,  446,  758,  445,
      444,  672,  672,  672,  672,  672,  672,  673,  673,  673,
      673,  673,  673,  758,  758,  443,  435,  673,  427,  830,
      417,  416,  934,  673,  673,  673,  673,  673,  673,  690,
      690,  690,  690,  690,  690,  934,  415,  413,  411,  690,
      410,  407,  406,  405,  404,  690,  690,  690,  690,  690,
      690,  691,  691,  691,  691,  691,  691,  691,  691,  403,
      402,  934,  691, 1054,  401,  400,  399,  398,  691,  691,
      691,  691,  691,  691,  692,  692,  692,  692,  692,  692,

     1054,  396,  395,  394,  692,  393,  392,  391,  390, 1054,
      692,  692,  692,  692,  692,  692,  693,  693,  693,  693,
      693,  693,  693,  694,  694,  694,  694,  694,  694,  694,
      694,  388,  387,  386,  694, 1202,  385,  383,  381,  380,
      694,  694,  694,  694,  694,  694,  695,  695,  695,  695,
      695,  695, 1202,  379,  378,  377,  695,  376,  374,  373,
      366, 1202,  695,  695,  695,  695,  695,  695,  696,  696,
      696,  696,  696,  696,  696,  697,  697,  697,  697,  697,
      697,  697,  697,  362,  361,  360,  697,  353,  352,  349,
      348,  347,  697,  697,  697,  697,  697,  697,  698,  698,

      698,  698,  698,  698,  346,  343,  342,  339,  698,  338,
      337,  336,  335,  334,  698,  698,  698,  698,  698,  698,
      699,  699,  699,  699,  699,  699,  699,  702,  702,  702,
      702,  702,  702,  702,  333,  332,  331,  702,  330,  329,
      328,  327,  325,  702,  702,  702,  702,  702,  702,  703,
      703,  703,  703,  703,  703,  704,  704,  704,  704,  704,
      704,  704,  704,  324,  321,  320,  704,  318,  316,  315,
      314,  311,  704,  704,  704,  704,  704,  704,  705,  705,
      705,  705,  705,  705,  705,  310,  308,  307,  705,  306,
      304,  303,  302,  295,  705,  705,  705,  705,  705,  705,

      706,  706,  706,  706,  706,  706,  706,  708,  708,  708,
      708,  708,  708,  712,  712,  712,  712,  712,  712,  713,
      713,  713,  713,  713,  713,  713,  713,  288,  287,  285,
      713,  284,  283,  278,  276,  271,  713,  713,  713,  713,
      713,  713,  714,  714,  714,  714,  714,  714,  714,  268,
      266,  265,  714,  264,  263,  262,  261,  260,  714,  714,
      714,  714,  714,  714,  715,  715,  715,  715,  715,  715,
      715,  717,  717,  717,  717,  717,  717,  719,  719,  719,
      719,  719,  719,  723,  723,  723,  723,  723,  723,  724,
      724,  724,  724,  724,  724,  724,  724,  257,  254,  253,

      724,  252,  249,  246,  245,  244,  724,  724,  724,  724,
      724,  724,  725,  725,  725,  725,  725,  725,  725,  242,
      241,  239,  725,  236,  235,  234,  227,  226,  725,  725,
      725,  725,  725,  725,  726,  726,  726,  726,  726,  726,
      726,  729,  729,  729,  729,  729,  729,  731,  731,  731,
      731,  731,  731,  735,  735,  735,  735,  735,  735,  736,
      736,  736,  736,  736,  736,  736,  736,  223,  222,  221,
      736,  220,  216,  215,  213,  209,  736,  736,  736,  736,
      736,  736,  737,  737,  737,  737,  737,  737,  737,  207,
      204,  203,  737,  201,  200,  198,  197,  196,  737,  737,

      737,  737,  737,  737,  738,  738,  738,  738,  738,  738,
      738,  742,  742,  742,  742,  742,  742,  745,  745,  745,
      745,  745,  745,  745,  747,  747,  747,  747,  747,  747,
      747,  749,  749,  749,  749,  749,  749,  749,  750,  750,
      750,  750,  750,  750,  750,  750,  195,  193,  191,  750,
      190,  188,  187,  185,  184,  750,  750,  750,  750,  750,
      750,  751,  751,  751,  751,  751,  751,  751,  752,  752,
      752,  752,  752,  752,  752,  752,  181,  180,  179,  752,
      177,  752,  175,  174,  171,  752,  752,  752,  752,  752,
      752,  788,  788,  788,  788,  788,  788,  788,  790,  790,

      790,  790,  790,  790,  790,  170,  168,  752,  769,  769,
      769,  769,  769,  769,  769,  769,  167,  166,  165,  769,
      164,  769,  163,  162,  160,  769,  769,  769,  769,  769,
      769,  796,  796,  796,  796,  796,  796,  796,  798,  798,
      798,  798,  798,  798,  798,  158,  157,  769,  772,  772,
      772,  772,  772,  772,  772,  772,  154,  153,  152,  772,
      151,  772,  150,  148,  145,  772,  772,  772,  772,  772,
      772,  800,  800,  800,  800,  800,  800,  800,  802,  802,
      802,  802,  802,  802,  802,  938,  144,  772,  775,  775,
      775,  775,  775,  775,  775,  775,  143,  140,  938,  775,

      138,  775,  131,  130,  129,  775,  775,  775,  775,  775,
      775,  808,  808,  808,  808,  808,  808,  811,  811,  811,
      811,  811,  811,  811,  938,  128,  127,  775,  778,  778,
      778,  778,  778,  778,  778,  778,  126,  124,  123,  778,
      122,  778,  120,  119,  117,  778,  778,  778,  778,  778,
      778,  813,  813,  813,  813,  813,  813,  813,  815,  815,
      815,  815,  815,  815,  815,  116,  955,  778,  783,  783,
      783,  783,  783,  783,  783,  115,  114,  113,  783,  112,
      111,  110,  109,  955,  783,  783,  783,  783,  783,  783,
      784,  784,  784,  784,  784,  784,  784,  784,  955,  108,

      107,  784,  104,  784,  103,  102,  101,  784,  784,  784,
      784,  784,  784,  817,  817,  817,  817,  817,  817,  817,
      824,  824,  824,  824,  824,  824,  980,  100,   99,  784,
      789,  789,  789,  789,  789,  789,  789,  789,   98,  980,
       97,  789,   96,   95,   88,   87,   86,  789,  789,  789,
      789,  789,  789,  791,  791,  791,  791,  791,  791,  791,
      791,   84,   83,   82,  791,  980,  791,   81,   80,   78,
      791,  791,  791,  791,  791,  791,  827,  827,  827,  827,
      827,  827,  827,  829,  829,  829,  829,  829,  829,  829,
       76,   74,  791,  801,  801,  801,  801,  801,  801,  801,

      801,   73,   72,   71,  801,   70,   68,   67,   66,   51,
      801,  801,  801,  801,  801,  801,  803,  803,  803,  803,
      803,  803,  803,  803,   43,   42,   40,  803,   30,  803,
       28,   18,   10,  803,  803,  803,  803,  803,  803,  831,
      831,  831,  831,  831,  831,  831,  833,  833,  833,  833,
      833,  833,  833,    8,    3,  803,  816,  816,  816,  816,
      816,  816,  816,  816,    0,    0,    0,  816,    0,    0,
        0,    0,    0,  816,  816,  816,  816,  816,  816,  818,
      818,  818,  818,  818,  818,  818,  818,    0,    0,    0,
      818,    0,  818,    0,    0,    0,  818,  818,  818,  818,

      818,  818,  839,  839,  839,  839,  839,  839,  841,  841,
      841,  841,  841,  841,    0,  986,    0,    0,  818,  832,
      832,  832,  832,  832,  832,  832,  832,    0,  986,    0,
      832,    0,    0,    0,    0,    0,  832,  832,  832,  832,
      832,  832,  834,  834,  834,  834,  834,  834,  834,  834,
        0,    0,    0,  834,  986,  834,    0,    0,    0,  834,
      834,  834,  834,  834,  834,  845,  845,  845,  845,  845,
      845,  848,  848,  848,  848,  848,  848,  848,  990,    0,
        0,  834,  846,  846,  846,  846,  846,  846,  846,  846,
        0,  990,    0,  846,    0,    0,    0,    0,    0,  846,

      846,  846,  846,  846,  846,  847,  847,  847,  847,  847,
      847,  850,  851,  852,  854,  847,  857,  990,  952,    0,
        0,  847,  847,  847,  847,  847,  847,    0,  850,  851,
      852,  854,    0,  857,    0,  952,    0,    0,    0,  850,
      851,  852,    0,  999, 1003,  854,  952,  857,  863,  863,
      863,  863,  863,  863,    0,    0,  999, 1003,  863,    0,
        0,    0,    0,    0,  863,  863,  863,  863,  863,  863,
      864,  864,  864,  864,  864,  864,  864,  864,    0,    0,
        0,  864,  999, 1003,    0,    0,    0,  864,  864,  864,
      864,  864,  864,  865,  865,  865,  865,  865,  865,    0,

        0,    0,    0,  865,    0,    0,    0,    0,    0,  865,
      865,  865,  865,  865,  865,  866,  866,  866,  866,  866,
      866,  866,  867,  867,  867,  867,  867,  867,  867,  867,
        0,    0,    0,  867,    0,    0,    0,    0,    0,  867,
      867,  867,  867,  867,  867,  868,  868,  868,  868,  868,
      868,    0,    0,    0,    0,  868,    0,    0,    0,    0,
        0,  868,  868,  868,  868,  868,  868,  869,  869,  869,
      869,  869,  869,  869,  870,  870,  870,  870,  870,  870,
      870,  870,    0,    0,    0,  870,    0,    0,    0,    0,
        0,  870,  870,  870,  870,  870,  870,  871,  871,  871,

      871,  871,  871,    0,    0,    0,    0,  871,    0,    0,
        0,    0,    0,  871,  871,  871,  871,  871,  871,  872,
      872,  872,  872,  872,  872,  872,  873,  873,  873,  873,
      873,  873,  873,  873,    0,    0,    0,  873,    0,    0,
        0,    0,    0,  873,  873,  873,  873,  873,  873,  874,
      874,  874,  874,  874,  874,    0,    0,    0,    0,  874,
        0,    0,    0,    0,    0,  874,  874,  874,  874,  874,
      874,  875,  875,  875,  875,  875,  875,  875,  877,  877,
      877,  877,  877,  877,  877,  877,    0,    0,    0,  877,
        0,  877,    0,    0,    0,  877,  877,  877,  877,  877,

      877,  881,  881,  881,  881,  881,  881,  884,  884,  884,
      884,  884,  884,  884,    0,    0,    0,  877,  882,  882,
      882,  882,  882,  882,  882,  882,    0,    0,    0,  882,
        0,    0,    0,    0,    0,  882,  882,  882,  882,  882,
      882,  886,  886,  886,  886,  886,  886,  890,  890,  890,
      890,  890,  890,  891,  891,  891,  891,  891,  891,  891,
      891,    0,    0,    0,  891,    0,    0,    0,    0,    0,
      891,  891,  891,  891,  891,  891,  893,  893,  893,  893,
      893,  893,  893,  895,  895,  895,  895,  895,  895,  897,
      897,  897,  897,  897,  897,  901,  901,  901,  901,  901,

      901,  902,  902,  902,  902,  902,  902,  902,  902,    0,
        0,    0,  902,    0,    0,    0,    0,    0,  902,  902,
      902,  902,  902,  902,  904,  904,  904,  904,  904,  904,
      904,  907,  907,  907,  907,  907,  907,  909,  909,  909,
      909,  909,  909,  913,  913,  913,  913,  913,  913,  914,
      914,  914,  914,  914,  914,  914,  914,    0,    0,    0,
      914,    0,    0,    0,    0,    0,  914,  914,  914,  914,
      914,  914,  916,  916,  916,  916,  916,  916,  916,  919,
      919,  919,  919,  919,  919,  921,  921,  921,  921,  921,
      921,  925,  925,  925,  925,  925,  925,  926,  926,  926,

      926,  926,  926,  926,  926,    0,    0,    0,  926,    0,
        0,    0,    0,    0,  926,  926,  926,  926,  926,  926,
      928,  928,  928,  928,  928,  928,  928,  932,  932,  932,
      932,  932,  932,  935,  935,  935,  935,  935,  935,  935,
      937,  937,  937,  937,  937,  937,  937,  939,  939,  939,
      939,  939,  939,  939,  940,  940,  940,  940,  940,  940,
      940,  940,    0,    0,    0,  940,    0,    0,    0,    0,
        0,  940,  940,  940,  940,  940,  940,  941,  941,  941,
      941,  941,  941,  941,  942,  942,  942,  942,  942,  942,
      942,  942,    0,    0,    0,  942,    0,  942,    0,    0,

        0,  942,  942,  942,  942,  942,  942,  974,  974,  974,
      974,  974,  974,  977,  977,  977,  977,  977,  977,  977,
        0,    0, 1013,  942,  957,  957,  957,  957,  957,  957,
      957,    0,    0,    0,  957, 1013,    0,    0,    0,    0,
      957,  957,  957,  957,  957,  957,  958,  958,  958,  958,
      958,  958,  958,  958,    0,    0,    0,  958,    0,  958,
        0, 1013,    0,  958,  958,  958,  958,  958,  958,  981,
      981,  981,  981,  981,  981,  981,  983,  983,  983,  983,
      983,  983,  983,    0,    0,  958,  961,  961,  961,  961,
      961,  961,  961,  961,    0,    0,    0,  961,    0,  961,

        0,    0,    0,  961,  961,  961,  961,  961,  961,  987,
      987,  987,  987,  987,  987,  987,  989,  989,  989,  989,
      989,  989,  989,    0,    0,  961,  964,  964,  964,  964,
      964,  964,  964,  964,    0,    0,    0,  964,    0,  964,
        0,    0,    0,  964,  964,  964,  964,  964,  964,  991,
      991,  991,  991,  991,  991,  991,  993,  993,  993,  993,
      993,  993,  993, 1017,    0,  964,  967,  967,  967,  967,
      967,  967,  967,  967,    0,    0, 1017,  967,    0,  967,
        0,    0,    0,  967,  967,  967,  967,  967,  967,  997,
      997,  997,  997,  997,  997, 1000, 1000, 1000, 1000, 1000,

     1000, 1000, 1017,    0,    0,  967,  970,  970,  970,  970,
      970,  970,  970,  970,    0,    0,    0,  970,    0,  970,
        0,    0,    0,  970,  970,  970,  970,  970,  970, 1002,
     1002, 1002, 1002, 1002, 1002, 1002, 1004, 1004, 1004, 1004,
     1004, 1004, 1004, 1027,    0,  970,  975,  975,  975,  975,
      975,  975,  975,  975,    0,    0, 1027,  975,    0,    0,
        0,    0,    0,  975,  975,  975,  975,  975,  975,  982,
      982,  982,  982,  982,  982,  982,  982,    0,    0,    0,
      982,    0, 1027,    0,    0,    0,  982,  982,  982,  982,
      982,  982,  992,  992,  992,  992,  992,  992,  992,  992,

        0,    0,    0,  992,    0,    0,    0,    0,    0,  992,
      992,  992,  992,  992,  992, 1005, 1005, 1005, 1005, 1005,
     1005, 1005, 1005,    0,    0,    0, 1005,    0,    0,    0,
        0,    0, 1005, 1005, 1005, 1005, 1005, 1005, 1006, 1006,
     1006, 1006, 1006, 1006, 1006, 1011, 1011, 1011, 1011, 1011,
     1011, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1016, 1016,
     1016, 1016, 1016, 1016, 1016, 1018, 1018, 1018, 1018, 1018,
     1018, 1018, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
        0,    0,    0, 1019,    0,    0,    0,    0,    0, 1019,
     1019, 1019, 1019, 1019, 1019, 1020, 1020, 1020, 1020, 1020,

     1020, 1020, 1025, 1025, 1025, 1025, 1025, 1025, 1028, 1028,
     1028, 1028, 1028, 1028, 1028, 1030, 1030, 1030, 1030, 1030,
     1030, 1030, 1031, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
        0,    0,    0,    0,    0, 1031, 1034, 1034, 1034, 1034,
     1034, 1034, 1034, 1038, 1038, 1038, 1038, 1038, 1038, 1040,
     1040, 1040, 1040, 1040, 1040, 1044, 1044, 1044, 1044, 1044,
     1044, 1031, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
        0,    0,    0, 1033,    0,    0,    0,    0,    0, 1033,
     1033, 1033, 1033, 1033, 1033, 1045, 1045, 1045, 1045, 1045,
     1045, 1045, 1045,    0,    0,    0, 1045,    0, 1055, 1056,

        0,    0, 1045, 1045, 1045, 1045, 1045, 1045, 1047, 1047,
     1047, 1047, 1047, 1047, 1047, 1055, 1056, 1063, 1063, 1063,
     1063, 1063, 1063, 1063,    0,    0,    0, 1056, 1055, 1057,
     1057, 1057, 1057, 1057, 1057, 1057, 1057,    0,    0,    0,
     1057,    0, 1057,    0,    0,    0, 1057, 1057, 1057, 1057,
     1057, 1057, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1069,
     1069, 1069, 1069, 1069, 1069, 1069, 1076,    0, 1057, 1061,
     1061, 1061, 1061, 1061, 1061, 1061, 1061,    0,    0, 1076,
     1061,    0,    0,    0,    0,    0, 1061, 1061, 1061, 1061,
     1061, 1061, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064,

        0,    0,    0, 1064,    0, 1076,    0,    0,    0, 1064,
     1064, 1064, 1064, 1064, 1064, 1067, 1067, 1067, 1067, 1067,
     1067, 1067, 1067,    0,    0,    0, 1067,    0,    0,    0,
        0,    0, 1067, 1067, 1067, 1067, 1067, 1067, 1070, 1070,
     1070, 1070, 1070, 1070, 1070, 1070,    0,    0,    0, 1070,
        0,    0,    0,    0,    0, 1070, 1070, 1070, 1070, 1070,
     1070, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1073, 1073,
     1073, 1073, 1073, 1073, 1073, 1073,    0,    0,    0, 1073,
        0,    0,    0,    0,    0, 1073, 1073, 1073, 1073, 1073,
     1073, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1077, 1077,

     1077, 1077, 1077, 1077, 1077, 1078, 1078, 1078, 1078, 1078,
     1078, 1078, 1078,    0,    0,    0, 1078,    0,    0,    0,
        0,    0, 1078, 1078, 1078, 1078, 1078, 1078, 1079, 1079,
     1079, 1079, 1079, 1079, 1079, 1084, 1084, 1084, 1084, 1084,
     1084, 1089, 1089, 1089, 1089, 1089, 1089, 1091, 1091, 1091,
     1091, 1091, 1091, 1097, 1097, 1097, 1097, 1097, 1097, 1099,
     1099, 1099, 1099, 1099, 1099, 1105, 1105, 1105, 1105, 1105,
     1105, 1107, 1107, 1107, 1107, 1107, 1107, 1113, 1113, 1113,
     1113, 1113, 1113, 1115, 1115, 1115, 1115, 1115, 1115, 1122,
     1122, 1122, 1122, 1122, 1122, 1124, 1125, 1125, 1125, 1125,

     1125, 1125, 1125, 1128,    0,    0,    0,    0, 1124, 1127,
     1127, 1127, 1127, 1127, 1127, 1127, 1128, 1129, 1129, 1129,
     1129, 1129, 1129, 1129, 1131, 1131, 1131, 1131, 1131, 1131,
     1131,    0,    0,    0, 1124, 1140, 1140, 1140, 1140, 1140,
     1140, 1140, 1128, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
     1130,    0,    0,    0, 1130,    0,    0,    0,    0,    0,
     1130, 1130, 1130, 1130, 1130, 1130, 1138, 1138, 1138, 1138,
     1138, 1138, 1138, 1138,    0,    0,    0, 1138,    0,    0,
        0,    0, 1153, 1138, 1138, 1138, 1138, 1138, 1138, 1147,
     1147, 1147, 1147, 1147, 1147, 1153, 1154, 1154, 1154, 1154,

     1154, 1154, 1154, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
     1159, 1159, 1159, 1159, 1159, 1159, 1161,    0,    0,    0,
        0, 1153, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1161,
     1164, 1164, 1164, 1164, 1164, 1164, 1164, 1168, 1168, 1168,
     1168, 1168, 1168, 1170, 1171, 1171, 1171, 1171, 1171, 1171,
     1171,    0,    0,    0,    0, 1161, 1170, 1173, 1173, 1173,
     1173, 1173, 1173, 1173, 1177, 1177, 1177, 1177, 1177, 1177,
     1179, 1180, 1180, 1180, 1180, 1180, 1180, 1180,    0,    0,
        0,    0, 1170, 1179, 1182, 1182, 1182, 1182, 1182, 1182,
     1182, 1186, 1186, 1186, 1186, 1186, 1186, 1188, 1189, 1189,

     1189, 1189, 1189, 1189, 1189,    0,    0,    0,    0, 1179,
     1188, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1194, 1194,
     1194, 1194, 1194, 1194, 1196, 1196, 1196, 1196, 1196, 1196,
     1213,    0,    0,    0,    0,    0, 1188, 1219, 1219, 1219,
     1219, 1219, 1219, 1213, 1214, 1214, 1214, 1214, 1214, 1214,
     1214, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1223, 1223,
     1223, 1223, 1223, 1223,    0,    0,    0,    0,    0, 1213,
     1227, 1227, 1227, 1227, 1227, 1227, 1231, 1231, 1231, 1231,
     1231, 1231, 1235, 1235, 1235, 1235, 1235, 1235, 1240, 1240,
     1240, 1240, 1240, 1240, 1242, 1243, 1243, 1243, 1243, 1243,

     1243, 1243,    0,    0,    0,    0,    0, 1242, 1245, 1245,
     1245, 1245, 1245, 1245, 1245, 1251, 1251, 1251, 1251, 1251,
     1251, 1254, 1254, 1254, 1254, 1254, 1254, 1258, 1258, 1258,
     1258, 1258, 1258, 1242, 1262, 1262, 1262, 1262, 1262, 1262,
     1266, 1266, 1266, 1266, 1266, 1266, 1270, 1270, 1270, 1270,
     1270, 1270, 1273, 1273, 1273, 1273, 1273, 1273, 1278, 1278,
     1278, 1278, 1278, 1278, 1287, 1287, 1287, 1287, 1287, 1287,
     1299,    0,    0,    0,    0, 1299, 1299, 1299, 1300,    0,
     1300, 1300, 1300, 1300, 1300, 1300, 1300, 1301,    0, 1301,
     1302, 1302, 1302, 1303, 1303, 1303, 1304, 1304, 1304, 1305,

     1305, 1305, 1306, 1306, 1306, 1307, 1307, 1307, 1308, 1308,
     1308, 1309, 1309, 1309, 1310,    0, 1310, 1311, 1311, 1311,
     1312, 1312, 1312, 1313, 1313, 1313, 1314,    0, 1314, 1315,
     1315, 1315, 1316, 1316,    0,    0, 1316, 1317, 1317, 1317,
     1318, 1318, 1318, 1319, 1319, 1319, 1320, 1320, 1320, 1321,
     1321, 1321, 1322, 1322, 1322, 1323, 1323,    0,    0, 1323,
     1324, 1324, 1324, 1325,    0, 1325, 1326, 1326, 1326, 1327,
        0, 1327, 1328, 1328, 1328, 1329, 1329, 1329, 1330, 1330,
     1330, 1331,    0, 1331, 1332,    0, 1332, 1333, 1333, 1333,
     1334,    0, 1334, 1335, 1335,    0,    0, 1335, 1336, 1336,

        0,    0, 1336, 1337, 1337, 1337, 1338, 1338, 1338, 1339,
     1339, 1339, 1340, 1340, 1340, 1341, 1341, 1341, 1342, 1342,
     1342, 1343, 1343, 1343, 1344, 1344, 1344, 1345, 1345,    0,
        0, 1345, 1346, 1346, 1346, 1347, 1347,    0,    0, 1347,
     1348, 1348,    0,    0, 1348, 1349, 1349, 1349, 1350,    0,
     1350, 1351,    0, 1351, 1352, 1352, 1352, 1353,    0, 1353,
     1354, 1354, 1354, 1355, 1355, 1355, 1356, 1356, 1356, 1357,
        0, 1357, 1358,    0, 1358, 1359, 1359, 1359, 1360,    0,
     1360, 1361,    0, 1361, 1362,    0, 1362, 1363, 1363, 1363,
     1364,    0, 1364, 1365,    0,    0, 1365, 1366, 1366,    0,

        0, 1366, 1367, 1367,    0, 1367, 1368, 1368,    0,    0,
     1368, 1369, 1369, 1369, 1370, 1370,    0, 1370, 1371, 1371,
     1371,    0, 1371, 1371, 1372, 1372, 1372, 1373, 1373, 1373,
     1374, 1374, 1374, 1375, 1375, 1375, 1376, 1376, 1376, 1377,
     1377, 1377, 1378, 1378, 1378, 1379, 1379, 1379, 1380, 1380,
        0,    0, 1380, 1381, 1381, 1381, 1382, 1382,    0, 1382,
     1383, 1383,    0,    0, 1383, 1384, 1384,    0, 1384, 1385,
     1385,    0,    0, 1385, 1386, 1386, 1386, 1387, 1387,    0,
     1387, 1388,    0,    0, 1388, 1389, 1389,    0, 1389, 1390,
     1390,    0,    0, 1390, 1391, 1391,    0, 1391, 1392, 1392,

        0,    0, 1392, 1393, 1393, 1393, 1394, 1394,    0, 1394,
     1395,    0, 1395, 1396,    0, 1396, 1397,    0, 1397, 1398,
     1398, 1398, 1399,    0, 1399, 1400, 1400, 1400,    0, 1400,
     1400, 1401, 1401, 1401, 1402, 1402, 1402, 1403, 1403, 1403,
     1404,    0, 1404, 1405,    0, 1405, 1406, 1406, 1406, 1407,
        0, 1407, 1408,    0, 1408, 1409,    0, 1409, 1410, 1410,
     1410, 1411,    0, 1411, 1412,    0, 1412, 1413,    0, 1413,
     1414,    0, 1414, 1415, 1415, 1415, 1416,    0, 1416, 1417,
        0, 1417, 1418,    0,    0, 1418, 1419, 1419,    0, 1419,
     1420, 1420,    0,    0, 1420, 1421, 1421,    0, 1421, 1422,

     1422,    0,    0, 1422, 1423, 1423, 1423, 1424, 1424,    0,
     1424, 1425, 1425, 1425,    0, 1425, 1425, 1426, 1426, 1426,
     1427, 1427, 1427, 1428, 1428, 1428, 1429, 1429, 1429, 1430,
     1430, 1430, 1431, 1431, 1431, 1432, 1432, 1432, 1433, 1433,
     1433, 1434, 1434,    0,    0, 1434, 1435, 1435, 1435, 1436,
     1436,    0, 1436, 1437, 1437,    0,    0, 1437, 1438, 1438,
        0, 1438, 1439, 1439,    0,    0, 1439, 1440, 1440, 1440,
     1441, 1441,    0, 1441, 1442,    0,    0, 1442, 1443, 1443,
        0, 1443, 1444, 1444,    0,    0, 1444, 1445, 1445,    0,
     1445, 1446, 1446,    0,    0, 1446, 1447, 1447, 1447, 1448,

     1448,    0, 1448, 1449,    0, 1449, 1450,    0,    0, 1450,
     1451, 1451,    0, 1451, 1452, 1452,    0,    0, 1452, 1453,
     1453,    0, 1453, 1454, 1454,    0,    0, 1454, 1455, 1455,
     1455, 1456, 1456,    0, 1456, 1457,    0, 1457, 1458,    0,
     1458, 1459,    0, 1459, 1460, 1460, 1460, 1461,    0, 1461,
     1462, 1462, 1462,    0, 1462, 1462, 1463, 1463, 1463, 1464,
     1464, 1464, 1465, 1465, 1465, 1466, 1466, 1466, 1467, 1467,
     1467, 1468,    0, 1468, 1469,    0, 1469, 1470, 1470, 1470,
     1471, 1471, 1471, 1472,    0, 1472, 1473,    0, 1473, 1474,
        0, 1474, 1475, 1475, 1475, 1476, 1476, 1476, 1477,    0,

     1477, 1478,    0, 1478, 1479,    0, 1479, 1480,    0, 1480,
     1481, 1481, 1481, 1482, 1482, 1482, 1483,    0, 1483, 1484,
        0, 1484, 1485,    0, 1485, 1486,    0, 1486, 1487, 1487,
     1487, 1488, 1488, 1488, 1489,    0, 1489, 1490,    0, 1490,
     1491,    0,    0, 1491, 1492, 1492,    0, 1492, 1493, 1493,
        0,    0, 1493, 1494, 1494,    0, 1494, 1495, 1495,    0,
        0, 1495, 1496, 1496, 1496, 1497, 1497,    0, 1497, 1498,
     1498, 1498,    0, 1498, 1498, 1499, 1499, 1499, 1500, 1500,
     1500, 1501, 1501, 1501, 1502, 1502, 1502, 1503, 1503, 1503,
     1504, 1504, 1504, 1505, 1505, 1505, 1506,    0, 1506, 1507,

     1507, 1507, 1508, 1508,    0,    0, 1508, 1509, 1509, 1509,
     1510, 1510,    0, 1510, 1511, 1511,    0,    0, 1511, 1512,
     1512,    0, 1512, 1513, 1513,    0,    0, 1513, 1514, 1514,
     1514, 1515, 1515,    0, 1515, 1516,    0,    0, 1516, 1517,
     1517,    0, 1517, 1518, 1518,    0,    0, 1518, 1519, 1519,
        0, 1519, 1520, 1520,    0,    0, 1520, 1521, 1521, 1521,
     1522, 1522,    0, 1522, 1523,    0, 1523, 1524,    0,    0,
     1524, 1525, 1525,    0, 1525, 1526, 1526,    0,    0, 1526,
     1527, 1527,    0, 1527, 1528, 1528,    0,    0, 1528, 1529,
     1529, 1529, 1530, 1530,    0, 1530, 1531,    0, 1531, 1532,

        0,    0, 1532, 1533, 1533,    0, 1533, 1534, 1534,    0,
        0, 1534, 1535, 1535,    0, 1535, 1536, 1536,    0,    0,
     1536, 1537, 1537, 1537, 1538, 1538,    0, 1538, 1539,    0,
     1539, 1540,    0, 1540, 1541,    0, 1541, 1542, 1542, 1542,
     1543,    0, 1543, 1544,    0, 1544, 1545, 1545, 1545,    0,
     1545, 1545, 1546,    0, 1546, 1547, 1547, 1547, 1548,    0,
     1548, 1549,    0, 1549, 1550,    0, 1550, 1551,    0, 1551,
     1552,    0, 1552, 1553, 1553,    0,    0, 1553, 1554, 1554,
     1554, 1555, 1555, 1555, 1556, 1556,    0, 1556, 1557, 1557,
     1557, 1558,    0, 1558, 1559, 1559, 1559, 1560, 1560, 1560,

     1561,    0, 1561, 1562,    0, 1562, 1563, 1563, 1563, 1564,
     1564, 1564, 1565,    0, 1565, 1566,    0, 1566, 1567,    0,
     1567, 1568, 1568, 1568, 1569, 1569, 1569, 1570,    0, 1570,
     1571,    0, 1571, 1572,    0, 1572, 1573, 1573, 1573, 1574,
     1574, 1574, 1575,    0, 1575, 1576,    0, 1576, 1577,    0,
     1577, 1578, 1578, 1578, 1579, 1579, 1579, 1580,    0, 1580,
     1581,    0,    0, 1581, 1582, 1582,    0, 1582, 1583, 1583,
        0,    0, 1583, 1584, 1584,    0, 1584, 1585, 1585,    0,
        0, 1585, 1586,    0, 1586, 1587, 1587,    0, 1587, 1588,
     1588, 1588,    0, 1588, 1588, 1589, 1589, 1589, 1590,    0,

     1590, 1591,    0, 1591, 1592,    0, 1592, 1593,    0, 1593,
     1594,    0, 1594, 1595,    0, 1595, 1596,    0, 1596, 1597,
     1597, 1597, 1598, 1598, 1598, 1599,    0, 1599, 1600, 1600,
        0,    0, 1600, 1601, 1601,    0, 1601, 1602,    0, 1602,
     1603,    0,    0, 1603, 1604, 1604,    0, 1604, 1605, 1605,
        0,    0, 1605, 1606, 1606,    0, 1606, 1607,    0, 1607,
     1608,    0, 1608, 1609,    0,    0, 1609, 1610, 1610,    0,
     1610, 1611, 1611,    0,    0, 1611, 1612, 1612,    0, 1612,
     1613,    0, 1613, 1614,    0, 1614, 1615,    0,    0, 1615,
     1616, 1616,    0, 1616, 1617, 1617,    0,    0, 1617, 1618,

     1618,    0, 1618, 1619,    0, 1619, 1620,    0, 1620, 1621,
        0,    0, 1621, 1622, 1622,    0, 1622, 1623, 1623,    0,
        0, 1623, 1624, 1624,    0, 1624, 1625,    0, 1625, 1626,
        0, 1626, 1627,    0, 1627, 1628,    0, 1628, 1629, 1629,
     1629, 1630,    0, 1630, 1631, 1631, 1631,    0, 1631, 1631,
     1632,    0, 1632, 1633,    0, 1633, 1634,    0, 1634, 1635,
        0, 1635, 1636,    0, 1636, 1637,    0, 1637, 1638,    0,
     1638, 1639, 1639,    0,    0, 1639, 1640, 1640,    0, 1640,
     1641,    0, 1641, 1642,    0, 1642, 1643,    0, 1643, 1644,
        0, 1644, 1645,    0, 1645, 1646,    0, 1646, 1647,    0,

     1647, 1648,    0, 1648, 1649,    0, 1649, 1650,    0, 1650,
     1651,    0,    0, 1651, 1652, 1652,    0,    0, 1652, 1653,
        0, 1653, 1654,    0, 1654, 1655,    0, 1655, 1656,    0,
        0, 1656, 1657,    0,    0, 1657, 1658,    0,    0, 1658,
     1659,    0,    0, 1659, 1660,    0,    0, 1660, 1661,    0,
     1661, 1662,    0, 1662, 1663,    0,    0, 1663, 1664,    0,
     1664, 1665,    0, 1665, 1666,    0, 1666, 1667,    0, 1667,
     1668,    0, 1668, 1669,    0,    0, 1669, 1670,    0, 1670,
     1671,    0, 1671, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,

     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
     1298, 1298, 1298, 1298, 1298, 1298
    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

/* The intent behind this definition is that it'll catch
 * any uses of REJECT which flex missed.
 */
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
#line 1 "scanner.l"
#define INITIAL 0
#line 2 "scanner.l"
/*
 * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
 *    The Regents of the University of California.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that: (1) source code distributions
 * retain the above copyright notice and this paragraph in its entirety, (2)
 * distributions including binary code include the above copyright notice and
 * this paragraph in its entirety in the documentation or other materials
 * provided with the distribution, and (3) all advertising materials mentioning
 * features or use of this software display the following acknowledgement:
 * ``This product includes software developed by the University of California,
 * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
 * the University nor the names of its contributors may be used to endorse
 * or promote products derived from this software without specific prior
 * written permission.
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 */

#ifndef lint
static const char rcsid[] _U_ =
    "@(#) $Header: /CVS/nmap/libpcap-possiblymodified/scanner.c,v 1.5 2004/08/01 05:54:55 fyodor Exp $ (LBL)";
#endif

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <ctype.h>
#include <string.h>

#include "pcap-int.h"

#include "gencode.h"
#ifdef INET6
#ifdef WIN32
#include <pcap-stdinc.h>

#ifdef __MINGW32__
#include "IP6_misc.h"
#endif
#else /* WIN32 */
#include <sys/socket.h> /* for "struct sockaddr" in "struct addrinfo" */
#include <netdb.h>      /* for "struct addrinfo" */
#endif /* WIN32 */

/* Workaround for AIX 4.3 */
#if !defined(AI_NUMERICHOST)
#define AI_NUMERICHOST 0x04
#endif
#endif /*INET6*/
#include <pcap-namedb.h>
#include "tokdefs.h"

#ifdef HAVE_OS_PROTO_H
#include "os-proto.h"
#endif

static int stoi(char *);
static inline int xdtoi(int);

#ifdef FLEX_SCANNER
#define YY_NO_UNPUT
static YY_BUFFER_STATE in_buffer;
#else
static char *in_buffer;

#undef getc
#define getc(fp)  (*in_buffer == 0 ? EOF : *in_buffer++)
#endif

#define yylval pcap_lval
extern YYSTYPE yylval;


/* 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 = NULL, *yy_bp = NULL;
      register int yy_act;

#line 169 "scanner.l"


      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_match:
            do
                  {
                  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
                  if ( yy_accept[yy_current_state] )
                        {
                        yy_last_accepting_state = yy_current_state;
                        yy_last_accepting_cpos = yy_cp;
                        }
                  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
                        if ( yy_current_state >= 1299 )
                              yy_c = yy_meta[(unsigned int) yy_c];
                        }
                  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                  ++yy_cp;
                  }
            while ( yy_base[yy_current_state] != 6584 );

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

            YY_DO_BEFORE_ACTION;


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


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

case 1:
YY_RULE_SETUP
#line 170 "scanner.l"
return DST;
      YY_BREAK
case 2:
YY_RULE_SETUP
#line 171 "scanner.l"
return SRC;
      YY_BREAK
case 3:
YY_RULE_SETUP
#line 173 "scanner.l"
return LINK;
      YY_BREAK
case 4:
YY_RULE_SETUP
#line 174 "scanner.l"
return LINK;
      YY_BREAK
case 5:
YY_RULE_SETUP
#line 175 "scanner.l"
return ARP;
      YY_BREAK
case 6:
YY_RULE_SETUP
#line 176 "scanner.l"
return RARP;
      YY_BREAK
case 7:
YY_RULE_SETUP
#line 177 "scanner.l"
return IP;
      YY_BREAK
case 8:
YY_RULE_SETUP
#line 178 "scanner.l"
return SCTP;
      YY_BREAK
case 9:
YY_RULE_SETUP
#line 179 "scanner.l"
return TCP;
      YY_BREAK
case 10:
YY_RULE_SETUP
#line 180 "scanner.l"
return UDP;
      YY_BREAK
case 11:
YY_RULE_SETUP
#line 181 "scanner.l"
return ICMP;
      YY_BREAK
case 12:
YY_RULE_SETUP
#line 182 "scanner.l"
return IGMP;
      YY_BREAK
case 13:
YY_RULE_SETUP
#line 183 "scanner.l"
return IGRP;
      YY_BREAK
case 14:
YY_RULE_SETUP
#line 184 "scanner.l"
return PIM;
      YY_BREAK
case 15:
YY_RULE_SETUP
#line 185 "scanner.l"
return VRRP;
      YY_BREAK
case 16:
YY_RULE_SETUP
#line 187 "scanner.l"
{
#ifdef INET6
            return IPV6;
#else
            bpf_error("%s not supported", yytext);
#endif
            }
      YY_BREAK
case 17:
YY_RULE_SETUP
#line 194 "scanner.l"
{
#ifdef INET6
            return ICMPV6;
#else
            bpf_error("%s not supported", yytext);
#endif
            }
      YY_BREAK
case 18:
YY_RULE_SETUP
#line 201 "scanner.l"
return AH;
      YY_BREAK
case 19:
YY_RULE_SETUP
#line 202 "scanner.l"
return ESP;
      YY_BREAK
case 20:
YY_RULE_SETUP
#line 204 "scanner.l"
return ATALK;
      YY_BREAK
case 21:
YY_RULE_SETUP
#line 205 "scanner.l"
return AARP;
      YY_BREAK
case 22:
YY_RULE_SETUP
#line 206 "scanner.l"
return DECNET;
      YY_BREAK
case 23:
YY_RULE_SETUP
#line 207 "scanner.l"
return LAT;
      YY_BREAK
case 24:
YY_RULE_SETUP
#line 208 "scanner.l"
return SCA;
      YY_BREAK
case 25:
YY_RULE_SETUP
#line 209 "scanner.l"
return MOPRC;
      YY_BREAK
case 26:
YY_RULE_SETUP
#line 210 "scanner.l"
return MOPDL;
      YY_BREAK
case 27:
YY_RULE_SETUP
#line 212 "scanner.l"
return ISO;
      YY_BREAK
case 28:
YY_RULE_SETUP
#line 213 "scanner.l"
return ESIS;
      YY_BREAK
case 29:
YY_RULE_SETUP
#line 214 "scanner.l"
return ESIS;
      YY_BREAK
case 30:
YY_RULE_SETUP
#line 215 "scanner.l"
return ISIS;
      YY_BREAK
case 31:
YY_RULE_SETUP
#line 216 "scanner.l"
return ISIS;
      YY_BREAK
case 32:
YY_RULE_SETUP
#line 217 "scanner.l"
return L1;
      YY_BREAK
case 33:
YY_RULE_SETUP
#line 218 "scanner.l"
return L2;
      YY_BREAK
case 34:
YY_RULE_SETUP
#line 219 "scanner.l"
return IIH;
      YY_BREAK
case 35:
YY_RULE_SETUP
#line 220 "scanner.l"
return LSP;
      YY_BREAK
case 36:
YY_RULE_SETUP
#line 221 "scanner.l"
return SNP;
      YY_BREAK
case 37:
YY_RULE_SETUP
#line 222 "scanner.l"
return CSNP;
      YY_BREAK
case 38:
YY_RULE_SETUP
#line 223 "scanner.l"
return PSNP;
      YY_BREAK
case 39:
YY_RULE_SETUP
#line 225 "scanner.l"
return CLNP;
      YY_BREAK
case 40:
YY_RULE_SETUP
#line 227 "scanner.l"
return STP;
      YY_BREAK
case 41:
YY_RULE_SETUP
#line 229 "scanner.l"
return IPX;
      YY_BREAK
case 42:
YY_RULE_SETUP
#line 231 "scanner.l"
return NETBEUI;
      YY_BREAK
case 43:
YY_RULE_SETUP
#line 233 "scanner.l"
return HOST;
      YY_BREAK
case 44:
YY_RULE_SETUP
#line 234 "scanner.l"
return NET;
      YY_BREAK
case 45:
YY_RULE_SETUP
#line 235 "scanner.l"
return NETMASK;
      YY_BREAK
case 46:
YY_RULE_SETUP
#line 236 "scanner.l"
return PORT;
      YY_BREAK
case 47:
YY_RULE_SETUP
#line 237 "scanner.l"
return PROTO;
      YY_BREAK
case 48:
YY_RULE_SETUP
#line 238 "scanner.l"
{
#ifdef NO_PROTOCHAIN
              bpf_error("%s not supported", yytext);
#else
              return PROTOCHAIN;
#endif
            }
      YY_BREAK
case 49:
YY_RULE_SETUP
#line 246 "scanner.l"
return GATEWAY;
      YY_BREAK
case 50:
YY_RULE_SETUP
#line 248 "scanner.l"
return LESS;
      YY_BREAK
case 51:
YY_RULE_SETUP
#line 249 "scanner.l"
return GREATER;
      YY_BREAK
case 52:
YY_RULE_SETUP
#line 250 "scanner.l"
return CBYTE;
      YY_BREAK
case 53:
YY_RULE_SETUP
#line 251 "scanner.l"
return TK_BROADCAST;
      YY_BREAK
case 54:
YY_RULE_SETUP
#line 252 "scanner.l"
return TK_MULTICAST;
      YY_BREAK
case 55:
YY_RULE_SETUP
#line 254 "scanner.l"
return AND;
      YY_BREAK
case 56:
YY_RULE_SETUP
#line 255 "scanner.l"
return OR;
      YY_BREAK
case 57:
YY_RULE_SETUP
#line 256 "scanner.l"
return '!';
      YY_BREAK
case 58:
YY_RULE_SETUP
#line 258 "scanner.l"
return LEN;
      YY_BREAK
case 59:
YY_RULE_SETUP
#line 259 "scanner.l"
return INBOUND;
      YY_BREAK
case 60:
YY_RULE_SETUP
#line 260 "scanner.l"
return OUTBOUND;
      YY_BREAK
case 61:
YY_RULE_SETUP
#line 262 "scanner.l"
return VLAN;
      YY_BREAK
case 62:
YY_RULE_SETUP
#line 264 "scanner.l"
return LANE;
      YY_BREAK
case 63:
YY_RULE_SETUP
#line 265 "scanner.l"
return LLC;
      YY_BREAK
case 64:
YY_RULE_SETUP
#line 266 "scanner.l"
return METAC;
      YY_BREAK
case 65:
YY_RULE_SETUP
#line 267 "scanner.l"
return BCC;
      YY_BREAK
case 66:
YY_RULE_SETUP
#line 268 "scanner.l"
return OAM;
      YY_BREAK
case 67:
YY_RULE_SETUP
#line 269 "scanner.l"
return OAMF4;
      YY_BREAK
case 68:
YY_RULE_SETUP
#line 270 "scanner.l"
return OAMF4EC;
      YY_BREAK
case 69:
YY_RULE_SETUP
#line 271 "scanner.l"
return OAMF4SC;
      YY_BREAK
case 70:
YY_RULE_SETUP
#line 272 "scanner.l"
return SC;
      YY_BREAK
case 71:
YY_RULE_SETUP
#line 273 "scanner.l"
return ILMIC;
      YY_BREAK
case 72:
YY_RULE_SETUP
#line 274 "scanner.l"
return VPI;
      YY_BREAK
case 73:
YY_RULE_SETUP
#line 275 "scanner.l"
return VCI;
      YY_BREAK
case 74:
YY_RULE_SETUP
#line 276 "scanner.l"
return CONNECTMSG;
      YY_BREAK
case 75:
YY_RULE_SETUP
#line 277 "scanner.l"
return METACONNECT;
      YY_BREAK
case 76:
YY_RULE_SETUP
#line 279 "scanner.l"
return PF_IFNAME;
      YY_BREAK
case 77:
YY_RULE_SETUP
#line 280 "scanner.l"
return PF_RSET;
      YY_BREAK
case 78:
YY_RULE_SETUP
#line 281 "scanner.l"
return PF_RNR;
      YY_BREAK
case 79:
YY_RULE_SETUP
#line 282 "scanner.l"
return PF_SRNR;
      YY_BREAK
case 80:
YY_RULE_SETUP
#line 283 "scanner.l"
return PF_REASON;
      YY_BREAK
case 81:
YY_RULE_SETUP
#line 284 "scanner.l"
return PF_ACTION;
      YY_BREAK
case 82:
YY_RULE_SETUP
#line 286 "scanner.l"
;
      YY_BREAK
case 83:
YY_RULE_SETUP
#line 287 "scanner.l"
return yytext[0];
      YY_BREAK
case 84:
YY_RULE_SETUP
#line 288 "scanner.l"
return GEQ;
      YY_BREAK
case 85:
YY_RULE_SETUP
#line 289 "scanner.l"
return LEQ;
      YY_BREAK
case 86:
YY_RULE_SETUP
#line 290 "scanner.l"
return NEQ;
      YY_BREAK
case 87:
YY_RULE_SETUP
#line 291 "scanner.l"
return '=';
      YY_BREAK
case 88:
YY_RULE_SETUP
#line 292 "scanner.l"
return LSH;
      YY_BREAK
case 89:
YY_RULE_SETUP
#line 293 "scanner.l"
return RSH;
      YY_BREAK
case 90:
YY_RULE_SETUP
#line 294 "scanner.l"
{ yylval.e = pcap_ether_aton(((char *)yytext)+1);
                    return AID; }
      YY_BREAK
case 91:
YY_RULE_SETUP
#line 296 "scanner.l"
{ yylval.i = stoi((char *)yytext); return NUM; }
      YY_BREAK
case 92:
YY_RULE_SETUP
#line 297 "scanner.l"
{
                  yylval.s = sdup((char *)yytext); return HID; }
      YY_BREAK
case 93:
YY_RULE_SETUP
#line 299 "scanner.l"
{ yylval.e = pcap_ether_aton((char *)yytext);
                    return EID; }
      YY_BREAK
case 94:
YY_RULE_SETUP
#line 301 "scanner.l"
{
#ifdef INET6
                    struct addrinfo hints, *res;
                    memset(&hints, 0, sizeof(hints));
                    hints.ai_family = AF_INET6;
                    hints.ai_flags = AI_NUMERICHOST;
                    if (getaddrinfo(yytext, NULL, &hints, &res))
                        bpf_error("bogus IPv6 address %s", yytext);
                    else {
                        yylval.s = sdup((char *)yytext); return HID6;
                    }
#else
                    bpf_error("IPv6 address %s not supported", yytext);
#endif /*INET6*/
                  }
      YY_BREAK
case 95:
YY_RULE_SETUP
#line 316 "scanner.l"
{ bpf_error("bogus ethernet address %s", yytext); }
      YY_BREAK
case 96:
YY_RULE_SETUP
#line 317 "scanner.l"
{ yylval.i = 0; return NUM; }
      YY_BREAK
case 97:
YY_RULE_SETUP
#line 318 "scanner.l"
{ yylval.i = 1; return NUM; }
      YY_BREAK
case 98:
YY_RULE_SETUP
#line 319 "scanner.l"
{ yylval.i = 0; return NUM; }
      YY_BREAK
case 99:
YY_RULE_SETUP
#line 320 "scanner.l"
{ yylval.i = 3; return NUM; }
      YY_BREAK
case 100:
YY_RULE_SETUP
#line 321 "scanner.l"
{ yylval.i = 4; return NUM; }
      YY_BREAK
case 101:
YY_RULE_SETUP
#line 322 "scanner.l"
{ yylval.i = 5; return NUM; }
      YY_BREAK
case 102:
YY_RULE_SETUP
#line 323 "scanner.l"
{ yylval.i = 8; return NUM; }
      YY_BREAK
case 103:
YY_RULE_SETUP
#line 324 "scanner.l"
{ yylval.i = 9; return NUM; }
      YY_BREAK
case 104:
YY_RULE_SETUP
#line 325 "scanner.l"
{ yylval.i = 10; return NUM; }
      YY_BREAK
case 105:
YY_RULE_SETUP
#line 326 "scanner.l"
{ yylval.i = 11; return NUM; }
      YY_BREAK
case 106:
YY_RULE_SETUP
#line 327 "scanner.l"
{ yylval.i = 12; return NUM; }
      YY_BREAK
case 107:
YY_RULE_SETUP
#line 328 "scanner.l"
{ yylval.i = 13; return NUM; }
      YY_BREAK
case 108:
YY_RULE_SETUP
#line 329 "scanner.l"
{ yylval.i = 14; return NUM; }
      YY_BREAK
case 109:
YY_RULE_SETUP
#line 330 "scanner.l"
{ yylval.i = 15; return NUM; }
      YY_BREAK
case 110:
YY_RULE_SETUP
#line 331 "scanner.l"
{ yylval.i = 16; return NUM; }
      YY_BREAK
case 111:
YY_RULE_SETUP
#line 332 "scanner.l"
{ yylval.i = 17; return NUM; }
      YY_BREAK
case 112:
YY_RULE_SETUP
#line 333 "scanner.l"
{ yylval.i = 18; return NUM; }
      YY_BREAK
case 113:
YY_RULE_SETUP
#line 334 "scanner.l"
{ yylval.i = 13; return NUM; }
      YY_BREAK
case 114:
YY_RULE_SETUP
#line 335 "scanner.l"
{ yylval.i = 0x01; return NUM; }
      YY_BREAK
case 115:
YY_RULE_SETUP
#line 336 "scanner.l"
{ yylval.i = 0x02; return NUM; }
      YY_BREAK
case 116:
YY_RULE_SETUP
#line 337 "scanner.l"
{ yylval.i = 0x04; return NUM; }
      YY_BREAK
case 117:
YY_RULE_SETUP
#line 338 "scanner.l"
{ yylval.i = 0x08; return NUM; }
      YY_BREAK
case 118:
YY_RULE_SETUP
#line 339 "scanner.l"
{ yylval.i = 0x10; return NUM; }
      YY_BREAK
case 119:
YY_RULE_SETUP
#line 340 "scanner.l"
{ yylval.i = 0x20; return NUM; }
      YY_BREAK
case 120:
YY_RULE_SETUP
#line 341 "scanner.l"
{
                   yylval.s = sdup((char *)yytext); return ID; }
      YY_BREAK
case 121:
YY_RULE_SETUP
#line 343 "scanner.l"
{ yylval.s = sdup((char *)yytext + 1); return ID; }
      YY_BREAK
case 122:
YY_RULE_SETUP
#line 344 "scanner.l"
{
                  bpf_error("illegal token: %s", yytext); }
      YY_BREAK
case 123:
YY_RULE_SETUP
#line 346 "scanner.l"
{ bpf_error("illegal char '%c'", *yytext); }
      YY_BREAK
case 124:
YY_RULE_SETUP
#line 347 "scanner.l"
ECHO;
      YY_BREAK
case YY_STATE_EOF(INITIAL):
      yyterminate();

      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;

      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);
            if ( yy_accept[yy_current_state] )
                  {
                  yy_last_accepting_state = yy_current_state;
                  yy_last_accepting_cpos = yy_cp;
                  }
            while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                  {
                  yy_current_state = (int) yy_def[yy_current_state];
                  if ( yy_current_state >= 1299 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                  }
            yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
            }

      return yy_current_state;
      }


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

#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 char *yy_cp = yy_c_buf_p;

      register YY_CHAR yy_c = 1;
      if ( yy_accept[yy_current_state] )
            {
            yy_last_accepting_state = yy_current_state;
            yy_last_accepting_cpos = yy_cp;
            }
      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
            {
            yy_current_state = (int) yy_def[yy_current_state];
            if ( yy_current_state >= 1299 )
                  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 == 1298);

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


#ifndef YY_NO_INPUT
#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;
      }
#endif /* YY_NO_INPUT */

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



#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 347 "scanner.l"

void
lex_init(buf)
      char *buf;
{
#ifdef FLEX_SCANNER
      in_buffer = yy_scan_string(buf);
#else
      in_buffer = buf;
#endif
}

/*
 * Do any cleanup necessary after parsing.
 */
void
lex_cleanup()
{
#ifdef FLEX_SCANNER
      if (in_buffer != NULL)
            yy_delete_buffer(in_buffer);
      in_buffer = NULL;
#endif
}

/*
 * Also define a yywrap.  Note that if we're using flex, it will
 * define a macro to map this identifier to pcap_wrap.
 */
int
yywrap()
{
      return 1;
}

/* Hex digit to integer. */
static inline int
xdtoi(c)
      register int c;
{
      if (isdigit(c))
            return c - '0';
      else if (islower(c))
            return c - 'a' + 10;
      else
            return c - 'A' + 10;
}

/*
 * Convert string to integer.  Just like atoi(), but checks for
 * preceding 0x or 0 and uses hex or octal instead of decimal.
 */
static int
stoi(s)
      char *s;
{
      int base = 10;
      int n = 0;

      if (*s == '0') {
            if (s[1] == 'x' || s[1] == 'X') {
                  s += 2;
                  base = 16;
            }
            else {
                  base = 8;
                  s += 1;
            }
      }
      while (*s)
            n = n * base + xdtoi(*s++);

      return n;
}

Generated by  Doxygen 1.6.0   Back to index