Logo Search packages:      
Sourcecode: nmap version File versions

scanner.c

/* A lexical scanner generated by flex*/

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

#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5

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

/* Some routines like yy_flex_realloc() are emitted as static but are
   not called by all lexers. This generates warnings in some compilers,
   notably GCC. Arrange to suppress these. */
#ifdef __GNUC__
#define YY_MAY_BE_UNUSED __attribute__((unused))
#else
#define YY_MAY_BE_UNUSED
#endif

/* 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 )) YY_MAY_BE_UNUSED;
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 133
#define YY_END_OF_BUFFER 134
static yyconst short int yy_accept[1322] =
    {   0,
        0,    0,  134,  131,   91,   91,   91,   92,  131,   92,
       92,   92,  132,  100,  100,   92,   92,   92,   92,  129,
      129,  131,  129,  129,  129,  129,  129,  129,  129,  129,
      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
      129,  129,   92,  131,   95,   99,   57,    0,  129,  100,
        0,  129,  129,  129,  103,   97,   94,   96,   93,   98,
      130,  130,  129,  129,   19,  129,  129,  129,  129,  129,
      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
      129,  129,  129,  129,  129,  129,  129,  129,  129,    7,
      129,   33,   34,  129,  129,  129,  129,  129,  129,  129,

      129,  129,  129,  129,  129,  129,   81,  129,   58,  129,
      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
       75,  129,  129,  129,  129,  129,  129,  129,    4,  129,
      129,  129,  129,  129,  129,   58,   99,  101,  101,  100,
      129,    0,  103,  100,  103,  103,  103,  129,  129,   57,
        5,  129,   70,  129,  129,  129,  129,  129,  129,   89,
        1,    0,  129,   20,  129,  129,  129,  129,  129,  129,
      129,  129,  129,   35,  129,  129,   17,   42,    0,  129,
       28,  129,   24,   60,  129,  129,   68,   36,  129,  129,
      129,  129,  129,   45,   59,   71,   88,  129,   14,  129,

        3,  129,  129,  129,  129,  129,   83,  129,  129,   25,
      129,   87,  129,   90,   37,    2,  129,   41,  129,    9,
       10,   78,  129,   77,  129,  129,  129,  129,  100,    0,
      129,    0,  104,  103,  103,    0,  103,    0,  103,    0,
      103,    0,   22,  129,  129,  129,   54,   40,  129,   38,
      129,  129,   29,  129,  129,  129,   44,   11,  129,   12,
       13,  129,  129,  129,   31,   67,  129,   52,    3,   46,
      129,  129,  129,   64,  129,  129,  129,  129,   47,  129,
      129,   39,  129,    6,  129,   82,  129,    8,   84,  129,
        0,  129,   63,   15,  101,  101,  101,  100,    0,  103,

        0,    0,  103,    0,  103,  104,  103,    0,    0,    0,
        0,  103,  103,  103,  103,  103,    0,  129,   21,  129,
      129,  129,   30,  129,  129,    0,   18,  129,  129,  129,
       76,  129,   32,  129,   69,   27,   26,  129,  129,   72,
      129,  129,  129,   49,   16,  129,  129,  129,  129,  129,
      129,  129,  129,  129,  129,  129,  129,  129,    0,    0,
      103,  103,  103,    0,    0,  104,  103,  103,  104,  103,
        0,    0,  103,  103,  103,  103,  103,    0,    0,    0,
        0,  103,  103,    0,  103,    0,  103,    0,   86,  129,
      129,   23,  129,  129,  129,  129,  129,  129,  129,  129,

      129,  129,  129,  129,  129,   60,  129,  129,  129,  129,
      129,  129,  129,   65,   66,  129,   85,  129,  129,  129,
      129,  129,  129,  129,  129,  129,  129,  101,  101,  101,
        0,  103,  103,    0,  103,    0,    0,  103,    0,  103,
      104,  103,    0,    0,    0,  103,  103,    0,  103,  104,
      103,    0,    0,    0,    0,    0,    0,    0,  103,  103,
      103,  103,  103,    0,  129,  129,   51,   53,  129,  129,
      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
       61,  129,  129,   43,   73,   74,  129,  129,  129,  129,
      127,  123,  129,  125,  124,  128,  129,  129,    0,    0,

      103,  103,  103,  103,  103,  103,    0,    0,  104,  103,
      103,  103,    0,    0,  103,  103,  103,  103,  103,    0,
        0,    0,    0,    0,    0,    0,  103,  103,  103,  103,
      103,    0,    0,    0,    0,    0,  103,  103,    0,  103,
        0,  103,    0,  129,  129,  129,  129,  129,  129,  129,
      129,  129,  129,  129,  129,  106,  105,  129,  129,   62,
      129,  129,  129,  126,  122,  101,    0,  103,  103,    0,
      103,  103,    0,  103,    0,    0,  103,    0,  103,  104,
      103,    0,    0,    0,  103,  103,    0,  103,  104,  103,
        0,    0,    0,    0,    0,  103,  103,    0,  103,  104,

      103,    0,  103,  103,    0,    0,    0,    0,    0,    0,
        0,  103,  103,  103,  103,  103,    0,   55,  129,  111,
      118,  129,  129,  129,  129,  129,  129,  129,  129,  129,
       56,   48,  129,  129,    0,    0,  103,  103,  103,  103,
      103,  103,  103,  103,  103,    0,    0,  104,  103,  103,
      103,    0,    0,  103,  103,  103,  103,  103,    0,    0,
        0,    0,    0,    0,    0,  103,  103,  103,  103,  103,
        0,  103,  103,    0,    0,    0,    0,    0,    0,    0,
      103,  103,  103,  103,  103,    0,    0,    0,    0,    0,
        0,  103,  103,    0,  103,    0,  103,    0,   79,  129,

      129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
       50,    0,  103,  103,    0,  103,  103,    0,  103,  103,
        0,  103,    0,  102,  103,    0,  103,  104,  103,    0,
        0,    0,  103,  103,    0,  103,  104,  103,    0,    0,
        0,    0,    0,  103,  103,    0,  103,  104,  103,    0,
        0,    0,    0,    0,    0,  103,  103,    0,  103,  104,
      103,    0,  103,  103,  103,    0,    0,    0,    0,    0,
        0,    0,  103,  103,  103,  103,  103,    0,  129,  129,
      129,  129,  129,  129,  129,  129,  116,  129,   80,    0,
        0,  103,  103,  103,  103,  103,  103,  103,  103,  103,

      103,  103,  103,    0,  102,  104,  103,  103,  103,    0,
        0,  103,  103,  103,  103,  103,    0,    0,    0,    0,
        0,    0,    0,  103,  103,  103,  103,  103,    0,  103,
      103,    0,    0,    0,    0,    0,    0,    0,  103,  103,
      103,  103,  103,    0,  103,  103,  103,    0,    0,    0,
        0,    0,    0,    0,  103,  103,  103,  103,  103,    0,
        0,    0,    0,    0,    0,  103,  103,    0,  103,    0,
      103,    0,  129,  129,  129,  120,  129,  129,  129,  129,
      129,  129,  129,  108,    0,  103,  103,    0,  103,  103,
        0,  103,  103,    0,  103,  103,    0,  103,    0,    0,

        0,  103,    0,    0,  103,  104,  103,    0,    0,    0,
      103,  103,    0,  103,  104,  103,    0,    0,    0,    0,
        0,  103,  103,    0,  103,  104,  103,    0,    0,    0,
        0,    0,    0,  103,  103,    0,  103,  104,  103,    0,
        0,    0,    0,    0,    0,  103,  103,    0,  103,  104,
      103,    0,  103,  103,  103,    0,    0,    0,    0,    0,
        0,    0,  103,  103,  103,  103,  103,    0,  129,  129,
      129,  129,  110,  129,  129,  129,  114,  129,    0,    0,
      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
      103,  103,  103,  103,  103,    0,    0,    0,  104,    0,

        0,  103,    0,    0,  103,  103,  103,    0,    0,    0,
        0,    0,    0,    0,  103,  103,  103,    0,  103,  103,
        0,    0,    0,    0,    0,    0,    0,  103,  103,  103,
        0,  103,  103,  103,    0,    0,    0,    0,    0,    0,
        0,  103,  103,  103,    0,  103,  103,  103,    0,    0,
        0,    0,    0,    0,    0,  103,  103,  103,    0,    0,
        0,    0,    0,    0,  103,  103,    0,  103,    0,  103,
        0,  107,  119,  121,  115,  129,  129,  129,  129,    0,
        0,  103,    0,  103,    0,  103,  103,    0,  103,  103,
        0,  103,  103,    0,  103,  103,    0,  103,    0,    0,

        0,    0,  103,  103,    0,  103,    0,    0,  103,  103,
      103,    0,    0,    0,    0,  103,  103,  103,    0,    0,
        0,    0,    0,  103,  103,  103,    0,    0,    0,    0,
        0,  103,  103,  103,    0,    0,    0,    0,    0,  103,
      103,  103,  103,  103,  103,    0,    0,    0,    0,    0,
        0,    0,  103,  103,  103,    0,  129,  129,  129,  129,
        0,    0,    0,  103,  103,  103,  103,  103,  103,    0,
        0,    0,    0,  103,  103,    0,    0,    0,    0,  103,
      103,  103,    0,    0,    0,    0,    0,  103,  103,  103,
      103,    0,    0,    0,    0,    0,  103,  103,  103,  103,

        0,    0,    0,    0,    0,  103,  103,  103,  103,    0,
        0,    0,    0,    0,  103,    0,    0,    0,    0,    0,
      103,  103,  103,  129,  129,  129,  117,  103,  103,  103,
      103,  103,  103,  103,  103,    0,    0,    0,    0,  103,
      103,    0,    0,  103,    0,    0,    0,  103,    0,    0,
        0,  103,    0,    0,    0,  103,    0,    0,    0,  103,
      103,  103,  103,    0,    0,    0,    0,    0,  103,  112,
      129,  109,  103,    0,    0,  103,  103,    0,  103,  103,
      103,    0,  103,  103,  103,    0,  103,  103,  103,    0,
      103,  103,  103,    0,    0,    0,    0,  103,  113,  103,

      103,    0,    0,    0,    0,    0,    0,  103,  103,  103,
        0,    0,  103,  103,  103,  103,  103,    0,  103,  103,
        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[1695] =
    {   0,
        0,    0, 3429,   52, 6592, 6592,   53, 3407,   59, 3418,
     6592,   63, 6592,   80,   49,  131,   55, 3395,   62,  147,
      186,  147,  106,   36,  129,  134,   55, 3383,  110, 3371,
      190,  193,  140,  101,  149,  198,  205,  148,  125, 3362,
      211, 3354, 3339,  250, 6592,    0, 6592,    0,  248,  266,
     3371,  258,    0,  288,  321, 6592, 6592, 6592, 6592, 6592,
      305,    0,  344,   40,    0, 3356, 3344, 3357,  183, 3329,
     3323, 3328, 3327, 3326,  192, 3334, 3317,  248, 3327,  213,
     3306, 3319, 3285, 3290, 3288,  100, 3291, 3285, 3294,   38,
      305,    0,    0,  165,  135, 3282, 3277, 3264, 3260, 3258,

     3261, 3263, 3262, 3253, 3243, 3249,    0, 3237,    0, 3220,
     3226, 3217, 3218, 3218, 3204,  282, 3215, 3198, 3209, 3202,
      220, 3197,  326, 3194,  302, 3184, 3196, 3162,    0, 3160,
     3164, 3170, 3161, 3152, 3153, 6592, 6592,  378,  159,  417,
      352, 3162,  439, 3168,  462,  243, 3160, 3133, 3138,    0,
        0, 3135,  361, 3135, 3110, 3099, 3100, 3096,  502,    0,
        0, 3100, 3090,    0, 3102,  107, 3092, 3095, 3056, 3059,
     3072, 3056, 3053,    0, 3058, 3043,    0,    0, 3026, 3016,
        0, 3028,    0, 3024, 3011, 3018,    0,    0, 3017, 3016,
      339, 2998, 2976, 2992,    0, 2987,    0, 2989,    0, 2970,

     2974, 2968, 2962, 2967, 2940, 2936,    0, 2934, 2946,    0,
     2934,    0, 2933,    0,    0,    0, 2930,    0, 2908,  275,
        0,    0, 2911,    0, 2908, 2909,  384,  531,  554, 2930,
     2928, 2927, 2926,  562,  262, 2877, 2876,  391,  602,  624,
      398,    0,    0, 2852, 2855, 2860,    0,    0, 2857,    0,
     2856, 2842,    0, 2829, 2823, 2825,    0,  479, 2831,    0,
        0, 2839, 2820, 2821,    0,    0, 2819,    0,    0,    0,
     2795, 2786, 2793,    0, 2786, 2789, 2803, 2777, 2773, 2771,
     2761,    0, 2760,    0, 2759,    0,  145,    0,    0, 2752,
      455, 2759,    0,    0,  647,  392, 2785, 2777, 2737,  686,

     2736, 2735,  708,  405,  731,  753,  515,    0, 2734,  412,
      522,  776,  585,  799,  413, 2733, 2738, 2708,    0, 2717,
     2703, 2686,    0, 2703, 2698,  818,    0, 2688, 2676, 2694,
        0, 2685,    0, 2656, 2649,    0,    0, 2659, 2641,  393,
     2640, 2657,  395, 2654,    0, 2643, 2622, 2636, 2629, 2636,
     2629, 2616, 2617, 2610, 2596, 2611,  491,  854, 2620, 2619,
      877,  435, 2618, 2616, 2615, 2614,  917,  474, 2593, 2592,
      499,  592,  957,  661,  980,  531, 2591, 2597, 2589,  653,
        0,  368, 2587,  667, 1020, 1042,  674,    0,    0, 2576,
     2557,    0, 2551, 2545, 2558, 2543, 2558, 2557,  479, 2542,

      505, 2542, 2550, 2516, 2526,    0, 2516, 2527, 2517, 2522,
     2521, 2497, 2496,    0,    0, 2500,    0, 2495, 2485, 2498,
     2492, 2466, 2460, 2458, 2463, 2467, 2466, 1064,  532, 2488,
     2467, 1103, 2466, 1125, 2465, 2464, 2460, 1147,  821, 1170,
     1192,  828,    0,  899,    0,  369, 2459,  905, 1215, 1237,
      940,    0,  599,  947, 2451, 1003,  681, 1010, 1260, 1078,
     1283,  533, 2443, 2449, 2414, 2419,    0,    0, 2421, 2423,
     2409, 2395, 2407, 2389, 2387, 2379, 2369, 2370, 2380, 2378,
        0, 2338, 2332,    0,    0,    0, 2345, 2337, 2327, 2314,
        0,    0, 2317,    0,    0,    0, 2304, 1322, 2329, 2319,

     1345,  561, 2297, 1385,  597, 2296, 2295, 2293, 2290, 1425,
      598, 2289,  682, 1085, 1465, 1092, 1488,  601, 2274, 2280,
      683, 1306, 2278, 1313,  685, 1368, 1528, 1375, 1551,  704,
     2270, 2275, 1070,    0, 1407,    0,  447, 2267, 1413, 1591,
     1613, 1448,    0, 2238, 2229, 2211, 2208, 2213, 2220, 2210,
     2183, 2182, 2175, 2195, 2190,    0,    0, 2189, 2143,    0,
     2156, 2151, 2138,    0,    0,    0, 2165, 1635, 1658, 1680,
     1455, 1703, 1725, 1511, 2164, 2163, 1747, 1517, 1770, 1792,
     1574,    0, 1580,    0,  540, 2153, 1814, 1821, 1843, 1866,
        0, 1872,    0, 1878,    0,  632, 2152, 1884, 1891, 1913,

     1936,    0,  705, 1942, 2138,  848, 1949, 2137, 1956,  850,
     1963, 1970, 1993, 2000,  726, 2129, 2134,  297,  700,  955,
      956, 1018, 2009, 1019,  746,  318,  414, 2010,  454,  747,
      433,  617, 1103, 2013, 2124, 2123, 2042,  772, 2113, 2082,
      775, 2091, 2122,  776, 2090, 2089, 2087, 2085, 2162,  796,
     2084, 1099, 2030, 2202, 2065, 2225,  823, 2083, 2080, 1100,
     2072, 2079, 2105, 1321, 2112, 2265, 2145, 2288,  827, 2051,
     2057,  828, 2151, 2052, 1382, 2185, 2051, 2192, 1524, 2248,
     2328, 2255, 2351,  829, 2043, 2027,    0, 2310,    0, 2316,
        0,  693, 2017, 2373, 2391, 2413, 2380,    0,  618,  770,

      848,  974, 1102, 1033, 1321, 1034, 1141, 1589,  913, 1463,
      685, 2009, 2435, 2458, 2480, 2503, 2510, 2532, 2555, 2562,
     2584, 2607, 2007, 2003, 2613, 2635, 2642, 2664, 2687,    0,
     2693,    0,  740, 1979, 2699, 2706, 2728, 2751,    0, 2757,
        0, 2763,    0,  761, 1978, 2769, 2776, 2798, 2821,    0,
        0, 2827,    0, 2833,    0,  837, 1977, 2839, 2846, 2868,
     2891,    0,    0,  953, 2897, 1983, 1587, 2904, 1982, 2911,
     1629, 2918, 2925, 2948, 2955,  957, 1973, 1979, 1590, 2389,
     2390, 1464, 1118, 1526, 2024, 1162, 2200, 1207,  791, 1971,
     1921, 2995, 1017, 1916, 3035, 1102, 1900, 3075, 1143, 1899,

     3115, 1146, 1851, 1850, 1849, 3154, 3177, 1147, 1830, 1674,
     2978, 3217, 2985, 3240, 1166, 1826, 1786, 2015, 3018, 1784,
     3025, 2119, 3058, 3280, 3065, 3303, 1188, 1776, 1741, 1189,
     3097, 1739, 2324, 3104, 1737, 3138, 2387, 3145, 3343, 3200,
     3366, 1191, 1688, 1643,    0, 1211, 3206, 1623, 2429, 3263,
     1607, 3270, 3072, 3326, 3406, 3333, 3429, 1212, 1597, 1603,
        0, 3388,    0, 3394,    0,  885, 1558, 3451, 3469, 3491,
     3458,    0, 3499, 3500, 3501,  915, 3502, 2263, 1164, 3504,
     1384, 1253, 1254, 1230, 1552, 3534, 3557, 3579, 3602, 3609,
     3631, 3654, 3661, 3683, 3706, 3713, 3735, 3758, 1533, 3765,

     1259, 1531, 1529, 3787, 3805, 1519, 3794,    0, 3827,    0,
      886, 1495, 3833, 3840, 1489, 3863,    0, 3869,    0, 3875,
        0,  926, 1474, 3881, 3888, 1468, 3911,    0,    0, 3917,
        0, 3923,    0, 1029, 1466, 3929, 3936, 1430, 3959,    0,
        0, 3965,    0, 3971,    0, 1200, 1428, 3977, 3984, 1392,
     4007,    0,    0, 1316, 4013, 1393, 3153, 4020, 1359, 4027,
     3213, 4034, 4041, 4064, 4071, 1318, 1331, 1332, 1650, 1672,
     1695, 1275, 1337, 1718, 3506, 1545, 1423, 3515, 1323, 4110,
     4133, 1322, 1290, 4173, 1384, 1288, 4213, 1461, 1269, 4253,
     1464, 1261, 4293, 1465, 1242, 1240, 4093, 4333, 1238, 4100,

        0, 1201, 3402, 4156, 4356, 4163, 1148, 1135, 3465, 4196,
     1116, 4203, 3530, 4236, 4379, 4243, 1104, 1110, 1528, 4275,
     1058, 4109, 4282, 1057, 4316, 4250, 4323, 4402, 4425, 1021,
      994,    0, 1586, 4431,  969, 4330, 4438,  967, 4445, 4452,
     4453, 4492, 4466,  958,  927,    0, 1588, 4472,  925, 4487,
     4479,  915, 4515, 4488, 4528, 4535, 4558,  906,  891,    0,
     4564,    0, 4570,    0, 1292,  863, 4576, 4583,    0, 4606,
        0, 1629, 1651, 1673, 1716, 1717, 2471, 4597, 4598, 4627,
     1609,    0,  838, 4667,    0, 4615, 4690,    0, 4650, 4713,
        0, 4657, 4736,    0, 4759, 4766,    0, 4789, 4664, 4796,

     4803, 4826,  806,  801,  792,  777, 4832,    0, 1394,  734,
      695, 4838,    0, 4844,    0, 1433,  624,  611,    0, 4850,
        0, 4856,    0, 1434,  608,  571,    0, 4862,    0, 4868,
        0, 1644,  570,  569,    0, 4874,    0, 4880,    0, 1756,
      536,  534,    0, 1634, 4886,  529, 4893, 4894,  511, 4907,
     4901, 4915, 4941, 4922,    0,  510, 2201, 1741, 1763, 1762,
     4964,  483, 4933,    0,    0,    0,    0,    0,    0, 4986,
        0, 1800,  469,  448,    0, 4980, 4994,  416, 5001,    0,
     1657, 5007,  374, 5014, 5020,  373, 5028,    0,    0, 1679,
     5034,  371, 5041, 5042,  370, 5055,    0,    0, 1680, 5061,

      333, 5068, 5069,  329, 5082,    0,    0, 1746, 5088,  318,
     5095, 5096,  281, 5109,    0,    0, 5115,    0, 5121,    0,
     1801,  273,    0, 2324, 2523, 1835, 1836,    0, 6592,    0,
        0,    0,    0,    0,    0, 5128, 5142,  278, 5149,    0,
     6592, 5134,    0, 6592,    0, 5155,    0, 6592,    0, 5167,
        0, 6592,    0, 5173,    0, 6592,    0, 5179,    0, 6592,
        0, 1767, 5185,  276, 5192, 5193,  236, 5206,    0, 1837,
     2326, 1905,    0, 5212,    0, 1791, 5218,  235,    0, 1792,
     5224,  201,    0, 1816, 5231,  199,    0, 1886, 5237,  134,
        0, 1887, 5243,   95,    0, 5249,    0, 6592, 1906, 1888,

     5255,   94,    0,    0,    0,    0,    0,    0, 1890, 5261,
       65,    0,    0,    0,    0,    0,    0,    0,    0,    0,
     6592, 5278, 5286, 5290, 5293, 5296, 5299, 5302, 5305, 5308,
     5311, 5314, 5317, 5320, 5323, 5326, 5329, 5332, 5336, 5340,
     5343, 5346, 5349, 5352, 5355, 5359, 5363, 5366, 5370, 5372,
     5375, 5378, 5381, 5384, 5387, 5391, 5393, 5397, 5402, 5406,
     5409, 5412, 5415, 5418, 5421, 5424, 5427, 5431, 5435, 5439,
     5444, 5448, 5451, 5454, 5458, 5460, 5463, 5466, 5469, 5472,
     5475, 5479, 5481, 5484, 5487, 5491, 5493, 5496, 5501, 5506,
     5510, 5514, 5518, 5523, 5527, 5530, 5533, 5536, 5539, 5542,

     5545, 5548, 5552, 5556, 5560, 5564, 5569, 5573, 5577, 5581,
     5584, 5589, 5593, 5598, 5602, 5606, 5610, 5613, 5616, 5619,
     5623, 5625, 5630, 5634, 5637, 5640, 5643, 5646, 5650, 5652,
     5655, 5658, 5662, 5664, 5667, 5670, 5673, 5677, 5679, 5682,
     5685, 5690, 5694, 5699, 5703, 5707, 5711, 5716, 5720, 5723,
     5726, 5729, 5732, 5735, 5738, 5741, 5745, 5749, 5753, 5757,
     5762, 5766, 5770, 5774, 5777, 5782, 5786, 5791, 5795, 5799,
     5803, 5806, 5809, 5814, 5818, 5823, 5827, 5831, 5835, 5838,
     5841, 5844, 5848, 5850, 5855, 5859, 5862, 5865, 5868, 5871,
     5874, 5877, 5881, 5883, 5886, 5889, 5892, 5896, 5898, 5901,

     5904, 5907, 5910, 5914, 5916, 5919, 5922, 5925, 5928, 5932,
     5934, 5937, 5940, 5943, 5948, 5952, 5957, 5961, 5965, 5969,
     5974, 5978, 5981, 5984, 5987, 5990, 5993, 5996, 5999, 6002,
     6006, 6010, 6014, 6018, 6023, 6027, 6031, 6035, 6038, 6043,
     6047, 6052, 6056, 6060, 6064, 6067, 6070, 6075, 6079, 6084,
     6088, 6092, 6096, 6099, 6102, 6107, 6111, 6116, 6120, 6124,
     6128, 6131, 6134, 6137, 6141, 6143, 6146, 6151, 6155, 6158,
     6161, 6164, 6167, 6170, 6173, 6177, 6181, 6184, 6188, 6191,
     6194, 6198, 6200, 6203, 6206, 6210, 6212, 6215, 6218, 6221,
     6225, 6227, 6230, 6233, 6236, 6240, 6242, 6245, 6248, 6251,

     6255, 6257, 6260, 6263, 6268, 6272, 6277, 6281, 6285, 6289,
     6294, 6298, 6301, 6304, 6307, 6310, 6313, 6316, 6319, 6323,
     6325, 6328, 6332, 6337, 6340, 6343, 6348, 6352, 6357, 6360,
     6363, 6366, 6371, 6375, 6380, 6383, 6386, 6389, 6394, 6398,
     6403, 6406, 6409, 6412, 6417, 6421, 6426, 6429, 6432, 6435,
     6438, 6442, 6444, 6449, 6453, 6456, 6459, 6462, 6465, 6468,
     6471, 6475, 6480, 6483, 6486, 6489, 6492, 6495, 6498, 6501,
     6504, 6507, 6510, 6513, 6518, 6522, 6525, 6528, 6531, 6535,
     6539, 6543, 6547, 6551, 6554, 6557, 6561, 6564, 6567, 6570,
     6573, 6576, 6580, 6583

    } ;

static yyconst short int yy_def[1695] =
    {   0,
     1321,    1, 1321, 1321, 1321, 1321, 1321, 1321, 1322, 1321,
     1321, 1321, 1321, 1321,   14, 1321, 1321, 1321, 1321,   14,
       20, 1323,   20,   20,   20,   20,   20,   20,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21, 1321, 1321, 1321, 1324, 1321,   21,   21,   20,
     1325,   50,   21,   21, 1321, 1321, 1321, 1321, 1321, 1321,
     1323, 1323,   50,   63,   21,   21,   21,   21,   63,   21,
       21,   21,   21,   21,   63,   21,   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,   21,   21,   21, 1321, 1321,   21,  138,   50,
      140, 1326, 1321,   54, 1321,  145, 1327,   21,   21,   21,
       21,   21,  140,   21,   21,   21,   21,   21,  140,   21,
       21,   21,   21,   21,   21,  159,   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,   21,   21,   21,   21,   21, 1328,
       21, 1329, 1330, 1321,  234, 1331, 1332, 1321, 1321, 1321,
      239, 1333,   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,  295,  228,  229, 1334, 1321,

     1335, 1336, 1321, 1321, 1321, 1321,  305, 1337, 1338, 1339,
     1321, 1321,  312, 1321,  314, 1340, 1333,   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, 1329, 1341,
     1321,  361, 1342, 1321, 1343, 1344, 1321,  367, 1331, 1345,
     1346, 1321, 1321,  373, 1321,  375, 1347, 1337, 1321, 1321,
     1348, 1349, 1321, 1321, 1321, 1321,  385, 1350,   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,  428,  358,
     1351, 1321,  305, 1321,  307, 1352, 1353, 1321, 1321, 1321,
     1321,  440, 1354, 1321, 1355, 1356, 1321, 1321, 1321, 1321,
      449, 1357, 1358, 1321, 1348, 1321, 1359, 1321, 1321,  459,
     1321,  461, 1360, 1350,   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, 1361, 1362,

     1321,  501, 1363, 1321,  504, 1364, 1321, 1365, 1366, 1321,
      510, 1367, 1368, 1321, 1321,  515, 1321,  517, 1369, 1354,
     1370, 1321, 1355, 1321, 1371, 1321, 1321,  527, 1321,  529,
     1372, 1357, 1321, 1373, 1321, 1374, 1375, 1321, 1321, 1321,
     1321,  540, 1376,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
       21,   21,   21,   21,   21,  498, 1377, 1321, 1321, 1321,
      569, 1321, 1321,  572, 1378, 1379, 1321, 1321, 1321, 1321,
      579, 1380, 1321, 1381, 1382, 1321, 1321, 1321, 1321,  588,
     1383, 1321, 1384, 1321, 1385, 1386, 1321, 1321, 1321, 1321,

      599, 1387, 1388, 1321, 1373, 1389, 1321, 1390, 1321, 1391,
     1321, 1321,  612, 1321,  614, 1392, 1393, 1394, 1394, 1394,
     1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
     1394, 1394, 1394, 1394, 1395, 1396, 1321,  637, 1397, 1321,
      640, 1398, 1321,  643, 1399, 1321, 1400, 1401, 1321,  649,
     1402, 1403, 1321, 1321,  654, 1321,  656, 1404, 1405, 1406,
     1321, 1407, 1321, 1408, 1321, 1321,  666, 1321,  668, 1409,
     1410, 1411, 1321, 1412, 1413, 1321, 1414, 1321, 1415, 1321,
     1321,  681, 1321,  683, 1416, 1417, 1418, 1321, 1419, 1321,
     1420, 1421, 1321, 1321, 1321, 1321,  695, 1422, 1423, 1423,

     1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423, 1423,
     1423, 1424, 1321, 1321, 1321,  714, 1321, 1321,  717, 1321,
     1321,  720, 1425, 1426, 1321, 1321, 1321, 1321,  727, 1427,
     1321, 1428, 1429, 1321, 1321, 1321, 1321,  736, 1430, 1321,
     1431, 1321, 1432, 1433, 1321, 1321, 1321, 1321,  747, 1434,
     1435, 1321, 1436, 1321, 1437, 1438, 1321, 1321, 1321, 1321,
      759, 1439, 1440, 1441, 1321, 1442, 1443, 1321, 1444, 1321,
     1445, 1321, 1321,  773, 1321,  775, 1446, 1447, 1448, 1448,
     1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1448, 1449,
     1450, 1321,  792, 1451, 1321,  795, 1452, 1321,  798, 1453,

     1321,  801, 1454, 1321, 1455, 1321, 1321,  807, 1456, 1457,
     1321, 1321,  812, 1321,  814, 1458, 1459, 1460, 1321, 1461,
     1321, 1462, 1321, 1321,  824, 1321,  826, 1463, 1464, 1465,
     1321, 1466, 1467, 1321, 1468, 1321, 1469, 1321, 1321,  839,
     1321,  841, 1470, 1471, 1472, 1473, 1321, 1474, 1475, 1321,
     1476, 1321, 1477, 1321, 1321,  855, 1321,  857, 1478, 1479,
     1480, 1321, 1481, 1321, 1482, 1483, 1321, 1321, 1321, 1321,
      869, 1484, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485,
     1485, 1485, 1485, 1485, 1486, 1321, 1321, 1321,  887, 1321,
     1321,  890, 1321, 1321,  893, 1321, 1321,  896, 1487, 1321,

      900, 1488, 1489, 1321, 1321, 1490,  905, 1491, 1321, 1492,
     1493, 1321, 1321, 1321, 1494,  914, 1495, 1321, 1496, 1321,
     1497, 1498, 1321, 1321, 1321, 1499,  925, 1500, 1501, 1321,
     1502, 1321, 1503, 1504, 1321, 1321, 1321, 1505,  937, 1506,
     1507, 1321, 1508, 1321, 1509, 1510, 1321, 1321, 1321, 1511,
      949, 1512, 1513, 1514, 1321, 1515, 1516, 1321, 1517, 1321,
     1518, 1321, 1321,  963, 1321,  965, 1519, 1520, 1521, 1521,
     1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1522, 1321,
     1321,  981, 1523, 1321,  984, 1524, 1321,  987, 1525, 1321,
      990, 1526, 1321,  993, 1527, 1321, 1321, 1321, 1528,  998,

     1529, 1530, 1531, 1321, 1321, 1005, 1532, 1533, 1534, 1321,
     1535, 1321, 1536, 1321, 1321, 1015, 1537, 1538, 1539, 1321,
     1540, 1541, 1321, 1542, 1321, 1543, 1321, 1321, 1028, 1544,
     1545, 1546, 1547, 1321, 1548, 1549, 1321, 1550, 1321, 1551,
     1321, 1321, 1042, 1552, 1553, 1554, 1555, 1321, 1556, 1557,
     1321, 1558, 1321, 1559, 1321, 1321, 1056, 1560, 1561, 1562,
     1321, 1563, 1321, 1564, 1565, 1321, 1321, 1321, 1566, 1068,
     1567, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1321,
     1080, 1569, 1570, 1321, 1571, 1084, 1321, 1572, 1087, 1321,
     1573, 1090, 1321, 1574, 1093, 1321, 1575, 1096, 1576, 1321,

     1321, 1101, 1577, 1578, 1579, 1580, 1321, 1581, 1582, 1321,
     1583, 1321, 1584, 1321, 1585, 1586, 1321, 1587, 1588, 1321,
     1589, 1321, 1590, 1591, 1321, 1592, 1593, 1321, 1594, 1321,
     1595, 1596, 1321, 1597, 1598, 1321, 1599, 1321, 1600, 1601,
     1321, 1602, 1603, 1604, 1321, 1605, 1606, 1321, 1607, 1321,
     1608, 1321, 1321, 1153, 1609, 1610, 1611, 1611, 1611, 1611,
     1321, 1612, 1161, 1613, 1614, 1615, 1616, 1617, 1618, 1321,
     1619, 1620, 1321, 1621, 1622, 1623, 1321, 1624, 1321, 1625,
     1626, 1321, 1627, 1628, 1321, 1629, 1321, 1630, 1631, 1632,
     1321, 1633, 1634, 1321, 1635, 1321, 1636, 1637, 1638, 1321,

     1639, 1640, 1321, 1641, 1321, 1642, 1643, 1644, 1321, 1645,
     1646, 1321, 1647, 1321, 1648, 1649, 1321, 1650, 1321, 1651,
     1652, 1321, 1653, 1654, 1654, 1654, 1654, 1655, 1321, 1656,
     1657, 1658, 1659, 1660, 1661, 1662, 1321, 1663, 1321, 1664,
     1321, 1321, 1665, 1321, 1666, 1321, 1667, 1321, 1668, 1321,
     1669, 1321, 1670, 1321, 1671, 1321, 1672, 1321, 1673, 1321,
     1649, 1674, 1321, 1650, 1675, 1321, 1651, 1321, 1676, 1654,
     1654, 1654, 1677, 1321, 1678, 1679, 1321, 1665, 1666, 1680,
     1321, 1667, 1668, 1681, 1321, 1669, 1670, 1682, 1321, 1671,
     1672, 1683, 1321, 1673, 1684, 1321, 1685, 1321, 1654, 1686,

     1321, 1678, 1687, 1688, 1689, 1690, 1691, 1684, 1692, 1321,
     1685, 1693, 1687, 1688, 1689, 1690, 1691, 1694, 1693, 1694,
        0, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,

     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,

     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,

     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321

    } ;

static yyconst short int yy_nxt[6645] =
    {   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,  177,   44,   44,   44,   44,   44,
       44,   44,   44,   44,   44,   69,   44,   44,   44,   44,
       44,   44,   53,   56,   57, 1296,   44,   44,   44,   70,
       44,   59,   60,   53,   44,  149,   71,  178,   44,   48,
       49,   50,   50,   50,   50,   50,   50,   51,   53,   78,

       79,   52,   53,   54, 1274, 1258,   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,  104,   63,   44,   64,   44,   81,  172,   44,
       65,  105,  129,  173, 1254,   66,   53,   61,   55,   67,
       61,   68,   61,   82,  128,   61,   44,   53,   52,   52,
       52,   52,   52,   52,   61,   75,   72,   99,  129,   73,
       53,  100,   61,   74,  184,   76,  106,  121,   77,  185,
      101,  102,   53,  122,  347,  123,  103,  124,  107,  348,
      108,  125,  109,  126,  127,  110,   53,   53,   53,   53,

       53,   53,   53, 1321,  182,   92,   93,   53,   53, 1250,
      183, 1246,  153,   53,   53,   53,   53,   53,   53,   84,
       94,  159,   85,   86,   95,   87,   53,   88,   96,   89,
       97,   90,  116,  111,   91,   53,  117,   98,  112,  113,
      131,  114,  115,  166,  118, 1242, 1219,  210,  132,  119,
       44,  120,  133,   44,  134,   44,   53,  162,   44,  138,
      139,  139,  139,  139,  139,  211, 1321,   44,   53,  141,
      141,  141,  141,  141,  141,   44,   49,  140,  140,  140,
      140,  140,  140,  163,  291, 1321, 1217,  141, 1170,  164,
     1069, 1138, 1321,  141,  141,  141,  141,  141,  141,  144,

      144,  144,  144,  144,  144,   61,   48,  292,   61,  144,
       61, 1321,  204,   61,  179,  144,  144,  144,  144,  144,
      144,   44,   61,   48,   44,  205,   44,   48, 1136,   44,
       61,  216,  145,  146,  146,  146,  146,  146,   44, 1130,
      180,  217,  147, 1128,   48,  181,   44,  706,  147,  147,
      147,  147,  147,  147,   53,  141,  141,  141,  141,  141,
      141,  213,   53,  231,  231,  231,  231,  231,  231,  272,
      214,   53,  231,  231,  231,  231,  231,  231,  238,  304,
     1122, 1120,  273, 1114, 1112,  240,  434,  148,  227,  139,
      139,  139,  139,  139,  139,  295,  296,  296,  296,  296,

      296,  228,  310,  311,  311,  311,  311,  311, 1321,  313,
      313,  313,  313,  313,  313,   53,  371,  372,  372,  372,
      372,  372,  380,   48,  410,  414, 1107,  228,  229,  229,
      229,  229,  229,  229,  230,  381, 1321,  411,  231,  415,
       48,   53,   48,  707,  231,  231,  231,  231,  231,  231,
      234,  235,  235,  235,  235,  235,  236,  384, 1321,   48,
      237,  381, 1321,   48,  386,  369,  237,  237,  237,  237,
      237,  237,  238,  239,  239,  239,  239,  239,  239,  240,
       48,  709,  350,  241, 1321,  242, 1162,  351,  326,  241,
      241,  241,  241,  241,  241,  327,  352, 1321,  353,  354,

     1229,  355,  428,  429,  429,  429,  429,  429,  328,  444,
      473,  242,   53,  231,  231,  231,  231,  231,  231,  474,
     1067, 1063,  445, 1321,  329, 1321,  374,  374,  374,  374,
      374,  374,  380,  311,  311,  311,  311,  311,  311, 1061,
      476,  251,  297,  297,  297,  297,  297,  297,  445,  477,
      439,  369,  297, 1097, 1321,   53, 1321,  570,  297,  297,
      297,  297,  297,  297,   49,  298,  298,  298,  298,  298,
      298,  230,  304,  305,  305,  305,  305,  305,  305,  306,
     1321,   53, 1321,  307, 1321,  308,  369, 1094,  369,  307,
      307,  307,  307,  307,  307, 1321,  383,  383,  383,  383,

      383,  383,  444,  372,  372,  372,  372,  372,  372,  533,
     1321,  308,  238,  312,  312,  312,  312,  312,  312,  240,
     1321, 1321,  534,  313, 1321, 1091,   48,   48,  369,  313,
      313,  313,  313,  313,  313,  314,  315,  315,  315,  315,
      315, 1088,  448,   48,   48,  316, 1321, 1321,  534,  573,
     1321,  316,  316,  316,  316,  316,  316,  357,  296,  296,
      296,  296,  296,  296,  453,  454,  454,  454,  454,  454,
      358, 1321,  447,  447,  447,  447,  447,  447,  457,  458,
      458,  458,  458,  458, 1321,  460,  460,  460,  460,  460,
      460,  535,  583,  592,   48,  594,  358,  361,  362,  362,

      362,  362,  362,  539,  536,  584,  593,  363,  595,   48,
      541,   48,  369,  363,  363,  363,  363,  363,  363,  367,
      368,  368,  368,  368,  368,  369,   48, 1321,  687,  370,
      536,  584,  593,  699,  595,  370,  370,  370,  370,  370,
      370,  304,  373,  373,  373,  373,  373,  373,  306, 1321,
      578, 1085,  374, 1321,  687,   48,   48,  715,  374,  374,
      374,  374,  374,  374,  375,  376,  376,  376,  376,  376,
      369,  587,   48,   48,  377, 1321,  710,  705,  718,   48,
      377,  377,  377,  377,  377,  377,  238,  382,  382,  382,
      382,  382,  382,  240,  369, 1321,   48,  383, 1321, 1321,

       48,  779,  997,  383,  383,  383,  383,  383,  383,  384,
      385,  385,  385,  385,  385,  385,  386,   48,  369, 1321,
      387, 1321,  388,  369, 1321, 1321,  387,  387,  387,  387,
      387,  387,  513,  514,  514,  514,  514,  514, 1321,  516,
      516,  516,  516,  516,  516, 1321, 1321,  598,  388,  395,
     1321,  751, 1321,  396,  721, 1162,  397,   48,  688,  398,
      690,  399,  400,  401,  402,  430,  430,  430,  430,  430,
      430,  689, 1321,  691,   48,  430, 1321,  751, 1321,  780,
      870,  430,  430,  430,  430,  430,  430,  304,  433,  433,
      433,  433,  433,  433,  434,  694,  726,  689,  435,  691,

      308,  948,  696,  888,  435,  435,  435,  435,  435,  435,
      521,  522,  522,  522,  522,  522,  525,  526,  526,  526,
      526,  526,   48,  369,   48,  944,  308,  439,  440,  440,
      440,  440,  440,  440,  441,  942,  735,  936,  442,   48,
      443,   48,  788,  891,  442,  442,  442,  442,  442,  442,
     1321,  528,  528,  528,  528,  528,  528,  533,  454,  454,
      454,  454,  454,  454,   48,   48,  443,  304,  446,  446,
      446,  446,  446,  446,  434,  369,  861,  932,  447,  930,
     1321,   48,   48,   48,  447,  447,  447,  447,  447,  447,
      448,  449,  449,  449,  449,  449,  449,  450,  700,  701,

       48,  451,  861,  452,  924,  781, 1321,  451,  451,  451,
      451,  451,  451,  238,  456,  456,  456,  456,  456,  456,
      535,  458,  458,  458,  458,  458,  458,   48,   48,  452,
      384,  459,  459,  459,  459,  459,  459,  386,  369,  746,
     1321,  460,   48,   48,   48,   48,  894,  460,  460,  460,
      460,  460,  460,  461,  462,  462,  462,  462,  462,   48,
       48,  702,  704,  463,  783,  785, 1321,  920,  918,  463,
      463,  463,  463,  463,  463,  429,  429,  429,  429,  429,
      429,  603,  604,  604,  604,  604,  604,  498, 1321,  538,
      538,  538,  538,  538,  538,  583,  514,  514,  514,  514,

      514,  514, 1321,  586,  586,  586,  586,  586,  586,  731,
      740,   48,   48,  498,  501,  502,  502,  502,  502,  502,
      913,  369,  732,  741,  503, 1321,  909,   48,   48,   48,
      503,  503,  503,  503,  503,  503,  504,  505,  505,  505,
      505,  505,  711,  782,   48,  904,  506,  878,  732,  741,
       48, 1321,  506,  506,  506,  506,  506,  506,  510,  511,
      511,  511,  511,  511,  369,  369, 1321,   48,  512, 1321,
     1321,   48,  786,   48,  512,  512,  512,  512,  512,  512,
      439,  515,  515,  515,  515,  515,  515,  441,   48, 1321,
       48,  516, 1321,  882,  974, 1321, 1321,  516,  516,  516,

      516,  516,  516,  517,  518,  518,  518,  518,  518,  369,
      758, 1321,  929,  519, 1321, 1321,   48,  897,  369,  519,
      519,  519,  519,  519,  519,  448,  527,  527,  527,  527,
      527,  527,  450,   48,  941, 1321,  528, 1321,  929,   48,
     1321,  884,  528,  528,  528,  528,  528,  528,  529,  530,
      530,  530,  530,  530,  369, 1104,   48,  980,  531, 1097,
      941, 1321,   48,   48,  531,  531,  531,  531,  531,  531,
      384,  537,  537,  537,  537,  537,  537,  386, 1094,   48,
       48,  538, 1321,  977,   48,  978, 1091,  538,  538,  538,
      538,  538,  538,  539,  540,  540,  540,  540,  540,  540,

      541,   48,  868, 1075,  542, 1088,  543, 1085, 1321,  870,
      542,  542,  542,  542,  542,  542,  592,  522,  522,  522,
      522,  522,  522,  304,  524,  524,  524,  524,  524,  524,
       48,  742,  543,  566,  566,  566,  566,  566,  566, 1060,
      980, 1321,  868,  566,  743, 1321,   48,   48, 1069,  566,
      566,  566,  566,  566,  566,  439,  569,  569,  569,  569,
      569,  569,  570,   48,  784, 1060,  571, 1321,  443,  864,
      743, 1321,  571,  571,  571,  571,  571,  571,  594,  526,
      526,  526,  526,  526,  526, 1321,  597,  597,  597,  597,
      597,  597,  752,   48,  443,  448,  572,  572,  572,  572,

      572,  572,  573,  862,  904,  753,  574, 1321,  452,  369,
       48, 1085,  574,  574,  574,  574,  574,  574,  606,  607,
      607,  607,  607,  607,  610,  611,  611,  611,  611,  611,
      976,  753,   48, 1321,  452,  578,  579,  579,  579,  579,
      579,  579,  580,  913,  924,  897,  581,  369,  582,   48,
     1088, 1091,  581,  581,  581,  581,  581,  581, 1321,  613,
      613,  613,  613,  613,  613, 1321,  516,  516,  516,  516,
      516,  516,   48,   48,  582,  439,  585,  585,  585,  585,
      585,  585,  570,  894, 1321,  369,  586, 1321, 1321,   48,
       48,  891,  586,  586,  586,  586,  586,  586,  587,  588,

      588,  588,  588,  588,  588,  589,  369,  877,  789,  590,
     1321,  591,  888, 1321, 1321,  590,  590,  590,  590,  590,
      590, 1321,  528,  528,  528,  528,  528,  528,  652,  653,
      653,  653,  653,  653,  754,   48,  369,  591,  448,  596,
      596,  596,  596,  596,  596,  573,  999,  755,  369,  597,
      980, 1119,   48,  879,   48,  597,  597,  597,  597,  597,
      597,  598,  599,  599,  599,  599,  599,  599,  600,  980,
      880,   48,  601,  755,  602,  696, 1078, 1119,  601,  601,
      601,  601,  601,  601, 1321,  655,  655,  655,  655,  655,
      655,  660,  661,  661,  661,  661,  661,  862,   48,   48,

      602,  539,  612,  612,  612,  612,  612,  612,  541, 1127,
      863, 1135,  613,  758,  950,   48,   48,  754,  613,  613,
      613,  613,  613,  613,  614,  615,  615,  615,  615,  615,
      787,  873, 1321,  752,  616, 1127,  863, 1135,   48,  864,
      616,  616,  616,  616,  616,  616,  637,  638,  638,  638,
      638,  638,  865,  746,  936,   48,  639, 1216, 1321,   48,
       48, 1094,  639,  639,  639,  639,  639,  639,  439,  515,
      515,  515,  515,  515,  515,  570,   48,   48,  865,  516,
     1245,   48,   48, 1216,  909,  516,  516,  516,  516,  516,
      516,  640,  641,  641,  641,  641,  641,  910,   48,   48,

     1072,  642, 1249, 1253,   48,  938, 1245,  642,  642,  642,
      642,  642,  642,  448,  527,  527,  527,  527,  527,  527,
      573,   48, 1073,  910,  528,   48,   48,   48, 1249, 1253,
      528,  528,  528,  528,  528,  528,  643,  644,  644,  644,
      644,  644,   48,   48,   48, 1074,  645,  742, 1157,  740,
       48,  735,  645,  645,  645,  645,  645,  645,  649,  650,
      650,  650,  650,  650,  369, 1076,  948,   48,  651, 1257,
     1225,   48,   48, 1097,  651,  651,  651,  651,  651,  651,
      578,  654,  654,  654,  654,  654,  654,  580,   48,   48,
     1295,  655, 1226,  926,  731, 1257,  726,  655,  655,  655,

      655,  655,  655,  656,  657,  657,  657,  657,  657,  369,
      997, 1067, 1227,  658, 1303, 1304, 1295, 1162, 1069,  658,
      658,  658,  658,  658,  658,  664,  665,  665,  665,  665,
      665,  587,  666,  666,  666,  666,  666,  666,  589, 1305,
     1303, 1304,  667,  915,   48,   48,   48,  906,  667,  667,
      667,  667,  667,  667,  668,  669,  669,  669,  669,  669,
      369,   48,   48,   48,  670, 1305,  806,  791,  897, 1272,
      670,  670,  670,  670,  670,  670, 1321,  667,  667,  667,
      667,  667,  667,  672,  673,  673,  673,  673,  673,  675,
      676,  676,  676,  676,  676,  679,  680,  680,  680,  680,

      680,  598,  681,  681,  681,  681,  681,  681,  600, 1306,
     1307, 1312,  682, 1318,   48,   48,  894,  891,  682,  682,
      682,  682,  682,  682,  683,  684,  684,  684,  684,  684,
      369,   48,   48,  888,  685, 1306, 1307, 1312,  886, 1318,
      685,  685,  685,  685,  685,  685, 1321,  682,  682,  682,
      682,  682,  682,  604,  604,  604,  604,  604,  604,  688,
      607,  607,  607,  607,  607,  607,  384,  609,  609,  609,
      609,  609,  609,  690,  611,  611,  611,  611,  611,  611,
      539,  692,  692,  692,  692,  692,  692,  541,  791,  694,
      870,  693,  690,  688,  721,  718,  715,  693,  693,  693,

      693,  693,  693, 1321,  693,  693,  693,  693,  693,  693,
      694,  695,  695,  695,  695,  695,  695,  696,   48,   48,
      806,  697,   48,  698,  791,  918,  791,  697,  697,  697,
      697,  697,  697,   48,  541,   48,   48,  598,  919,   48,
      731,  653,  653,  653,  653,  653,  653,  703,  708,  698,
       48,  289,  578,  714,  714,  714,  714,  714,  714,  715,
      760,  594,  592,  716,  919,  582,  881,  587,  748,  716,
      716,  716,  716,  716,  716, 1321,  734,  734,  734,  734,
      734,  734,  740,  661,  661,  661,  661,  661,  661,  583,
      578,  582,  587,  717,  717,  717,  717,  717,  717,  718,

      737,  728,  725,  719,  648,  591,  636,  721,  718,  719,
      719,  719,  719,  719,  719,  439,  663,  663,  663,  663,
      663,  663,  742,  665,  665,  665,  665,  665,  665,  920,
      715,  591,  598,  720,  720,  720,  720,  720,  720,  721,
      713,  636,  921,  722,  539,  602,  696,  535,  533,  722,
      722,  722,  722,  722,  722, 1321,  745,  745,  745,  745,
      745,  745,  673,  673,  673,  673,  673,  673,  921,  573,
      570,  602,  726,  727,  727,  727,  727,  727,  727,  728,
      648,  636,  636,  729,  634,  730,  633,  632,  631,  729,
      729,  729,  729,  729,  729,  752,  676,  676,  676,  676,

      676,  676,  448,  678,  678,  678,  678,  678,  678,   48,
       48,  730,  578,  733,  733,  733,  733,  733,  733,  715,
      630,  629,  628,  734,  627,  626,   48,   48,  625,  734,
      734,  734,  734,  734,  734,  735,  736,  736,  736,  736,
      736,  736,  737,  883, 1224,  624,  738,  623,  739,  622,
      621,  620,  738,  738,  738,  738,  738,  738,  754,  680,
      680,  680,  680,  680,  680, 1321,  757,  757,  757,  757,
      757,  757,   48,  619,  739,  587,  744,  744,  744,  744,
      744,  744,  718,  618,  386,  448,  745,  600,  444,   48,
      439,  589,  745,  745,  745,  745,  745,  745,  746,  747,

      747,  747,  747,  747,  747,  748,  580,  577,  973,  749,
      509,  750,  500,  573,  570,  749,  749,  749,  749,  749,
      749,  764,  765,  765,  765,  765,  765,  767,  768,  768,
      768,  768,  768,   48,  930,   48,  568,  750,  598,  756,
      756,  756,  756,  756,  756,  721,  500,  931,  565,  757,
       48,  564,   48,  563,  562,  757,  757,  757,  757,  757,
      757,  758,  759,  759,  759,  759,  759,  759,  760, 1270,
      561, 1299,  761,  931,  762,  560,  559,  558,  761,  761,
      761,  761,  761,  761,  771,  772,  772,  772,  772,  772,
     1321,  774,  774,  774,  774,  774,  774,  932,   48,   48,

      762,  694,  773,  773,  773,  773,  773,  773,  696,  557,
      933,  556,  774,  555,  554,   48,   48,  553,  774,  774,
      774,  774,  774,  774,  775,  776,  776,  776,  776,  776,
      874,  875,  876,  552,  777,  551,  933,  550,  549,  942,
      777,  777,  777,  777,  777,  777,  792,  793,  793,  793,
      793,  793,  943,  548,  547,  546,  794,  545,  544,  384,
      541,  380,  794,  794,  794,  794,  794,  794,  578,  654,
      654,  654,  654,  654,  654,  715,  434,  509,  943,  655,
       48,  500,  434,  434,  500,  655,  655,  655,  655,  655,
      655,  795,  796,  796,  796,  796,  796,   48,  357,  497,

      496,  797,  495,  494,  493,  492, 1158,  797,  797,  797,
      797,  797,  797, 1321,  655,  655,  655,  655,  655,  655,
      587,  666,  666,  666,  666,  666,  666,  718,  491,  490,
      286,  667,   48,  207,  489,  488,  487,  667,  667,  667,
      667,  667,  667,  798,  799,  799,  799,  799,  799,   48,
      486,  485,  484,  800,  483,  482,  481,  480, 1271,  800,
      800,  800,  800,  800,  800, 1321,  667,  667,  667,  667,
      667,  667,  598,  681,  681,  681,  681,  681,  681,  721,
      479,  478,  475,  682,  472,  471,  470,  469,  468,  682,
      682,  682,  682,  682,  682,  801,  802,  802,  802,  802,

      802,  467,  466,  465,  240,  803,  369,  304,  450,  441,
      369,  803,  803,  803,  803,  803,  803, 1321,  682,  682,
      682,  682,  682,  682,  807,  808,  808,  808,  808,  808,
      369,  438,  366,  360,  809,  434,  432,  360,  427,  426,
      809,  809,  809,  809,  809,  809,  810,  811,  811,  811,
      811,  811,  726,  812,  812,  812,  812,  812,  812,  728,
      425,  424,  423,  813,  422,  421,  420,  419,  418,  813,
      813,  813,  813,  813,  813,  814,  815,  815,  815,  815,
      815,  369,  417,  416,  413,  816,  412,  409,  408,  407,
      406,  816,  816,  816,  816,  816,  816, 1321,  813,  813,

      813,  813,  813,  813,  818,  819,  819,  819,  819,  819,
      822,  823,  823,  823,  823,  823,  735,  824,  824,  824,
      824,  824,  824,  737,  405,  107,  404,  825,  403,  394,
      393,  392,  391,  825,  825,  825,  825,  825,  825,  826,
      827,  827,  827,  827,  827,  369,  390,  389,  238,  828,
      386,  369,  366,  360,  360,  828,  828,  828,  828,  828,
      828, 1321,  825,  825,  825,  825,  825,  825,  830,  831,
      831,  831,  831,  831,  833,  834,  834,  834,  834,  834,
      837,  838,  838,  838,  838,  838,  746,  839,  839,  839,
      839,  839,  839,  748, 1321,  227,  356,  840,  349,  346,

      345,  344,  343,  840,  840,  840,  840,  840,  840,  841,
      842,  842,  842,  842,  842,  369,  342,  341,  340,  843,
      339,  338,  337,  336,  335,  843,  843,  843,  843,  843,
      843, 1321,  840,  840,  840,  840,  840,  840,  846,  847,
      847,  847,  847,  847,  849,  850,  850,  850,  850,  850,
      853,  854,  854,  854,  854,  854,  758,  855,  855,  855,
      855,  855,  855,  760,  334,  333,  332,  856,  331,  330,
      325,  324,  269,  856,  856,  856,  856,  856,  856,  857,
      858,  858,  858,  858,  858,  369,  323,  322,  321,  859,
      320,  319,  318,  306,  236,  859,  859,  859,  859,  859,

      859, 1321,  856,  856,  856,  856,  856,  856,  765,  765,
      765,  765,  765,  765,  862,  768,  768,  768,  768,  768,
      768,  539,  770,  770,  770,  770,  770,  770,  864,  772,
      772,  772,  772,  772,  772,  694,  866,  866,  866,  866,
      866,  866,  696,  303,  233,  230,  867,  300,  129,  294,
      293,  290,  867,  867,  867,  867,  867,  867, 1321,  867,
      867,  867,  867,  867,  867,  868,  869,  869,  869,  869,
      869,  869,  870,  289,  269,  288,  871,  287,  872,  286,
      285,  284,  871,  871,  871,  871,  871,  871,  909,  811,
      811,  811,  811,  811,  811, 1321,  912,  912,  912,  912,

      912,  912,  283,  282,  872,  726,  887,  887,  887,  887,
      887,  887,  888,  281,  280,  279,  889,  278,  730,  277,
      276,  275,  889,  889,  889,  889,  889,  889,  918,  819,
      819,  819,  819,  819,  819,  578,  821,  821,  821,  821,
      821,  821,  274,  271,  730,  735,  890,  890,  890,  890,
      890,  890,  891,  270,  269,  268,  892,  267,  739,  266,
      265,  264,  892,  892,  892,  892,  892,  892,  920,  823,
      823,  823,  823,  823,  823, 1321,  923,  923,  923,  923,
      923,  923,  944,  263,  739,  746,  893,  893,  893,  893,
      893,  893,  894,  262,  261,  945,  895,  260,  750,  259,

      258,  257,  895,  895,  895,  895,  895,  895,  831,  831,
      831,  831,  831,  831,  930,  834,  834,  834,  834,  834,
      834,  945,  256,  255,  750,  758,  896,  896,  896,  896,
      896,  896,  897,  254,  253,  252,  898,  250,  762,  249,
      248,  247,  898,  898,  898,  898,  898,  898,  587,  836,
      836,  836,  836,  836,  836,  932,  838,  838,  838,  838,
      838,  838,  246, 1061,  762,  900,  901,  901,  901,  901,
      901,  902,  245,  244,  243,  903, 1062,  240,   49,  233,
      226,  903,  903,  903,  903,  903,  903,  904,  905,  905,
      905,  905,  905,  905,  906,  225,  224,  223,  907,  222,

      908,  221, 1062,  220,  907,  907,  907,  907,  907,  907,
     1321,  935,  935,  935,  935,  935,  935,  847,  847,  847,
      847,  847,  847, 1063,  219,  218,  908,  726,  911,  911,
      911,  911,  911,  911,  888,  215, 1064,  212,  912,  209,
      208,  207,  206,  203,  912,  912,  912,  912,  912,  912,
      913,  914,  914,  914,  914,  914,  914,  915,  202,  201,
      200,  916, 1064,  917,  199,  198,  197,  916,  916,  916,
      916,  916,  916,  942,  850,  850,  850,  850,  850,  850,
      598,  852,  852,  852,  852,  852,  852,  196,  195,  917,
      735,  922,  922,  922,  922,  922,  922,  891,  194,  193,

      192,  923,  191,  190,  189,  188,  187,  923,  923,  923,
      923,  923,  923,  924,  925,  925,  925,  925,  925,  925,
      926,  186,  176,  175,  927,  174,  928,  171,  170,  169,
      927,  927,  927,  927,  927,  927,  944,  854,  854,  854,
      854,  854,  854, 1321,  947,  947,  947,  947,  947,  947,
      168,  167,  928,  746,  934,  934,  934,  934,  934,  934,
      894,  165,  161,  160,  935,  158,  157,  156,  155,  154,
      935,  935,  935,  935,  935,  935,  936,  937,  937,  937,
      937,  937,  937,  938,  152,  151,  150,  939,  143,  940,
      136,  135,  130,  939,  939,  939,  939,  939,  939,  954,

      955,  955,  955,  955,  955,  957,  958,  958,  958,  958,
      958,   83, 1107,   80,   58,  940,  758,  946,  946,  946,
      946,  946,  946,  897,   47, 1108,   45,  947, 1321, 1321,
     1321, 1321, 1321,  947,  947,  947,  947,  947,  947,  948,
      949,  949,  949,  949,  949,  949,  950, 1321, 1321, 1321,
      951, 1108,  952, 1321, 1321, 1321,  951,  951,  951,  951,
      951,  951,  961,  962,  962,  962,  962,  962, 1321,  964,
      964,  964,  964,  964,  964, 1112, 1321, 1321,  952,  868,
      963,  963,  963,  963,  963,  963,  870, 1321, 1113, 1321,
      964, 1321, 1321, 1321, 1321, 1321,  964,  964,  964,  964,

      964,  964,  965,  966,  966,  966,  966,  966,   48,   48,
       48,   48,  967,   48, 1113,   48, 1321, 1321,  967,  967,
      967,  967,  967,  967,   48,   48,   48,   48,   48, 1321,
       48, 1321,   48, 1321, 1321, 1321,  969,  970,  971, 1321,
     1114,   48,  972, 1077,  975,  981,  982,  982,  982,  982,
      982, 1321, 1321, 1115, 1321,  983, 1079, 1321, 1321, 1321,
     1321,  983,  983,  983,  983,  983,  983,  726,  812,  812,
      812,  812,  812,  812,  888, 1321, 1321, 1321,  813, 1115,
     1321, 1321, 1321, 1321,  813,  813,  813,  813,  813,  813,
      984,  985,  985,  985,  985,  985, 1321, 1321, 1321, 1321,

      986, 1321, 1321, 1321, 1321, 1321,  986,  986,  986,  986,
      986,  986, 1321,  813,  813,  813,  813,  813,  813,  735,
      824,  824,  824,  824,  824,  824,  891, 1321, 1321, 1321,
      825, 1321, 1321, 1321, 1321, 1321,  825,  825,  825,  825,
      825,  825,  987,  988,  988,  988,  988,  988, 1321, 1321,
     1321, 1321,  989, 1321, 1321, 1321, 1321, 1321,  989,  989,
      989,  989,  989,  989, 1321,  825,  825,  825,  825,  825,
      825,  746,  839,  839,  839,  839,  839,  839,  894, 1321,
     1321, 1321,  840, 1321, 1321, 1321, 1321, 1321,  840,  840,
      840,  840,  840,  840,  990,  991,  991,  991,  991,  991,

     1321, 1321, 1321, 1321,  992, 1321, 1321, 1321, 1321, 1321,
      992,  992,  992,  992,  992,  992, 1321,  840,  840,  840,
      840,  840,  840,  758,  855,  855,  855,  855,  855,  855,
      897, 1321, 1321, 1321,  856, 1321, 1321, 1321, 1321, 1321,
      856,  856,  856,  856,  856,  856,  993,  994,  994,  994,
      994,  994, 1321, 1321, 1321, 1321,  995, 1321, 1321, 1321,
     1321, 1321,  995,  995,  995,  995,  995,  995, 1321,  856,
      856,  856,  856,  856,  856,  997,  998,  998,  998,  998,
      998,  998,  999, 1321, 1321, 1321, 1000, 1321, 1001, 1321,
     1321, 1321, 1000, 1000, 1000, 1000, 1000, 1000, 1003, 1004,

     1004, 1004, 1004, 1004, 1321, 1006, 1006, 1006, 1006, 1006,
     1006, 1321, 1321, 1321, 1001,  904, 1005, 1005, 1005, 1005,
     1005, 1005,  906, 1321, 1321, 1321, 1006, 1321, 1321, 1321,
     1321, 1321, 1006, 1006, 1006, 1006, 1006, 1006, 1009, 1010,
     1010, 1010, 1010, 1010, 1013, 1014, 1014, 1014, 1014, 1014,
      913, 1015, 1015, 1015, 1015, 1015, 1015,  915, 1321, 1321,
     1321, 1016, 1321, 1321, 1321, 1321, 1321, 1016, 1016, 1016,
     1016, 1016, 1016, 1321, 1016, 1016, 1016, 1016, 1016, 1016,
     1019, 1020, 1020, 1020, 1020, 1020, 1022, 1023, 1023, 1023,
     1023, 1023, 1026, 1027, 1027, 1027, 1027, 1027,  924, 1028,

     1028, 1028, 1028, 1028, 1028,  926, 1321, 1321, 1321, 1029,
     1321, 1321, 1321, 1321, 1321, 1029, 1029, 1029, 1029, 1029,
     1029, 1321, 1029, 1029, 1029, 1029, 1029, 1029, 1033, 1034,
     1034, 1034, 1034, 1034, 1036, 1037, 1037, 1037, 1037, 1037,
     1040, 1041, 1041, 1041, 1041, 1041,  936, 1042, 1042, 1042,
     1042, 1042, 1042,  938, 1321, 1321, 1321, 1043, 1321, 1321,
     1321, 1321, 1321, 1043, 1043, 1043, 1043, 1043, 1043, 1321,
     1043, 1043, 1043, 1043, 1043, 1043, 1047, 1048, 1048, 1048,
     1048, 1048, 1050, 1051, 1051, 1051, 1051, 1051, 1054, 1055,
     1055, 1055, 1055, 1055,  948, 1056, 1056, 1056, 1056, 1056,

     1056,  950, 1321, 1321, 1321, 1057, 1321, 1321, 1321, 1321,
     1321, 1057, 1057, 1057, 1057, 1057, 1057, 1321, 1057, 1057,
     1057, 1057, 1057, 1057,  955,  955,  955,  955,  955,  955,
     1061,  958,  958,  958,  958,  958,  958,  694,  960,  960,
      960,  960,  960,  960, 1063,  962,  962,  962,  962,  962,
      962,  868, 1065, 1065, 1065, 1065, 1065, 1065,  870, 1321,
     1321, 1321, 1066, 1321, 1321, 1321, 1321, 1321, 1066, 1066,
     1066, 1066, 1066, 1066, 1321, 1066, 1066, 1066, 1066, 1066,
     1066, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1069, 1321,
     1321, 1321, 1070, 1321, 1071, 1321, 1321, 1321, 1070, 1070,

     1070, 1070, 1070, 1070, 1099, 1100, 1100, 1100, 1100, 1100,
     1321, 1102, 1102, 1102, 1102, 1102, 1102, 1321, 1321, 1120,
     1071, 1080, 1081, 1081, 1081, 1081, 1081, 1082, 1321, 1321,
     1321, 1083, 1121, 1321, 1321, 1321, 1321, 1083, 1083, 1083,
     1083, 1083, 1083,  904, 1084, 1084, 1084, 1084, 1084, 1084,
     1085, 1321, 1321, 1321, 1086, 1321,  908, 1321, 1121, 1321,
     1086, 1086, 1086, 1086, 1086, 1086, 1107, 1004, 1004, 1004,
     1004, 1004, 1004, 1321, 1110, 1110, 1110, 1110, 1110, 1110,
     1321, 1321,  908,  913, 1087, 1087, 1087, 1087, 1087, 1087,
     1088, 1321, 1321, 1321, 1089, 1321,  917, 1321, 1321, 1321,

     1089, 1089, 1089, 1089, 1089, 1089, 1112, 1010, 1010, 1010,
     1010, 1010, 1010,  726, 1012, 1012, 1012, 1012, 1012, 1012,
     1321, 1321,  917,  924, 1090, 1090, 1090, 1090, 1090, 1090,
     1091, 1321, 1321, 1321, 1092, 1321,  928, 1321, 1321, 1321,
     1092, 1092, 1092, 1092, 1092, 1092, 1114, 1014, 1014, 1014,
     1014, 1014, 1014, 1321, 1117, 1117, 1117, 1117, 1117, 1117,
     1122, 1321,  928,  936, 1093, 1093, 1093, 1093, 1093, 1093,
     1094, 1321, 1321, 1123, 1095, 1321,  940, 1321, 1321, 1321,
     1095, 1095, 1095, 1095, 1095, 1095, 1020, 1020, 1020, 1020,
     1020, 1020, 1120, 1023, 1023, 1023, 1023, 1023, 1023, 1123,

     1321, 1321,  940,  948, 1096, 1096, 1096, 1096, 1096, 1096,
     1097, 1321, 1321, 1321, 1098, 1321,  952, 1321, 1321, 1321,
     1098, 1098, 1098, 1098, 1098, 1098,  735, 1025, 1025, 1025,
     1025, 1025, 1025, 1122, 1027, 1027, 1027, 1027, 1027, 1027,
     1128, 1321,  952,  997, 1101, 1101, 1101, 1101, 1101, 1101,
      999, 1321, 1321, 1129, 1102, 1321, 1321, 1321, 1321, 1321,
     1102, 1102, 1102, 1102, 1102, 1102,  904, 1109, 1109, 1109,
     1109, 1109, 1109, 1085, 1321, 1321, 1321, 1110, 1321, 1129,
     1321, 1321, 1321, 1110, 1110, 1110, 1110, 1110, 1110,  913,
     1116, 1116, 1116, 1116, 1116, 1116, 1088, 1321, 1321, 1321,

     1117, 1321, 1321, 1321, 1321, 1321, 1117, 1117, 1117, 1117,
     1117, 1117,  924, 1124, 1124, 1124, 1124, 1124, 1124, 1091,
     1321, 1321, 1321, 1125, 1321, 1321, 1321, 1321, 1321, 1125,
     1125, 1125, 1125, 1125, 1125, 1321, 1125, 1125, 1125, 1125,
     1125, 1125, 1034, 1034, 1034, 1034, 1034, 1034, 1128, 1037,
     1037, 1037, 1037, 1037, 1037,  746, 1039, 1039, 1039, 1039,
     1039, 1039, 1130, 1130, 1041, 1041, 1041, 1041, 1041, 1041,
     1321, 1321, 1321, 1321, 1321, 1131, 1321, 1133, 1133, 1133,
     1133, 1133, 1133, 1048, 1048, 1048, 1048, 1048, 1048, 1136,
     1051, 1051, 1051, 1051, 1051, 1051, 1321, 1136, 1138, 1321,

     1321, 1131,  936, 1132, 1132, 1132, 1132, 1132, 1132, 1094,
     1137, 1139, 1321, 1133, 1321, 1321, 1321, 1321, 1321, 1133,
     1133, 1133, 1133, 1133, 1133,  758, 1053, 1053, 1053, 1053,
     1053, 1053, 1321, 1321, 1321, 1321, 1137, 1139, 1138, 1055,
     1055, 1055, 1055, 1055, 1055,  948, 1140, 1140, 1140, 1140,
     1140, 1140, 1097, 1321, 1321, 1321, 1141, 1321, 1321, 1321,
     1321, 1321, 1141, 1141, 1141, 1141, 1141, 1141, 1321, 1141,
     1141, 1141, 1141, 1141, 1141, 1144, 1145, 1145, 1145, 1145,
     1145, 1147, 1148, 1148, 1148, 1148, 1148, 1151, 1152, 1152,
     1152, 1152, 1152, 1067, 1153, 1153, 1153, 1153, 1153, 1153,

     1069, 1321, 1321, 1321, 1154, 1321,   48,   48, 1321, 1321,
     1154, 1154, 1154, 1154, 1154, 1154, 1321, 1154, 1154, 1154,
     1154, 1154, 1154,   48,   48, 1321, 1006, 1006, 1006, 1006,
     1006, 1006, 1321, 1321, 1321, 1160, 1159,  997, 1161, 1161,
     1161, 1161, 1161, 1161, 1162, 1321, 1321, 1321, 1163, 1321,
     1001, 1321, 1321, 1321, 1163, 1163, 1163, 1163, 1163, 1163,
     1321, 1016, 1016, 1016, 1016, 1016, 1016, 1321, 1029, 1029,
     1029, 1029, 1029, 1029, 1170, 1321, 1001,  904, 1005, 1005,
     1005, 1005, 1005, 1005, 1085, 1321, 1321, 1171, 1006, 1321,
     1321, 1321, 1321, 1321, 1006, 1006, 1006, 1006, 1006, 1006,

      913, 1015, 1015, 1015, 1015, 1015, 1015, 1088, 1321, 1321,
     1321, 1016, 1321, 1171, 1321, 1321, 1321, 1016, 1016, 1016,
     1016, 1016, 1016,  924, 1028, 1028, 1028, 1028, 1028, 1028,
     1091, 1321, 1321, 1321, 1029, 1321, 1321, 1321, 1321, 1321,
     1029, 1029, 1029, 1029, 1029, 1029,  936, 1042, 1042, 1042,
     1042, 1042, 1042, 1094, 1321, 1321, 1321, 1043, 1321, 1321,
     1321, 1321, 1321, 1043, 1043, 1043, 1043, 1043, 1043, 1321,
     1043, 1043, 1043, 1043, 1043, 1043,  948, 1056, 1056, 1056,
     1056, 1056, 1056, 1097, 1321, 1321, 1321, 1057, 1321, 1321,
     1321, 1321, 1321, 1057, 1057, 1057, 1057, 1057, 1057, 1321,

     1057, 1057, 1057, 1057, 1057, 1057, 1170, 1100, 1100, 1100,
     1100, 1100, 1100,  997, 1172, 1172, 1172, 1172, 1172, 1172,
     1162, 1321, 1321, 1321, 1173, 1321, 1321, 1321, 1321, 1321,
     1173, 1173, 1173, 1173, 1173, 1173, 1321, 1173, 1173, 1173,
     1173, 1173, 1173, 1176, 1177, 1177, 1177, 1177, 1177, 1181,
     1182, 1182, 1182, 1182, 1182, 1184, 1185, 1185, 1185, 1185,
     1185, 1190, 1191, 1191, 1191, 1191, 1191, 1193, 1194, 1194,
     1194, 1194, 1194, 1199, 1200, 1200, 1200, 1200, 1200, 1202,
     1203, 1203, 1203, 1203, 1203, 1208, 1209, 1209, 1209, 1209,
     1209, 1211, 1212, 1212, 1212, 1212, 1212, 1145, 1145, 1145,

     1145, 1145, 1145, 1217, 1217, 1148, 1148, 1148, 1148, 1148,
     1148, 1219, 1321, 1321, 1321, 1321, 1218,  868, 1150, 1150,
     1150, 1150, 1150, 1150, 1220, 1219, 1152, 1152, 1152, 1152,
     1152, 1152, 1321, 1222, 1222, 1222, 1222, 1222, 1222, 1321,
     1321, 1321, 1218, 1321, 1102, 1102, 1102, 1102, 1102, 1102,
     1220, 1067, 1221, 1221, 1221, 1221, 1221, 1221, 1069, 1321,
     1321, 1321, 1222, 1321, 1321, 1321, 1321, 1321, 1222, 1222,
     1222, 1222, 1222, 1222,  997, 1101, 1101, 1101, 1101, 1101,
     1101, 1162, 1321, 1321, 1321, 1102, 1321, 1321, 1321, 1321,
     1242, 1102, 1102, 1102, 1102, 1102, 1102, 1236, 1237, 1237,

     1237, 1237, 1237, 1243, 1242, 1177, 1177, 1177, 1177, 1177,
     1177,  904, 1179, 1179, 1179, 1179, 1179, 1179, 1182, 1182,
     1182, 1182, 1182, 1182, 1246, 1321, 1321, 1321, 1321, 1243,
     1246, 1185, 1185, 1185, 1185, 1185, 1185, 1247,  913, 1187,
     1187, 1187, 1187, 1187, 1187, 1191, 1191, 1191, 1191, 1191,
     1191, 1250, 1250, 1194, 1194, 1194, 1194, 1194, 1194, 1321,
     1321, 1321, 1321, 1247, 1251,  924, 1196, 1196, 1196, 1196,
     1196, 1196, 1200, 1200, 1200, 1200, 1200, 1200, 1254, 1254,
     1203, 1203, 1203, 1203, 1203, 1203, 1321, 1321, 1321, 1321,
     1251, 1255,  936, 1205, 1205, 1205, 1205, 1205, 1205, 1209,

     1209, 1209, 1209, 1209, 1209, 1258, 1258, 1212, 1212, 1212,
     1212, 1212, 1212, 1321, 1321, 1321, 1321, 1255, 1259,  948,
     1214, 1214, 1214, 1214, 1214, 1214, 1262, 1263, 1263, 1263,
     1263, 1263, 1265, 1266, 1266, 1266, 1266, 1266, 1274, 1321,
     1321, 1321, 1321, 1321, 1259, 1276, 1277, 1277, 1277, 1277,
     1277, 1275, 1274, 1237, 1237, 1237, 1237, 1237, 1237,  997,
     1239, 1239, 1239, 1239, 1239, 1239, 1280, 1281, 1281, 1281,
     1281, 1281, 1321, 1321, 1321, 1321, 1321, 1275, 1284, 1285,
     1285, 1285, 1285, 1285, 1288, 1289, 1289, 1289, 1289, 1289,
     1292, 1293, 1293, 1293, 1293, 1293, 1263, 1263, 1263, 1263,

     1263, 1263, 1296, 1296, 1266, 1266, 1266, 1266, 1266, 1266,
     1321, 1321, 1321, 1321, 1321, 1297, 1067, 1268, 1268, 1268,
     1268, 1268, 1268, 1300, 1301, 1301, 1301, 1301, 1301, 1277,
     1277, 1277, 1277, 1277, 1277, 1281, 1281, 1281, 1281, 1281,
     1281, 1297, 1285, 1285, 1285, 1285, 1285, 1285, 1289, 1289,
     1289, 1289, 1289, 1289, 1293, 1293, 1293, 1293, 1293, 1293,
     1309, 1310, 1310, 1310, 1310, 1310, 1301, 1301, 1301, 1301,
     1301, 1301, 1310, 1310, 1310, 1310, 1310, 1310,   46, 1321,
     1321, 1321, 1321,   46,   46,   46,   62, 1321,   62,   62,
       62,   62,   62,   62,   62,  137, 1321,  137,  142,  142,

      142,  232,  232,  232,  241,  241,  241,  299,  299,  299,
      301,  301,  301,  302,  302,  302,  309,  309,  309,  307,
      307,  307,  317, 1321,  317,  359,  359,  359,  364,  364,
      364,  365,  365,  365,  378, 1321,  378,  379,  379,  379,
      311,  311, 1321, 1321,  311,  387,  387,  387,  431,  431,
      431,  435,  435,  435,  436,  436,  436,  437,  437,  437,
      442,  442,  442,  372,  372, 1321, 1321,  372,  451,  451,
      451,  455, 1321,  455,  456,  456,  456,  464, 1321,  464,
      499,  499,  499,  507,  507,  507,  508,  508,  508,  520,
     1321,  520,  523, 1321,  523,  524,  524,  524,  532, 1321,

      532,  454,  454, 1321, 1321,  454,  458,  458, 1321, 1321,
      458,  542,  542,  542,  436,  436,  436,  567,  567,  567,
      571,  571,  571,  574,  574,  574,  575,  575,  575,  576,
      576,  576,  581,  581,  581,  514,  514, 1321, 1321,  514,
      590,  590,  590,  522,  522, 1321, 1321,  522,  526,  526,
     1321, 1321,  526,  601,  601,  601,  605, 1321,  605,  608,
     1321,  608,  609,  609,  609,  617, 1321,  617,  635,  635,
      635,  646,  646,  646,  647,  647,  647,  659, 1321,  659,
      662, 1321,  662,  663,  663,  663,  671, 1321,  671,  674,
     1321,  674,  677, 1321,  677,  678,  678,  678,  686, 1321,

      686,  604, 1321, 1321,  604,  607,  607, 1321, 1321,  607,
      608,  608, 1321,  608,  611,  611, 1321, 1321,  611,  697,
      697,  697,  617,  617, 1321,  617,   53,   53,   53, 1321,
       53,   53,  575,  575,  575,  712,  712,  712,  716,  716,
      716,  719,  719,  719,  722,  722,  722,  723,  723,  723,
      724,  724,  724,  729,  729,  729,  653,  653, 1321, 1321,
      653,  738,  738,  738,  659,  659, 1321,  659,  661,  661,
     1321, 1321,  661,  662,  662, 1321,  662,  665,  665, 1321,
     1321,  665,  749,  749,  749,  671,  671, 1321,  671,  673,
     1321, 1321,  673,  674,  674, 1321,  674,  676,  676, 1321,

     1321,  676,  677,  677, 1321,  677,  680,  680, 1321, 1321,
      680,  761,  761,  761,  686,  686, 1321,  686,  763, 1321,
      763,  766, 1321,  766,  769, 1321,  769,  770,  770,  770,
      778, 1321,  778,   53,   53,   53, 1321,   53,   53,  790,
      790,  790,  804,  804,  804,  805,  805,  805,  817, 1321,
      817,  820, 1321,  820,  821,  821,  821,  829, 1321,  829,
      832, 1321,  832,  835, 1321,  835,  836,  836,  836,  844,
     1321,  844,  845, 1321,  845,  848, 1321,  848,  851, 1321,
      851,  852,  852,  852,  860, 1321,  860,  763, 1321,  763,
      765, 1321, 1321,  765,  766,  766, 1321,  766,  768,  768,

     1321, 1321,  768,  769,  769, 1321,  769,  772,  772, 1321,
     1321,  772,  871,  871,  871,  778,  778, 1321,  778,   53,
       53,   53, 1321,   53,   53,  723,  723,  723,  885,  885,
      885,  889,  889,  889,  892,  892,  892,  895,  895,  895,
      898,  898,  898,  899,  899,  899,  907,  907,  907,  811,
      811, 1321, 1321,  811,  916,  916,  916,  817,  817, 1321,
      817,  819,  819, 1321, 1321,  819,  820,  820, 1321,  820,
      823,  823, 1321, 1321,  823,  927,  927,  927,  829,  829,
     1321,  829,  831, 1321, 1321,  831,  832,  832, 1321,  832,
      834,  834, 1321, 1321,  834,  835,  835, 1321,  835,  838,

      838, 1321, 1321,  838,  939,  939,  939,  844,  844, 1321,
      844,  845, 1321,  845,  847, 1321, 1321,  847,  848,  848,
     1321,  848,  850,  850, 1321, 1321,  850,  851,  851, 1321,
      851,  854,  854, 1321, 1321,  854,  951,  951,  951,  860,
      860, 1321,  860,  953, 1321,  953,  956, 1321,  956,  959,
     1321,  959,  960,  960,  960,  968, 1321,  968,   53,   53,
       53, 1321,   53,   53,  979,  979,  979,  996,  996,  996,
     1002, 1002, 1002, 1000, 1000, 1000, 1007, 1007, 1007, 1008,
     1321, 1008, 1011, 1321, 1011, 1012, 1012, 1012, 1017, 1017,
     1017, 1018, 1321, 1018, 1021, 1321, 1021, 1024, 1321, 1024,

     1025, 1025, 1025, 1030, 1030, 1030, 1031, 1321, 1031, 1032,
     1321, 1032, 1035, 1321, 1035, 1038, 1321, 1038, 1039, 1039,
     1039, 1044, 1044, 1044, 1045, 1321, 1045, 1046, 1321, 1046,
     1049, 1321, 1049, 1052, 1321, 1052, 1053, 1053, 1053, 1058,
     1058, 1058, 1059, 1321, 1059,  953, 1321,  953,  955, 1321,
     1321,  955,  956,  956, 1321,  956,  958,  958, 1321, 1321,
      958,  959,  959, 1321,  959,  962,  962, 1321, 1321,  962,
     1070, 1070, 1070,  968,  968, 1321,  968,   53,   53,   53,
     1321,   53,   53,  899,  899,  899, 1086, 1086, 1086, 1089,
     1089, 1089, 1092, 1092, 1092, 1095, 1095, 1095, 1098, 1098,

     1098, 1103, 1103, 1103, 1105, 1321, 1105, 1106, 1106, 1106,
     1004, 1004, 1321, 1321, 1004, 1111, 1111, 1111, 1008, 1008,
     1321, 1008, 1010, 1010, 1321, 1321, 1010, 1011, 1011, 1321,
     1011, 1014, 1014, 1321, 1321, 1014, 1118, 1118, 1118, 1018,
     1018, 1321, 1018, 1020, 1321, 1321, 1020, 1021, 1021, 1321,
     1021, 1023, 1023, 1321, 1321, 1023, 1024, 1024, 1321, 1024,
     1027, 1027, 1321, 1321, 1027, 1126, 1126, 1126, 1031, 1031,
     1321, 1031, 1032, 1321, 1032, 1034, 1321, 1321, 1034, 1035,
     1035, 1321, 1035, 1037, 1037, 1321, 1321, 1037, 1038, 1038,
     1321, 1038, 1041, 1041, 1321, 1321, 1041, 1134, 1134, 1134,

     1045, 1045, 1321, 1045, 1046, 1321, 1046, 1048, 1321, 1321,
     1048, 1049, 1049, 1321, 1049, 1051, 1051, 1321, 1321, 1051,
     1052, 1052, 1321, 1052, 1055, 1055, 1321, 1321, 1055, 1142,
     1142, 1142, 1059, 1059, 1321, 1059, 1143, 1321, 1143, 1146,
     1321, 1146, 1149, 1321, 1149, 1150, 1150, 1150, 1155, 1321,
     1155, 1156, 1321, 1156,   53,   53,   53, 1321,   53,   53,
     1164, 1321, 1164, 1163, 1163, 1163, 1165, 1321, 1165, 1166,
     1321, 1166, 1167, 1321, 1167, 1168, 1321, 1168, 1169, 1321,
     1169, 1100, 1100, 1321, 1321, 1100, 1174, 1174, 1174,  309,
      309,  309, 1105, 1105, 1321, 1105, 1175, 1175, 1175, 1178,

     1321, 1178, 1179, 1179, 1179, 1180, 1180, 1180, 1183, 1321,
     1183, 1186, 1321, 1186, 1187, 1187, 1187, 1188, 1188, 1188,
     1189, 1321, 1189, 1192, 1321, 1192, 1195, 1321, 1195, 1196,
     1196, 1196, 1197, 1197, 1197, 1198, 1321, 1198, 1201, 1321,
     1201, 1204, 1321, 1204, 1205, 1205, 1205, 1206, 1206, 1206,
     1207, 1321, 1207, 1210, 1321, 1210, 1213, 1321, 1213, 1214,
     1214, 1214, 1215, 1215, 1215, 1143, 1321, 1143, 1145, 1321,
     1321, 1145, 1146, 1146, 1321, 1146, 1148, 1148, 1321, 1321,
     1148, 1149, 1149, 1321, 1149, 1152, 1152, 1321, 1321, 1152,
     1223, 1321, 1223, 1156, 1156, 1321, 1156,   53,   53,   53,

     1321,   53,   53, 1228, 1228, 1228, 1230, 1321, 1230, 1231,
     1321, 1231, 1232, 1321, 1232, 1233, 1321, 1233, 1234, 1321,
     1234, 1235, 1321, 1235, 1238, 1321, 1238, 1239, 1239, 1239,
     1240, 1240, 1240, 1241, 1321, 1241, 1177, 1177, 1321, 1321,
     1177, 1178, 1178, 1321, 1178, 1244, 1321, 1244, 1182, 1321,
     1321, 1182, 1183, 1183, 1321, 1183, 1185, 1185, 1321, 1321,
     1185, 1186, 1186, 1321, 1186, 1248, 1321, 1248, 1189, 1321,
     1189, 1191, 1321, 1321, 1191, 1192, 1192, 1321, 1192, 1194,
     1194, 1321, 1321, 1194, 1195, 1195, 1321, 1195, 1252, 1321,
     1252, 1198, 1321, 1198, 1200, 1321, 1321, 1200, 1201, 1201,

     1321, 1201, 1203, 1203, 1321, 1321, 1203, 1204, 1204, 1321,
     1204, 1256, 1321, 1256, 1207, 1321, 1207, 1209, 1321, 1321,
     1209, 1210, 1210, 1321, 1210, 1212, 1212, 1321, 1321, 1212,
     1213, 1213, 1321, 1213, 1260, 1321, 1260, 1261, 1321, 1261,
     1264, 1321, 1264, 1267, 1321, 1267, 1268, 1268, 1268, 1269,
     1321, 1269,   53,   53,   53, 1321,   53,   53, 1273, 1321,
     1273, 1175, 1321, 1175, 1180, 1321, 1180, 1188, 1321, 1188,
     1197, 1321, 1197, 1206, 1321, 1206, 1215, 1321, 1215, 1237,
     1237, 1321, 1321, 1237, 1238, 1238, 1321, 1238, 1229, 1321,
     1229, 1278, 1321, 1278, 1279, 1321, 1279, 1282, 1321, 1282,

     1283, 1321, 1283, 1286, 1321, 1286, 1287, 1321, 1287, 1290,
     1321, 1290, 1291, 1321, 1291, 1294, 1321, 1294, 1263, 1321,
     1321, 1263, 1266, 1266, 1321, 1321, 1266, 1298, 1321, 1298,
     1240, 1321, 1240, 1302, 1321, 1302, 1277, 1321, 1321, 1277,
     1281, 1321, 1321, 1281, 1285, 1321, 1321, 1285, 1289, 1321,
     1321, 1289, 1293, 1321, 1321, 1293, 1308, 1321, 1308, 1311,
     1321, 1311, 1301, 1321, 1321, 1301, 1313, 1321, 1313, 1314,
     1321, 1314, 1315, 1321, 1315, 1316, 1321, 1316, 1317, 1321,
     1317, 1310, 1321, 1321, 1310, 1319, 1321, 1319, 1320, 1321,
     1320,    3, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,

     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321
    } ;

static yyconst short int yy_chk[6645] =
    {   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,   90,    4,    7,    4,    7,    9,
        4,    7,    9,   12,    9,   24,   12,    9,   12,    4,
        7,   12,   15,   17,   17, 1311,    9,    4,    7,   24,
       12,   19,   19,   64,    9,   64,   24,   90,   12,   14,
       14,   14,   14,   14,   14,   14,   14,   14,   15,   27,

       27,   14,   14,   14, 1302, 1294,   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,   29,   86,   16,
       23,   34,  166,   86, 1290,   23,  166,   22,   16,   23,
       22,   23,   22,   29,   39,   22,   16,   20,   20,   20,
       20,   20,   20,   20,   22,   26,   25,   33,   39,   25,
       20,   33,   22,   25,   95,   26,   35,   38,   26,   95,
       33,   33,  139,   38,  287,   38,   33,   38,   35,  287,
       35,   38,   35,   38,   38,   35,   20,   21,   21,   21,

       21,   21,   21,   21,   94,   32,   32,   21,  139, 1286,
       94, 1282,   69,   21,   21,   21,   21,   21,   21,   31,
       32,   75,   31,   31,   32,   31,   69,   31,   32,   31,
       32,   31,   37,   36,   31,   75,   37,   32,   36,   36,
       41,   36,   36,   80,   37, 1278, 1267,  121,   41,   37,
       44,   37,   41,   44,   41,   44,   80,   78,   44,   49,
       49,   49,   49,   49,   49,  121,  146,   44,   52,   52,
       52,   52,   52,   52,   52,   44,   50,   50,   50,   50,
       50,   50,   50,   78,  220,  235, 1264,   50, 1238,   78,
     1222, 1213,  146,   50,   50,   50,   50,   50,   50,   54,

       54,   54,   54,   54,   54,   61,  618,  220,   61,   54,
       61,  235,  116,   61,   91,   54,   54,   54,   54,   54,
       54,   55,   61,  618,   55,  116,   55,  626, 1210,   55,
       61,  125,   55,   55,   55,   55,   55,   55,   55, 1204,
       91,  125,   55, 1201,  626,   91,   55,  626,   55,   55,
       55,   55,   55,   55,   63,   63,   63,   63,   63,   63,
       63,  123,  141,  141,  141,  141,  141,  141,  141,  191,
      123,  153,  153,  153,  153,  153,  153,  153,  382,  446,
     1195, 1192,  191, 1186, 1183,  382,  446,   63,  138,  138,
      138,  138,  138,  138,  138,  227,  227,  227,  227,  227,

      227,  138,  238,  238,  238,  238,  238,  238,  241,  241,
      241,  241,  241,  241,  241,  296,  304,  304,  304,  304,
      304,  304,  310,  627,  340,  343, 1178,  138,  140,  140,
      140,  140,  140,  140,  140,  310,  315,  340,  140,  343,
      627,  296,  631,  627,  140,  140,  140,  140,  140,  140,
      143,  143,  143,  143,  143,  143,  143,  537,  362,  631,
      143,  310,  315,  629,  537, 1174,  143,  143,  143,  143,
      143,  143,  145,  145,  145,  145,  145,  145,  145,  145,
      629,  629,  291,  145,  362,  145, 1173,  291,  258,  145,
      145,  145,  145,  145,  145,  258,  291,  368,  291,  291,

     1162,  291,  357,  357,  357,  357,  357,  357,  258,  371,
      399,  145,  159,  159,  159,  159,  159,  159,  159,  399,
     1156, 1149,  371,  368,  258,  307,  307,  307,  307,  307,
      307,  307,  311,  311,  311,  311,  311,  311,  311, 1146,
      401,  159,  228,  228,  228,  228,  228,  228,  371,  401,
      585, 1142,  228, 1141,  376,  429,  462,  585,  228,  228,
      228,  228,  228,  228,  229,  229,  229,  229,  229,  229,
      229,  229,  234,  234,  234,  234,  234,  234,  234,  234,
      376,  429,  462,  234,  502,  234, 1134, 1133, 1126,  234,
      234,  234,  234,  234,  234,  313,  313,  313,  313,  313,

      313,  313,  372,  372,  372,  372,  372,  372,  372,  453,
      502,  234,  239,  239,  239,  239,  239,  239,  239,  239,
      505,  511,  453,  239,  518, 1125,  632,  699, 1118,  239,
      239,  239,  239,  239,  239,  240,  240,  240,  240,  240,
      240, 1117,  596,  632,  699,  240,  505,  511,  453,  596,
      518,  240,  240,  240,  240,  240,  240,  295,  295,  295,
      295,  295,  295,  295,  380,  380,  380,  380,  380,  380,
      295,  374,  374,  374,  374,  374,  374,  374,  384,  384,
      384,  384,  384,  384,  387,  387,  387,  387,  387,  387,
      387,  457,  513,  521,  711,  525,  295,  300,  300,  300,

      300,  300,  300,  692,  457,  513,  521,  300,  525,  619,
      692,  711, 1111,  300,  300,  300,  300,  300,  300,  303,
      303,  303,  303,  303,  303,  303,  619,  530,  603,  303,
      457,  513,  521,  619,  525,  303,  303,  303,  303,  303,
      303,  305,  305,  305,  305,  305,  305,  305,  305,  615,
      733, 1110,  305,  530,  603,  625,  630,  733,  305,  305,
      305,  305,  305,  305,  306,  306,  306,  306,  306,  306,
      306,  744,  625,  630,  306,  615,  630,  625,  744,  700,
      306,  306,  306,  306,  306,  306,  312,  312,  312,  312,
      312,  312,  312,  312, 1106,  638,  700,  312,  641,  644,

      789,  700, 1105,  312,  312,  312,  312,  312,  312,  314,
      314,  314,  314,  314,  314,  314,  314,  789, 1104,  650,
      314,  638,  314, 1103,  641,  644,  314,  314,  314,  314,
      314,  314,  439,  439,  439,  439,  439,  439,  442,  442,
      442,  442,  442,  442,  442,  650,  657,  756,  314,  326,
      669,  672,  684,  326,  756, 1083,  326,  701,  606,  326,
      610,  326,  326,  326,  326,  358,  358,  358,  358,  358,
      358,  606,  657,  610,  701,  358,  669,  672,  684,  701,
     1066,  358,  358,  358,  358,  358,  358,  361,  361,  361,
      361,  361,  361,  361,  361,  866,  911,  606,  361,  610,

      361, 1059,  866,  911,  361,  361,  361,  361,  361,  361,
      444,  444,  444,  444,  444,  444,  448,  448,  448,  448,
      448,  448,  709, 1058,  876, 1052,  361,  367,  367,  367,
      367,  367,  367,  367,  367, 1049,  922, 1045,  367,  709,
      367,  876,  709,  922,  367,  367,  367,  367,  367,  367,
      451,  451,  451,  451,  451,  451,  451,  454,  454,  454,
      454,  454,  454,  454,  620,  621,  367,  373,  373,  373,
      373,  373,  373,  373,  373, 1044,  764, 1038,  373, 1035,
      776,  620,  621,  702,  373,  373,  373,  373,  373,  373,
      375,  375,  375,  375,  375,  375,  375,  375,  620,  621,

      702,  375,  764,  375, 1031,  702,  776,  375,  375,  375,
      375,  375,  375,  456,  456,  456,  456,  456,  456,  456,
      458,  458,  458,  458,  458,  458,  458,  622,  624,  375,
      385,  385,  385,  385,  385,  385,  385,  385, 1030,  934,
      793,  385,  704,  706,  622,  624,  934,  385,  385,  385,
      385,  385,  385,  386,  386,  386,  386,  386,  386,  704,
      706,  622,  624,  386,  704,  706,  793, 1024, 1021,  386,
      386,  386,  386,  386,  386,  428,  428,  428,  428,  428,
      428,  533,  533,  533,  533,  533,  533,  428,  460,  460,
      460,  460,  460,  460,  460,  514,  514,  514,  514,  514,

      514,  514,  516,  516,  516,  516,  516,  516,  516,  652,
      660,  703,  633,  428,  432,  432,  432,  432,  432,  432,
     1018, 1017,  652,  660,  432,  796, 1011,  783,  703,  633,
      432,  432,  432,  432,  432,  432,  434,  434,  434,  434,
      434,  434,  633,  703,  783, 1008,  434,  783,  652,  660,
      707,  796,  434,  434,  434,  434,  434,  434,  438,  438,
      438,  438,  438,  438,  438, 1007,  799,  707,  438,  802,
      808,  786,  707,  879,  438,  438,  438,  438,  438,  438,
      440,  440,  440,  440,  440,  440,  440,  440,  786,  815,
      879,  440,  799,  786,  879,  802,  808,  440,  440,  440,

      440,  440,  440,  441,  441,  441,  441,  441,  441,  441,
      946,  827,  830,  441,  842,  815,  788,  946, 1002,  441,
      441,  441,  441,  441,  441,  449,  449,  449,  449,  449,
      449,  449,  449,  788,  846,  858,  449,  827,  830,  884,
      842,  788,  449,  449,  449,  449,  449,  449,  450,  450,
      450,  450,  450,  450,  450,  999,  884,  996,  450,  995,
      846,  858,  882,  883,  450,  450,  450,  450,  450,  450,
      459,  459,  459,  459,  459,  459,  459,  459,  992,  882,
      883,  459,  901,  882,  972,  883,  989,  459,  459,  459,
      459,  459,  459,  461,  461,  461,  461,  461,  461,  461,

      461,  972, 1065,  972,  461,  986,  461,  983,  901, 1065,
      461,  461,  461,  461,  461,  461,  522,  522,  522,  522,
      522,  522,  522,  524,  524,  524,  524,  524,  524,  524,
      705,  664,  461,  498,  498,  498,  498,  498,  498,  954,
      979,  966,  968,  498,  664,  982,  973,  705,  967,  498,
      498,  498,  498,  498,  498,  501,  501,  501,  501,  501,
      501,  501,  501,  973,  705,  954,  501,  966,  501,  959,
      664,  982,  501,  501,  501,  501,  501,  501,  526,  526,
      526,  526,  526,  526,  526,  528,  528,  528,  528,  528,
      528,  528,  675,  881,  501,  504,  504,  504,  504,  504,

      504,  504,  504,  956, 1109,  675,  504,  985,  504,  950,
      881, 1109,  504,  504,  504,  504,  504,  504,  535,  535,
      535,  535,  535,  535,  539,  539,  539,  539,  539,  539,
      881,  675,  977,  985,  504,  510,  510,  510,  510,  510,
      510,  510,  510, 1116, 1124,  947,  510,  938,  510,  977,
     1116, 1124,  510,  510,  510,  510,  510,  510,  542,  542,
      542,  542,  542,  542,  542,  571,  571,  571,  571,  571,
      571,  571,  710,  782,  510,  515,  515,  515,  515,  515,
      515,  515,  515,  935,  988,  926,  515,  991,  994,  710,
      782,  923,  515,  515,  515,  515,  515,  515,  517,  517,

      517,  517,  517,  517,  517,  517,  915,  782,  710,  517,
      988,  517,  912,  991,  994,  517,  517,  517,  517,  517,
      517,  574,  574,  574,  574,  574,  574,  574,  578,  578,
      578,  578,  578,  578,  679,  784,  906,  517,  527,  527,
      527,  527,  527,  527,  527,  527,  903,  679,  902,  527,
      899, 1019,  784,  784,  976,  527,  527,  527,  527,  527,
      527,  529,  529,  529,  529,  529,  529,  529,  529,  885,
      784,  976,  529,  679,  529,  867,  976, 1019,  529,  529,
      529,  529,  529,  529,  581,  581,  581,  581,  581,  581,
      581,  583,  583,  583,  583,  583,  583,  767,  708,  779,

      529,  540,  540,  540,  540,  540,  540,  540,  540, 1033,
      767, 1047,  540,  860,  859,  708,  779,  851,  540,  540,
      540,  540,  540,  540,  541,  541,  541,  541,  541,  541,
      708,  779, 1081,  848,  541, 1033,  767, 1047, 1072,  771,
      541,  541,  541,  541,  541,  541,  568,  568,  568,  568,
      568,  568,  771,  844, 1132, 1072,  568, 1144, 1081,  969,
     1073, 1132,  568,  568,  568,  568,  568,  568,  569,  569,
      569,  569,  569,  569,  569,  569,  969, 1073,  771,  569,
     1181,  970, 1074, 1144,  810,  569,  569,  569,  569,  569,
      569,  570,  570,  570,  570,  570,  570,  810,  970, 1074,

      969,  570, 1190, 1199,  971,  843, 1181,  570,  570,  570,
      570,  570,  570,  572,  572,  572,  572,  572,  572,  572,
      572,  971,  970,  810,  572, 1075, 1076,  974, 1190, 1199,
      572,  572,  572,  572,  572,  572,  573,  573,  573,  573,
      573,  573, 1075, 1076,  974,  971,  573,  835, 1076,  832,
     1158,  829,  573,  573,  573,  573,  573,  573,  577,  577,
      577,  577,  577,  577,  577,  974, 1140, 1158,  577, 1208,
     1158, 1160, 1159, 1140,  577,  577,  577,  577,  577,  577,
      579,  579,  579,  579,  579,  579,  579,  579, 1160, 1159,
     1262,  579, 1159,  828,  820, 1208,  817,  579,  579,  579,

      579,  579,  579,  580,  580,  580,  580,  580,  580,  580,
     1172, 1221, 1160,  580, 1276, 1280, 1262, 1172, 1221,  580,
      580,  580,  580,  580,  580,  587,  587,  587,  587,  587,
      587,  588,  588,  588,  588,  588,  588,  588,  588, 1284,
     1276, 1280,  588,  816, 1226, 1227, 1270,  809,  588,  588,
      588,  588,  588,  588,  589,  589,  589,  589,  589,  589,
      589, 1226, 1227, 1270,  589, 1284,  805,  804,  803, 1226,
      589,  589,  589,  589,  589,  589,  590,  590,  590,  590,
      590,  590,  590,  592,  592,  592,  592,  592,  592,  594,
      594,  594,  594,  594,  594,  598,  598,  598,  598,  598,

      598,  599,  599,  599,  599,  599,  599,  599,  599, 1288,
     1292, 1300,  599, 1309, 1272, 1299,  800,  797,  599,  599,
      599,  599,  599,  599,  600,  600,  600,  600,  600,  600,
      600, 1272, 1299,  794,  600, 1288, 1292, 1300,  791, 1309,
      600,  600,  600,  600,  600,  600,  601,  601,  601,  601,
      601,  601,  601,  604,  604,  604,  604,  604,  604,  607,
      607,  607,  607,  607,  607,  607,  609,  609,  609,  609,
      609,  609,  609,  611,  611,  611,  611,  611,  611,  611,
      612,  612,  612,  612,  612,  612,  612,  612,  790,  778,
      777,  612,  769,  766,  757,  745,  734,  612,  612,  612,

      612,  612,  612,  613,  613,  613,  613,  613,  613,  613,
      614,  614,  614,  614,  614,  614,  614,  614,  623,  628,
      724,  614,  634,  614,  723,  818,  712,  614,  614,  614,
      614,  614,  614,  785,  693,  623,  628,  686,  818,  634,
      653,  653,  653,  653,  653,  653,  653,  623,  628,  614,
      785,  634,  637,  637,  637,  637,  637,  637,  637,  637,
      685,  677,  674,  637,  818,  637,  785,  671,  670,  637,
      637,  637,  637,  637,  637,  655,  655,  655,  655,  655,
      655,  655,  661,  661,  661,  661,  661,  661,  661,  662,
      659,  637,  640,  640,  640,  640,  640,  640,  640,  640,

      658,  651,  648,  640,  647,  640,  646,  645,  642,  640,
      640,  640,  640,  640,  640,  663,  663,  663,  663,  663,
      663,  663,  665,  665,  665,  665,  665,  665,  665,  822,
      639,  640,  643,  643,  643,  643,  643,  643,  643,  643,
      636,  635,  822,  643,  617,  643,  616,  608,  605,  643,
      643,  643,  643,  643,  643,  667,  667,  667,  667,  667,
      667,  667,  673,  673,  673,  673,  673,  673,  822,  597,
      586,  643,  649,  649,  649,  649,  649,  649,  649,  649,
      576,  575,  567,  649,  563,  649,  562,  561,  559,  649,
      649,  649,  649,  649,  649,  676,  676,  676,  676,  676,

      676,  676,  678,  678,  678,  678,  678,  678,  678,  787,
     1157,  649,  654,  654,  654,  654,  654,  654,  654,  654,
      558,  555,  554,  654,  553,  552,  787, 1157,  551,  654,
      654,  654,  654,  654,  654,  656,  656,  656,  656,  656,
      656,  656,  656,  787, 1157,  550,  656,  549,  656,  548,
      547,  546,  656,  656,  656,  656,  656,  656,  680,  680,
      680,  680,  680,  680,  680,  682,  682,  682,  682,  682,
      682,  682,  878,  545,  656,  666,  666,  666,  666,  666,
      666,  666,  666,  544,  538,  532,  666,  531,  523,  878,
      520,  519,  666,  666,  666,  666,  666,  666,  668,  668,

      668,  668,  668,  668,  668,  668,  512,  509,  878,  668,
      508,  668,  507,  506,  503,  668,  668,  668,  668,  668,
      668,  688,  688,  688,  688,  688,  688,  690,  690,  690,
      690,  690,  690, 1224,  833, 1271,  500,  668,  681,  681,
      681,  681,  681,  681,  681,  681,  499,  833,  497,  681,
     1224,  493, 1271,  490,  489,  681,  681,  681,  681,  681,
      681,  683,  683,  683,  683,  683,  683,  683,  683, 1224,
      488, 1271,  683,  833,  683,  487,  483,  482,  683,  683,
      683,  683,  683,  683,  694,  694,  694,  694,  694,  694,
      697,  697,  697,  697,  697,  697,  697,  837,  780,  781,

      683,  695,  695,  695,  695,  695,  695,  695,  695,  480,
      837,  479,  695,  478,  477,  780,  781,  476,  695,  695,
      695,  695,  695,  695,  696,  696,  696,  696,  696,  696,
      780,  781,  781,  475,  696,  474,  837,  473,  472,  849,
      696,  696,  696,  696,  696,  696,  713,  713,  713,  713,
      713,  713,  849,  471,  470,  469,  713,  466,  465,  464,
      463,  455,  713,  713,  713,  713,  713,  713,  714,  714,
      714,  714,  714,  714,  714,  714,  447,  437,  849,  714,
     1077,  436,  435,  433,  431,  714,  714,  714,  714,  714,
      714,  715,  715,  715,  715,  715,  715, 1077,  430,  427,

      426,  715,  425,  424,  423,  422, 1077,  715,  715,  715,
      715,  715,  715,  716,  716,  716,  716,  716,  716,  716,
      717,  717,  717,  717,  717,  717,  717,  717,  421,  420,
      419,  717, 1225,  418,  416,  413,  412,  717,  717,  717,
      717,  717,  717,  718,  718,  718,  718,  718,  718, 1225,
      411,  410,  409,  718,  408,  407,  405,  404, 1225,  718,
      718,  718,  718,  718,  718,  719,  719,  719,  719,  719,
      719,  719,  720,  720,  720,  720,  720,  720,  720,  720,
      403,  402,  400,  720,  398,  397,  396,  395,  394,  720,
      720,  720,  720,  720,  720,  721,  721,  721,  721,  721,

      721,  393,  391,  390,  383,  721,  379,  378,  377,  370,
      369,  721,  721,  721,  721,  721,  721,  722,  722,  722,
      722,  722,  722,  722,  725,  725,  725,  725,  725,  725,
      725,  366,  365,  364,  725,  363,  360,  359,  356,  355,
      725,  725,  725,  725,  725,  725,  726,  726,  726,  726,
      726,  726,  727,  727,  727,  727,  727,  727,  727,  727,
      354,  353,  352,  727,  351,  350,  349,  348,  347,  727,
      727,  727,  727,  727,  727,  728,  728,  728,  728,  728,
      728,  728,  346,  344,  342,  728,  341,  339,  338,  335,
      334,  728,  728,  728,  728,  728,  728,  729,  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,  332,  330,  329,  736,  328,  325,
      324,  322,  321,  736,  736,  736,  736,  736,  736,  737,
      737,  737,  737,  737,  737,  737,  320,  318,  317,  737,
      316,  309,  302,  301,  299,  737,  737,  737,  737,  737,
      737,  738,  738,  738,  738,  738,  738,  738,  740,  740,
      740,  740,  740,  740,  742,  742,  742,  742,  742,  742,
      746,  746,  746,  746,  746,  746,  747,  747,  747,  747,
      747,  747,  747,  747,  298,  297,  292,  747,  290,  285,

      283,  281,  280,  747,  747,  747,  747,  747,  747,  748,
      748,  748,  748,  748,  748,  748,  279,  278,  277,  748,
      276,  275,  273,  272,  271,  748,  748,  748,  748,  748,
      748,  749,  749,  749,  749,  749,  749,  749,  752,  752,
      752,  752,  752,  752,  754,  754,  754,  754,  754,  754,
      758,  758,  758,  758,  758,  758,  759,  759,  759,  759,
      759,  759,  759,  759,  267,  264,  263,  759,  262,  259,
      256,  255,  254,  759,  759,  759,  759,  759,  759,  760,
      760,  760,  760,  760,  760,  760,  252,  251,  249,  760,
      246,  245,  244,  237,  236,  760,  760,  760,  760,  760,

      760,  761,  761,  761,  761,  761,  761,  761,  765,  765,
      765,  765,  765,  765,  768,  768,  768,  768,  768,  768,
      768,  770,  770,  770,  770,  770,  770,  770,  772,  772,
      772,  772,  772,  772,  772,  773,  773,  773,  773,  773,
      773,  773,  773,  233,  232,  231,  773,  230,  226,  225,
      223,  219,  773,  773,  773,  773,  773,  773,  774,  774,
      774,  774,  774,  774,  774,  775,  775,  775,  775,  775,
      775,  775,  775,  217,  213,  211,  775,  209,  775,  208,
      206,  205,  775,  775,  775,  775,  775,  775,  811,  811,
      811,  811,  811,  811,  811,  813,  813,  813,  813,  813,

      813,  813,  204,  203,  775,  792,  792,  792,  792,  792,
      792,  792,  792,  202,  201,  200,  792,  198,  792,  196,
      194,  193,  792,  792,  792,  792,  792,  792,  819,  819,
      819,  819,  819,  819,  819,  821,  821,  821,  821,  821,
      821,  821,  192,  190,  792,  795,  795,  795,  795,  795,
      795,  795,  795,  189,  186,  185,  795,  184,  795,  182,
      180,  179,  795,  795,  795,  795,  795,  795,  823,  823,
      823,  823,  823,  823,  823,  825,  825,  825,  825,  825,
      825,  825,  853,  176,  795,  798,  798,  798,  798,  798,
      798,  798,  798,  175,  173,  853,  798,  172,  798,  171,

      170,  169,  798,  798,  798,  798,  798,  798,  831,  831,
      831,  831,  831,  831,  834,  834,  834,  834,  834,  834,
      834,  853,  168,  167,  798,  801,  801,  801,  801,  801,
      801,  801,  801,  165,  163,  162,  801,  158,  801,  157,
      156,  155,  801,  801,  801,  801,  801,  801,  836,  836,
      836,  836,  836,  836,  836,  838,  838,  838,  838,  838,
      838,  838,  154,  957,  801,  806,  806,  806,  806,  806,
      806,  806,  152,  149,  148,  806,  957,  147,  144,  142,
      135,  806,  806,  806,  806,  806,  806,  807,  807,  807,
      807,  807,  807,  807,  807,  134,  133,  132,  807,  131,

      807,  130,  957,  128,  807,  807,  807,  807,  807,  807,
      840,  840,  840,  840,  840,  840,  840,  847,  847,  847,
      847,  847,  847,  961,  127,  126,  807,  812,  812,  812,
      812,  812,  812,  812,  812,  124,  961,  122,  812,  120,
      119,  118,  117,  115,  812,  812,  812,  812,  812,  812,
      814,  814,  814,  814,  814,  814,  814,  814,  114,  113,
      112,  814,  961,  814,  111,  110,  108,  814,  814,  814,
      814,  814,  814,  850,  850,  850,  850,  850,  850,  850,
      852,  852,  852,  852,  852,  852,  852,  106,  105,  814,
      824,  824,  824,  824,  824,  824,  824,  824,  104,  103,

      102,  824,  101,  100,   99,   98,   97,  824,  824,  824,
      824,  824,  824,  826,  826,  826,  826,  826,  826,  826,
      826,   96,   89,   88,  826,   87,  826,   85,   84,   83,
      826,  826,  826,  826,  826,  826,  854,  854,  854,  854,
      854,  854,  854,  856,  856,  856,  856,  856,  856,  856,
       82,   81,  826,  839,  839,  839,  839,  839,  839,  839,
      839,   79,   77,   76,  839,   74,   73,   72,   71,   70,
      839,  839,  839,  839,  839,  839,  841,  841,  841,  841,
      841,  841,  841,  841,   68,   67,   66,  841,   51,  841,
       43,   42,   40,  841,  841,  841,  841,  841,  841,  862,

      862,  862,  862,  862,  862,  864,  864,  864,  864,  864,
      864,   30, 1003,   28,   18,  841,  855,  855,  855,  855,
      855,  855,  855,  855,   10, 1003,    8,  855,    3,    0,
        0,    0,    0,  855,  855,  855,  855,  855,  855,  857,
      857,  857,  857,  857,  857,  857,  857,    0,    0,    0,
      857, 1003,  857,    0,    0,    0,  857,  857,  857,  857,
      857,  857,  868,  868,  868,  868,  868,  868,  871,  871,
      871,  871,  871,  871,  871, 1009,    0,    0,  857,  869,
      869,  869,  869,  869,  869,  869,  869,    0, 1009,    0,
      869,    0,    0,    0,    0,    0,  869,  869,  869,  869,

      869,  869,  870,  870,  870,  870,  870,  870,  873,  874,
      875,  877,  870,  880, 1009,  975,    0,    0,  870,  870,
      870,  870,  870,  870,  978,  873,  874,  875,  877,    0,
      880,    0,  975,    0,    0,    0,  873,  874,  875,    0,
     1013,  978,  877,  975,  880,  886,  886,  886,  886,  886,
      886,    0,    0, 1013,    0,  886,  978,    0,    0,    0,
        0,  886,  886,  886,  886,  886,  886,  887,  887,  887,
      887,  887,  887,  887,  887,    0,    0,    0,  887, 1013,
        0,    0,    0,    0,  887,  887,  887,  887,  887,  887,
      888,  888,  888,  888,  888,  888,    0,    0,    0,    0,

      888,    0,    0,    0,    0,    0,  888,  888,  888,  888,
      888,  888,  889,  889,  889,  889,  889,  889,  889,  890,
      890,  890,  890,  890,  890,  890,  890,    0,    0,    0,
      890,    0,    0,    0,    0,    0,  890,  890,  890,  890,
      890,  890,  891,  891,  891,  891,  891,  891,    0,    0,
        0,    0,  891,    0,    0,    0,    0,    0,  891,  891,
      891,  891,  891,  891,  892,  892,  892,  892,  892,  892,
      892,  893,  893,  893,  893,  893,  893,  893,  893,    0,
        0,    0,  893,    0,    0,    0,    0,    0,  893,  893,
      893,  893,  893,  893,  894,  894,  894,  894,  894,  894,

        0,    0,    0,    0,  894,    0,    0,    0,    0,    0,
      894,  894,  894,  894,  894,  894,  895,  895,  895,  895,
      895,  895,  895,  896,  896,  896,  896,  896,  896,  896,
      896,    0,    0,    0,  896,    0,    0,    0,    0,    0,
      896,  896,  896,  896,  896,  896,  897,  897,  897,  897,
      897,  897,    0,    0,    0,    0,  897,    0,    0,    0,
        0,    0,  897,  897,  897,  897,  897,  897,  898,  898,
      898,  898,  898,  898,  898,  900,  900,  900,  900,  900,
      900,  900,  900,    0,    0,    0,  900,    0,  900,    0,
        0,    0,  900,  900,  900,  900,  900,  900,  904,  904,

      904,  904,  904,  904,  907,  907,  907,  907,  907,  907,
      907,    0,    0,    0,  900,  905,  905,  905,  905,  905,
      905,  905,  905,    0,    0,    0,  905,    0,    0,    0,
        0,    0,  905,  905,  905,  905,  905,  905,  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,
      918,  918,  918,  918,  918,  918,  920,  920,  920,  920,
      920,  920,  924,  924,  924,  924,  924,  924,  925,  925,

      925,  925,  925,  925,  925,  925,    0,    0,    0,  925,
        0,    0,    0,    0,    0,  925,  925,  925,  925,  925,
      925,  927,  927,  927,  927,  927,  927,  927,  930,  930,
      930,  930,  930,  930,  932,  932,  932,  932,  932,  932,
      936,  936,  936,  936,  936,  936,  937,  937,  937,  937,
      937,  937,  937,  937,    0,    0,    0,  937,    0,    0,
        0,    0,    0,  937,  937,  937,  937,  937,  937,  939,
      939,  939,  939,  939,  939,  939,  942,  942,  942,  942,
      942,  942,  944,  944,  944,  944,  944,  944,  948,  948,
      948,  948,  948,  948,  949,  949,  949,  949,  949,  949,

      949,  949,    0,    0,    0,  949,    0,    0,    0,    0,
        0,  949,  949,  949,  949,  949,  949,  951,  951,  951,
      951,  951,  951,  951,  955,  955,  955,  955,  955,  955,
      958,  958,  958,  958,  958,  958,  958,  960,  960,  960,
      960,  960,  960,  960,  962,  962,  962,  962,  962,  962,
      962,  963,  963,  963,  963,  963,  963,  963,  963,    0,
        0,    0,  963,    0,    0,    0,    0,    0,  963,  963,
      963,  963,  963,  963,  964,  964,  964,  964,  964,  964,
      964,  965,  965,  965,  965,  965,  965,  965,  965,    0,
        0,    0,  965,    0,  965,    0,    0,    0,  965,  965,

      965,  965,  965,  965,  997,  997,  997,  997,  997,  997,
     1000, 1000, 1000, 1000, 1000, 1000, 1000,    0,    0, 1022,
      965,  980,  980,  980,  980,  980,  980,  980,    0,    0,
        0,  980, 1022,    0,    0,    0,    0,  980,  980,  980,
      980,  980,  980,  981,  981,  981,  981,  981,  981,  981,
      981,    0,    0,    0,  981,    0,  981,    0, 1022,    0,
      981,  981,  981,  981,  981,  981, 1004, 1004, 1004, 1004,
     1004, 1004, 1004, 1006, 1006, 1006, 1006, 1006, 1006, 1006,
        0,    0,  981,  984,  984,  984,  984,  984,  984,  984,
      984,    0,    0,    0,  984,    0,  984,    0,    0,    0,

      984,  984,  984,  984,  984,  984, 1010, 1010, 1010, 1010,
     1010, 1010, 1010, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
        0,    0,  984,  987,  987,  987,  987,  987,  987,  987,
      987,    0,    0,    0,  987,    0,  987,    0,    0,    0,
      987,  987,  987,  987,  987,  987, 1014, 1014, 1014, 1014,
     1014, 1014, 1014, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
     1026,    0,  987,  990,  990,  990,  990,  990,  990,  990,
      990,    0,    0, 1026,  990,    0,  990,    0,    0,    0,
      990,  990,  990,  990,  990,  990, 1020, 1020, 1020, 1020,
     1020, 1020, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1026,

        0,    0,  990,  993,  993,  993,  993,  993,  993,  993,
      993,    0,    0,    0,  993,    0,  993,    0,    0,    0,
      993,  993,  993,  993,  993,  993, 1025, 1025, 1025, 1025,
     1025, 1025, 1025, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
     1036,    0,  993,  998,  998,  998,  998,  998,  998,  998,
      998,    0,    0, 1036,  998,    0,    0,    0,    0,    0,
      998,  998,  998,  998,  998,  998, 1005, 1005, 1005, 1005,
     1005, 1005, 1005, 1005,    0,    0,    0, 1005,    0, 1036,
        0,    0,    0, 1005, 1005, 1005, 1005, 1005, 1005, 1015,
     1015, 1015, 1015, 1015, 1015, 1015, 1015,    0,    0,    0,

     1015,    0,    0,    0,    0,    0, 1015, 1015, 1015, 1015,
     1015, 1015, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028,
        0,    0,    0, 1028,    0,    0,    0,    0,    0, 1028,
     1028, 1028, 1028, 1028, 1028, 1029, 1029, 1029, 1029, 1029,
     1029, 1029, 1034, 1034, 1034, 1034, 1034, 1034, 1037, 1037,
     1037, 1037, 1037, 1037, 1037, 1039, 1039, 1039, 1039, 1039,
     1039, 1039, 1040, 1041, 1041, 1041, 1041, 1041, 1041, 1041,
        0,    0,    0,    0,    0, 1040, 1043, 1043, 1043, 1043,
     1043, 1043, 1043, 1048, 1048, 1048, 1048, 1048, 1048, 1051,
     1051, 1051, 1051, 1051, 1051, 1051,    0, 1050, 1054,    0,

        0, 1040, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
     1050, 1054,    0, 1042,    0,    0,    0,    0,    0, 1042,
     1042, 1042, 1042, 1042, 1042, 1053, 1053, 1053, 1053, 1053,
     1053, 1053,    0,    0,    0,    0, 1050, 1054, 1055, 1055,
     1055, 1055, 1055, 1055, 1055, 1056, 1056, 1056, 1056, 1056,
     1056, 1056, 1056,    0,    0,    0, 1056,    0,    0,    0,
        0,    0, 1056, 1056, 1056, 1056, 1056, 1056, 1057, 1057,
     1057, 1057, 1057, 1057, 1057, 1061, 1061, 1061, 1061, 1061,
     1061, 1063, 1063, 1063, 1063, 1063, 1063, 1067, 1067, 1067,
     1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1068,

     1068,    0,    0,    0, 1068,    0, 1078, 1079,    0,    0,
     1068, 1068, 1068, 1068, 1068, 1068, 1070, 1070, 1070, 1070,
     1070, 1070, 1070, 1078, 1079, 1086, 1086, 1086, 1086, 1086,
     1086, 1086,    0,    0,    0, 1079, 1078, 1080, 1080, 1080,
     1080, 1080, 1080, 1080, 1080,    0,    0,    0, 1080,    0,
     1080,    0,    0,    0, 1080, 1080, 1080, 1080, 1080, 1080,
     1089, 1089, 1089, 1089, 1089, 1089, 1089, 1092, 1092, 1092,
     1092, 1092, 1092, 1092, 1099,    0, 1080, 1084, 1084, 1084,
     1084, 1084, 1084, 1084, 1084,    0,    0, 1099, 1084,    0,
        0,    0,    0,    0, 1084, 1084, 1084, 1084, 1084, 1084,

     1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087,    0,    0,
        0, 1087,    0, 1099,    0,    0,    0, 1087, 1087, 1087,
     1087, 1087, 1087, 1090, 1090, 1090, 1090, 1090, 1090, 1090,
     1090,    0,    0,    0, 1090,    0,    0,    0,    0,    0,
     1090, 1090, 1090, 1090, 1090, 1090, 1093, 1093, 1093, 1093,
     1093, 1093, 1093, 1093,    0,    0,    0, 1093,    0,    0,
        0,    0,    0, 1093, 1093, 1093, 1093, 1093, 1093, 1095,
     1095, 1095, 1095, 1095, 1095, 1095, 1096, 1096, 1096, 1096,
     1096, 1096, 1096, 1096,    0,    0,    0, 1096,    0,    0,
        0,    0,    0, 1096, 1096, 1096, 1096, 1096, 1096, 1098,

     1098, 1098, 1098, 1098, 1098, 1098, 1100, 1100, 1100, 1100,
     1100, 1100, 1100, 1101, 1101, 1101, 1101, 1101, 1101, 1101,
     1101,    0,    0,    0, 1101,    0,    0,    0,    0,    0,
     1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102, 1102, 1102,
     1102, 1102, 1102, 1107, 1107, 1107, 1107, 1107, 1107, 1112,
     1112, 1112, 1112, 1112, 1112, 1114, 1114, 1114, 1114, 1114,
     1114, 1120, 1120, 1120, 1120, 1120, 1120, 1122, 1122, 1122,
     1122, 1122, 1122, 1128, 1128, 1128, 1128, 1128, 1128, 1130,
     1130, 1130, 1130, 1130, 1130, 1136, 1136, 1136, 1136, 1136,
     1136, 1138, 1138, 1138, 1138, 1138, 1138, 1145, 1145, 1145,

     1145, 1145, 1145, 1147, 1148, 1148, 1148, 1148, 1148, 1148,
     1148, 1151,    0,    0,    0,    0, 1147, 1150, 1150, 1150,
     1150, 1150, 1150, 1150, 1151, 1152, 1152, 1152, 1152, 1152,
     1152, 1152, 1154, 1154, 1154, 1154, 1154, 1154, 1154,    0,
        0,    0, 1147, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
     1151, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,    0,
        0,    0, 1153,    0,    0,    0,    0,    0, 1153, 1153,
     1153, 1153, 1153, 1153, 1161, 1161, 1161, 1161, 1161, 1161,
     1161, 1161,    0,    0,    0, 1161,    0,    0,    0,    0,
     1176, 1161, 1161, 1161, 1161, 1161, 1161, 1170, 1170, 1170,

     1170, 1170, 1170, 1176, 1177, 1177, 1177, 1177, 1177, 1177,
     1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1182, 1182,
     1182, 1182, 1182, 1182, 1184,    0,    0,    0,    0, 1176,
     1185, 1185, 1185, 1185, 1185, 1185, 1185, 1184, 1187, 1187,
     1187, 1187, 1187, 1187, 1187, 1191, 1191, 1191, 1191, 1191,
     1191, 1193, 1194, 1194, 1194, 1194, 1194, 1194, 1194,    0,
        0,    0,    0, 1184, 1193, 1196, 1196, 1196, 1196, 1196,
     1196, 1196, 1200, 1200, 1200, 1200, 1200, 1200, 1202, 1203,
     1203, 1203, 1203, 1203, 1203, 1203,    0,    0,    0,    0,
     1193, 1202, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1209,

     1209, 1209, 1209, 1209, 1209, 1211, 1212, 1212, 1212, 1212,
     1212, 1212, 1212,    0,    0,    0,    0, 1202, 1211, 1214,
     1214, 1214, 1214, 1214, 1214, 1214, 1217, 1217, 1217, 1217,
     1217, 1217, 1219, 1219, 1219, 1219, 1219, 1219, 1236,    0,
        0,    0,    0,    0, 1211, 1242, 1242, 1242, 1242, 1242,
     1242, 1236, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1239,
     1239, 1239, 1239, 1239, 1239, 1239, 1246, 1246, 1246, 1246,
     1246, 1246,    0,    0,    0,    0,    0, 1236, 1250, 1250,
     1250, 1250, 1250, 1250, 1254, 1254, 1254, 1254, 1254, 1254,
     1258, 1258, 1258, 1258, 1258, 1258, 1263, 1263, 1263, 1263,

     1263, 1263, 1265, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
        0,    0,    0,    0,    0, 1265, 1268, 1268, 1268, 1268,
     1268, 1268, 1268, 1274, 1274, 1274, 1274, 1274, 1274, 1277,
     1277, 1277, 1277, 1277, 1277, 1281, 1281, 1281, 1281, 1281,
     1281, 1265, 1285, 1285, 1285, 1285, 1285, 1285, 1289, 1289,
     1289, 1289, 1289, 1289, 1293, 1293, 1293, 1293, 1293, 1293,
     1296, 1296, 1296, 1296, 1296, 1296, 1301, 1301, 1301, 1301,
     1301, 1301, 1310, 1310, 1310, 1310, 1310, 1310, 1322,    0,
        0,    0,    0, 1322, 1322, 1322, 1323,    0, 1323, 1323,
     1323, 1323, 1323, 1323, 1323, 1324,    0, 1324, 1325, 1325,

     1325, 1326, 1326, 1326, 1327, 1327, 1327, 1328, 1328, 1328,
     1329, 1329, 1329, 1330, 1330, 1330, 1331, 1331, 1331, 1332,
     1332, 1332, 1333,    0, 1333, 1334, 1334, 1334, 1335, 1335,
     1335, 1336, 1336, 1336, 1337,    0, 1337, 1338, 1338, 1338,
     1339, 1339,    0,    0, 1339, 1340, 1340, 1340, 1341, 1341,
     1341, 1342, 1342, 1342, 1343, 1343, 1343, 1344, 1344, 1344,
     1345, 1345, 1345, 1346, 1346,    0,    0, 1346, 1347, 1347,
     1347, 1348,    0, 1348, 1349, 1349, 1349, 1350,    0, 1350,
     1351, 1351, 1351, 1352, 1352, 1352, 1353, 1353, 1353, 1354,
        0, 1354, 1355,    0, 1355, 1356, 1356, 1356, 1357,    0,

     1357, 1358, 1358,    0,    0, 1358, 1359, 1359,    0,    0,
     1359, 1360, 1360, 1360, 1361, 1361, 1361, 1362, 1362, 1362,
     1363, 1363, 1363, 1364, 1364, 1364, 1365, 1365, 1365, 1366,
     1366, 1366, 1367, 1367, 1367, 1368, 1368,    0,    0, 1368,
     1369, 1369, 1369, 1370, 1370,    0,    0, 1370, 1371, 1371,
        0,    0, 1371, 1372, 1372, 1372, 1373,    0, 1373, 1374,
        0, 1374, 1375, 1375, 1375, 1376,    0, 1376, 1377, 1377,
     1377, 1378, 1378, 1378, 1379, 1379, 1379, 1380,    0, 1380,
     1381,    0, 1381, 1382, 1382, 1382, 1383,    0, 1383, 1384,
        0, 1384, 1385,    0, 1385, 1386, 1386, 1386, 1387,    0,

     1387, 1388,    0,    0, 1388, 1389, 1389,    0,    0, 1389,
     1390, 1390,    0, 1390, 1391, 1391,    0,    0, 1391, 1392,
     1392, 1392, 1393, 1393,    0, 1393, 1394, 1394, 1394,    0,
     1394, 1394, 1395, 1395, 1395, 1396, 1396, 1396, 1397, 1397,
     1397, 1398, 1398, 1398, 1399, 1399, 1399, 1400, 1400, 1400,
     1401, 1401, 1401, 1402, 1402, 1402, 1403, 1403,    0,    0,
     1403, 1404, 1404, 1404, 1405, 1405,    0, 1405, 1406, 1406,
        0,    0, 1406, 1407, 1407,    0, 1407, 1408, 1408,    0,
        0, 1408, 1409, 1409, 1409, 1410, 1410,    0, 1410, 1411,
        0,    0, 1411, 1412, 1412,    0, 1412, 1413, 1413,    0,

        0, 1413, 1414, 1414,    0, 1414, 1415, 1415,    0,    0,
     1415, 1416, 1416, 1416, 1417, 1417,    0, 1417, 1418,    0,
     1418, 1419,    0, 1419, 1420,    0, 1420, 1421, 1421, 1421,
     1422,    0, 1422, 1423, 1423, 1423,    0, 1423, 1423, 1424,
     1424, 1424, 1425, 1425, 1425, 1426, 1426, 1426, 1427,    0,
     1427, 1428,    0, 1428, 1429, 1429, 1429, 1430,    0, 1430,
     1431,    0, 1431, 1432,    0, 1432, 1433, 1433, 1433, 1434,
        0, 1434, 1435,    0, 1435, 1436,    0, 1436, 1437,    0,
     1437, 1438, 1438, 1438, 1439,    0, 1439, 1440,    0, 1440,
     1441,    0,    0, 1441, 1442, 1442,    0, 1442, 1443, 1443,

        0,    0, 1443, 1444, 1444,    0, 1444, 1445, 1445,    0,
        0, 1445, 1446, 1446, 1446, 1447, 1447,    0, 1447, 1448,
     1448, 1448,    0, 1448, 1448, 1449, 1449, 1449, 1450, 1450,
     1450, 1451, 1451, 1451, 1452, 1452, 1452, 1453, 1453, 1453,
     1454, 1454, 1454, 1455, 1455, 1455, 1456, 1456, 1456, 1457,
     1457,    0,    0, 1457, 1458, 1458, 1458, 1459, 1459,    0,
     1459, 1460, 1460,    0,    0, 1460, 1461, 1461,    0, 1461,
     1462, 1462,    0,    0, 1462, 1463, 1463, 1463, 1464, 1464,
        0, 1464, 1465,    0,    0, 1465, 1466, 1466,    0, 1466,
     1467, 1467,    0,    0, 1467, 1468, 1468,    0, 1468, 1469,

     1469,    0,    0, 1469, 1470, 1470, 1470, 1471, 1471,    0,
     1471, 1472,    0, 1472, 1473,    0,    0, 1473, 1474, 1474,
        0, 1474, 1475, 1475,    0,    0, 1475, 1476, 1476,    0,
     1476, 1477, 1477,    0,    0, 1477, 1478, 1478, 1478, 1479,
     1479,    0, 1479, 1480,    0, 1480, 1481,    0, 1481, 1482,
        0, 1482, 1483, 1483, 1483, 1484,    0, 1484, 1485, 1485,
     1485,    0, 1485, 1485, 1486, 1486, 1486, 1487, 1487, 1487,
     1488, 1488, 1488, 1489, 1489, 1489, 1490, 1490, 1490, 1491,
        0, 1491, 1492,    0, 1492, 1493, 1493, 1493, 1494, 1494,
     1494, 1495,    0, 1495, 1496,    0, 1496, 1497,    0, 1497,

     1498, 1498, 1498, 1499, 1499, 1499, 1500,    0, 1500, 1501,
        0, 1501, 1502,    0, 1502, 1503,    0, 1503, 1504, 1504,
     1504, 1505, 1505, 1505, 1506,    0, 1506, 1507,    0, 1507,
     1508,    0, 1508, 1509,    0, 1509, 1510, 1510, 1510, 1511,
     1511, 1511, 1512,    0, 1512, 1513,    0, 1513, 1514,    0,
        0, 1514, 1515, 1515,    0, 1515, 1516, 1516,    0,    0,
     1516, 1517, 1517,    0, 1517, 1518, 1518,    0,    0, 1518,
     1519, 1519, 1519, 1520, 1520,    0, 1520, 1521, 1521, 1521,
        0, 1521, 1521, 1522, 1522, 1522, 1523, 1523, 1523, 1524,
     1524, 1524, 1525, 1525, 1525, 1526, 1526, 1526, 1527, 1527,

     1527, 1528, 1528, 1528, 1529,    0, 1529, 1530, 1530, 1530,
     1531, 1531,    0,    0, 1531, 1532, 1532, 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,    0, 1539, 1540, 1540,    0,
     1540, 1541, 1541,    0,    0, 1541, 1542, 1542,    0, 1542,
     1543, 1543,    0,    0, 1543, 1544, 1544, 1544, 1545, 1545,
        0, 1545, 1546,    0, 1546, 1547,    0,    0, 1547, 1548,
     1548,    0, 1548, 1549, 1549,    0,    0, 1549, 1550, 1550,
        0, 1550, 1551, 1551,    0,    0, 1551, 1552, 1552, 1552,

     1553, 1553,    0, 1553, 1554,    0, 1554, 1555,    0,    0,
     1555, 1556, 1556,    0, 1556, 1557, 1557,    0,    0, 1557,
     1558, 1558,    0, 1558, 1559, 1559,    0,    0, 1559, 1560,
     1560, 1560, 1561, 1561,    0, 1561, 1562,    0, 1562, 1563,
        0, 1563, 1564,    0, 1564, 1565, 1565, 1565, 1566,    0,
     1566, 1567,    0, 1567, 1568, 1568, 1568,    0, 1568, 1568,
     1569,    0, 1569, 1570, 1570, 1570, 1571,    0, 1571, 1572,
        0, 1572, 1573,    0, 1573, 1574,    0, 1574, 1575,    0,
     1575, 1576, 1576,    0,    0, 1576, 1577, 1577, 1577, 1578,
     1578, 1578, 1579, 1579,    0, 1579, 1580, 1580, 1580, 1581,

        0, 1581, 1582, 1582, 1582, 1583, 1583, 1583, 1584,    0,
     1584, 1585,    0, 1585, 1586, 1586, 1586, 1587, 1587, 1587,
     1588,    0, 1588, 1589,    0, 1589, 1590,    0, 1590, 1591,
     1591, 1591, 1592, 1592, 1592, 1593,    0, 1593, 1594,    0,
     1594, 1595,    0, 1595, 1596, 1596, 1596, 1597, 1597, 1597,
     1598,    0, 1598, 1599,    0, 1599, 1600,    0, 1600, 1601,
     1601, 1601, 1602, 1602, 1602, 1603,    0, 1603, 1604,    0,
        0, 1604, 1605, 1605,    0, 1605, 1606, 1606,    0,    0,
     1606, 1607, 1607,    0, 1607, 1608, 1608,    0,    0, 1608,
     1609,    0, 1609, 1610, 1610,    0, 1610, 1611, 1611, 1611,

        0, 1611, 1611, 1612, 1612, 1612, 1613,    0, 1613, 1614,
        0, 1614, 1615,    0, 1615, 1616,    0, 1616, 1617,    0,
     1617, 1618,    0, 1618, 1619,    0, 1619, 1620, 1620, 1620,
     1621, 1621, 1621, 1622,    0, 1622, 1623, 1623,    0,    0,
     1623, 1624, 1624,    0, 1624, 1625,    0, 1625, 1626,    0,
        0, 1626, 1627, 1627,    0, 1627, 1628, 1628,    0,    0,
     1628, 1629, 1629,    0, 1629, 1630,    0, 1630, 1631,    0,
     1631, 1632,    0,    0, 1632, 1633, 1633,    0, 1633, 1634,
     1634,    0,    0, 1634, 1635, 1635,    0, 1635, 1636,    0,
     1636, 1637,    0, 1637, 1638,    0,    0, 1638, 1639, 1639,

        0, 1639, 1640, 1640,    0,    0, 1640, 1641, 1641,    0,
     1641, 1642,    0, 1642, 1643,    0, 1643, 1644,    0,    0,
     1644, 1645, 1645,    0, 1645, 1646, 1646,    0,    0, 1646,
     1647, 1647,    0, 1647, 1648,    0, 1648, 1649,    0, 1649,
     1650,    0, 1650, 1651,    0, 1651, 1652, 1652, 1652, 1653,
        0, 1653, 1654, 1654, 1654,    0, 1654, 1654, 1655,    0,
     1655, 1656,    0, 1656, 1657,    0, 1657, 1658,    0, 1658,
     1659,    0, 1659, 1660,    0, 1660, 1661,    0, 1661, 1662,
     1662,    0,    0, 1662, 1663, 1663,    0, 1663, 1664,    0,
     1664, 1665,    0, 1665, 1666,    0, 1666, 1667,    0, 1667,

     1668,    0, 1668, 1669,    0, 1669, 1670,    0, 1670, 1671,
        0, 1671, 1672,    0, 1672, 1673,    0, 1673, 1674,    0,
        0, 1674, 1675, 1675,    0,    0, 1675, 1676,    0, 1676,
     1677,    0, 1677, 1678,    0, 1678, 1679,    0,    0, 1679,
     1680,    0,    0, 1680, 1681,    0,    0, 1681, 1682,    0,
        0, 1682, 1683,    0,    0, 1683, 1684,    0, 1684, 1685,
        0, 1685, 1686,    0,    0, 1686, 1687,    0, 1687, 1688,
        0, 1688, 1689,    0, 1689, 1690,    0, 1690, 1691,    0,
     1691, 1692,    0,    0, 1692, 1693,    0, 1693, 1694,    0,
     1694, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,

     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
     1321, 1321, 1321, 1321
    } ;

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: /tcpdump/master/libpcap/scanner.l,v 1.99.2.4 2005/09/05 09:08:07 guy 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 >= 1322 )
                              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] != 6592 );

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 186 "scanner.l"
return RADIO;
      YY_BREAK
case 17:
YY_RULE_SETUP
#line 188 "scanner.l"
{
#ifdef INET6
            return IPV6;
#else
            bpf_error("%s not supported", yytext);
#endif
            }
      YY_BREAK
case 18:
YY_RULE_SETUP
#line 195 "scanner.l"
{
#ifdef INET6
            return ICMPV6;
#else
            bpf_error("%s not supported", yytext);
#endif
            }
      YY_BREAK
case 19:
YY_RULE_SETUP
#line 202 "scanner.l"
return AH;
      YY_BREAK
case 20:
YY_RULE_SETUP
#line 203 "scanner.l"
return ESP;
      YY_BREAK
case 21:
YY_RULE_SETUP
#line 205 "scanner.l"
return ATALK;
      YY_BREAK
case 22:
YY_RULE_SETUP
#line 206 "scanner.l"
return AARP;
      YY_BREAK
case 23:
YY_RULE_SETUP
#line 207 "scanner.l"
return DECNET;
      YY_BREAK
case 24:
YY_RULE_SETUP
#line 208 "scanner.l"
return LAT;
      YY_BREAK
case 25:
YY_RULE_SETUP
#line 209 "scanner.l"
return SCA;
      YY_BREAK
case 26:
YY_RULE_SETUP
#line 210 "scanner.l"
return MOPRC;
      YY_BREAK
case 27:
YY_RULE_SETUP
#line 211 "scanner.l"
return MOPDL;
      YY_BREAK
case 28:
YY_RULE_SETUP
#line 213 "scanner.l"
return ISO;
      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 ESIS;
      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 ISIS;
      YY_BREAK
case 33:
YY_RULE_SETUP
#line 218 "scanner.l"
return L1;
      YY_BREAK
case 34:
YY_RULE_SETUP
#line 219 "scanner.l"
return L2;
      YY_BREAK
case 35:
YY_RULE_SETUP
#line 220 "scanner.l"
return IIH;
      YY_BREAK
case 36:
YY_RULE_SETUP
#line 221 "scanner.l"
return LSP;
      YY_BREAK
case 37:
YY_RULE_SETUP
#line 222 "scanner.l"
return SNP;
      YY_BREAK
case 38:
YY_RULE_SETUP
#line 223 "scanner.l"
return CSNP;
      YY_BREAK
case 39:
YY_RULE_SETUP
#line 224 "scanner.l"
return PSNP;
      YY_BREAK
case 40:
YY_RULE_SETUP
#line 226 "scanner.l"
return CLNP;
      YY_BREAK
case 41:
YY_RULE_SETUP
#line 228 "scanner.l"
return STP;
      YY_BREAK
case 42:
YY_RULE_SETUP
#line 230 "scanner.l"
return IPX;
      YY_BREAK
case 43:
YY_RULE_SETUP
#line 232 "scanner.l"
return NETBEUI;
      YY_BREAK
case 44:
YY_RULE_SETUP
#line 234 "scanner.l"
return HOST;
      YY_BREAK
case 45:
YY_RULE_SETUP
#line 235 "scanner.l"
return NET;
      YY_BREAK
case 46:
YY_RULE_SETUP
#line 236 "scanner.l"
return NETMASK;
      YY_BREAK
case 47:
YY_RULE_SETUP
#line 237 "scanner.l"
return PORT;
      YY_BREAK
case 48:
YY_RULE_SETUP
#line 238 "scanner.l"
return PORTRANGE;
      YY_BREAK
case 49:
YY_RULE_SETUP
#line 239 "scanner.l"
return PROTO;
      YY_BREAK
case 50:
YY_RULE_SETUP
#line 240 "scanner.l"
{
#ifdef NO_PROTOCHAIN
              bpf_error("%s not supported", yytext);
#else
              return PROTOCHAIN;
#endif
            }
      YY_BREAK
case 51:
YY_RULE_SETUP
#line 248 "scanner.l"
return GATEWAY;
      YY_BREAK
case 52:
YY_RULE_SETUP
#line 250 "scanner.l"
return LESS;
      YY_BREAK
case 53:
YY_RULE_SETUP
#line 251 "scanner.l"
return GREATER;
      YY_BREAK
case 54:
YY_RULE_SETUP
#line 252 "scanner.l"
return CBYTE;
      YY_BREAK
case 55:
YY_RULE_SETUP
#line 253 "scanner.l"
return TK_BROADCAST;
      YY_BREAK
case 56:
YY_RULE_SETUP
#line 254 "scanner.l"
return TK_MULTICAST;
      YY_BREAK
case 57:
YY_RULE_SETUP
#line 256 "scanner.l"
return AND;
      YY_BREAK
case 58:
YY_RULE_SETUP
#line 257 "scanner.l"
return OR;
      YY_BREAK
case 59:
YY_RULE_SETUP
#line 258 "scanner.l"
return '!';
      YY_BREAK
case 60:
YY_RULE_SETUP
#line 260 "scanner.l"
return LEN;
      YY_BREAK
case 61:
YY_RULE_SETUP
#line 261 "scanner.l"
return INBOUND;
      YY_BREAK
case 62:
YY_RULE_SETUP
#line 262 "scanner.l"
return OUTBOUND;
      YY_BREAK
case 63:
YY_RULE_SETUP
#line 264 "scanner.l"
return VLAN;
      YY_BREAK
case 64:
YY_RULE_SETUP
#line 265 "scanner.l"
return MPLS;
      YY_BREAK
case 65:
YY_RULE_SETUP
#line 266 "scanner.l"
return PPPOED;
      YY_BREAK
case 66:
YY_RULE_SETUP
#line 267 "scanner.l"
return PPPOES;
      YY_BREAK
case 67:
YY_RULE_SETUP
#line 269 "scanner.l"
return LANE;
      YY_BREAK
case 68:
YY_RULE_SETUP
#line 270 "scanner.l"
return LLC;
      YY_BREAK
case 69:
YY_RULE_SETUP
#line 271 "scanner.l"
return METAC;
      YY_BREAK
case 70:
YY_RULE_SETUP
#line 272 "scanner.l"
return BCC;
      YY_BREAK
case 71:
YY_RULE_SETUP
#line 273 "scanner.l"
return OAM;
      YY_BREAK
case 72:
YY_RULE_SETUP
#line 274 "scanner.l"
return OAMF4;
      YY_BREAK
case 73:
YY_RULE_SETUP
#line 275 "scanner.l"
return OAMF4EC;
      YY_BREAK
case 74:
YY_RULE_SETUP
#line 276 "scanner.l"
return OAMF4SC;
      YY_BREAK
case 75:
YY_RULE_SETUP
#line 277 "scanner.l"
return SC;
      YY_BREAK
case 76:
YY_RULE_SETUP
#line 278 "scanner.l"
return ILMIC;
      YY_BREAK
case 77:
YY_RULE_SETUP
#line 279 "scanner.l"
return VPI;
      YY_BREAK
case 78:
YY_RULE_SETUP
#line 280 "scanner.l"
return VCI;
      YY_BREAK
case 79:
YY_RULE_SETUP
#line 281 "scanner.l"
return CONNECTMSG;
      YY_BREAK
case 80:
YY_RULE_SETUP
#line 282 "scanner.l"
return METACONNECT;
      YY_BREAK
case 81:
YY_RULE_SETUP
#line 284 "scanner.l"
return PF_IFNAME;
      YY_BREAK
case 82:
YY_RULE_SETUP
#line 285 "scanner.l"
return PF_RSET;
      YY_BREAK
case 83:
YY_RULE_SETUP
#line 286 "scanner.l"
return PF_RNR;
      YY_BREAK
case 84:
YY_RULE_SETUP
#line 287 "scanner.l"
return PF_SRNR;
      YY_BREAK
case 85:
YY_RULE_SETUP
#line 288 "scanner.l"
return PF_REASON;
      YY_BREAK
case 86:
YY_RULE_SETUP
#line 289 "scanner.l"
return PF_ACTION;
      YY_BREAK
case 87:
YY_RULE_SETUP
#line 291 "scanner.l"
return SIO;
      YY_BREAK
case 88:
YY_RULE_SETUP
#line 292 "scanner.l"
return OPC;
      YY_BREAK
case 89:
YY_RULE_SETUP
#line 293 "scanner.l"
return DPC;
      YY_BREAK
case 90:
YY_RULE_SETUP
#line 294 "scanner.l"
return SLS;
      YY_BREAK
case 91:
YY_RULE_SETUP
#line 296 "scanner.l"
;
      YY_BREAK
case 92:
YY_RULE_SETUP
#line 297 "scanner.l"
return yytext[0];
      YY_BREAK
case 93:
YY_RULE_SETUP
#line 298 "scanner.l"
return GEQ;
      YY_BREAK
case 94:
YY_RULE_SETUP
#line 299 "scanner.l"
return LEQ;
      YY_BREAK
case 95:
YY_RULE_SETUP
#line 300 "scanner.l"
return NEQ;
      YY_BREAK
case 96:
YY_RULE_SETUP
#line 301 "scanner.l"
return '=';
      YY_BREAK
case 97:
YY_RULE_SETUP
#line 302 "scanner.l"
return LSH;
      YY_BREAK
case 98:
YY_RULE_SETUP
#line 303 "scanner.l"
return RSH;
      YY_BREAK
case 99:
YY_RULE_SETUP
#line 304 "scanner.l"
{ yylval.e = pcap_ether_aton(((char *)yytext)+1);
                    return AID; }
      YY_BREAK
case 100:
YY_RULE_SETUP
#line 306 "scanner.l"
{ yylval.i = stoi((char *)yytext); return NUM; }
      YY_BREAK
case 101:
YY_RULE_SETUP
#line 307 "scanner.l"
{
                  yylval.s = sdup((char *)yytext); return HID; }
      YY_BREAK
case 102:
YY_RULE_SETUP
#line 309 "scanner.l"
{ yylval.e = pcap_ether_aton((char *)yytext);
                    return EID; }
      YY_BREAK
case 103:
YY_RULE_SETUP
#line 311 "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 104:
YY_RULE_SETUP
#line 326 "scanner.l"
{ bpf_error("bogus ethernet address %s", yytext); }
      YY_BREAK
case 105:
YY_RULE_SETUP
#line 327 "scanner.l"
{ yylval.i = 0; return NUM; }
      YY_BREAK
case 106:
YY_RULE_SETUP
#line 328 "scanner.l"
{ yylval.i = 1; return NUM; }
      YY_BREAK
case 107:
YY_RULE_SETUP
#line 329 "scanner.l"
{ yylval.i = 0; return NUM; }
      YY_BREAK
case 108:
YY_RULE_SETUP
#line 330 "scanner.l"
{ yylval.i = 3; return NUM; }
      YY_BREAK
case 109:
YY_RULE_SETUP
#line 331 "scanner.l"
{ yylval.i = 4; return NUM; }
      YY_BREAK
case 110:
YY_RULE_SETUP
#line 332 "scanner.l"
{ yylval.i = 5; return NUM; }
      YY_BREAK
case 111:
YY_RULE_SETUP
#line 333 "scanner.l"
{ yylval.i = 8; return NUM; }
      YY_BREAK
case 112:
YY_RULE_SETUP
#line 334 "scanner.l"
{ yylval.i = 9; return NUM; }
      YY_BREAK
case 113:
YY_RULE_SETUP
#line 335 "scanner.l"
{ yylval.i = 10; return NUM; }
      YY_BREAK
case 114:
YY_RULE_SETUP
#line 336 "scanner.l"
{ yylval.i = 11; return NUM; }
      YY_BREAK
case 115:
YY_RULE_SETUP
#line 337 "scanner.l"
{ yylval.i = 12; return NUM; }
      YY_BREAK
case 116:
YY_RULE_SETUP
#line 338 "scanner.l"
{ yylval.i = 13; return NUM; }
      YY_BREAK
case 117:
YY_RULE_SETUP
#line 339 "scanner.l"
{ yylval.i = 14; return NUM; }
      YY_BREAK
case 118:
YY_RULE_SETUP
#line 340 "scanner.l"
{ yylval.i = 15; return NUM; }
      YY_BREAK
case 119:
YY_RULE_SETUP
#line 341 "scanner.l"
{ yylval.i = 16; return NUM; }
      YY_BREAK
case 120:
YY_RULE_SETUP
#line 342 "scanner.l"
{ yylval.i = 17; return NUM; }
      YY_BREAK
case 121:
YY_RULE_SETUP
#line 343 "scanner.l"
{ yylval.i = 18; return NUM; }
      YY_BREAK
case 122:
YY_RULE_SETUP
#line 344 "scanner.l"
{ yylval.i = 13; return NUM; }
      YY_BREAK
case 123:
YY_RULE_SETUP
#line 345 "scanner.l"
{ yylval.i = 0x01; return NUM; }
      YY_BREAK
case 124:
YY_RULE_SETUP
#line 346 "scanner.l"
{ yylval.i = 0x02; return NUM; }
      YY_BREAK
case 125:
YY_RULE_SETUP
#line 347 "scanner.l"
{ yylval.i = 0x04; return NUM; }
      YY_BREAK
case 126:
YY_RULE_SETUP
#line 348 "scanner.l"
{ yylval.i = 0x08; return NUM; }
      YY_BREAK
case 127:
YY_RULE_SETUP
#line 349 "scanner.l"
{ yylval.i = 0x10; return NUM; }
      YY_BREAK
case 128:
YY_RULE_SETUP
#line 350 "scanner.l"
{ yylval.i = 0x20; return NUM; }
      YY_BREAK
case 129:
YY_RULE_SETUP
#line 351 "scanner.l"
{
                   yylval.s = sdup((char *)yytext); return ID; }
      YY_BREAK
case 130:
YY_RULE_SETUP
#line 353 "scanner.l"
{ yylval.s = sdup((char *)yytext + 1); return ID; }
      YY_BREAK
case 131:
YY_RULE_SETUP
#line 354 "scanner.l"
{
                  bpf_error("illegal token: %s", yytext); }
      YY_BREAK
case 132:
YY_RULE_SETUP
#line 356 "scanner.l"
{ bpf_error("illegal char '%c'", *yytext); }
      YY_BREAK
case 133:
YY_RULE_SETUP
#line 357 "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 >= 1322 )
                        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 >= 1322 )
                  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 == 1321);

      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 357 "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