pp_lex_guts.yy.cc

Go to the documentation of this file.
00001 
00002 #line 3 "pp_lex_guts.yy.cc"
00003 
00004 #define  YY_INT_ALIGNED short int
00005 
00006 /* A lexical scanner generated by flex */
00007 
00008 #define FLEX_SCANNER
00009 #define YY_FLEX_MAJOR_VERSION 2
00010 #define YY_FLEX_MINOR_VERSION 5
00011 #define YY_FLEX_SUBMINOR_VERSION 33
00012 #if YY_FLEX_SUBMINOR_VERSION > 0
00013 #define FLEX_BETA
00014 #endif
00015 
00016 /* First, we deal with  platform-specific or compiler-specific issues. */
00017 
00018 /* begin standard C headers. */
00019 //#include <stdio.h>
00020 //#include <string.h>
00021 //#include <errno.h>
00022 //#include <stdlib.h>
00023 
00024 /* end standard C headers. */
00025 
00026 /* flex integer type definitions */
00027 
00028 #ifndef FLEXINT_H
00029 #define FLEXINT_H
00030 
00031 #ifdef lestes___host_types_hh___included
00032 typedef lc_host_int_least8 flex_int8_t;
00033 typedef lc_host_int_least16 flex_int16_t;
00034 typedef lc_host_int_least32 flex_int32_t;
00035 typedef lc_host_uint_least8 flex_uint8_t; 
00036 typedef lc_host_uint_least16 flex_uint16_t;
00037 typedef lc_host_uint_least32 flex_uint32_t;
00038 #else
00039 typedef signed char flex_int8_t;
00040 typedef short int flex_int16_t;
00041 typedef int flex_int32_t;
00042 typedef unsigned char flex_uint8_t; 
00043 typedef unsigned short int flex_uint16_t;
00044 typedef unsigned int flex_uint32_t;
00045 #endif
00046 
00047 /* Limits of integral types. */
00048 #ifndef INT8_MIN
00049 #define INT8_MIN               (-128)
00050 #endif
00051 #ifndef INT16_MIN
00052 #define INT16_MIN              (-32767-1)
00053 #endif
00054 #ifndef INT32_MIN
00055 #define INT32_MIN              (-2147483647-1)
00056 #endif
00057 #ifndef INT8_MAX
00058 #define INT8_MAX               (127)
00059 #endif
00060 #ifndef INT16_MAX
00061 #define INT16_MAX              (32767)
00062 #endif
00063 #ifndef INT32_MAX
00064 #define INT32_MAX              (2147483647)
00065 #endif
00066 #ifndef UINT8_MAX
00067 #define UINT8_MAX              (255U)
00068 #endif
00069 #ifndef UINT16_MAX
00070 #define UINT16_MAX             (65535U)
00071 #endif
00072 #ifndef UINT32_MAX
00073 #define UINT32_MAX             (4294967295U)
00074 #endif
00075 
00076 #endif /* ! FLEXINT_H */
00077 
00078 #ifdef __cplusplus
00079 
00080 /* The "const" storage-class-modifier is valid. */
00081 #define YY_USE_CONST
00082 
00083 #else   /* ! __cplusplus */
00084 
00085 #if __STDC__
00086 
00087 #define YY_USE_CONST
00088 
00089 #endif  /* __STDC__ */
00090 #endif  /* ! __cplusplus */
00091 
00092 #ifdef YY_USE_CONST
00093 #define yyconst const
00094 #else
00095 #define yyconst
00096 #endif
00097 
00098 /* Returned upon end-of-file. */
00099 #define YY_NULL 0
00100 
00101 /* Promotes a possibly negative, possibly signed char to an unsigned
00102  * integer for use as an array index.  If the signed char is negative,
00103  * we want to instead treat it as an 8-bit unsigned char, hence the
00104  * double cast.
00105  */
00106 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00107 
00108 /* Enter a start condition.  This macro really ought to take a parameter,
00109  * but we do it the disgusting crufty way forced on us by the ()-less
00110  * definition of BEGIN.
00111  */
00112 #define BEGIN (yy_start) = 1 + 2 *
00113 
00114 /* Translate the current start state into a value that can be later handed
00115  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00116  * compatibility.
00117  */
00118 #define YY_START (((yy_start) - 1) / 2)
00119 #define YYSTATE YY_START
00120 
00121 /* Action number for EOF rule of a given start state. */
00122 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00123 
00124 /* Special action meaning "start processing a new file". */
00125 #define YY_NEW_FILE yyrestart(yyin  )
00126 
00127 #define YY_END_OF_BUFFER_CHAR 0
00128 
00129 /* Size of default input buffer. */
00130 #ifndef YY_BUF_SIZE
00131 #define YY_BUF_SIZE 16384
00132 #endif
00133 
00134 /* The state buf must be large enough to hold one state per character in the main buffer.
00135  */
00136 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00137 
00138 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00139 #define YY_TYPEDEF_YY_BUFFER_STATE
00140 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00141 #endif
00142 
00143 extern int yyleng;
00144 
00145 extern FILE *yyin, *yyout;
00146 
00147 #define EOB_ACT_CONTINUE_SCAN 0
00148 #define EOB_ACT_END_OF_FILE 1
00149 #define EOB_ACT_LAST_MATCH 2
00150 
00151     #define YY_LESS_LINENO(n)
00152     
00153 /* Return all but the first "n" matched characters back to the input stream. */
00154 #define yyless(n) \
00155         do \
00156                 { \
00157                 /* Undo effects of setting up yytext. */ \
00158         int yyless_macro_arg = (n); \
00159         YY_LESS_LINENO(yyless_macro_arg);\
00160                 *yy_cp = (yy_hold_char); \
00161                 YY_RESTORE_YY_MORE_OFFSET \
00162                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00163                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00164                 } \
00165         while ( 0 )
00166 
00167 #define unput(c) yyunput( c, (yytext_ptr)  )
00168 
00169 /* The following is because we cannot portably get our hands on size_t
00170  * (without autoconf's help, which isn't available because we want
00171  * flex-generated scanners to compile on their own).
00172  */
00173 
00174 #ifndef YY_TYPEDEF_YY_SIZE_T
00175 #define YY_TYPEDEF_YY_SIZE_T
00176 typedef unsigned int yy_size_t;
00177 #endif
00178 
00179 #ifndef YY_STRUCT_YY_BUFFER_STATE
00180 #define YY_STRUCT_YY_BUFFER_STATE
00181 struct yy_buffer_state
00182         {
00183         FILE *yy_input_file;
00184 
00185         char *yy_ch_buf;                /* input buffer */
00186         char *yy_buf_pos;               /* current position in input buffer */
00187 
00188         /* Size of input buffer in bytes, not including room for EOB
00189          * characters.
00190          */
00191         yy_size_t yy_buf_size;
00192 
00193         /* Number of characters read into yy_ch_buf, not including EOB
00194          * characters.
00195          */
00196         int yy_n_chars;
00197 
00198         /* Whether we "own" the buffer - i.e., we know we created it,
00199          * and can realloc() it to grow it, and should free() it to
00200          * delete it.
00201          */
00202         int yy_is_our_buffer;
00203 
00204         /* Whether this is an "interactive" input source; if so, and
00205          * if we're using stdio for input, then we want to use getc()
00206          * instead of fread(), to make sure we stop fetching input after
00207          * each newline.
00208          */
00209         int yy_is_interactive;
00210 
00211         /* Whether we're considered to be at the beginning of a line.
00212          * If so, '^' rules will be active on the next match, otherwise
00213          * not.
00214          */
00215         int yy_at_bol;
00216 
00217     int yy_bs_lineno; /**< The line count. */
00218     int yy_bs_column; /**< The column count. */
00219     
00220         /* Whether to try to fill the input buffer when we reach the
00221          * end of it.
00222          */
00223         int yy_fill_buffer;
00224 
00225         int yy_buffer_status;
00226 
00227 #define YY_BUFFER_NEW 0
00228 #define YY_BUFFER_NORMAL 1
00229         /* When an EOF's been seen but there's still some text to process
00230          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00231          * shouldn't try reading from the input source any more.  We might
00232          * still have a bunch of tokens to match, though, because of
00233          * possible backing-up.
00234          *
00235          * When we actually see the EOF, we change the status to "new"
00236          * (via yyrestart()), so that the user can continue scanning by
00237          * just pointing yyin at a new input file.
00238          */
00239 #define YY_BUFFER_EOF_PENDING 2
00240 
00241         };
00242 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00243 
00244 /* Stack of input buffers. */
00245 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
00246 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
00247 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
00248 
00249 /* We provide macros for accessing buffer states in case in the
00250  * future we want to put the buffer states in a more general
00251  * "scanner state".
00252  *
00253  * Returns the top of the stack, or NULL.
00254  */
00255 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00256                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00257                           : NULL)
00258 
00259 /* Same as previous macro, but useful when we know that the buffer stack is not
00260  * NULL or when we need an lvalue. For internal use only.
00261  */
00262 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00263 
00264 /* yy_hold_char holds the character lost when yytext is formed. */
00265 static char yy_hold_char;
00266 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
00267 int yyleng;
00268 
00269 /* Points to current character in buffer. */
00270 static char *yy_c_buf_p = (char *) 0;
00271 static int yy_init = 0;         /* whether we need to initialize */
00272 static int yy_start = 0;        /* start state number */
00273 
00274 /* Flag which is used to allow yywrap()'s to do buffer switches
00275  * instead of setting up a fresh yyin.  A bit of a hack ...
00276  */
00277 static int yy_did_buffer_switch_on_eof;
00278 
00279 void yyrestart (FILE *input_file  );
00280 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00281 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
00282 void yy_delete_buffer (YY_BUFFER_STATE b  );
00283 void yy_flush_buffer (YY_BUFFER_STATE b  );
00284 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00285 void yypop_buffer_state (void );
00286 
00287 static void yyensure_buffer_stack (void );
00288 static void yy_load_buffer_state (void );
00289 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00290 
00291 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00292 
00293 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
00294 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
00295 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
00296 
00297 void *yyalloc (yy_size_t  );
00298 void *yyrealloc (void *,yy_size_t  );
00299 void yyfree (void *  );
00300 
00301 #define yy_new_buffer yy_create_buffer
00302 
00303 #define yy_set_interactive(is_interactive) \
00304         { \
00305         if ( ! YY_CURRENT_BUFFER ){ \
00306         yyensure_buffer_stack (); \
00307                 YY_CURRENT_BUFFER_LVALUE =    \
00308             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00309         } \
00310         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00311         }
00312 
00313 #define yy_set_bol(at_bol) \
00314         { \
00315         if ( ! YY_CURRENT_BUFFER ){\
00316         yyensure_buffer_stack (); \
00317                 YY_CURRENT_BUFFER_LVALUE =    \
00318             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00319         } \
00320         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00321         }
00322 
00323 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00324 
00325 /* Begin user sect3 */
00326 
00327 #define yywrap(n) 1
00328 #define YY_SKIP_YYWRAP
00329 
00330 typedef unsigned char YY_CHAR;
00331 
00332 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00333 
00334 typedef int yy_state_type;
00335 
00336 extern int yylineno;
00337 
00338 int yylineno = 1;
00339 
00340 extern char *yytext;
00341 #define yytext_ptr yytext
00342 
00343 static yy_state_type yy_get_previous_state (void );
00344 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00345 static int yy_get_next_buffer (void );
00346 static void yy_fatal_error (yyconst char msg[]  );
00347 
00348 /* Done after the current pattern has been matched and before the
00349  * corresponding action - sets up yytext.
00350  */
00351 #define YY_DO_BEFORE_ACTION \
00352         (yytext_ptr) = yy_bp; \
00353         yyleng = (size_t) (yy_cp - yy_bp); \
00354         (yy_hold_char) = *yy_cp; \
00355         *yy_cp = '\0'; \
00356         (yy_c_buf_p) = yy_cp;
00357 
00358 #define YY_NUM_RULES 180
00359 #define YY_END_OF_BUFFER 181
00360 /* This struct is not used in this scanner,
00361    but its presence is necessary. */
00362 struct yy_trans_info
00363         {
00364         flex_int32_t yy_verify;
00365         flex_int32_t yy_nxt;
00366         };
00367 static yyconst flex_int16_t yy_accept[1094] =
00368     {   0,
00369         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00370       181,  153,  179,   16,   17,   48,  179,   26,   38,   42,
00371       179,   30,   31,   37,   36,   53,   54,   35,   39,  149,
00372        33,   32,   51,   50,   52,   34,  152,  152,   18,  179,
00373        20,   40,  152,  152,  152,  152,  152,  152,  152,  152,
00374       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00375       152,  152,  152,   22,   44,   24,   46,  178,  177,  174,
00376       177,  177,  177,  180,  157,  157,  155,  157,  172,  173,
00377       158,  173,  172,  173,  172,  172,  172,  172,  172,  172,
00378       172,  153,  153,  153,    0,  153,   16,   73,   14,   14,
00379 
00380        10,   14,   28,   27,   61,   25,   77,   64,    8,    8,
00381         8,   59,   81,   57,   82,   58,   84,   56,    0,  149,
00382         0,    0,   60,  150,  149,  149,  149,  149,    0,  149,
00383       149,  149,   55,   21,   23,   19,   68,   75,   72,   76,
00384        69,  152,  152,  152,    0,    0,  154,  154,   62,  152,
00385       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00386        99,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00387       111,  152,  152,  152,  152,  152,  152,  152,   80,  152,
00388       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00389       152,  152,  152,  152,  152,  152,  152,   66,   79,  174,
00390 
00391         0,    0,    0,    0,    0,    0,    0,  155,    0,  156,
00392         0,  172,  172,  172,    0,  172,  158,    0,    0,    0,
00393         0,  172,  172,  172,  172,  164,  172,  172,  172,  172,
00394       154,  154,    0,    0,    0,    0,    0,    0,    0,    4,
00395         0,    0,    0,    0,    0,    0,   83,   85,  149,  149,
00396       149,  149,  149,    0,    0,    3,    0,    1,  150,  150,
00397       150,  150,  150,  149,  151,  151,   71,   70,   15,   15,
00398        11,   15,   15,    9,    9,    9,  154,  154,  154,  154,
00399         0,  154,  154,  154,  154,  154,   78,   86,  152,  152,
00400       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00401 
00402       152,  152,  152,  152,  152,  152,  152,  152,  108,  152,
00403       152,  152,  113,  152,  152,  152,  117,   49,  152,  152,
00404       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00405       152,  152,  152,  152,  152,  152,  135,  152,  152,  152,
00406       152,  152,  152,  152,  152,  152,   41,    0,  176,    0,
00407         0,    0,    0,  175,    0,    0,    0,    0,    0,    0,
00408         0,    0,    0,    0,    0,  172,  172,  172,  172,  172,
00409       172,  172,  172,  172,  172,  172,  154,  154,  154,  154,
00410       154,  154,   14,   14,   14,   14,   14,   14,   14,   14,
00411        14,   29,    8,    8,    8,    8,    8,    8,    8,    8,
00412 
00413         8,    0,    2,  150,  151,  151,  151,  151,  151,  151,
00414         0,  151,  151,  151,  151,  151,  151,  151,  151,    0,
00415        11,    0,   13,   15,    0,    0,    0,    0,    0,    0,
00416         5,    0,    0,    0,    0,    0,    0,  154,  154,  154,
00417       154,  154,  154,  154,  154,  154,  152,   87,  152,  152,
00418        88,  152,   90,  152,   92,  152,  152,  152,  152,  152,
00419       152,  152,  152,  102,  103,  152,  152,  152,  152,  152,
00420       152,  110,  152,  114,  152,  152,  152,  152,  152,  152,
00421       152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
00422       152,  152,  133,  152,  148,  152,  152,  152,  152,  152,
00423 
00424       143,  152,  152,  152,  152,    0,    0,    0,    0,    0,
00425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00426       172,  167,  168,  172,  172,  172,  172,  172,  171,  172,
00427       172,  154,  154,  154,  154,  154,  154,   14,   14,   14,
00428        14,   14,   14,   14,    8,    8,    8,    8,    8,    8,
00429         8,  151,  151,  151,  151,  151,  151,  151,  151,  151,
00430       151,  151,  151,  151,  151,  151,    0,    0,    0,    0,
00431         0,   15,   15,   15,   15,   15,   15,   15,   15,   15,
00432         9,    9,    9,    9,    9,    9,    9,    9,    9,  154,
00433       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
00434 
00435       154,  152,  152,   45,   89,   91,   93,   47,   94,  152,
00436       152,  152,  152,  152,  152,  152,  152,  147,  107,  152,
00437       152,  152,  152,  152,  152,   67,  152,  152,  152,  152,
00438       152,  152,  125,  152,  152,  152,  152,  152,  152,  134,
00439       152,  152,  152,  139,  152,  141,  152,  152,  152,  146,
00440       152,    0,    0,    0,    0,    0,    0,    0,    0,    0,
00441         0,    0,    0,    0,    0,  172,  169,  162,  165,  172,
00442       172,  172,  160,  154,  154,  154,  154,  154,  154,   14,
00443        14,   14,   14,    8,    8,    8,    8,  151,  151,  151,
00444       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
00445 
00446       151,  151,  151,  151,  151,  151,  151,    0,    0,    0,
00447        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
00448         9,    9,    9,    9,    9,    9,    9,  154,  154,  154,
00449       154,  154,  154,  154,  154,  154,  153,  153,  153,   65,
00450        43,  152,  152,  152,   98,  100,  152,  152,  105,  106,
00451       109,  112,  152,  152,   74,  152,  152,  152,  121,  152,
00452       152,  124,  126,  127,  128,  130,  131,  152,  152,  137,
00453       152,  152,  152,  152,  152,   63,    0,    0,    0,    0,
00454         0,    0,    0,    0,  172,  172,  159,  166,  172,  161,
00455       154,  154,  154,  153,  153,  153,   14,   14,   14,   14,
00456 
00457         8,    8,    8,    8,  151,  151,  151,  151,  151,  151,
00458       151,  151,  151,  151,  151,  151,  151,  151,  151,  150,
00459       150,  150,  150,  150,    0,    0,    0,   15,   15,   15,
00460        15,   15,   15,   15,    9,    9,    9,    9,  154,  154,
00461       154,  154,  154,  154,  154,  154,  154,  152,  152,   97,
00462       152,  152,  115,  152,  152,  119,  152,  152,  152,  152,
00463       152,  136,  152,  152,  142,  152,  145,    0,    0,  172,
00464         0,    0,  163,  170,  154,  154,  154,   14,   14,   12,
00465        14,    8,    8,    6,    8,  151,  151,  151,  151,  151,
00466       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
00467 
00468        15,   15,   15,    9,    9,    9,    9,  154,  154,  154,
00469       154,  154,  154,  154,  154,  154,  152,   96,  152,  104,
00470       152,  118,  152,  122,  152,  152,  132,  138,  140,  144,
00471         0,    0,    0,    0,  154,  154,  154,   14,   14,    0,
00472         0,    0,    8,    8,    0,    0,    0,  151,  151,  151,
00473       151,  151,  151,  151,  151,  151,  151,  151,  151,  151,
00474       151,  151,   15,   15,    9,    9,    7,    9,  154,  154,
00475       154,  154,  154,  154,  152,  152,  116,  120,  152,  152,
00476         0,    0,    0,    0,  154,  154,  154,   14,   14,   14,
00477        14,   14,    8,    8,    8,    8,    8,  151,  151,  151,
00478 
00479       151,  151,  151,  151,  151,  151,  151,   15,   15,    9,
00480         9,    0,    0,    0,  153,  153,  153,  154,  154,  154,
00481        95,  152,  152,  152,    0,    0,  172,  172,  153,  153,
00482       153,   14,   14,   14,   14,   14,    8,    8,    8,    8,
00483         8,  150,  150,  150,  150,  150,  151,  151,  151,  151,
00484       151,   15,   15,    9,    9,    9,    9,    9,  154,  154,
00485       154,  152,  152,  129,  172,  172,  151,  151,  151,  151,
00486       151,   15,   15,    9,    9,    9,    9,    9,  154,  154,
00487       154,  101,  152,  151,  151,  151,  151,  151,  152,  152,
00488       152,  123,    0
00489 
00490     } ;
00491 
00492 static yyconst flex_int32_t yy_ec[256] =
00493     {   0,
00494         1,    2,    2,    2,    2,    2,    2,    2,    3,    4,
00495         5,    6,    2,    2,    2,    2,    2,    2,    2,    2,
00496         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00497         2,    7,    8,    9,   10,    2,   11,   12,   13,   14,
00498        15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
00499        25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
00500        35,   36,   37,    2,   38,   39,   40,   41,   42,   43,
00501        44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
00502        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
00503        64,   65,   66,   67,   68,    2,   69,   70,   71,   72,
00504 
00505        73,   74,   75,   76,   77,   78,   79,   80,   81,   82,
00506        83,   84,   85,   86,   87,   88,   89,   90,   91,   92,
00507        93,   94,   95,   96,   97,   98,    2,    2,    2,    2,
00508         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00509         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00510         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00511         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00512         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00513         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00514         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00515 
00516         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00517         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00518         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00519         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00520         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
00521         2,    2,    2,    2,    2
00522     } ;
00523 
00524 static yyconst flex_int32_t yy_meta[100] =
00525     {   0,
00526         1,    1,    1,    2,    1,    1,    1,    1,    1,    1,
00527         1,    1,    3,    1,    1,    1,    1,    1,    1,    1,
00528         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00529         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00530         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00531         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00532         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00533         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00534         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00535         1,    1,    1,    1,    1,    1,    1,    1,    4
00536 
00537     } ;
00538 
00539 static yyconst flex_int16_t yy_base[1204] =
00540     {   0,
00541         0,    0,   97,  102,    0,    0,  107,  119,  140,    0,
00542      2714,  239,15182,  127,15182, 2671,  238, 2695,   84,  103,
00543       240,15182,15182, 2669,  104,15182,  222,  318,  238,  349,
00544       213,15182,  240, 2668,  220,15182,  443,  237,15182,  248,
00545     15182, 2667,    0,  269,  276,  285,  465,  275,  376, 2618,
00546        53, 2601, 2594,  377,  280,  250, 2609,  387,  466,  161,
00547       370,  200, 2598,15182,  317,15182,15182,15182,15182,  540,
00548      2671, 2663, 2642,15182,15182,  550, 2659, 2652,  571,15182,
00549       559, 2651,    0,  326,    0, 2593,  369,  178, 2588, 2578,
00550      2581,    0,    0,    0,  327,    0,  570,15182,  540,15182,
00551 
00552     15182,  657,15182, 2651,15182,15182,15182,15182,  444,15182,
00553       741,15182,15182,15182,15182,15182, 2637,15182, 2631,  833,
00554       442, 2646,15182,  927,    0,    0,    0,  364,  418,    0,
00555         0,  435,15182,15182,15182,15182, 2614,15182,15182,15182,
00556      2613,    0,    0,    0,  570,  663, 1021, 1094,15182, 2559,
00557      2549, 2541, 2540, 2544, 2553,  392, 2556, 2547,  469,  489,
00558      2526, 2532, 2526, 2523,  298, 2531, 2527, 2523, 2523, 2510,
00559         0,  490, 2515, 2508, 2514, 2487, 2489, 2503, 2507,  504,
00560      2504,  515, 2490,  492,  499, 2495, 2482,  505,  495, 2478,
00561       283, 2484, 2474,  527, 2483, 2481, 2471,15182,15182,  666,
00562 
00563      2540, 2545,  685, 2531, 2509,  692,  697, 2534, 2527,15182,
00564      2526,    0,    0,    0,  548,    0,  714, 2488, 2487, 1147,
00565      1200, 2400,  591, 2401, 2386,  629, 2400, 2388, 2400, 2386,
00566      1253, 1306,  720,  721,  733, 1377, 1430, 1483, 2425,15182,
00567       710,  728, 1126, 1554, 1607, 1660,15182,15182, 1734,  658,
00568         0,    0,  691,  677,  717,15182, 2451,15182, 1828,    0,
00569       717,    0,  734,    0, 1922, 1995,15182,15182,  770,15182,
00570       707,  773, 2061,  767,15182, 2145, 2237, 2310,    0,    0,
00571       616,    0,    0, 2363,    0,    0, 2437, 2386,  705,  721,
00572       672,  723,  727,  641,  716,  521,  393,  726,  728,  735,
00573 
00574       737,  749,  751,  741,  757,  753,  733,  773, 2385,  771,
00575       760,  768, 2384,  779,  780,  778, 2383, 2382,  782,  797,
00576       869,  872,  861,  862,  472,  874,  875,  784,  863,  876,
00577       964,  966,  864,  955,  956,  865, 2381,  957,  958,  959,
00578      1058,  967,  676,  831,  866,  960, 2380, 1138,15182, 1017,
00579      2431, 1140, 1176,15182, 1141, 2430, 1177, 2510, 2563, 2428,
00580      1178, 2616,    0, 2669,    0, 2743,  917, 1054, 2366,  704,
00581      1119, 1123, 1008, 1128,  792, 1129, 2816,    0,    0, 2869,
00582         0,    0, 1199,    0, 1365, 2940,    0, 2993,    0, 3064,
00583         0,15182, 1200,    0, 1232, 3135,    0, 3188,    0, 3259,
00584 
00585         0,  930,15182, 3333, 3427,    0, 3500,    0, 1039,    0,
00586       904,    0,    0, 1141, 3553,    0, 1190,    0, 1193, 1022,
00587      1119, 3619,15182, 3703, 1240, 1294, 1537, 3792, 3845, 3898,
00588     15182, 1249, 1286, 1409, 3969, 4022, 4075, 4149, 4222,    0,
00589         0, 4275, 4328, 4381,    0,    0, 4455, 2369, 1056, 1160,
00590      2368, 1227, 2366, 1138, 2358, 1161, 1228, 1159, 1190, 1162,
00591      1164, 1229, 1231, 2357, 2356, 1212, 1266, 1267, 2355, 1268,
00592      1237, 2354, 1238, 2353, 1243, 1270, 2352, 1248, 1265, 1285,
00593      2350, 1287, 1295, 1282, 1298, 1310, 2349, 1289, 1288, 1195,
00594      1215, 1293, 2348, 1294, 2339, 1403, 1339, 1322, 1336, 1337,
00595 
00596      2338, 1341, 1354, 2337, 2336, 2383, 2394, 2381, 2380, 2374,
00597      2361, 4528,    0, 4581,    0, 2360, 4634,    0, 4687,    0,
00598      4761, 2293, 2292, 1404, 1342, 1405, 1408, 1395, 2291, 1065,
00599      1409, 4834,    0,    0, 4887,    0,    0, 1484, 4958, 5029,
00600      5082,    0, 5153,    0, 1523, 5224, 5295, 5348,    0, 5419,
00601         0, 5493,    0, 5571,    0, 1406,    0, 1422, 1426, 5624,
00602      5677, 5730,    0, 1445,    0, 1446, 1506, 5783, 1533, 1688,
00603      5854, 1534,    0, 2087, 5925,    0, 5978,    0, 6049,    0,
00604      1535,    0, 1639, 6120,    0, 6173,    0, 6244,    0, 6318,
00605         0,    0, 6391,    0,    0, 6444,    0,    0, 6497,    0,
00606 
00607         0, 6571, 1410, 2277, 2276, 2275, 2274, 2273, 1483, 1233,
00608      1409, 1501, 1502, 1524, 1518, 1431, 1435, 2272, 2269, 1519,
00609      1532, 1412, 1382, 2260, 1459, 2259, 1484, 1535, 1536, 1485,
00610      1537, 1526, 2258, 1568, 1570, 1571, 1527, 1575, 1572, 2257,
00611      1585, 1587, 1624, 2218, 1531, 2216, 1636, 1641, 1586, 2189,
00612      2187, 2255, 1524, 2266, 2242, 1653, 2253, 6644,    0, 6697,
00613         0, 6750,    0, 6803,    0, 6877, 2183, 2182, 2181, 1621,
00614      1634, 1545, 2179, 6950,    0,    0, 7003,    0,    0, 7074,
00615      7145, 7198,    0, 7269, 7340, 7393,    0, 7467,    0, 1479,
00616         0, 1656, 7540,    0, 1703,    0, 1706, 7593,    0, 1719,
00617 
00618         0, 1720, 7646,    0, 1723,    0, 1724, 2030, 7712,    0,
00619      2137, 7783,    0, 1827, 7854, 7925, 7978,    0, 8049,    0,
00620      1829, 8120, 8191, 8244,    0, 8315,    0, 8389,    0,    0,
00621      8462,    0,    0, 8515,    0,    0, 8589,    0,    0, 8683,
00622         0, 2180, 2161, 2161,    0,    0, 2176, 2169,    0,    0,
00623         0,    0, 2172, 2172,    0, 2149, 2157, 2141,    0, 2155,
00624      2140,    0,    0,    0, 2156,    0,    0, 2135, 2117,    0,
00625      2096, 2103, 2065, 2044, 2033,    0, 2091, 2088, 8756,    0,
00626      8809,    0, 8862,    0, 8936,    0, 1978,    0, 1859,    0,
00627      9009,    0,    0,    0,    0,    0, 9080, 9151, 1830, 1921,
00628 
00629      9222, 9293, 1923, 1924, 9367,    0, 1727,    0, 1728, 9440,
00630         0, 1731,    0, 1732, 9493,    0, 1749,    0, 1750, 9567,
00631         0, 1781,    0, 1813, 1687, 9653,    0, 2036, 9724,    0,
00632      9795, 9866, 9919,    0, 9990,10061,10114,    0,10188,    0,
00633         0,10261,    0,    0,10314,    0,    0,10388, 1655, 1795,
00634      1702, 1639, 1769, 1766, 1774, 1732, 1772, 1775, 1778, 1794,
00635      1860, 1686, 1862, 1777, 1650, 1865, 1570,10461,    0,10535,
00636     10608,    0,    0,    0,10661,    0,    0,10732,10803,15182,
00637     10869,10958,11029,15182,11095,11187,    0, 1907,    0, 1922,
00638     11260,    0, 1937,    0, 1938,11313,    0, 2010,    0, 2011,
00639 
00640     11384,11455, 2037,11526,11597, 2038, 2058,11650,    0,    0,
00641     11703,    0,    0,11756,    0,    0,11830, 1503, 1872, 1431,
00642      1974, 1357, 1976, 1309, 1945, 1871, 1276, 1255, 1200, 1163,
00643     11903,    0,11956,    0,12009,    0,    0,12080,12151, 2040,
00644      2171,12204,12275,12346, 2068, 2342,12399,12473,    0, 2056,
00645         0, 2059,12546,    0, 2060,    0, 2063,12599,    0, 2075,
00646         0, 2080,12670,12741,12812,12883,15182,12949,13020,    0,
00647         0,13073,    0,    0,13147, 2037, 1127,  857, 2020, 2030,
00648     13220,    0,13273,    0,13326,    0,    0,13379,    0, 2391,
00649     13450,    0,13503,    0, 2542,13574,    0,13627,    0, 2103,
00650 
00651         0, 2110,13680,    0, 2115,    0, 2119,13751,    0,13804,
00652         0, 2124, 2595,13857,13931,    0,    0,14004,    0,    0,
00653       809, 2052,  724,  550,14057,    0,14131,    0,    0,    0,
00654         0, 2174, 2175, 2177,    0,    0, 2144, 2188, 2204,    0,
00655         0,14225,    0, 2125,    0, 2168,14298,    0, 2171,    0,
00656      2187,14351,    0,14404,    0, 2648,14475,    0,14528,    0,
00657         0,  422,  969,  275,    0,    0,14581,    0, 2188,    0,
00658      2194, 2239, 2436, 2208, 2343, 2359,    0,    0,14634,    0,
00659         0,  247, 1972,14687,    0, 2199,    0, 2203, 2156, 2068,
00660        49,   13,15182,14761,14765,14769,14773,14777,14781,14785,
00661 
00662     14789,14793,14797,14801,14805,14809,14813,14816,14819,14822,
00663     14826,14830,14834,14838,14842,14846,14850,14854,14858,14862,
00664     14866,14870,14874,14877,14880,14883,14886,14889,14892,14896,
00665     14900,14904,14908,14912,14916,14920,14924,14928,14932,14936,
00666     14940,14944,14947,14951,14954,14957,14961,14964,14967,14971,
00667     14975,14979,14983,14987,14991,14995,14999,15003,15007,15011,
00668     15015,15018,15021,15025,15028,15031,15035,15039,15043,15047,
00669     15051,15055,15059,15063,15067,15070,15073,15077,15081,15085,
00670     15089,15093,15097,15101,15105,15109,15113,15117,15121,15125,
00671     15129,15133,15137,15141,15145,15149,15153,15157,15161,15165,
00672 
00673     15169,15173,15177
00674     } ;
00675 
00676 static yyconst flex_int16_t yy_def[1204] =
00677     {   0,
00678      1093,    1, 1094, 1094, 1095, 1095, 1096, 1096, 1093,    9,
00679      1093, 1093, 1093, 1093, 1093, 1093, 1097, 1093, 1093, 1093,
00680      1098, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00681      1093, 1093, 1093, 1093, 1093, 1093, 1093,   37, 1093, 1093,
00682      1093, 1093,   37,   37,   37,   37,   37,   37,   37,   37,
00683        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
00684        37,   37,   37, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00685      1099, 1093, 1100, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00686      1093, 1093,   79, 1093,   79,   79,   79,   79,   79,   79,
00687        79,   12,   12,   12, 1093,   12, 1093, 1093, 1097, 1093,
00688 
00689      1093, 1101, 1093, 1093, 1093, 1093, 1093, 1093, 1098, 1093,
00690      1102, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00691      1103, 1104, 1093, 1093,  120,   30,   30,   30, 1093,   30,
00692        30,   30, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00693      1093,   37,   37,   37, 1105, 1106, 1093,  147, 1093,   37,
00694        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
00695        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
00696        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
00697        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
00698        37,   37,   37,   37,   37,   37,   37, 1093, 1093, 1093,
00699 
00700      1093, 1099, 1093, 1107, 1100, 1093, 1093, 1093, 1093, 1093,
00701      1108,   79,   79,   79, 1093,   79, 1093, 1093, 1109, 1093,
00702      1093,   79,   79,   79,   79,   79,   79,   79,   79,   79,
00703       147,  147, 1110, 1111, 1111, 1110,  236,  236, 1093, 1093,
00704      1112, 1113, 1113, 1112,  244,  244, 1093, 1093, 1093,  249,
00705       249,  249,  249, 1114, 1115, 1093, 1116, 1093, 1093,  259,
00706       259,  259,  259,  249, 1093,  265, 1093, 1093, 1117, 1093,
00707      1118, 1119, 1120, 1121, 1093, 1122, 1093,  277,  278,  277,
00708      1093,  277,  278,  278,  284,  284, 1093,  287,  287,  287,
00709       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
00710 
00711       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
00712       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
00713       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
00714       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
00715       287,  287,  287,  287,  287,  287,  287, 1093, 1093, 1093,
00716      1123, 1124, 1093, 1093, 1093, 1125, 1126, 1093, 1093, 1127,
00717      1128, 1093,  362, 1093,  364, 1093,  366,  366,  366,  366,
00718       366,  366,  366,  366,  366,  366,  284,  377,  377,  377,
00719       380,  380, 1129, 1130, 1131, 1129,  386,  386,  388, 1131,
00720       390, 1093, 1132, 1133, 1134, 1132,  396,  396,  398, 1134,
00721 
00722       400, 1135, 1093, 1093, 1093,  405,  405,  407,  407,  405,
00723      1093,  405,  407,  407,  407,  415,  415,  415,  415, 1136,
00724      1136, 1093, 1093, 1137, 1138, 1139, 1139, 1138,  428,  428,
00725      1093, 1140, 1141, 1141, 1140,  435,  435, 1093,  438,  439,
00726       439,  439,  439,  439,  444,  444, 1093,  447,  447,  447,
00727       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
00728       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
00729       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
00730       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
00731       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
00732 
00733       447,  447,  447,  447,  447, 1142, 1143, 1144, 1145, 1146,
00734      1147, 1093,  512, 1093,  514, 1148, 1093,  517, 1093,  519,
00735      1093,  521,  521,  521,  521,  521,  521,  521,  521,  521,
00736       521,  444,  532,  532,  532,  535,  535, 1149, 1150, 1150,
00737       540,  541, 1149,  543, 1151, 1152, 1152,  547,  548, 1151,
00738       550, 1093,  552,  552,  554,  554,  554,  554,  552,  554,
00739       554,  554,  562,  562,  562,  562, 1153, 1093, 1154, 1154,
00740      1155, 1155, 1156, 1157, 1155,  575,  575,  577, 1157,  579,
00741      1158, 1159, 1160, 1158,  584,  584,  586, 1160,  588, 1093,
00742       590,  590,  590,  593,  593,  593,  596,  596,  596,  599,
00743 
00744       599, 1093,  602,  602,  602,  602,  602,  602,  602,  602,
00745       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
00746       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
00747       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
00748       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
00749       602, 1161, 1162, 1163, 1164, 1165, 1166, 1093,  658, 1093,
00750       660, 1093,  662, 1093,  664, 1093,  666,  666,  666,  666,
00751       666,  666,  666,  599,  674,  674,  674,  677,  677, 1167,
00752      1167,  681,  682, 1168, 1168,  685,  686, 1093,  688,  688,
00753       688,  688,  688,  693,  693,  693,  693,  693,  698,  698,
00754 
00755       698,  698,  698,  703,  703,  703,  703, 1169, 1169,  709,
00756      1170, 1170,  712, 1171, 1172, 1172,  716,  717, 1171,  719,
00757      1173, 1174, 1174,  723,  724, 1173,  726, 1093,  728,  728,
00758       728,  731,  731,  731,  734,  734, 1093,  737,  737, 1093,
00759       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
00760       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
00761       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
00762       740,  740,  740,  740,  740,  740, 1175, 1176, 1093,  779,
00763      1093,  781, 1093,  783, 1093,  785,  785,  785,  785,  785,
00764       734,  791,  791,  737,  737,  737, 1177, 1177, 1178, 1178,
00765 
00766      1179, 1179, 1180, 1180, 1093,  805,  805,  805,  805,  805,
00767       810,  810,  810,  810,  810,  815,  815,  815,  815, 1093,
00768       820,  820,  820,  820, 1181, 1181,  826, 1182, 1182,  829,
00769      1183, 1183,  832,  833, 1184, 1184,  836,  837, 1093,  839,
00770       839,  839,  842,  842,  842,  845,  845, 1093,  848,  848,
00771       848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
00772       848,  848,  848,  848,  848,  848,  848, 1093,  868, 1093,
00773      1093,  871,  870,  870,  845,  875,  875, 1185, 1185, 1093,
00774      1186, 1187, 1187, 1093, 1188, 1093,  886,  886,  886,  886,
00775       886,  891,  891,  891,  891,  891,  896,  896,  896,  896,
00776 
00777      1189, 1189, 1190, 1191, 1191, 1192, 1192,  875,  908,  908,
00778       908,  911,  911,  911,  914,  914, 1093,  917,  917,  917,
00779       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
00780      1093,  931, 1093,  933,  914,  935,  935, 1193, 1193, 1194,
00781      1194,  939, 1195, 1195, 1196, 1196,  944, 1093,  948,  948,
00782       948,  948,  948,  953,  953,  953,  953,  953,  958,  958,
00783       958,  958, 1197, 1197, 1198, 1198, 1093, 1199,  935,  969,
00784       969,  969,  972,  972, 1093,  975,  975,  975,  975,  975,
00785      1093,  981, 1093,  983,  972,  985,  985,  939,  988, 1200,
00786      1200,  991,  944,  993, 1201, 1201,  996,  958,  998,  998,
00787 
00788       998,  998,  998, 1003, 1003, 1003, 1003, 1197, 1008,  966,
00789      1010, 1202, 1202, 1010, 1093, 1015, 1015,  985, 1018, 1018,
00790       975,  975,  975,  975, 1093, 1025, 1093, 1027, 1015, 1015,
00791      1015, 1200, 1200, 1200,  991,  991, 1201, 1201, 1201,  996,
00792       996, 1093, 1042, 1042, 1042, 1042, 1003, 1047, 1047, 1047,
00793      1047, 1008, 1052, 1010, 1054, 1202, 1202, 1057, 1018, 1059,
00794      1059,  975,  975,  975, 1027, 1027, 1047, 1067, 1067, 1067,
00795      1067, 1203, 1203, 1202, 1202, 1202, 1057, 1057, 1059, 1079,
00796      1079,  975,  975, 1067, 1084, 1084, 1084, 1084,  975,  975,
00797       975,  975,    0, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00798 
00799      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00800      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00801      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00802      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00803      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00804      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00805      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00806      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00807      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00808      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
00809 
00810      1093, 1093, 1093
00811     } ;
00812 
00813 static yyconst flex_int16_t yy_nxt[15282] =
00814     {   0,
00815        12,   13,   14,   15,   14,   14,   14,   16,   17,   18,
00816        19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
00817        29,   30,   30,   30,   30,   30,   30,   30,   30,   30,
00818        30,   31,   32,   33,   34,   35,   36,   37,   37,   37,
00819        37,   37,   37,   37,   37,   37,   37,   37,   38,   37,
00820        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
00821        37,   37,   37,   39,   40,   41,   42,   43,   44,   45,
00822        46,   47,   48,   49,   50,   43,   51,   43,   43,   52,
00823        53,   54,   55,   56,   43,   57,   58,   59,   60,   61,
00824        62,   63,   43,   43,   64,   65,   66,   67,   68,   70,
00825 
00826       144,   70,   70,   70,   70,   71,   70,   70,   70,   76,
00827        71,   76,   76,   76,  107,  104,   77,   72,  105,  106,
00828       113,   76,   72,   76,   76,   76,  171,   78,   77,   97,
00829        73,   97,   97,   97,  172,   73, 1092,  108,  114,   78,
00830        79,   80,   81,   80,   81,   81,   81,   80,   80,   80,
00831        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
00832        82,   80,   80,   80,   80,   80,   80,   80,   80,   80,
00833        80,   80,   80,   80,   80,   80,   80,   83,   83,   83,
00834        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
00835        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
00836 
00837        83,   83,   83,   80,   84,   80,   80,   85,   85,   85,
00838        85,   86,   87,   85,   85,   85,   88,   85,   85,   89,
00839        85,   85,   85,   90,   85,   85,   85,   85,   91,   85,
00840        85,   85,   85,   85,   80,   80,   80,   80,   80,   92,
00841       115,  100,  191,  110,  133,  145,  101,  192,  134,  146,
00842       135,  226,  110,  121,  140,  141,  116,  117,  122,  227,
00843        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
00844       195,  136,  123,  137,  138,  196,   94,   94,   94,   94,
00845        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
00846        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
00847 
00848        94,   94,  102,   95,  111,  147,   96,   96,   96,   96,
00849        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
00850        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
00851        96,   96,   96,  118,  144,  180,  148,  119,  181,  120,
00852       120,  120,  120,  120,  120,  120,  120,  120,  120,  124,
00853       150,  198,  153,  156,  163,  151,  164,  152,  154,  339,
00854       157,  155,  144,  178,  158,  179,  165,  159,  125,  340,
00855       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
00856       264,  305,  264,  220,  231,  306,  127,  127,  127,  127,
00857       128,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00858 
00859       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
00860       127,  127,  199,  129,  221,  232,  130,  131,  131,  131,
00861       131,  132,  131,  131,  131,  131,  131,  131,  131,  131,
00862       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
00863       131,  131,  131,   92,  166,  175,  193,  110,  223,  176,
00864       224,  264,  194,  264,  225,  167,  240,  255,  168,  177,
00865       144,  169,  183,  184,  142,  142,  142,  142,  142,  142,
00866       142,  142,  142,  142,  185,  265,  457,  186,  293,  294,
00867       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
00868       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
00869 
00870       143,  143,  143,  143,  143,  143,  266,   95,  111, 1082,
00871       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
00872       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
00873       144,  144,  144,  144,  144,  144,  144,  160,  187,  144,
00874       256,  188,  200,  100,  200,  200,  200,  161,  101,  297,
00875       298,  189,  207,  484,  207,  207,  207,  162,  190,  208,
00876       201,  217,  299,  217,  217,  217,  328,  330,  300,  312,
00877       209,  212,   97,  270,   97,   97,   97,  313,  271,  218,
00878       321,  334,  272,  336,  331,  329,  322,  337,  144,  324,
00879       335,  325,  213,  213,  213,  213,  213,  213,  213,  213,
00880 
00881       213,  213,  326,  343,  102,  358,  344,  456,  214,  214,
00882       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
00883       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
00884       214,  214,  214,  214,  273,  215,  359, 1064,  216,  216,
00885       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
00886       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
00887       216,  216,  216,  216,  216,  234,  275,  367,  200,  234,
00888       200,  200,  200,  442,  264,  275,  264,  368,  235,  235,
00889       235,  235,  235,  235,  235,  235,  201,  348,  349,  348,
00890       348,  348,  255,  234,  353,  354,  353,  353,  353,  207,
00891 
00892       371,  207,  207,  207,  443,  350,  208,  264,  144,  264,
00893       372,  454,  355,  110,  236,  421,  217,  209,  217,  217,
00894       217,  234,  110,  100,  100,  234,  234,  276,  100,  101,
00895       234,  110,  255,  404,  218,  404,  100,  403,  234,  144,
00896       240,  101,  234,  144,  234,  237,  234,  501,  238,  242,
00897       404,  451,  404,  242,  385,  385,  385,  385,  385,  385,
00898       385,  385,  243,  243,  243,  243,  243,  243,  243,  243,
00899       275,  422,  144,  270,  394,  256,  270,  242,  271,  431,
00900       216,  423,  272,  144,  384,  102,  525,  448,  144,  449,
00901       144,  452,  111,  144,  144,  144,  460,  102,  244,  453,
00902 
00903       144,  455,  144,  450,  144,  242,  462,  461,  144,  242,
00904       242, 1063,  458,  459,  242,  256,  144,  463,  144,  469,
00905       144,  465,  242,  464,  144,  468,  242,  144,  242,  245,
00906       242,  276,  246,  124,  273,  144,  466,  424,  144,  467,
00907       144,  470,  472,  471,  473,  144,  144,  144,  475,  144,
00908       476,  144,  125,  474,  125,  125,  125,  125,  125,  125,
00909       125,  125,  125,  125,  144,  487,  530,  478,  216,  479,
00910       249,  249,  249,  249,  250,  249,  249,  249,  249,  249,
00911       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
00912       249,  249,  249,  249,  249,  249,  144,  129,  144,  502,
00913 
00914       251,  252,  252,  252,  252,  253,  252,  252,  252,  252,
00915       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
00916       252,  252,  252,  252,  252,  252,  252,  124,  144,  144,
00917       144,  144,  144,  144,  503,  488,  144,  495,  483,  144,
00918       482,  144,  144,  144,  144,  255,  259,  492,  259,  259,
00919       259,  259,  259,  259,  259,  259,  259,  259,  480,  481,
00920       486,  560,  485,  489,  260,  260,  260,  260,  261,  260,
00921       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
00922       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
00923       522,  129,  561,  216,  262,  262,  262,  262,  262,  263,
00924 
00925       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
00926       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
00927       262,  277,  144,  144,  144,  144,  144,  144,  256,  496,
00928       421,  144,  506,  144,  144,  498, 1083,  507,  494,  504,
00929       497,  493,  278,  278,  278,  278,  278,  278,  278,  278,
00930       278,  278,  490,  491,  500,  559,  144,  559,  279,  279,
00931       279,  279,  279,  279,  280,  280,  280,  280,  280,  280,
00932       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
00933       280,  280,  280,  280,  216,  281,  422,  528,  282,  283,
00934       283,  283,  283,  283,  283,  282,  282,  282,  282,  282,
00935 
00936       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
00937       282,  282,  282,  282,  282,  284,  284,  284,  284,  284,
00938       284,  284,  284,  284,  284,  144,  523,  421,  144,  110,
00939       216,  285,  285,  285,  285,  285,  285,  603,  240,  499,
00940       348,  349,  348,  348,  348,  672,  216,  395,  395,  395,
00941       395,  395,  395,  395,  395,  352,  509,  559,  350,  559,
00942       200,  510,  286,  286,  286,  286,  286,  286,  362,  362,
00943       362,  362,  362,  362,  362,  362,  362,  362,  353,  354,
00944       353,  353,  353,  422,  363,  363,  363,  363,  363,  363,
00945       111,  526,  357,  361,  527,  216,  355,  207,  217,  216,
00946 
00947       529,  531,  100,  110,  216,  216,  559,  100,  559,  559,
00948       144,  559,  110,  606,  144,  363,  363,  363,  363,  363,
00949       363,  364,  364,  364,  364,  364,  364,  364,  364,  364,
00950       364,  144,  144,  144,  144,  110,  144,  365,  365,  365,
00951       365,  365,  365,  270,  240,  604,  609,  607,  270,  144,
00952       611,  612,  275,  545,  545,  545,  545,  545,  545,  545,
00953       545,  275,  144,  384,  394,  637,  610,  144,  365,  365,
00954       365,  365,  365,  365,  377,  377,  377,  377,  377,  377,
00955       377,  377,  377,  377,  144,  638,  144,  144,  615,  275,
00956       378,  378,  378,  378,  378,  378,  111,  270,  431,  144,
00957 
00958       144,  144,  271,  144,  573,  605,  272,  608,  613,  144,
00959       144,  614,  622,  582,  743,  144,  625,  144,  620,  621,
00960       144,  379,  379,  379,  379,  379,  379,  380,  380,  380,
00961       380,  380,  380,  380,  380,  380,  380,  144,  144,  144,
00962       144,  144,  144,  381,  381,  381,  381,  381,  381,  626,
00963       276,  616,  617,  627,  144,  619,  623,  144,  273,  144,
00964       144,  144,  144,  629,  636,  144,  144,  144,  100,  631,
00965       144,  635,  639,  101,  382,  382,  382,  382,  382,  382,
00966       100,  630,  144,  632,  640,  100,  538,  538,  538,  538,
00967       538,  538,  538,  538,  144,  144,  645,  633,  386,  386,
00968 
00969       386,  386,  386,  386,  386,  386,  386,  386,  144,  144,
00970       646,  144,  275,  144,  387,  387,  387,  387,  387,  387,
00971       644,  431,  559,  216,  559,  647,  144,  668,  648,  102,
00972       583,  583,  583,  583,  583,  583,  583,  583,  559,  649,
00973       559,  384, 1093,  144, 1093,  387,  387,  387,  387,  387,
00974       387,  388,  388,  388,  388,  388,  388,  388,  388,  388,
00975       388,  559,  559,  559,  559,  754,  144,  389,  389,  389,
00976       389,  389,  389,  276,  641,  144,  216,  667,  669,  642,
00977       670,  741,  673,  671,  643,  216,  216,  100,  744,  216,
00978       216,  753,  101,  144,  144,  559,  144,  559,  389,  389,
00979 
00980       389,  389,  389,  389,  390,  390,  390,  390,  390,  390,
00981       390,  390,  390,  390,  421,  144,  750,  144,  749,  144,
00982       391,  391,  391,  391,  391,  391,  110,  708,  708,  708,
00983       708,  708,  708,  708,  708,  240,  270,  270,  275,  653,
00984       270,  423,  270,  144,  348,  271,  756,  275,  102,  272,
00985       742,  391,  391,  391,  391,  391,  391,  110,  574,  574,
00986       574,  574,  574,  574,  574,  574,  110,  144,  144,  144,
00987       422,  757,  760,  745,  746,  396,  396,  396,  396,  396,
00988       396,  396,  396,  396,  396,  144,  144,  111,  748,  144,
00989       751,  397,  397,  397,  397,  397,  397,  424,  573,  582,
00990 
00991       747,  273,  144,  144,  752,  758,  759,  762,  144,  761,
00992       144,  144,  772,  790,  766,  144,  144,  216,  394,  144,
00993       144,  144,  397,  397,  397,  397,  397,  397,  398,  398,
00994       398,  398,  398,  398,  398,  398,  398,  398,  144,  763,
00995       768,  765,  275,  764,  399,  399,  399,  399,  399,  399,
00996       767,  431,  144,  775,  144,  144,  144,  769,  770,  144,
00997       721,  721,  721,  721,  721,  721,  721,  721,  656,  144,
00998       144,  144,  559,  353,  559,  399,  399,  399,  399,  399,
00999       399,  400,  400,  400,  400,  400,  400,  400,  400,  400,
01000       400,  270,  771,  216,  788,  421,  423,  401,  401,  401,
01001 
01002       401,  401,  401,  276,  773,  789,  216,  144,  144,  711,
01003       711,  711,  711,  711,  711,  711,  711,  774,  144,  559,
01004       144,  559,  559,  144,  559,  144,  920,  918,  401,  401,
01005       401,  401,  401,  401,  124,  559,  559,  559,  559,  559,
01006       559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
01007       559,  422,  424,  125,  144,  125,  125,  125,  125,  125,
01008       125,  125,  125,  125,  125,  559,  559,  559,  559,  919,
01009       144,  249,  249,  249,  249,  250,  249,  249,  249,  249,
01010       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
01011       249,  249,  249,  249,  249,  249,  249,  559,  129,  559,
01012 
01013       144,  251,  252,  252,  252,  252,  253,  252,  252,  252,
01014       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
01015       252,  252,  252,  252,  252,  252,  252,  252,  124,  559,
01016       270,  559,  275,  100,  144,  271,  921,  144,  880,  272,
01017       144,  431,  144,  144,  923,  144,  144,  259,  929,  259,
01018       259,  259,  259,  259,  259,  259,  259,  259,  259,  922,
01019       924,  925,  144,  144,  926,  260,  260,  260,  260,  261,
01020       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
01021       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
01022       260,  273,  129,  276,  881,  262,  262,  262,  262,  262,
01023 
01024       263,  262,  262,  262,  262,  262,  262,  262,  262,  262,
01025       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
01026       262,  262,  405,  559,  100,  559,  110,  110,  144,  880,
01027       144,  874,  927,  144,  928,  884,  884,  930,  559,  980,
01028       559,  406,  976,  407,  407,  407,  407,  407,  407,  407,
01029       407,  407,  407,  559,  559,  559,  559,  144,  144,  408,
01030       408,  408,  408,  409,  408,  410,  410,  410,  410,  410,
01031       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01032       410,  410,  410,  410,  410,  881,  411,  885,  885,  412,
01033       413,  413,  413,  413,  414,  413,  412,  412,  412,  412,
01034 
01035       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01036       412,  412,  412,  412,  412,  412,  415,  415,  415,  415,
01037       415,  415,  415,  415,  415,  415,  559,  559,  559,  559,
01038       979,  144,  416,  416,  416,  416,  417,  416,  421,  270,
01039       270,  275, 1089,  100,  423,  423,  977,  978,  880,  873,
01040       967,  825,  825,  825,  825,  825,  825,  825,  825,  144,
01041       144,  275,  144,  418,  418,  418,  418,  419,  418,  426,
01042       967,  110,  559,  426,  559,  559,  559,  559,  559,  559,
01043       884,  559,  427,  427,  427,  427,  427,  427,  427,  427,
01044       270,  559, 1023,  559,  422,  271,  559,  426,  559,  272,
01045 
01046       424,  424,  968,  656,  881, 1022,  653,  144,  714,  714,
01047       714,  714,  714,  714,  714,  714, 1024,  144,  428,  559,
01048       867,  559,  968,  866,  144,  426,  559,  275,  559,  426,
01049       426,  559,  885,  559,  426,  559,  967,  559, 1062,  144,
01050       270,  559,  426,  559,  865,  423,  426,  110,  426,  429,
01051       426,  273,  430,  433, 1091,  144,  884,  433,  828,  828,
01052       828,  828,  828,  828,  828,  828,  434,  434,  434,  434,
01053       434,  434,  434,  434,  100,  864,  863,  100,  100,  880,
01054       100,  433,  880,  880,  559,  880,  559,  559,  968,  559,
01055       862,  110,  990,  990,  990,  990,  990,  990,  990,  990,
01056 
01057       884,  424,  435,  559,  559,  559,  559,  110,  885,  433,
01058       559,  275,  559,  433,  433,  559,  884,  559,  433,  559,
01059       967,  559,  861,  860, 1090,  859,  433,  858,  857,  856,
01060       433,  855,  433,  436,  433,  881,  437,  277,  881,  881,
01061       854,  881,  270,  144,  853,  852,  851,  423,  850,  849,
01062       848,  216,  885,  216,  216,  216,  354,  656,  438,  438,
01063       438,  438,  438,  438,  438,  438,  438,  438,  885,  349,
01064       653,  776,  968,  144,  280,  280,  280,  280,  280,  280,
01065       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01066       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01067 
01068       144,  281,  144,  424,  282,  282,  282,  282,  282,  282,
01069       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01070       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01071       282,  439,  439,  439,  439,  439,  439,  439,  439,  439,
01072       439,  144,  144,  144,  755,  110,  275,  440,  440,  440,
01073       440,  440,  440,  144,  884,  967,  144,  144,  144,  144,
01074       144,  144,  275,  995,  995,  995,  995,  995,  995,  995,
01075       995,  967,  216,  216,  216,  361,  357,  354,  441,  441,
01076       441,  441,  441,  441,  444,  444,  444,  444,  444,  444,
01077       444,  444,  444,  444,  100,  656,  352,  349,  653,  880,
01078 
01079       445,  445,  445,  445,  445,  445,  885,  968,  651,  650,
01080       144,  144, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
01081       144,  634,  628,  968,  624,  144,  144,  618,  144,  144,
01082       144,  446,  446,  446,  446,  446,  446,   92,  144,  270,
01083       144,  144,  524,  361,  423,  357,  352,  505,  144,  477,
01084       144,  144,  144,  144,  258,  881,  392,  376,  142,  142,
01085       142,  142,  142,  142,  142,  142,  142,  142,  375,  374,
01086       373,  370,  369,  366,  143,  143,  143,  143,  143,  143,
01087       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01088       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01089 
01090       424,   95,  361,  219,  447,  144,  144,  144,  144,  144,
01091       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01092       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01093       144,  512,  512,  512,  512,  512,  512,  512,  512,  512,
01094       512,  357,  211,  210,  206,  110,  352,  513,  513,  513,
01095       513,  513,  513,  203,  884,  204,  347,  346,  345,  342,
01096       341,  338,  333, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
01097      1039,  332,  327,  323,  320,  319,  318,  317,  513,  513,
01098       513,  513,  513,  513,  514,  514,  514,  514,  514,  514,
01099       514,  514,  514,  514,  316,  315,  314,  311,  275,  310,
01100 
01101       515,  515,  515,  515,  515,  515,  885,  967,  309,  308,
01102       307,  304,  303,  302,  301,  296, 1056, 1056, 1056, 1056,
01103      1056, 1056, 1056, 1056,  295,  292,  291,  290,  289,  288,
01104       287,  515,  515,  515,  515,  515,  515,  517,  517,  517,
01105       517,  517,  517,  517,  517,  517,  517,  268,  267,  258,
01106       248,  275,  247,  518,  518,  518,  518,  518,  518,  968,
01107       967,  239,  230,  229,  228,  222,  219,  211,  210, 1076,
01108      1076, 1076, 1076, 1076, 1076, 1076, 1076,  206,  204,  203,
01109       197,  182,  174,  173,  518,  518,  518,  518,  518,  518,
01110       519,  519,  519,  519,  519,  519,  519,  519,  519,  519,
01111 
01112       170,  149,  139,  112,  103,   98,  520,  520,  520,  520,
01113       520,  520,  968, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01114      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01115      1093, 1093, 1093, 1093, 1093, 1093, 1093,  520,  520,  520,
01116       520,  520,  520,  212, 1093, 1093, 1093, 1093, 1093, 1093,
01117      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01118      1093, 1093, 1093, 1093,  213,  213,  213,  213,  213,  213,
01119       213,  213,  213,  213, 1093, 1093, 1093, 1093, 1093, 1093,
01120       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01121       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01122 
01123       214,  214,  214,  214,  214,  214, 1093,  215, 1093, 1093,
01124       216,  216,  216,  216,  216,  216,  216,  216,  216,  521,
01125       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01126       216,  216,  216,  216,  216,  216,  216,  532,  532,  532,
01127       532,  532,  532,  532,  532,  532,  532, 1093, 1093, 1093,
01128      1093, 1093, 1093,  533,  533,  533,  533,  533,  533, 1093,
01129      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01130      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01131      1093, 1093, 1093, 1093,  534,  534,  534,  534,  534,  534,
01132       535,  535,  535,  535,  535,  535,  535,  535,  535,  535,
01133 
01134      1093, 1093, 1093, 1093, 1093, 1093,  536,  536,  536,  536,
01135       536,  536, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01136      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01137      1093, 1093, 1093, 1093, 1093, 1093, 1093,  537,  537,  537,
01138       537,  537,  537,  100, 1093, 1093, 1093, 1093,  100, 1093,
01139      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01140      1093,  539,  539,  539,  539,  539,  539,  539,  539,  539,
01141       539, 1093, 1093, 1093, 1093, 1093, 1093,  540,  540,  540,
01142       540,  540,  540, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01143      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01144 
01145      1093, 1093, 1093, 1093,  384, 1093, 1093, 1093,  540,  540,
01146       540,  540,  540,  540,  541,  541,  541,  541,  541,  541,
01147       541,  541,  541,  541, 1093, 1093, 1093, 1093, 1093, 1093,
01148       542,  542,  542,  542,  542,  542, 1093, 1093, 1093, 1093,
01149      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01150      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01151      1093,  542,  542,  542,  542,  542,  542,  100, 1093, 1093,
01152      1093, 1093,  101, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01153      1093, 1093, 1093, 1093, 1093,  543,  543,  543,  543,  543,
01154       543,  543,  543,  543,  543, 1093, 1093, 1093, 1093, 1093,
01155 
01156      1093,  544,  544,  544,  544,  544,  544, 1093, 1093, 1093,
01157      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01158      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  102, 1093,
01159      1093, 1093,  544,  544,  544,  544,  544,  544,  110, 1093,
01160      1093, 1093, 1093, 1093, 1093, 1093, 1093,  110, 1093, 1093,
01161      1093, 1093, 1093, 1093, 1093, 1093,  546,  546,  546,  546,
01162       546,  546,  546,  546,  546,  546, 1093, 1093, 1093, 1093,
01163      1093, 1093,  547,  547,  547,  547,  547,  547, 1093, 1093,
01164      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01165      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  394,
01166 
01167      1093, 1093, 1093,  547,  547,  547,  547,  547,  547,  548,
01168       548,  548,  548,  548,  548,  548,  548,  548,  548, 1093,
01169      1093, 1093, 1093, 1093, 1093,  549,  549,  549,  549,  549,
01170       549, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01171      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01172      1093, 1093, 1093, 1093, 1093, 1093,  549,  549,  549,  549,
01173       549,  549,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01174      1093,  240, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01175       550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
01176      1093, 1093, 1093, 1093, 1093, 1093,  551,  551,  551,  551,
01177 
01178       551,  551, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01179      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01180      1093, 1093, 1093,  111, 1093, 1093, 1093,  551,  551,  551,
01181       551,  551,  551,  124, 1093, 1093, 1093, 1093, 1093, 1093,
01182      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01183      1093, 1093,  259, 1093,  259,  259,  259,  259,  259,  259,
01184       259,  259,  259,  259, 1093, 1093, 1093, 1093, 1093, 1093,
01185       260,  260,  260,  260,  261,  260,  260,  260,  260,  260,
01186       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
01187       260,  260,  260,  260,  260,  260, 1093,  129, 1093, 1093,
01188 
01189       262,  262,  262,  262,  262,  263,  262,  262,  262,  262,
01190       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
01191       262,  262,  262,  262,  262,  262,  262,  405, 1093, 1093,
01192      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01193      1093, 1093, 1093, 1093, 1093, 1093,  406, 1093,  406,  406,
01194       406,  406,  406,  406,  406,  406,  406,  406, 1093, 1093,
01195      1093, 1093, 1093, 1093,  410,  410,  410,  410,  552,  410,
01196       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01197       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01198      1093,  411, 1093, 1093,  412,  412,  412,  412,  412,  553,
01199 
01200       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01201       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01202       412,  554,  554,  554,  554,  554,  554,  554,  554,  554,
01203       554, 1093, 1093, 1093, 1093, 1093, 1093,  555,  555,  555,
01204       555,  556,  555, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01205      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01206      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  557,  557,
01207       557,  557,  558,  557,  562,  562,  562,  562,  562,  562,
01208       562,  562,  562,  562, 1093, 1093, 1093, 1093, 1093, 1093,
01209       563,  563,  563,  563,  564,  563, 1093, 1093, 1093, 1093,
01210 
01211      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01212      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01213      1093,  565,  565,  565,  565,  566,  565,  420, 1093, 1093,
01214      1093,  420, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01215       567,  567,  567,  567,  567,  567,  567,  567, 1093, 1093,
01216      1093, 1093, 1093, 1093, 1093,  420, 1093, 1093, 1093, 1093,
01217      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01218      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01219      1093, 1093, 1093,  420, 1093, 1093, 1093,  420,  420, 1093,
01220      1093, 1093,  420, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01221 
01222       420, 1093, 1093, 1093,  420, 1093,  420, 1093,  420, 1093,
01223       568,  569, 1093, 1093, 1093,  569, 1093, 1093, 1093, 1093,
01224      1093, 1093, 1093, 1093,  570,  570,  570,  570,  570,  570,
01225       570,  570, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  569,
01226      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01227      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01228       428, 1093, 1093, 1093, 1093, 1093, 1093,  569, 1093, 1093,
01229      1093,  569,  569, 1093, 1093, 1093,  569, 1093, 1093, 1093,
01230      1093, 1093, 1093, 1093,  569, 1093, 1093, 1093,  569, 1093,
01231       569,  429,  569, 1093,  571,  270, 1093, 1093, 1093, 1093,
01232 
01233       270, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01234      1093, 1093, 1093,  575,  575,  575,  575,  575,  575,  575,
01235       575,  575,  575, 1093, 1093, 1093, 1093, 1093, 1093,  576,
01236       576,  576,  576,  576,  576, 1093, 1093, 1093, 1093, 1093,
01237      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01238      1093, 1093, 1093, 1093, 1093, 1093,  573, 1093, 1093, 1093,
01239       576,  576,  576,  576,  576,  576,  577,  577,  577,  577,
01240       577,  577,  577,  577,  577,  577, 1093, 1093, 1093, 1093,
01241      1093, 1093,  578,  578,  578,  578,  578,  578, 1093, 1093,
01242      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01243 
01244      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01245      1093, 1093, 1093,  578,  578,  578,  578,  578,  578,  579,
01246       579,  579,  579,  579,  579,  579,  579,  579,  579, 1093,
01247      1093, 1093, 1093, 1093, 1093,  580,  580,  580,  580,  580,
01248       580, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01249      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01250      1093, 1093, 1093, 1093, 1093, 1093,  580,  580,  580,  580,
01251       580,  580,  275, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01252      1093,  275, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01253       584,  584,  584,  584,  584,  584,  584,  584,  584,  584,
01254 
01255      1093, 1093, 1093, 1093, 1093, 1093,  585,  585,  585,  585,
01256       585,  585, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01257      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01258      1093, 1093, 1093,  582, 1093, 1093, 1093,  585,  585,  585,
01259       585,  585,  585,  586,  586,  586,  586,  586,  586,  586,
01260       586,  586,  586, 1093, 1093, 1093, 1093, 1093, 1093,  587,
01261       587,  587,  587,  587,  587, 1093, 1093, 1093, 1093, 1093,
01262      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01263      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01264       587,  587,  587,  587,  587,  587,  588,  588,  588,  588,
01265 
01266       588,  588,  588,  588,  588,  588, 1093, 1093, 1093, 1093,
01267      1093, 1093,  589,  589,  589,  589,  589,  589, 1093, 1093,
01268      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01269      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01270      1093, 1093, 1093,  589,  589,  589,  589,  589,  589,  277,
01271      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01272      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01273       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
01274      1093, 1093, 1093, 1093, 1093, 1093,  280,  280,  280,  280,
01275       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01276 
01277       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01278       280,  280, 1093,  281, 1093, 1093,  282,  282,  282,  282,
01279       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01280       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01281       282,  282,  282,  590,  590,  590,  590,  590,  590,  590,
01282       590,  590,  590, 1093, 1093, 1093, 1093, 1093, 1093,  591,
01283       591,  591,  591,  591,  591, 1093, 1093, 1093, 1093, 1093,
01284      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01285      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01286       592,  592,  592,  592,  592,  592,  593,  593,  593,  593,
01287 
01288       593,  593,  593,  593,  593,  593, 1093, 1093, 1093, 1093,
01289      1093, 1093,  594,  594,  594,  594,  594,  594, 1093, 1093,
01290      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01291      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01292      1093, 1093, 1093,  595,  595,  595,  595,  595,  595,  596,
01293       596,  596,  596,  596,  596,  596,  596,  596,  596, 1093,
01294      1093, 1093, 1093, 1093, 1093,  597,  597,  597,  597,  597,
01295       597, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01296      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01297      1093, 1093, 1093, 1093, 1093, 1093,  598,  598,  598,  598,
01298 
01299       598,  598,  599,  599,  599,  599,  599,  599,  599,  599,
01300       599,  599, 1093, 1093, 1093, 1093, 1093, 1093,  600,  600,
01301       600,  600,  600,  600, 1093, 1093, 1093, 1093, 1093, 1093,
01302      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01303      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  601,
01304       601,  601,  601,  601,  601,   92, 1093, 1093, 1093, 1093,
01305      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01306      1093, 1093, 1093, 1093, 1093, 1093,  142,  142,  142,  142,
01307       142,  142,  142,  142,  142,  142, 1093, 1093, 1093, 1093,
01308      1093, 1093,  143,  143,  143,  143,  143,  143,  143,  143,
01309 
01310       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01311       143,  143,  143,  143,  143,  143,  143,  143, 1093,   95,
01312      1093, 1093,  144,  144,  144,  144,  144,  602,  144,  144,
01313       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01314       144,  144,  144,  144,  144,  144,  144,  144,  144,  658,
01315       658,  658,  658,  658,  658,  658,  658,  658,  658, 1093,
01316      1093, 1093, 1093, 1093, 1093,  659,  659,  659,  659,  659,
01317       659, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01318      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01319      1093, 1093, 1093, 1093, 1093, 1093,  659,  659,  659,  659,
01320 
01321       659,  659,  660,  660,  660,  660,  660,  660,  660,  660,
01322       660,  660, 1093, 1093, 1093, 1093, 1093, 1093,  661,  661,
01323       661,  661,  661,  661, 1093, 1093, 1093, 1093, 1093, 1093,
01324      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01325      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  661,
01326       661,  661,  661,  661,  661,  662,  662,  662,  662,  662,
01327       662,  662,  662,  662,  662, 1093, 1093, 1093, 1093, 1093,
01328      1093,  663,  663,  663,  663,  663,  663, 1093, 1093, 1093,
01329      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01330      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01331 
01332      1093, 1093,  663,  663,  663,  663,  663,  663,  664,  664,
01333       664,  664,  664,  664,  664,  664,  664,  664, 1093, 1093,
01334      1093, 1093, 1093, 1093,  665,  665,  665,  665,  665,  665,
01335      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01336      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01337      1093, 1093, 1093, 1093, 1093,  665,  665,  665,  665,  665,
01338       665,  212, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01339      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01340      1093, 1093,  213,  213,  213,  213,  213,  213,  213,  213,
01341       213,  213, 1093, 1093, 1093, 1093, 1093, 1093,  214,  214,
01342 
01343       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01344       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01345       214,  214,  214,  214, 1093,  215, 1093, 1093,  216,  216,
01346       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01347       216,  216,  666,  216,  216,  216,  216,  216,  216,  216,
01348       216,  216,  216,  216,  216,  674,  674,  674,  674,  674,
01349       674,  674,  674,  674,  674, 1093, 1093, 1093, 1093, 1093,
01350      1093,  675,  675,  675,  675,  675,  675, 1093, 1093, 1093,
01351      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01352      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01353 
01354      1093, 1093,  676,  676,  676,  676,  676,  676,  677,  677,
01355       677,  677,  677,  677,  677,  677,  677,  677, 1093, 1093,
01356      1093, 1093, 1093, 1093,  678,  678,  678,  678,  678,  678,
01357      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01358      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01359      1093, 1093, 1093, 1093, 1093,  679,  679,  679,  679,  679,
01360       679,  100, 1093, 1093, 1093, 1093,  100, 1093, 1093, 1093,
01361      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  680,
01362       680,  680,  680,  680,  680,  680,  680,  680,  680, 1093,
01363      1093, 1093, 1093, 1093, 1093,  681,  681,  681,  681,  681,
01364 
01365       681, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01366      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01367      1093, 1093,  384, 1093, 1093, 1093,  681,  681,  681,  681,
01368       681,  681,  100, 1093, 1093, 1093, 1093,  100, 1093, 1093,
01369      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01370       680,  680,  680,  680,  680,  680,  680,  680,  680,  680,
01371      1093, 1093, 1093, 1093, 1093, 1093,  681,  681,  681,  681,
01372       681,  681, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01373      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01374      1093, 1093, 1093,  384, 1093, 1093, 1093,  681,  681,  681,
01375 
01376       681,  681,  681,  682,  682,  682,  682,  682,  682,  682,
01377       682,  682,  682, 1093, 1093, 1093, 1093, 1093, 1093,  683,
01378       683,  683,  683,  683,  683, 1093, 1093, 1093, 1093, 1093,
01379      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01380      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01381       683,  683,  683,  683,  683,  683,  100, 1093, 1093, 1093,
01382      1093,  101, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01383      1093, 1093, 1093, 1093,  543,  543,  543,  543,  543,  543,
01384       543,  543,  543,  543, 1093, 1093, 1093, 1093, 1093, 1093,
01385       544,  544,  544,  544,  544,  544, 1093, 1093, 1093, 1093,
01386 
01387      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01388      1093, 1093, 1093, 1093, 1093, 1093, 1093,  102, 1093, 1093,
01389      1093,  544,  544,  544,  544,  544,  544,  110, 1093, 1093,
01390      1093, 1093, 1093, 1093, 1093, 1093,  110, 1093, 1093, 1093,
01391      1093, 1093, 1093, 1093, 1093,  684,  684,  684,  684,  684,
01392       684,  684,  684,  684,  684, 1093, 1093, 1093, 1093, 1093,
01393      1093,  685,  685,  685,  685,  685,  685, 1093, 1093, 1093,
01394      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01395      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  394, 1093,
01396      1093, 1093,  685,  685,  685,  685,  685,  685,  110, 1093,
01397 
01398      1093, 1093, 1093, 1093, 1093, 1093, 1093,  110, 1093, 1093,
01399      1093, 1093, 1093, 1093, 1093, 1093,  684,  684,  684,  684,
01400       684,  684,  684,  684,  684,  684, 1093, 1093, 1093, 1093,
01401      1093, 1093,  685,  685,  685,  685,  685,  685, 1093, 1093,
01402      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01403      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  394,
01404      1093, 1093, 1093,  685,  685,  685,  685,  685,  685,  686,
01405       686,  686,  686,  686,  686,  686,  686,  686,  686, 1093,
01406      1093, 1093, 1093, 1093, 1093,  687,  687,  687,  687,  687,
01407       687, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01408 
01409      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01410      1093, 1093, 1093, 1093, 1093, 1093,  687,  687,  687,  687,
01411       687,  687,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01412      1093,  240, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01413       550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
01414      1093, 1093, 1093, 1093, 1093, 1093,  551,  551,  551,  551,
01415       551,  551, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01416      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01417      1093, 1093, 1093,  111, 1093, 1093, 1093,  551,  551,  551,
01418       551,  551,  551,  405, 1093, 1093, 1093, 1093, 1093, 1093,
01419 
01420      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  559,
01421      1093,  559,  406, 1093,  406,  406,  406,  406,  406,  406,
01422       406,  406,  406,  406, 1093, 1093, 1093, 1093, 1093, 1093,
01423       410,  410,  410,  410,  552,  410,  410,  410,  410,  410,
01424       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01425       410,  410,  410,  410,  410,  410, 1093,  411, 1093, 1093,
01426       412,  412,  412,  412,  412,  553,  412,  412,  412,  412,
01427       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01428       412,  412,  412,  412,  412,  412,  412, 1093, 1093, 1093,
01429      1093, 1093,  688,  688,  688,  688,  688,  688,  688,  688,
01430 
01431       688,  688, 1093, 1093, 1093, 1093, 1093, 1093,  689,  689,
01432       689,  689,  690,  689, 1093, 1093, 1093, 1093, 1093, 1093,
01433      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01434      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  691,
01435       691,  691,  691,  692,  691,  693,  693,  693,  693,  693,
01436       693,  693,  693,  693,  693, 1093, 1093, 1093, 1093, 1093,
01437      1093,  694,  694,  694,  694,  695,  694, 1093, 1093, 1093,
01438      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01439      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01440      1093, 1093,  696,  696,  696,  696,  697,  696,  698,  698,
01441 
01442       698,  698,  698,  698,  698,  698,  698,  698, 1093, 1093,
01443      1093, 1093, 1093, 1093,  699,  699,  699,  699,  700,  699,
01444      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01445      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01446      1093, 1093, 1093, 1093, 1093,  701,  701,  701,  701,  702,
01447       701,  703,  703,  703,  703,  703,  703,  703,  703,  703,
01448       703, 1093, 1093, 1093, 1093, 1093, 1093,  704,  704,  704,
01449       704,  705,  704, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01450      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01451      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  706,  706,
01452 
01453       706,  706,  707,  706,  709,  709,  709,  709,  709,  709,
01454       709,  709,  709,  709, 1093, 1093, 1093, 1093, 1093, 1093,
01455       710,  710,  710,  710,  710,  710, 1093, 1093, 1093, 1093,
01456      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01457      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01458      1093,  710,  710,  710,  710,  710,  710,  270, 1093, 1093,
01459      1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01460      1093, 1093, 1093, 1093, 1093,  712,  712,  712,  712,  712,
01461       712,  712,  712,  712,  712, 1093, 1093, 1093, 1093, 1093,
01462      1093,  713,  713,  713,  713,  713,  713, 1093, 1093, 1093,
01463 
01464      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01465      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573, 1093,
01466      1093, 1093,  713,  713,  713,  713,  713,  713,  270, 1093,
01467      1093, 1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093,
01468      1093, 1093, 1093, 1093, 1093, 1093,  715,  715,  715,  715,
01469       715,  715,  715,  715,  715,  715, 1093, 1093, 1093, 1093,
01470      1093, 1093,  716,  716,  716,  716,  716,  716, 1093, 1093,
01471      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01472      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573,
01473      1093, 1093, 1093,  716,  716,  716,  716,  716,  716,  717,
01474 
01475       717,  717,  717,  717,  717,  717,  717,  717,  717, 1093,
01476      1093, 1093, 1093, 1093, 1093,  718,  718,  718,  718,  718,
01477       718, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01478      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01479      1093, 1093, 1093, 1093, 1093, 1093,  718,  718,  718,  718,
01480       718,  718,  270, 1093, 1093, 1093, 1093,  271, 1093, 1093,
01481      1093,  272, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01482       719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
01483      1093, 1093, 1093, 1093, 1093, 1093,  720,  720,  720,  720,
01484       720,  720, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01485 
01486      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01487      1093, 1093, 1093,  273, 1093, 1093, 1093,  720,  720,  720,
01488       720,  720,  720,  275, 1093, 1093, 1093, 1093, 1093, 1093,
01489      1093, 1093,  275, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01490      1093,  722,  722,  722,  722,  722,  722,  722,  722,  722,
01491       722, 1093, 1093, 1093, 1093, 1093, 1093,  723,  723,  723,
01492       723,  723,  723, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01493      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01494      1093, 1093, 1093, 1093,  582, 1093, 1093, 1093,  723,  723,
01495       723,  723,  723,  723,  724,  724,  724,  724,  724,  724,
01496 
01497       724,  724,  724,  724, 1093, 1093, 1093, 1093, 1093, 1093,
01498       725,  725,  725,  725,  725,  725, 1093, 1093, 1093, 1093,
01499      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01500      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01501      1093,  725,  725,  725,  725,  725,  725,  275, 1093, 1093,
01502      1093, 1093, 1093, 1093, 1093, 1093,  431, 1093, 1093, 1093,
01503      1093, 1093, 1093, 1093, 1093,  726,  726,  726,  726,  726,
01504       726,  726,  726,  726,  726, 1093, 1093, 1093, 1093, 1093,
01505      1093,  727,  727,  727,  727,  727,  727, 1093, 1093, 1093,
01506      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01507 
01508      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  276, 1093,
01509      1093, 1093,  727,  727,  727,  727,  727,  727,  277, 1093,
01510      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01511      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  728,
01512       728,  728,  728,  728,  728,  728,  728,  728,  728, 1093,
01513      1093, 1093, 1093, 1093, 1093,  729,  729,  729,  729,  729,
01514       729,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01515       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01516       280, 1093,  281, 1093, 1093,  282,  730,  730,  730,  730,
01517       730,  730,  282,  282,  282,  282,  282,  282,  282,  282,
01518 
01519       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01520       282,  282,  731,  731,  731,  731,  731,  731,  731,  731,
01521       731,  731, 1093, 1093, 1093, 1093, 1093, 1093,  732,  732,
01522       732,  732,  732,  732, 1093, 1093, 1093, 1093, 1093, 1093,
01523      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01524      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  733,
01525       733,  733,  733,  733,  733,  734,  734,  734,  734,  734,
01526       734,  734,  734,  734,  734, 1093, 1093, 1093, 1093, 1093,
01527      1093,  735,  735,  735,  735,  735,  735, 1093, 1093, 1093,
01528      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01529 
01530      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01531      1093, 1093,  736,  736,  736,  736,  736,  736,  737,  737,
01532       737,  737,  737,  737,  737,  737,  737,  737, 1093, 1093,
01533      1093, 1093, 1093, 1093,  738,  738,  738,  738,  738,  738,
01534      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01535      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01536      1093, 1093, 1093, 1093, 1093,  739,  739,  739,  739,  739,
01537       739,   92, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01538      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01539      1093, 1093,  142,  142,  142,  142,  142,  142,  142,  142,
01540 
01541       142,  142, 1093, 1093, 1093, 1093, 1093, 1093,  143,  143,
01542       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01543       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01544       143,  143,  143,  143, 1093,   95, 1093, 1093,  144,  144,
01545       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01546       144,  144,  144,  144,  144,  740,  144,  144,  144,  144,
01547       144,  144,  144,  144,  144,  779,  779,  779,  779,  779,
01548       779,  779,  779,  779,  779, 1093, 1093, 1093, 1093, 1093,
01549      1093,  780,  780,  780,  780,  780,  780, 1093, 1093, 1093,
01550      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01551 
01552      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01553      1093, 1093,  780,  780,  780,  780,  780,  780,  781,  781,
01554       781,  781,  781,  781,  781,  781,  781,  781, 1093, 1093,
01555      1093, 1093, 1093, 1093,  782,  782,  782,  782,  782,  782,
01556      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01557      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01558      1093, 1093, 1093, 1093, 1093,  782,  782,  782,  782,  782,
01559       782,  783,  783,  783,  783,  783,  783,  783,  783,  783,
01560       783, 1093, 1093, 1093, 1093, 1093, 1093,  784,  784,  784,
01561       784,  784,  784, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01562 
01563      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01564      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  784,  784,
01565       784,  784,  784,  784,  785,  785,  785,  785,  785,  785,
01566       785,  785,  785,  785, 1093, 1093, 1093, 1093, 1093, 1093,
01567       786,  786,  786,  786,  786,  786, 1093, 1093, 1093, 1093,
01568      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01569      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01570      1093,  786,  786,  786,  786,  786,  786,  212, 1093, 1093,
01571      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01572      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  213,  213,
01573 
01574       213,  213,  213,  213,  213,  213,  213,  213, 1093, 1093,
01575      1093, 1093, 1093, 1093,  214,  214,  214,  214,  214,  214,
01576       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01577       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01578      1093,  215, 1093, 1093,  216,  216,  216,  216,  216,  787,
01579       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01580       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01581       216,  791,  791,  791,  791,  791,  791,  791,  791,  791,
01582       791, 1093, 1093, 1093, 1093, 1093, 1093,  792,  792,  792,
01583       792,  792,  792, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01584 
01585      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01586      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  793,  793,
01587       793,  793,  793,  793,  794,  794,  794,  794,  794,  794,
01588       794,  794,  794,  794, 1093, 1093, 1093, 1093, 1093, 1093,
01589       795,  795,  795,  795,  795,  795, 1093, 1093, 1093, 1093,
01590      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01591      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01592      1093,  796,  796,  796,  796,  796,  796,  100, 1093, 1093,
01593      1093, 1093,  100, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01594      1093, 1093, 1093, 1093, 1093,  797,  797,  797,  797,  797,
01595 
01596       797,  797,  797,  797,  797, 1093, 1093, 1093, 1093, 1093,
01597      1093,  798,  798,  798,  798,  798,  798, 1093, 1093, 1093,
01598      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01599      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  384, 1093,
01600      1093, 1093,  798,  798,  798,  798,  798,  798,  100, 1093,
01601      1093, 1093, 1093,  100, 1093, 1093, 1093, 1093, 1093, 1093,
01602      1093, 1093, 1093, 1093, 1093, 1093,  797,  797,  797,  797,
01603       797,  797,  797,  797,  797,  797, 1093, 1093, 1093, 1093,
01604      1093, 1093,  798,  798,  798,  798,  798,  798, 1093, 1093,
01605      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01606 
01607      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  384,
01608      1093, 1093, 1093,  798,  798,  798,  798,  798,  798,  799,
01609       799,  799,  799,  799,  799,  799,  799,  799,  799, 1093,
01610      1093, 1093, 1093, 1093, 1093,  800,  800,  800,  800,  800,
01611       800, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01612      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01613      1093, 1093, 1093, 1093, 1093, 1093,  800,  800,  800,  800,
01614       800,  800,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01615      1093,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01616       801,  801,  801,  801,  801,  801,  801,  801,  801,  801,
01617 
01618      1093, 1093, 1093, 1093, 1093, 1093,  802,  802,  802,  802,
01619       802,  802, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01620      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01621      1093, 1093, 1093,  394, 1093, 1093, 1093,  802,  802,  802,
01622       802,  802,  802,  110, 1093, 1093, 1093, 1093, 1093, 1093,
01623      1093, 1093,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01624      1093,  801,  801,  801,  801,  801,  801,  801,  801,  801,
01625       801, 1093, 1093, 1093, 1093, 1093, 1093,  802,  802,  802,
01626       802,  802,  802, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01627      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01628 
01629      1093, 1093, 1093, 1093,  394, 1093, 1093, 1093,  802,  802,
01630       802,  802,  802,  802,  803,  803,  803,  803,  803,  803,
01631       803,  803,  803,  803, 1093, 1093, 1093, 1093, 1093, 1093,
01632       804,  804,  804,  804,  804,  804, 1093, 1093, 1093, 1093,
01633      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01634      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01635      1093,  804,  804,  804,  804,  804,  804,  405, 1093, 1093,
01636      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01637      1093, 1093, 1093, 1093, 1093, 1093,  406, 1093,  805,  805,
01638       805,  805,  805,  805,  805,  805,  805,  805, 1093, 1093,
01639 
01640      1093, 1093, 1093, 1093,  806,  806,  806,  806,  807,  806,
01641       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01642       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01643      1093,  411, 1093, 1093,  412,  808,  808,  808,  808,  809,
01644       808,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01645       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01646       412,  810,  810,  810,  810,  810,  810,  810,  810,  810,
01647       810, 1093, 1093, 1093, 1093, 1093, 1093,  811,  811,  811,
01648       811,  812,  811, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01649      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01650 
01651      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  813,  813,
01652       813,  813,  814,  813,  815,  815,  815,  815,  815,  815,
01653       815,  815,  815,  815, 1093, 1093, 1093, 1093, 1093, 1093,
01654       816,  816,  816,  816,  817,  816, 1093, 1093, 1093, 1093,
01655      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01656      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01657      1093,  818,  818,  818,  818,  819,  818,  820,  820,  820,
01658       820,  820,  820,  820,  820,  820,  820, 1093, 1093, 1093,
01659      1093, 1093, 1093,  821,  821,  821,  821,  822,  821, 1093,
01660      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01661 
01662      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01663      1093, 1093, 1093, 1093,  823,  823,  823,  823,  824,  823,
01664       421, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01665      1093, 1093, 1093,  826,  826,  826,  826,  826,  826,  826,
01666       826,  826,  826, 1093, 1093, 1093, 1093, 1093, 1093,  827,
01667       827,  827,  827,  827,  827, 1093, 1093, 1093, 1093, 1093,
01668      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01669      1093, 1093, 1093, 1093, 1093, 1093,  422, 1093, 1093, 1093,
01670       827,  827,  827,  827,  827,  827,  270, 1093, 1093, 1093,
01671      1093,  423, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01672 
01673      1093, 1093, 1093, 1093,  829,  829,  829,  829,  829,  829,
01674       829,  829,  829,  829, 1093, 1093, 1093, 1093, 1093, 1093,
01675       830,  830,  830,  830,  830,  830, 1093, 1093, 1093, 1093,
01676      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01677      1093, 1093, 1093, 1093, 1093, 1093, 1093,  424, 1093, 1093,
01678      1093,  830,  830,  830,  830,  830,  830,  270, 1093, 1093,
01679      1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01680      1093, 1093, 1093, 1093, 1093,  831,  831,  831,  831,  831,
01681       831,  831,  831,  831,  831, 1093, 1093, 1093, 1093, 1093,
01682      1093,  832,  832,  832,  832,  832,  832, 1093, 1093, 1093,
01683 
01684      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01685      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573, 1093,
01686      1093, 1093,  832,  832,  832,  832,  832,  832,  270, 1093,
01687      1093, 1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093,
01688      1093, 1093, 1093, 1093, 1093, 1093,  831,  831,  831,  831,
01689       831,  831,  831,  831,  831,  831, 1093, 1093, 1093, 1093,
01690      1093, 1093,  832,  832,  832,  832,  832,  832, 1093, 1093,
01691      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01692      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573,
01693      1093, 1093, 1093,  832,  832,  832,  832,  832,  832,  833,
01694 
01695       833,  833,  833,  833,  833,  833,  833,  833,  833, 1093,
01696      1093, 1093, 1093, 1093, 1093,  834,  834,  834,  834,  834,
01697       834, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01698      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01699      1093, 1093, 1093, 1093, 1093, 1093,  834,  834,  834,  834,
01700       834,  834,  270, 1093, 1093, 1093, 1093,  271, 1093, 1093,
01701      1093,  272, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01702       719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
01703      1093, 1093, 1093, 1093, 1093, 1093,  720,  720,  720,  720,
01704       720,  720, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01705 
01706      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01707      1093, 1093, 1093,  273, 1093, 1093, 1093,  720,  720,  720,
01708       720,  720,  720,  275, 1093, 1093, 1093, 1093, 1093, 1093,
01709      1093, 1093,  275, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01710      1093,  835,  835,  835,  835,  835,  835,  835,  835,  835,
01711       835, 1093, 1093, 1093, 1093, 1093, 1093,  836,  836,  836,
01712       836,  836,  836, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01713      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01714      1093, 1093, 1093, 1093,  582, 1093, 1093, 1093,  836,  836,
01715       836,  836,  836,  836,  275, 1093, 1093, 1093, 1093, 1093,
01716 
01717      1093, 1093, 1093,  275, 1093, 1093, 1093, 1093, 1093, 1093,
01718      1093, 1093,  835,  835,  835,  835,  835,  835,  835,  835,
01719       835,  835, 1093, 1093, 1093, 1093, 1093, 1093,  836,  836,
01720       836,  836,  836,  836, 1093, 1093, 1093, 1093, 1093, 1093,
01721      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01722      1093, 1093, 1093, 1093, 1093,  582, 1093, 1093, 1093,  836,
01723       836,  836,  836,  836,  836,  837,  837,  837,  837,  837,
01724       837,  837,  837,  837,  837, 1093, 1093, 1093, 1093, 1093,
01725      1093,  838,  838,  838,  838,  838,  838, 1093, 1093, 1093,
01726      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01727 
01728      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01729      1093, 1093,  838,  838,  838,  838,  838,  838,  275, 1093,
01730      1093, 1093, 1093, 1093, 1093, 1093, 1093,  431, 1093, 1093,
01731      1093, 1093, 1093, 1093, 1093, 1093,  726,  726,  726,  726,
01732       726,  726,  726,  726,  726,  726, 1093, 1093, 1093, 1093,
01733      1093, 1093,  727,  727,  727,  727,  727,  727, 1093, 1093,
01734      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01735      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  276,
01736      1093, 1093, 1093,  727,  727,  727,  727,  727,  727,  277,
01737      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01738 
01739      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01740       839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
01741      1093, 1093, 1093, 1093, 1093, 1093,  840,  840,  840,  840,
01742       840,  840,  280,  280,  280,  280,  280,  280,  280,  280,
01743       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01744       280,  280, 1093,  281, 1093, 1093,  282,  841,  841,  841,
01745       841,  841,  841,  282,  282,  282,  282,  282,  282,  282,
01746       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01747       282,  282,  282,  842,  842,  842,  842,  842,  842,  842,
01748       842,  842,  842, 1093, 1093, 1093, 1093, 1093, 1093,  843,
01749 
01750       843,  843,  843,  843,  843, 1093, 1093, 1093, 1093, 1093,
01751      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01752      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01753       844,  844,  844,  844,  844,  844,  845,  845,  845,  845,
01754       845,  845,  845,  845,  845,  845, 1093, 1093, 1093, 1093,
01755      1093, 1093,  846,  846,  846,  846,  846,  846, 1093, 1093,
01756      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01757      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01758      1093, 1093, 1093,  847,  847,  847,  847,  847,  847,   92,
01759      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01760 
01761      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01762        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
01763      1093, 1093, 1093, 1093, 1093, 1093,   94,   94,   94,   94,
01764        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
01765        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
01766        94,   94, 1093,   95, 1093, 1093,   96,   96,   96,   96,
01767        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01768        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
01769        96,   96,   96,   92, 1093, 1093, 1093, 1093, 1093, 1093,
01770      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01771 
01772      1093, 1093, 1093, 1093,  142,  142,  142,  142,  142,  142,
01773       142,  142,  142,  142, 1093, 1093, 1093, 1093, 1093, 1093,
01774       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01775       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01776       143,  143,  143,  143,  143,  143, 1093,   95, 1093, 1093,
01777       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01778       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01779       144,  144,  144,  144,  144,  144,  144,  868,  868,  868,
01780       868,  868,  868,  868,  868,  868,  868, 1093, 1093, 1093,
01781      1093, 1093, 1093,  869,  869,  869,  869,  869,  869, 1093,
01782 
01783      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01784      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01785      1093, 1093, 1093, 1093,  869,  869,  869,  869,  869,  869,
01786       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
01787      1093, 1093, 1093, 1093, 1093, 1093,  870,  870,  870,  870,
01788       870,  870, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01789      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01790      1093, 1093, 1093, 1093, 1093, 1093, 1093,  870,  870,  870,
01791       870,  870,  870,  871,  871,  871,  871,  871,  871,  871,
01792       871,  871,  871, 1093, 1093, 1093, 1093, 1093, 1093,  872,
01793 
01794       872,  872,  872,  872,  872, 1093, 1093, 1093, 1093, 1093,
01795      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01796      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01797       872,  872,  872,  872,  872,  872,  212, 1093, 1093, 1093,
01798      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01799      1093, 1093, 1093, 1093, 1093, 1093, 1093,  213,  213,  213,
01800       213,  213,  213,  213,  213,  213,  213, 1093, 1093, 1093,
01801      1093, 1093, 1093,  214,  214,  214,  214,  214,  214,  214,
01802       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01803       214,  214,  214,  214,  214,  214,  214,  214,  214, 1093,
01804 
01805       215, 1093, 1093,  216,  216,  216,  216,  216,  216,  216,
01806       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01807       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01808       875,  875,  875,  875,  875,  875,  875,  875,  875,  875,
01809      1093, 1093, 1093, 1093, 1093, 1093,  876,  876,  876,  876,
01810       876,  876, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01811      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01812      1093, 1093, 1093, 1093, 1093, 1093, 1093,  877,  877,  877,
01813       877,  877,  877,  100, 1093, 1093, 1093, 1093,  100, 1093,
01814      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01815 
01816      1093,  878,  878,  878,  878,  878,  878,  878,  878,  878,
01817       878, 1093, 1093, 1093, 1093, 1093, 1093,  879,  879,  879,
01818       879,  879,  879, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01819      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01820      1093, 1093, 1093, 1093,  384, 1093, 1093, 1093,  879,  879,
01821       879,  879,  879,  879,  100, 1093, 1093, 1093, 1093,  100,
01822      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01823      1093, 1093,  878,  878,  878,  878,  878,  878,  878,  878,
01824       878,  878, 1093, 1093, 1093, 1093, 1093, 1093,  879,  879,
01825       879,  879,  879,  879, 1093, 1093, 1093, 1093, 1093, 1093,
01826 
01827      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01828      1093, 1093, 1093, 1093, 1093,  384, 1093, 1093, 1093,  879,
01829       879,  879,  879,  879,  879,  110, 1093, 1093, 1093, 1093,
01830      1093, 1093, 1093, 1093,  110, 1093, 1093, 1093, 1093, 1093,
01831      1093, 1093, 1093,  882,  882,  882,  882,  882,  882,  882,
01832       882,  882,  882, 1093, 1093, 1093, 1093, 1093, 1093,  883,
01833       883,  883,  883,  883,  883, 1093, 1093, 1093, 1093, 1093,
01834      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01835      1093, 1093, 1093, 1093, 1093, 1093,  394, 1093, 1093, 1093,
01836       883,  883,  883,  883,  883,  883,  110, 1093, 1093, 1093,
01837 
01838      1093, 1093, 1093, 1093, 1093,  110, 1093, 1093, 1093, 1093,
01839      1093, 1093, 1093, 1093,  882,  882,  882,  882,  882,  882,
01840       882,  882,  882,  882, 1093, 1093, 1093, 1093, 1093, 1093,
01841       883,  883,  883,  883,  883,  883, 1093, 1093, 1093, 1093,
01842      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01843      1093, 1093, 1093, 1093, 1093, 1093, 1093,  394, 1093, 1093,
01844      1093,  883,  883,  883,  883,  883,  883,  405, 1093, 1093,
01845      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01846      1093, 1093, 1093, 1093, 1093, 1093,  406, 1093,  886,  886,
01847       886,  886,  886,  886,  886,  886,  886,  886, 1093, 1093,
01848 
01849      1093, 1093, 1093, 1093,  887,  887,  887,  887,  888,  887,
01850       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01851       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
01852      1093,  411, 1093, 1093,  412,  889,  889,  889,  889,  890,
01853       889,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01854       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
01855       412,  891,  891,  891,  891,  891,  891,  891,  891,  891,
01856       891, 1093, 1093, 1093, 1093, 1093, 1093,  892,  892,  892,
01857       892,  893,  892, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01858      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01859 
01860      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  894,  894,
01861       894,  894,  895,  894,  896,  896,  896,  896,  896,  896,
01862       896,  896,  896,  896, 1093, 1093, 1093, 1093, 1093, 1093,
01863       897,  897,  897,  897,  898,  897, 1093, 1093, 1093, 1093,
01864      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01865      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01866      1093,  899,  899,  899,  899,  900,  899,  124, 1093, 1093,
01867      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01868      1093, 1093, 1093, 1093, 1093, 1093,  259, 1093,  259,  259,
01869       259,  259,  259,  259,  259,  259,  259,  259, 1093, 1093,
01870 
01871      1093, 1093, 1093, 1093,  260,  260,  260,  260,  261,  260,
01872       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
01873       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
01874      1093,  129, 1093, 1093,  262,  262,  262,  262,  262,  263,
01875       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
01876       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
01877       262,  421, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01878      1093, 1093, 1093, 1093,  826,  826,  826,  826,  826,  826,
01879       826,  826,  826,  826, 1093, 1093, 1093, 1093, 1093, 1093,
01880       827,  827,  827,  827,  827,  827, 1093, 1093, 1093, 1093,
01881 
01882      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01883      1093, 1093, 1093, 1093, 1093, 1093, 1093,  422, 1093, 1093,
01884      1093,  827,  827,  827,  827,  827,  827,  270, 1093, 1093,
01885      1093, 1093,  423, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01886      1093, 1093, 1093, 1093, 1093,  829,  829,  829,  829,  829,
01887       829,  829,  829,  829,  829, 1093, 1093, 1093, 1093, 1093,
01888      1093,  830,  830,  830,  830,  830,  830, 1093, 1093, 1093,
01889      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01890      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  424, 1093,
01891      1093, 1093,  830,  830,  830,  830,  830,  830,  270, 1093,
01892 
01893      1093, 1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093,
01894      1093, 1093, 1093, 1093, 1093, 1093,  901,  901,  901,  901,
01895       901,  901,  901,  901,  901,  901, 1093, 1093, 1093, 1093,
01896      1093, 1093,  902,  902,  902,  902,  902,  902, 1093, 1093,
01897      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01898      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573,
01899      1093, 1093, 1093,  902,  902,  902,  902,  902,  902,  270,
01900      1093, 1093, 1093, 1093,  270, 1093, 1093, 1093, 1093, 1093,
01901      1093, 1093, 1093, 1093, 1093, 1093, 1093,  901,  901,  901,
01902       901,  901,  901,  901,  901,  901,  901, 1093, 1093, 1093,
01903 
01904      1093, 1093, 1093,  902,  902,  902,  902,  902,  902, 1093,
01905      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01906      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01907       573, 1093, 1093, 1093,  902,  902,  902,  902,  902,  902,
01908       272,  272,  272,  272,  272,  272,  272,  272,  272,  272,
01909      1093, 1093, 1093, 1093, 1093, 1093,  903,  903,  903,  903,
01910       903,  903, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01911      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01912      1093, 1093, 1093, 1093, 1093, 1093, 1093,  903,  903,  903,
01913       903,  903,  903,  275, 1093, 1093, 1093, 1093, 1093, 1093,
01914 
01915      1093, 1093,  275, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01916      1093,  904,  904,  904,  904,  904,  904,  904,  904,  904,
01917       904, 1093, 1093, 1093, 1093, 1093, 1093,  905,  905,  905,
01918       905,  905,  905, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01919      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01920      1093, 1093, 1093, 1093,  582, 1093, 1093, 1093,  905,  905,
01921       905,  905,  905,  905,  275, 1093, 1093, 1093, 1093, 1093,
01922      1093, 1093, 1093,  275, 1093, 1093, 1093, 1093, 1093, 1093,
01923      1093, 1093,  904,  904,  904,  904,  904,  904,  904,  904,
01924       904,  904, 1093, 1093, 1093, 1093, 1093, 1093,  905,  905,
01925 
01926       905,  905,  905,  905, 1093, 1093, 1093, 1093, 1093, 1093,
01927      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01928      1093, 1093, 1093, 1093, 1093,  582, 1093, 1093, 1093,  905,
01929       905,  905,  905,  905,  905,  906,  906,  906,  906,  906,
01930       906,  906,  906,  906,  906, 1093, 1093, 1093, 1093, 1093,
01931      1093,  907,  907,  907,  907,  907,  907, 1093, 1093, 1093,
01932      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01933      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01934      1093, 1093,  907,  907,  907,  907,  907,  907,  277, 1093,
01935      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01936 
01937      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  908,
01938       908,  908,  908,  908,  908,  908,  908,  908,  908, 1093,
01939      1093, 1093, 1093, 1093, 1093,  909,  909,  909,  909,  909,
01940       909,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01941       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
01942       280, 1093,  281, 1093, 1093,  282,  910,  910,  910,  910,
01943       910,  910,  282,  282,  282,  282,  282,  282,  282,  282,
01944       282,  282,  282,  282,  282,  282,  282,  282,  282,  282,
01945       282,  282,  911,  911,  911,  911,  911,  911,  911,  911,
01946       911,  911, 1093, 1093, 1093, 1093, 1093, 1093,  912,  912,
01947 
01948       912,  912,  912,  912, 1093, 1093, 1093, 1093, 1093, 1093,
01949      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01950      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  913,
01951       913,  913,  913,  913,  913,  914,  914,  914,  914,  914,
01952       914,  914,  914,  914,  914, 1093, 1093, 1093, 1093, 1093,
01953      1093,  915,  915,  915,  915,  915,  915, 1093, 1093, 1093,
01954      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01955      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01956      1093, 1093,  916,  916,  916,  916,  916,  916,   92, 1093,
01957      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01958 
01959      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  142,
01960       142,  142,  142,  142,  142,  142,  142,  142,  142, 1093,
01961      1093, 1093, 1093, 1093, 1093,  143,  143,  143,  143,  143,
01962       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01963       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
01964       143, 1093,   95, 1093, 1093,  144,  917,  144,  144,  144,
01965       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01966       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
01967       144,  144,  931,  931,  931,  931,  931,  931,  931,  931,
01968       931,  931, 1093, 1093, 1093, 1093, 1093, 1093,  932,  932,
01969 
01970       932,  932,  932,  932, 1093, 1093, 1093, 1093, 1093, 1093,
01971      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01972      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  932,
01973       932,  932,  932,  932,  932,  212, 1093, 1093, 1093, 1093,
01974      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01975      1093, 1093, 1093, 1093, 1093, 1093,  213,  213,  213,  213,
01976       213,  213,  213,  213,  213,  213, 1093, 1093, 1093, 1093,
01977      1093, 1093,  214,  214,  214,  214,  214,  214,  214,  214,
01978       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
01979       214,  214,  214,  214,  214,  214,  214,  214, 1093,  215,
01980 
01981      1093, 1093,  216,  216,  216,  216,  216,  216,  216,  216,
01982       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
01983       216,  216,  216,  216,  216,  216,  216,  216,  216,  933,
01984       933,  933,  933,  933,  933,  933,  933,  933,  933, 1093,
01985      1093, 1093, 1093, 1093, 1093,  934,  934,  934,  934,  934,
01986       934, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01987      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01988      1093, 1093, 1093, 1093, 1093, 1093,  934,  934,  934,  934,
01989       934,  934,  935,  935,  935,  935,  935,  935,  935,  935,
01990       935,  935, 1093, 1093, 1093, 1093, 1093, 1093,  936,  936,
01991 
01992       936,  936,  936,  936, 1093, 1093, 1093, 1093, 1093, 1093,
01993      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01994      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  937,
01995       937,  937,  937,  937,  937,  100, 1093, 1093, 1093, 1093,
01996       100, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
01997      1093, 1093, 1093,  938,  938,  938,  938,  938,  938,  938,
01998       938,  938,  938, 1093, 1093, 1093, 1093, 1093, 1093,  939,
01999       939,  939,  939,  939,  939, 1093, 1093, 1093, 1093, 1093,
02000      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02001      1093, 1093, 1093, 1093, 1093, 1093,  384, 1093, 1093, 1093,
02002 
02003       939,  939,  939,  939,  939,  939,  100, 1093, 1093, 1093,
02004      1093,  100, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02005      1093, 1093, 1093, 1093,  938,  938,  938,  938,  938,  938,
02006       938,  938,  938,  938, 1093, 1093, 1093, 1093, 1093, 1093,
02007       939,  939,  939,  939,  939,  939, 1093, 1093, 1093, 1093,
02008      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02009      1093, 1093, 1093, 1093, 1093, 1093, 1093,  384, 1093, 1093,
02010      1093,  939,  939,  939,  939,  939,  939,  940, 1093, 1093,
02011      1093,  940, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02012       941,  941,  941,  941,  941,  941,  941,  941, 1093, 1093,
02013 
02014      1093, 1093, 1093, 1093, 1093,  940, 1093, 1093, 1093, 1093,
02015      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02016      1093, 1093, 1093, 1093, 1093, 1093,  236, 1093, 1093, 1093,
02017      1093, 1093, 1093,  940, 1093, 1093, 1093,  940,  940, 1093,
02018      1093, 1093,  940, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02019       940, 1093, 1093, 1093,  940, 1093,  940,  237,  940, 1093,
02020       942,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02021       110, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  943,
02022       943,  943,  943,  943,  943,  943,  943,  943,  943, 1093,
02023      1093, 1093, 1093, 1093, 1093,  944,  944,  944,  944,  944,
02024 
02025       944, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02026      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02027      1093, 1093,  394, 1093, 1093, 1093,  944,  944,  944,  944,
02028       944,  944,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02029      1093,  110, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02030       943,  943,  943,  943,  943,  943,  943,  943,  943,  943,
02031      1093, 1093, 1093, 1093, 1093, 1093,  944,  944,  944,  944,
02032       944,  944, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02033      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02034      1093, 1093, 1093,  394, 1093, 1093, 1093,  944,  944,  944,
02035 
02036       944,  944,  944,  945, 1093, 1093, 1093,  945, 1093, 1093,
02037      1093, 1093, 1093, 1093, 1093, 1093,  946,  946,  946,  946,
02038       946,  946,  946,  946, 1093, 1093, 1093, 1093, 1093, 1093,
02039      1093,  945, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02040      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02041      1093, 1093,  244, 1093, 1093, 1093, 1093, 1093, 1093,  945,
02042      1093, 1093, 1093,  945,  945, 1093, 1093, 1093,  945, 1093,
02043      1093, 1093, 1093, 1093, 1093, 1093,  945, 1093, 1093, 1093,
02044       945, 1093,  945,  245,  945, 1093,  947,  405, 1093, 1093,
02045      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02046 
02047      1093, 1093, 1093, 1093, 1093, 1093,  406, 1093,  948,  948,
02048       948,  948,  948,  948,  948,  948,  948,  948, 1093, 1093,
02049      1093, 1093, 1093, 1093,  949,  949,  949,  949,  950,  949,
02050       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
02051       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
02052      1093,  411, 1093, 1093,  412,  951,  951,  951,  951,  952,
02053       951,  412,  412,  412,  412,  412,  412,  412,  412,  412,
02054       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
02055       412,  953,  953,  953,  953,  953,  953,  953,  953,  953,
02056       953, 1093, 1093, 1093, 1093, 1093, 1093,  954,  954,  954,
02057 
02058       954,  955,  954, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02059      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02060      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  956,  956,
02061       956,  956,  957,  956,  958,  958,  958,  958,  958,  958,
02062       958,  958,  958,  958, 1093, 1093, 1093, 1093, 1093, 1093,
02063       959,  959,  959,  959,  960,  959, 1093, 1093, 1093, 1093,
02064      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02065      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02066      1093,  961,  961,  961,  961,  962,  961,  270, 1093, 1093,
02067      1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02068 
02069      1093, 1093, 1093, 1093, 1093,  963,  963,  963,  963,  963,
02070       963,  963,  963,  963,  963, 1093, 1093, 1093, 1093, 1093,
02071      1093,  964,  964,  964,  964,  964,  964, 1093, 1093, 1093,
02072      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02073      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573, 1093,
02074      1093, 1093,  964,  964,  964,  964,  964,  964,  270, 1093,
02075      1093, 1093, 1093,  270, 1093, 1093, 1093, 1093, 1093, 1093,
02076      1093, 1093, 1093, 1093, 1093, 1093,  963,  963,  963,  963,
02077       963,  963,  963,  963,  963,  963, 1093, 1093, 1093, 1093,
02078      1093, 1093,  964,  964,  964,  964,  964,  964, 1093, 1093,
02079 
02080      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02081      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  573,
02082      1093, 1093, 1093,  964,  964,  964,  964,  964,  964,  275,
02083      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  275, 1093,
02084      1093, 1093, 1093, 1093, 1093, 1093, 1093,  965,  965,  965,
02085       965,  965,  965,  965,  965,  965,  965, 1093, 1093, 1093,
02086      1093, 1093, 1093,  966,  966,  966,  966,  966,  966, 1093,
02087      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02088      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02089       582, 1093, 1093, 1093,  966,  966,  966,  966,  966,  966,
02090 
02091       275, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  275,
02092      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  965,  965,
02093       965,  965,  965,  965,  965,  965,  965,  965, 1093, 1093,
02094      1093, 1093, 1093, 1093,  966,  966,  966,  966,  966,  966,
02095      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02096      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02097      1093,  582, 1093, 1093, 1093,  966,  966,  966,  966,  966,
02098       966,  969,  969,  969,  969,  969,  969,  969,  969,  969,
02099       969, 1093, 1093, 1093, 1093, 1093, 1093,  970,  970,  970,
02100       970,  970,  970, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02101 
02102      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02103      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  971,  971,
02104       971,  971,  971,  971,  972,  972,  972,  972,  972,  972,
02105       972,  972,  972,  972, 1093, 1093, 1093, 1093, 1093, 1093,
02106       973,  973,  973,  973,  973,  973, 1093, 1093, 1093, 1093,
02107      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02108      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02109      1093,  974,  974,  974,  974,  974,  974,  438,  438,  438,
02110       438,  438,  438,  438,  438,  438,  438, 1093, 1093, 1093,
02111      1093, 1093, 1093,  280,  280,  280,  280,  280,  280, 1093,
02112 
02113      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02114      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02115      1093, 1093, 1093, 1093,  282,  282,  282,  282,  282,  282,
02116        92, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02117      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02118      1093,  142,  142,  142,  142,  142,  142,  142,  142,  142,
02119       142, 1093, 1093, 1093, 1093, 1093, 1093,  143,  143,  143,
02120       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
02121       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
02122       143,  143,  143, 1093,   95, 1093, 1093,  144,  144,  144,
02123 
02124       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
02125       144,  144,  144,  144,  144,  144,  975,  144,  144,  144,
02126       144,  144,  144,  144,  981,  981,  981,  981,  981,  981,
02127       981,  981,  981,  981, 1093, 1093, 1093, 1093, 1093, 1093,
02128       982,  982,  982,  982,  982,  982, 1093, 1093, 1093, 1093,
02129      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02130      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02131      1093,  982,  982,  982,  982,  982,  982,  983,  983,  983,
02132       983,  983,  983,  983,  983,  983,  983, 1093, 1093, 1093,
02133      1093, 1093, 1093,  984,  984,  984,  984,  984,  984, 1093,
02134 
02135      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02136      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02137      1093, 1093, 1093, 1093,  984,  984,  984,  984,  984,  984,
02138       985,  985,  985,  985,  985,  985,  985,  985,  985,  985,
02139      1093, 1093, 1093, 1093, 1093, 1093,  986,  986,  986,  986,
02140       986,  986, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02141      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02142      1093, 1093, 1093, 1093, 1093, 1093, 1093,  987,  987,  987,
02143       987,  987,  987,  100, 1093, 1093, 1093, 1093,  100, 1093,
02144      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02145 
02146      1093,  988,  988,  988,  988,  988,  988,  988,  988,  988,
02147       988, 1093, 1093, 1093, 1093, 1093, 1093,  989,  989,  989,
02148       989,  989,  989, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02149      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02150      1093, 1093, 1093, 1093,  384, 1093, 1093, 1093,  989,  989,
02151       989,  989,  989,  989,  100, 1093, 1093, 1093, 1093,  100,
02152      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02153      1093, 1093,  988,  988,  988,  988,  988,  988,  988,  988,
02154       988,  988, 1093, 1093, 1093, 1093, 1093, 1093,  989,  989,
02155       989,  989,  989,  989, 1093, 1093, 1093, 1093, 1093, 1093,
02156 
02157      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02158      1093, 1093, 1093, 1093, 1093,  384, 1093, 1093, 1093,  989,
02159       989,  989,  989,  989,  989,  991,  991,  991,  991,  991,
02160       991,  991,  991,  991,  991, 1093, 1093, 1093, 1093, 1093,
02161      1093,  992,  992,  992,  992,  992,  992, 1093, 1093, 1093,
02162      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02163      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02164      1093, 1093,  992,  992,  992,  992,  992,  992,  110, 1093,
02165      1093, 1093, 1093, 1093, 1093, 1093, 1093,  110, 1093, 1093,
02166      1093, 1093, 1093, 1093, 1093, 1093,  993,  993,  993,  993,
02167 
02168       993,  993,  993,  993,  993,  993, 1093, 1093, 1093, 1093,
02169      1093, 1093,  994,  994,  994,  994,  994,  994, 1093, 1093,
02170      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02171      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  394,
02172      1093, 1093, 1093,  994,  994,  994,  994,  994,  994,  110,
02173      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  110, 1093,
02174      1093, 1093, 1093, 1093, 1093, 1093, 1093,  993,  993,  993,
02175       993,  993,  993,  993,  993,  993,  993, 1093, 1093, 1093,
02176      1093, 1093, 1093,  994,  994,  994,  994,  994,  994, 1093,
02177      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02178 
02179      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02180       394, 1093, 1093, 1093,  994,  994,  994,  994,  994,  994,
02181       996,  996,  996,  996,  996,  996,  996,  996,  996,  996,
02182      1093, 1093, 1093, 1093, 1093, 1093,  997,  997,  997,  997,
02183       997,  997, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02184      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02185      1093, 1093, 1093, 1093, 1093, 1093, 1093,  997,  997,  997,
02186       997,  997,  997,  405, 1093, 1093, 1093, 1093, 1093, 1093,
02187      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02188      1093, 1093,  406, 1093,  998,  998,  998,  998,  998,  998,
02189 
02190       998,  998,  998,  998, 1093, 1093, 1093, 1093, 1093, 1093,
02191       999,  999,  999,  999, 1000,  999,  410,  410,  410,  410,
02192       410,  410,  410,  410,  410,  410,  410,  410,  410,  410,
02193       410,  410,  410,  410,  410,  410, 1093,  411, 1093, 1093,
02194       412, 1001, 1001, 1001, 1001, 1002, 1001,  412,  412,  412,
02195       412,  412,  412,  412,  412,  412,  412,  412,  412,  412,
02196       412,  412,  412,  412,  412,  412,  412, 1003, 1003, 1003,
02197      1003, 1003, 1003, 1003, 1003, 1003, 1003, 1093, 1093, 1093,
02198      1093, 1093, 1093, 1004, 1004, 1004, 1004, 1005, 1004, 1093,
02199      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02200 
02201      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02202      1093, 1093, 1093, 1093, 1006, 1006, 1006, 1006, 1007, 1006,
02203       406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
02204      1093, 1093, 1093, 1093, 1093, 1093,  410,  410,  410,  410,
02205       552,  410, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02206      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02207      1093, 1093, 1093, 1093, 1093, 1093, 1093,  412,  412,  412,
02208       412,  553,  412,  270, 1093, 1093, 1093, 1093,  270, 1093,
02209      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02210      1093, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
02211 
02212      1008, 1093, 1093, 1093, 1093, 1093, 1093, 1009, 1009, 1009,
02213      1009, 1009, 1009, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02214      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02215      1093, 1093, 1093, 1093,  573, 1093, 1093, 1093, 1009, 1009,
02216      1009, 1009, 1009, 1009,  270, 1093, 1093, 1093, 1093,  270,
02217      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02218      1093, 1093, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
02219      1008, 1008, 1093, 1093, 1093, 1093, 1093, 1093, 1009, 1009,
02220      1009, 1009, 1009, 1009, 1093, 1093, 1093, 1093, 1093, 1093,
02221      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02222 
02223      1093, 1093, 1093, 1093, 1093,  573, 1093, 1093, 1093, 1009,
02224      1009, 1009, 1009, 1009, 1009,  275, 1093, 1093, 1093, 1093,
02225      1093, 1093, 1093, 1093,  275, 1093, 1093, 1093, 1093, 1093,
02226      1093, 1093, 1093, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
02227      1010, 1010, 1010, 1093, 1093, 1093, 1093, 1093, 1093, 1011,
02228      1011, 1011, 1011, 1011, 1011, 1093, 1093, 1093, 1093, 1093,
02229      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02230      1093, 1093, 1093, 1093, 1093, 1093,  582, 1093, 1093, 1093,
02231      1011, 1011, 1011, 1011, 1011, 1011,  275, 1093, 1093, 1093,
02232      1093, 1093, 1093, 1093, 1093,  275, 1093, 1093, 1093, 1093,
02233 
02234      1093, 1093, 1093, 1093, 1010, 1010, 1010, 1010, 1010, 1010,
02235      1010, 1010, 1010, 1010, 1093, 1093, 1093, 1093, 1093, 1093,
02236      1011, 1011, 1011, 1011, 1011, 1011, 1093, 1093, 1093, 1093,
02237      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02238      1093, 1093, 1093, 1093, 1093, 1093, 1093,  582, 1093, 1093,
02239      1093, 1011, 1011, 1011, 1011, 1011, 1011, 1012, 1093, 1093,
02240      1093, 1012, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02241      1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1093, 1093,
02242      1093, 1093, 1093, 1093, 1093, 1012, 1093, 1093, 1093, 1093,
02243      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02244 
02245      1093, 1093, 1093, 1093, 1093, 1093,  435, 1093, 1093, 1093,
02246      1093, 1093, 1093, 1012, 1093, 1093, 1093, 1012, 1012, 1093,
02247      1093, 1093, 1012, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02248      1012, 1093, 1093, 1093, 1012, 1093, 1012,  436, 1012, 1093,
02249      1014, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
02250      1015, 1093, 1093, 1093, 1093, 1093, 1093, 1016, 1016, 1016,
02251      1016, 1016, 1016, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02252      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02253      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1017, 1017,
02254      1017, 1017, 1017, 1017, 1018, 1018, 1018, 1018, 1018, 1018,
02255 
02256      1018, 1018, 1018, 1018, 1093, 1093, 1093, 1093, 1093, 1093,
02257      1019, 1019, 1019, 1019, 1019, 1019, 1093, 1093, 1093, 1093,
02258      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02259      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02260      1093, 1020, 1020, 1020, 1020, 1020, 1020,   92, 1093, 1093,
02261      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02262      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  142,  142,
02263       142,  142,  142,  142,  142,  142,  142,  142, 1093, 1093,
02264      1093, 1093, 1093, 1093,  143,  143,  143,  143,  143,  143,
02265       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
02266 
02267       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
02268      1093,   95, 1093, 1093,  144,  144,  144,  144,  144,  144,
02269       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
02270       144,  144,  144,  144, 1021,  144,  144,  144,  144,  144,
02271       144, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,
02272      1025, 1093, 1093, 1093, 1093, 1093, 1093, 1026, 1026, 1026,
02273      1026, 1026, 1026, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02274      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02275      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1026, 1026,
02276      1026, 1026, 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1027,
02277 
02278      1027, 1027, 1027, 1027, 1093, 1093, 1093, 1093, 1093, 1093,
02279      1028, 1028, 1028, 1028, 1028, 1028, 1093, 1093, 1093, 1093,
02280      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02281      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02282      1093, 1028, 1028, 1028, 1028, 1028, 1028, 1029, 1029, 1029,
02283      1029, 1029, 1029, 1029, 1029, 1029, 1029, 1093, 1093, 1093,
02284      1093, 1093, 1093, 1030, 1030, 1030, 1030, 1030, 1030, 1093,
02285      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02286      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02287      1093, 1093, 1093, 1093, 1031, 1031, 1031, 1031, 1031, 1031,
02288 
02289      1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
02290      1093, 1093, 1093, 1093, 1093, 1093, 1033, 1033, 1033, 1033,
02291      1033, 1033, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02292      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02293      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1033, 1033, 1033,
02294      1033, 1033, 1033,  100, 1093, 1093, 1093, 1093,  880, 1093,
02295      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02296      1093, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
02297      1035, 1093, 1093, 1093, 1093, 1093, 1093, 1036, 1036, 1036,
02298      1036, 1036, 1036, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02299 
02300      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02301      1093, 1093, 1093, 1093,  881, 1093, 1093, 1093, 1036, 1036,
02302      1036, 1036, 1036, 1036, 1037, 1037, 1037, 1037, 1037, 1037,
02303      1037, 1037, 1037, 1037, 1093, 1093, 1093, 1093, 1093, 1093,
02304      1038, 1038, 1038, 1038, 1038, 1038, 1093, 1093, 1093, 1093,
02305      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02306      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02307      1093, 1038, 1038, 1038, 1038, 1038, 1038,  110, 1093, 1093,
02308      1093, 1093, 1093, 1093, 1093, 1093,  884, 1093, 1093, 1093,
02309      1093, 1093, 1093, 1093, 1093, 1040, 1040, 1040, 1040, 1040,
02310 
02311      1040, 1040, 1040, 1040, 1040, 1093, 1093, 1093, 1093, 1093,
02312      1093, 1041, 1041, 1041, 1041, 1041, 1041, 1093, 1093, 1093,
02313      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02314      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  885, 1093,
02315      1093, 1093, 1041, 1041, 1041, 1041, 1041, 1041, 1042, 1042,
02316      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1093, 1093,
02317      1093, 1093, 1093, 1093, 1043, 1043, 1043, 1043, 1044, 1043,
02318      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02319      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02320      1093, 1093, 1093, 1093, 1093, 1045, 1045, 1045, 1045, 1046,
02321 
02322      1045, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047,
02323      1047, 1093, 1093, 1093, 1093, 1093, 1093, 1048, 1048, 1048,
02324      1048, 1049, 1048, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02325      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02326      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1050, 1050,
02327      1050, 1050, 1051, 1050,  270, 1093, 1093, 1093, 1093,  270,
02328      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02329      1093, 1093, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
02330      1052, 1052, 1093, 1093, 1093, 1093, 1093, 1093, 1053, 1053,
02331      1053, 1053, 1053, 1053, 1093, 1093, 1093, 1093, 1093, 1093,
02332 
02333      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02334      1093, 1093, 1093, 1093, 1093,  573, 1093, 1093, 1093, 1053,
02335      1053, 1053, 1053, 1053, 1053, 1054, 1054, 1054, 1054, 1054,
02336      1054, 1054, 1054, 1054, 1054, 1093, 1093, 1093, 1093, 1093,
02337      1093, 1055, 1055, 1055, 1055, 1055, 1055, 1093, 1093, 1093,
02338      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02339      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02340      1093, 1093, 1055, 1055, 1055, 1055, 1055, 1055, 1057, 1057,
02341      1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1093, 1093,
02342      1093, 1093, 1093, 1093, 1058, 1058, 1058, 1058, 1058, 1058,
02343 
02344      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02345      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02346      1093, 1093, 1093, 1093, 1093, 1058, 1058, 1058, 1058, 1058,
02347      1058,   92, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02348      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02349      1093, 1093,   93,   93,   93,   93,   93,   93,   93,   93,
02350        93,   93, 1093, 1093, 1093, 1093, 1093, 1093,   94,   94,
02351        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
02352        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
02353        94,   94,   94,   94, 1093,   95, 1093, 1093,   96,   96,
02354 
02355        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
02356        96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
02357        96,   96,   96,   96,   96, 1059, 1059, 1059, 1059, 1059,
02358      1059, 1059, 1059, 1059, 1059, 1093, 1093, 1093, 1093, 1093,
02359      1093, 1060, 1060, 1060, 1060, 1060, 1060, 1093, 1093, 1093,
02360      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02361      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02362      1093, 1093, 1061, 1061, 1061, 1061, 1061, 1061, 1065, 1065,
02363      1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1093, 1093,
02364      1093, 1093, 1093, 1093, 1066, 1066, 1066, 1066, 1066, 1066,
02365 
02366      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02367      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02368      1093, 1093, 1093, 1093, 1093, 1066, 1066, 1066, 1066, 1066,
02369      1066,  212, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02370      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02371      1093, 1093,  213,  213,  213,  213,  213,  213,  213,  213,
02372       213,  213, 1093, 1093, 1093, 1093, 1093, 1093,  214,  214,
02373       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
02374       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
02375       214,  214,  214,  214, 1093,  215, 1093, 1093,  216,  216,
02376 
02377       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
02378       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
02379       216,  216,  216,  216,  216,  124, 1093, 1093, 1093, 1093,
02380      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02381      1093, 1093, 1093, 1093,  259, 1093,  259,  259,  259,  259,
02382       259,  259,  259,  259,  259,  259, 1093, 1093, 1093, 1093,
02383      1093, 1093,  260,  260,  260,  260,  261,  260,  260,  260,
02384       260,  260,  260,  260,  260,  260,  260,  260,  260,  260,
02385       260,  260,  260,  260,  260,  260,  260,  260, 1093,  129,
02386      1093, 1093,  262,  262,  262,  262,  262,  263,  262,  262,
02387 
02388       262,  262,  262,  262,  262,  262,  262,  262,  262,  262,
02389       262,  262,  262,  262,  262,  262,  262,  262,  262, 1067,
02390      1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1093,
02391      1093, 1093, 1093, 1093, 1093, 1068, 1068, 1068, 1068, 1069,
02392      1068, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02393      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02394      1093, 1093, 1093, 1093, 1093, 1093, 1070, 1070, 1070, 1070,
02395      1071, 1070, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072,
02396      1072, 1072, 1093, 1093, 1093, 1093, 1093, 1093, 1073, 1073,
02397      1073, 1073, 1073, 1073, 1093, 1093, 1093, 1093, 1093, 1093,
02398 
02399      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02400      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1073,
02401      1073, 1073, 1073, 1073, 1073, 1074, 1074, 1074, 1074, 1074,
02402      1074, 1074, 1074, 1074, 1074, 1093, 1093, 1093, 1093, 1093,
02403      1093, 1075, 1075, 1075, 1075, 1075, 1075, 1093, 1093, 1093,
02404      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02405      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02406      1093, 1093, 1075, 1075, 1075, 1075, 1075, 1075,  275, 1093,
02407      1093, 1093, 1093, 1093, 1093, 1093, 1093,  967, 1093, 1093,
02408      1093, 1093, 1093, 1093, 1093, 1093, 1077, 1077, 1077, 1077,
02409 
02410      1077, 1077, 1077, 1077, 1077, 1077, 1093, 1093, 1093, 1093,
02411      1093, 1093, 1078, 1078, 1078, 1078, 1078, 1078, 1093, 1093,
02412      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02413      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,  968,
02414      1093, 1093, 1093, 1078, 1078, 1078, 1078, 1078, 1078, 1079,
02415      1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1093,
02416      1093, 1093, 1093, 1093, 1093, 1080, 1080, 1080, 1080, 1080,
02417      1080, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02418      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02419      1093, 1093, 1093, 1093, 1093, 1093, 1081, 1081, 1081, 1081,
02420 
02421      1081, 1081, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
02422      1084, 1084, 1093, 1093, 1093, 1093, 1093, 1093, 1085, 1085,
02423      1085, 1085, 1086, 1085, 1093, 1093, 1093, 1093, 1093, 1093,
02424      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02425      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1087,
02426      1087, 1087, 1087, 1088, 1087,  438,  438,  438,  438,  438,
02427       438,  438,  438,  438,  438, 1093, 1093, 1093, 1093, 1093,
02428      1093,  280,  280,  280,  280,  280,  280, 1093, 1093, 1093,
02429      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02430      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02431 
02432      1093, 1093,  282,  282,  282,  282,  282,  282,  406,  406,
02433       406,  406,  406,  406,  406,  406,  406,  406, 1093, 1093,
02434      1093, 1093, 1093, 1093,  410,  410,  410,  410,  552,  410,
02435      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02436      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02437      1093, 1093, 1093, 1093, 1093,  412,  412,  412,  412,  553,
02438       412,   69,   69,   69,   69,   74,   74,   74,   74,   75,
02439        75,   75,   75,   99,   99,   99,   99,  109,  109,  109,
02440       109,  202, 1093,  202,  202,  205, 1093,  205,  205,  233,
02441       233,  233,  233,  241,  241,  241,  241,  254,  254,  254,
02442 
02443       254,  257,  257,  257,  257,  269,  269,  269,  269,  274,
02444       274,  274,  274,  351,  351,  351,  356,  356,  356,  360,
02445       360,  360,  383,  383,  383,  383,   99,   99,   99,   99,
02446       393,  393,  393,  393,  109,  109,  109,  109,  254,  254,
02447       254,  254,  402,  402,  402,  402,  257,  257,  257,  257,
02448       269,  269,  269,  269,  420, 1093, 1093,  420,  272,  272,
02449       272,  272,  425,  425,  425,  425,  274,  274,  274,  274,
02450       432,  432,  432,  432,  351,  351,  351,  508,  508,  508,
02451       356,  356,  356,  511,  511,  511,  360,  360,  360,  516,
02452       516,  516,  383,  383,  383,  383,  233,  233,  233,  233,
02453 
02454        99,   99,   99,   99,  393,  393,  393,  393,  241,  241,
02455       241,  241,  109,  109,  109,  109,  254,  254,  254,  254,
02456       420, 1093, 1093,  420,  425,  425,  425,  425,  572,  572,
02457       572,  572,  269,  269,  269,  269,  581,  581,  581,  581,
02458       274,  274,  274,  274,  652,  652,  652,  654,  654,  654,
02459       654,  351,  351,  351,  655,  655,  655,  657,  657,  657,
02460       657,  356,  356,  356,  360,  360,  360,   99,   99,   99,
02461        99,  383,  383,  383,  383,  109,  109,  109,  109,  393,
02462       393,  393,  393,  420, 1093, 1093,  420,  272,  272,  272,
02463       272,  572,  572,  572,  572,  425,  425,  425,  425,  269,
02464 
02465       269,  269,  269,  581,  581,  581,  581,  432,  432,  432,
02466       432,  274,  274,  274,  274,  652,  652,  652,  777,  777,
02467       777,  654,  654,  654,  654,  655,  655,  655,  778,  778,
02468       778,  657,  657,  657,  657,  383,  383,  383,  383,  393,
02469       393,  393,  393,  420, 1093, 1093,  420,  272,  272,  272,
02470       272,  269,  269,  269,  269,  572,  572,  572,  572,  274,
02471       274,  274,  274,  581,  581,  581,  581,  652,  652,  652,
02472       655,  655,  655,  383,  383,  383,  383,  799,  799,  799,
02473       799,  393,  393,  393,  393,  803,  803,  803,  803,  420,
02474      1093, 1093,  420,  272,  272,  272,  272,  572,  572,  572,
02475 
02476       572,  581,  581,  581,  581,  383,  383,  383,  383,  233,
02477       233,  233,  233,  393,  393,  393,  393,  241,  241,  241,
02478       241,  572,  572,  572,  572,  272,  272,  272,  272,  581,
02479       581,  581,  581,  906,  906,  906,  906,  383,  383,  383,
02480       383,  799,  799,  799,  799,  393,  393,  393,  393,  803,
02481       803,  803,  803,  572,  572,  572,  572,  581,  581,  581,
02482       581,  432,  432,  432,  432,  799,  799,  799,  799,  803,
02483       803,  803,  803,  906,  906,  906,  906,  272,  272,  272,
02484       272,   11, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02485      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02486 
02487      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02488      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02489      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02490      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02491      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02492      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02493      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02494      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
02495      1093
02496     } ;
02497 
02498 static yyconst flex_int16_t yy_chk[15282] =
02499     {   0,
02500         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02501         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02502         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02503         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02504         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02505         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02506         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02507         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02508         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
02509         1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
02510 
02511      1092,    3,    3,    3,    4,    3,    4,    4,    4,    7,
02512         4,    7,    7,    7,   20,   19,    7,    3,   19,   19,
02513        25,    8,    4,    8,    8,    8,   51,    7,    8,   14,
02514         3,   14,   14,   14,   51,    4, 1091,   20,   25,    8,
02515         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02516         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02517         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02518         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02519         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02520         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02521 
02522         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02523         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02524         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
02525         9,    9,    9,    9,    9,    9,    9,    9,    9,   12,
02526        27,   17,   60,   21,   31,   38,   17,   60,   31,   38,
02527        33,   88,   21,   29,   35,   35,   27,   27,   29,   88,
02528        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
02529        62,   33,   29,   33,   33,   62,   12,   12,   12,   12,
02530        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
02531        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
02532 
02533        12,   12,   17,   12,   21,   40,   12,   12,   12,   12,
02534        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
02535        12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
02536        12,   12,   12,   28, 1082,   56,   40,   28,   56,   28,
02537        28,   28,   28,   28,   28,   28,   28,   28,   28,   30,
02538        44,   65,   45,   46,   48,   44,   48,   44,   45,  191,
02539        46,   45, 1064,   55,   46,   55,   48,   46,   30,  191,
02540        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
02541       128,  165,  128,   84,   95,  165,   30,   30,   30,   30,
02542        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
02543 
02544        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
02545        30,   30,   65,   30,   84,   95,   30,   30,   30,   30,
02546        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
02547        30,   30,   30,   30,   30,   30,   30,   30,   30,   30,
02548        30,   30,   30,   37,   49,   54,   61,  109,   87,   54,
02549        87,  132,   61,  132,   87,   49,  109,  121,   49,   54,
02550       297,   49,   58,   58,   37,   37,   37,   37,   37,   37,
02551        37,   37,   37,   37,   58,  129,  297,   58,  156,  156,
02552        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
02553        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
02554 
02555        37,   37,   37,   37,   37,   37,  129,   37,  109, 1062,
02556        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
02557        37,   37,   37,   37,   37,   37,   37,   37,   37,   37,
02558        37,   37,   37,   37,   37,   37,   37,   47,   59,  325,
02559       121,   59,   70,   99,   70,   70,   70,   47,   99,  159,
02560       159,   59,   76,  325,   76,   76,   76,   47,   59,   76,
02561        70,   81,  160,   81,   81,   81,  184,  185,  160,  172,
02562        76,   79,   97,  145,   97,   97,   97,  172,  145,   81,
02563       180,  188,  145,  189,  185,  184,  180,  189,  296,  182,
02564       188,  182,   79,   79,   79,   79,   79,   79,   79,   79,
02565 
02566        79,   79,  182,  194,   99,  215,  194,  296,   79,   79,
02567        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
02568        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
02569        79,   79,   79,   79,  145,   79,  215, 1024,   79,   79,
02570        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
02571        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
02572        79,   79,   79,   79,   79,  102,  146,  223,  200,  102,
02573       200,  200,  200,  281,  250,  146,  250,  223,  102,  102,
02574       102,  102,  102,  102,  102,  102,  200,  203,  203,  203,
02575       203,  203,  254,  102,  206,  206,  206,  206,  206,  207,
02576 
02577       226,  207,  207,  207,  281,  203,  207,  253,  294,  253,
02578       226,  294,  206,  241,  102,  271,  217,  207,  217,  217,
02579       217,  102,  241,  233,  234,  102,  102,  146,  233,  234,
02580       102,  242,  255,  261,  217,  261,  235,  255,  102,  291,
02581       242,  235,  102,  343,  102,  102,  102,  343,  102,  111,
02582       263,  291,  263,  111,  235,  235,  235,  235,  235,  235,
02583       235,  235,  111,  111,  111,  111,  111,  111,  111,  111,
02584       274,  271,  289,  269,  241,  254,  272,  111,  269,  274,
02585       370,  272,  269,  295,  233,  234,  370,  289,  290,  290,
02586       292,  292,  242,  298,  293,  299,  299,  235,  111,  293,
02587 
02588       307,  295,  300,  290,  301,  111,  301,  300,  304,  111,
02589       111, 1023,  298,  298,  111,  255,  302,  302,  303,  307,
02590       306,  304,  111,  303,  305,  306,  111,  311,  111,  111,
02591       111,  274,  111,  120,  269,  312,  305,  272,  310,  305,
02592       308,  308,  311,  310,  312,  316,  314,  315,  315,  319,
02593       316,  328,  120,  314,  120,  120,  120,  120,  120,  120,
02594       120,  120,  120,  120,  320,  328,  375,  319,  375,  320,
02595       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
02596       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
02597       120,  120,  120,  120,  120,  120, 1021,  120,  344,  344,
02598 
02599       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
02600       120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
02601       120,  120,  120,  120,  120,  120,  120,  124,  323,  324,
02602       329,  333,  336,  345,  345,  329,  321,  336,  324,  322,
02603       323,  326,  327,  330,  978,  402,  124,  333,  124,  124,
02604       124,  124,  124,  124,  124,  124,  124,  124,  321,  322,
02605       327,  411,  326,  330,  124,  124,  124,  124,  124,  124,
02606       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
02607       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
02608       367,  124,  411,  367,  124,  124,  124,  124,  124,  124,
02609 
02610       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
02611       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
02612       124,  147,  334,  335,  338,  339,  340,  346,  402,  338,
02613       420,  331,  350,  332,  342,  340, 1063,  350,  335,  346,
02614       339,  334,  147,  147,  147,  147,  147,  147,  147,  147,
02615       147,  147,  331,  332,  342,  409, 1063,  409,  147,  147,
02616       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
02617       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
02618       147,  147,  147,  147,  373,  147,  420,  373,  147,  147,
02619       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
02620 
02621       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
02622       147,  147,  147,  147,  147,  148,  148,  148,  148,  148,
02623       148,  148,  148,  148,  148,  341,  368,  421,  449,  243,
02624       368,  148,  148,  148,  148,  148,  148,  449,  243,  341,
02625       348,  348,  348,  348,  348,  530,  530,  243,  243,  243,
02626       243,  243,  243,  243,  243,  352,  355,  414,  348,  414,
02627       352,  355,  148,  148,  148,  148,  148,  148,  220,  220,
02628       220,  220,  220,  220,  220,  220,  220,  220,  353,  353,
02629       353,  353,  353,  421,  220,  220,  220,  220,  220,  220,
02630       243,  371,  357,  361,  372,  371,  353,  357,  361,  372,
02631 
02632       374,  376,  383,  393,  374,  376,  417,  383,  417,  419,
02633       454,  419,  393,  454,  977,  220,  220,  220,  220,  220,
02634       220,  221,  221,  221,  221,  221,  221,  221,  221,  221,
02635       221,  458,  450,  456,  460,  395,  461,  221,  221,  221,
02636       221,  221,  221,  425,  395,  450,  458,  456,  425,  930,
02637       460,  461,  432,  395,  395,  395,  395,  395,  395,  395,
02638       395,  432,  459,  383,  393,  490,  459,  490,  221,  221,
02639       221,  221,  221,  221,  231,  231,  231,  231,  231,  231,
02640       231,  231,  231,  231,  466,  491,  929,  491,  466,  433,
02641       231,  231,  231,  231,  231,  231,  395,  426,  433,  452,
02642 
02643       457,  462,  426,  463,  425,  452,  426,  457,  462,  471,
02644       473,  463,  475,  432,  610,  475,  478,  610,  471,  473,
02645       478,  231,  231,  231,  231,  231,  231,  232,  232,  232,
02646       232,  232,  232,  232,  232,  232,  232,  479,  467,  468,
02647       470,  928,  476,  232,  232,  232,  232,  232,  232,  479,
02648       433,  467,  468,  480,  484,  470,  476,  480,  426,  482,
02649       489,  488,  927,  482,  489,  492,  494,  483,  385,  484,
02650       485,  488,  492,  385,  232,  232,  232,  232,  232,  232,
02651       236,  483,  486,  485,  494,  236,  385,  385,  385,  385,
02652       385,  385,  385,  385,  498,  924,  498,  486,  236,  236,
02653 
02654       236,  236,  236,  236,  236,  236,  236,  236,  499,  500,
02655       499,  497,  434,  502,  236,  236,  236,  236,  236,  236,
02656       497,  434,  556,  525,  556,  500,  503,  525,  502,  385,
02657       434,  434,  434,  434,  434,  434,  434,  434,  558,  503,
02658       558,  236,  559,  922,  559,  236,  236,  236,  236,  236,
02659       236,  237,  237,  237,  237,  237,  237,  237,  237,  237,
02660       237,  564,  566,  564,  566,  623,  623,  237,  237,  237,
02661       237,  237,  237,  434,  496,  496,  528,  524,  526,  496,
02662       527,  603,  531,  528,  496,  524,  526,  538,  611,  527,
02663       531,  622,  538,  611,  603,  690,  622,  690,  237,  237,
02664 
02665       237,  237,  237,  237,  238,  238,  238,  238,  238,  238,
02666       238,  238,  238,  238,  567,  616,  617,  920,  616,  617,
02667       238,  238,  238,  238,  238,  238,  545,  567,  567,  567,
02668       567,  567,  567,  567,  567,  545,  569,  572,  581,  653,
02669       427,  569,  572,  625,  653,  427,  625,  581,  538,  427,
02670       609,  238,  238,  238,  238,  238,  238,  244,  427,  427,
02671       427,  427,  427,  427,  427,  427,  244,  609,  627,  630,
02672       567,  627,  630,  612,  613,  244,  244,  244,  244,  244,
02673       244,  244,  244,  244,  244,  612,  613,  545,  615,  918,
02674       620,  244,  244,  244,  244,  244,  244,  569,  572,  581,
02675 
02676       614,  427,  615,  620,  621,  628,  629,  632,  614,  631,
02677       632,  637,  645,  672,  637,  645,  621,  672,  244,  628,
02678       629,  631,  244,  244,  244,  244,  244,  244,  245,  245,
02679       245,  245,  245,  245,  245,  245,  245,  245,  867,  634,
02680       639,  636,  583,  635,  245,  245,  245,  245,  245,  245,
02681       638,  583,  634,  649,  635,  636,  639,  641,  642,  638,
02682       583,  583,  583,  583,  583,  583,  583,  583,  656,  641,
02683       649,  642,  692,  656,  692,  245,  245,  245,  245,  245,
02684       245,  246,  246,  246,  246,  246,  246,  246,  246,  246,
02685       246,  570,  643,  670,  670,  825,  570,  246,  246,  246,
02686 
02687       246,  246,  246,  583,  647,  671,  671,  852,  643,  570,
02688       570,  570,  570,  570,  570,  570,  570,  648,  865,  695,
02689       647,  695,  697,  849,  697,  648,  852,  849,  246,  246,
02690       246,  246,  246,  246,  249,  700,  702,  700,  702,  705,
02691       707,  705,  707,  807,  809,  807,  809,  812,  814,  812,
02692       814,  825,  570,  249,  862,  249,  249,  249,  249,  249,
02693       249,  249,  249,  249,  249,  817,  819,  817,  819,  851,
02694       851,  249,  249,  249,  249,  249,  249,  249,  249,  249,
02695       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
02696       249,  249,  249,  249,  249,  249,  249,  822,  249,  822,
02697 
02698       856,  249,  249,  249,  249,  249,  249,  249,  249,  249,
02699       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
02700       249,  249,  249,  249,  249,  249,  249,  249,  259,  824,
02701       714,  824,  721,  799,  854,  714,  854,  853,  799,  714,
02702       857,  721,  855,  858,  857,  864,  859,  259,  864,  259,
02703       259,  259,  259,  259,  259,  259,  259,  259,  259,  855,
02704       858,  859,  860,  850,  860,  259,  259,  259,  259,  259,
02705       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
02706       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
02707       259,  714,  259,  721,  799,  259,  259,  259,  259,  259,
02708 
02709       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
02710       259,  259,  259,  259,  259,  259,  259,  259,  259,  259,
02711       259,  259,  265,  888,  800,  888,  803,  804,  861,  800,
02712       863,  789,  861,  866,  863,  803,  804,  866,  890,  926,
02713       890,  265,  919,  265,  265,  265,  265,  265,  265,  265,
02714       265,  265,  265,  893,  895,  893,  895,  926,  919,  265,
02715       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
02716       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
02717       265,  265,  265,  265,  265,  800,  265,  803,  804,  265,
02718       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
02719 
02720       265,  265,  265,  265,  265,  265,  265,  265,  265,  265,
02721       265,  265,  265,  265,  265,  265,  266,  266,  266,  266,
02722       266,  266,  266,  266,  266,  266,  898,  900,  898,  900,
02723       925,  925,  266,  266,  266,  266,  266,  266,  708,  828,
02724       903,  906, 1083,  940,  828,  903,  921,  923,  940,  787,
02725       906,  708,  708,  708,  708,  708,  708,  708,  708, 1083,
02726       921,  907,  923,  266,  266,  266,  266,  266,  266,  273,
02727       907,  945,  950,  273,  950,  952,  955,  952,  955,  957,
02728       945,  957,  273,  273,  273,  273,  273,  273,  273,  273,
02729       574,  960,  979,  960,  708,  574,  962,  273,  962,  574,
02730 
02731       828,  903,  906,  778,  940,  976,  777,  979,  574,  574,
02732       574,  574,  574,  574,  574,  574,  980,  980,  273, 1000,
02733       775, 1000,  907,  774,  976,  273, 1002, 1012, 1002,  273,
02734       273, 1005,  945, 1005,  273, 1007, 1012, 1007, 1022, 1022,
02735       711, 1044,  273, 1044,  773,  711,  273, 1037,  273,  273,
02736       273,  574,  273,  276, 1090, 1090, 1037,  276,  711,  711,
02737       711,  711,  711,  711,  711,  711,  276,  276,  276,  276,
02738       276,  276,  276,  276,  941,  772,  771, 1032, 1033,  941,
02739      1034,  276, 1032, 1033, 1046, 1034, 1046, 1049, 1012, 1049,
02740       769, 1038,  941,  941,  941,  941,  941,  941,  941,  941,
02741 
02742      1038,  711,  276, 1051, 1069, 1051, 1069, 1039, 1037,  276,
02743      1071, 1074, 1071,  276,  276, 1086, 1039, 1086,  276, 1088,
02744      1074, 1088,  768,  765, 1089,  761,  276,  760,  758,  757,
02745       276,  756,  276,  276,  276,  941,  276,  277, 1032, 1033,
02746       754, 1034, 1072, 1089,  753,  748,  747, 1072,  744,  743,
02747       742,  673, 1038,  669,  668,  667,  657,  655,  277,  277,
02748       277,  277,  277,  277,  277,  277,  277,  277, 1039,  654,
02749       652,  651, 1074,  650,  277,  277,  277,  277,  277,  277,
02750       277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
02751       277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
02752 
02753       646,  277,  644, 1072,  277,  277,  277,  277,  277,  277,
02754       277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
02755       277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
02756       277,  278,  278,  278,  278,  278,  278,  278,  278,  278,
02757       278,  640,  633,  626,  624,  946, 1075,  278,  278,  278,
02758       278,  278,  278,  619,  946, 1075,  618,  608,  607,  606,
02759       605,  604, 1076,  946,  946,  946,  946,  946,  946,  946,
02760       946, 1076,  529,  523,  522,  516,  511,  510,  278,  278,
02761       278,  278,  278,  278,  284,  284,  284,  284,  284,  284,
02762       284,  284,  284,  284,  990,  509,  508,  507,  506,  990,
02763 
02764       284,  284,  284,  284,  284,  284,  946, 1075,  505,  504,
02765       501,  495,  990,  990,  990,  990,  990,  990,  990,  990,
02766       493,  487,  481, 1076,  477,  474,  472,  469,  465,  464,
02767       455,  284,  284,  284,  284,  284,  284,  287,  453, 1073,
02768       451,  448,  369,  360, 1073,  356,  351,  347,  337,  318,
02769       317,  313,  309,  288,  257,  990,  239,  230,  287,  287,
02770       287,  287,  287,  287,  287,  287,  287,  287,  229,  228,
02771       227,  225,  224,  222,  287,  287,  287,  287,  287,  287,
02772       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02773       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02774 
02775      1073,  287,  219,  218,  287,  287,  287,  287,  287,  287,
02776       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02777       287,  287,  287,  287,  287,  287,  287,  287,  287,  287,
02778       287,  358,  358,  358,  358,  358,  358,  358,  358,  358,
02779       358,  211,  209,  208,  205,  995,  204,  358,  358,  358,
02780       358,  358,  358,  202,  995,  201,  197,  196,  195,  193,
02781       192,  190,  187,  995,  995,  995,  995,  995,  995,  995,
02782       995,  186,  183,  181,  179,  178,  177,  176,  358,  358,
02783       358,  358,  358,  358,  359,  359,  359,  359,  359,  359,
02784       359,  359,  359,  359,  175,  174,  173,  170, 1013,  169,
02785 
02786       359,  359,  359,  359,  359,  359,  995, 1013,  168,  167,
02787       166,  164,  163,  162,  161,  158, 1013, 1013, 1013, 1013,
02788      1013, 1013, 1013, 1013,  157,  155,  154,  153,  152,  151,
02789       150,  359,  359,  359,  359,  359,  359,  362,  362,  362,
02790       362,  362,  362,  362,  362,  362,  362,  141,  137,  122,
02791       119, 1056,  117,  362,  362,  362,  362,  362,  362, 1013,
02792      1056,  104,   91,   90,   89,   86,   82,   78,   77, 1056,
02793      1056, 1056, 1056, 1056, 1056, 1056, 1056,   73,   72,   71,
02794        63,   57,   53,   52,  362,  362,  362,  362,  362,  362,
02795       364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
02796 
02797        50,   42,   34,   24,   18,   16,  364,  364,  364,  364,
02798       364,  364, 1056,   11,    0,    0,    0,    0,    0,    0,
02799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02800         0,    0,    0,    0,    0,    0,    0,  364,  364,  364,
02801       364,  364,  364,  366,    0,    0,    0,    0,    0,    0,
02802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02803         0,    0,    0,    0,  366,  366,  366,  366,  366,  366,
02804       366,  366,  366,  366,    0,    0,    0,    0,    0,    0,
02805       366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
02806       366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
02807 
02808       366,  366,  366,  366,  366,  366,    0,  366,    0,    0,
02809       366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
02810       366,  366,  366,  366,  366,  366,  366,  366,  366,  366,
02811       366,  366,  366,  366,  366,  366,  366,  377,  377,  377,
02812       377,  377,  377,  377,  377,  377,  377,    0,    0,    0,
02813         0,    0,    0,  377,  377,  377,  377,  377,  377,    0,
02814         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02815         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02816         0,    0,    0,    0,  377,  377,  377,  377,  377,  377,
02817       380,  380,  380,  380,  380,  380,  380,  380,  380,  380,
02818 
02819         0,    0,    0,    0,    0,    0,  380,  380,  380,  380,
02820       380,  380,    0,    0,    0,    0,    0,    0,    0,    0,
02821         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02822         0,    0,    0,    0,    0,    0,    0,  380,  380,  380,
02823       380,  380,  380,  386,    0,    0,    0,    0,  386,    0,
02824         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02825         0,  386,  386,  386,  386,  386,  386,  386,  386,  386,
02826       386,    0,    0,    0,    0,    0,    0,  386,  386,  386,
02827       386,  386,  386,    0,    0,    0,    0,    0,    0,    0,
02828         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02829 
02830         0,    0,    0,    0,  386,    0,    0,    0,  386,  386,
02831       386,  386,  386,  386,  388,  388,  388,  388,  388,  388,
02832       388,  388,  388,  388,    0,    0,    0,    0,    0,    0,
02833       388,  388,  388,  388,  388,  388,    0,    0,    0,    0,
02834         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02835         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02836         0,  388,  388,  388,  388,  388,  388,  390,    0,    0,
02837         0,    0,  390,    0,    0,    0,    0,    0,    0,    0,
02838         0,    0,    0,    0,    0,  390,  390,  390,  390,  390,
02839       390,  390,  390,  390,  390,    0,    0,    0,    0,    0,
02840 
02841         0,  390,  390,  390,  390,  390,  390,    0,    0,    0,
02842         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02843         0,    0,    0,    0,    0,    0,    0,    0,  390,    0,
02844         0,    0,  390,  390,  390,  390,  390,  390,  396,    0,
02845         0,    0,    0,    0,    0,    0,    0,  396,    0,    0,
02846         0,    0,    0,    0,    0,    0,  396,  396,  396,  396,
02847       396,  396,  396,  396,  396,  396,    0,    0,    0,    0,
02848         0,    0,  396,  396,  396,  396,  396,  396,    0,    0,
02849         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02850         0,    0,    0,    0,    0,    0,    0,    0,    0,  396,
02851 
02852         0,    0,    0,  396,  396,  396,  396,  396,  396,  398,
02853       398,  398,  398,  398,  398,  398,  398,  398,  398,    0,
02854         0,    0,    0,    0,    0,  398,  398,  398,  398,  398,
02855       398,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02856         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02857         0,    0,    0,    0,    0,    0,  398,  398,  398,  398,
02858       398,  398,  400,    0,    0,    0,    0,    0,    0,    0,
02859         0,  400,    0,    0,    0,    0,    0,    0,    0,    0,
02860       400,  400,  400,  400,  400,  400,  400,  400,  400,  400,
02861         0,    0,    0,    0,    0,    0,  400,  400,  400,  400,
02862 
02863       400,  400,    0,    0,    0,    0,    0,    0,    0,    0,
02864         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02865         0,    0,    0,  400,    0,    0,    0,  400,  400,  400,
02866       400,  400,  400,  404,    0,    0,    0,    0,    0,    0,
02867         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02868         0,    0,  404,    0,  404,  404,  404,  404,  404,  404,
02869       404,  404,  404,  404,    0,    0,    0,    0,    0,    0,
02870       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
02871       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
02872       404,  404,  404,  404,  404,  404,    0,  404,    0,    0,
02873 
02874       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
02875       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
02876       404,  404,  404,  404,  404,  404,  404,  405,    0,    0,
02877         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02878         0,    0,    0,    0,    0,    0,  405,    0,  405,  405,
02879       405,  405,  405,  405,  405,  405,  405,  405,    0,    0,
02880         0,    0,    0,    0,  405,  405,  405,  405,  405,  405,
02881       405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
02882       405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
02883         0,  405,    0,    0,  405,  405,  405,  405,  405,  405,
02884 
02885       405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
02886       405,  405,  405,  405,  405,  405,  405,  405,  405,  405,
02887       405,  407,  407,  407,  407,  407,  407,  407,  407,  407,
02888       407,    0,    0,    0,    0,    0,    0,  407,  407,  407,
02889       407,  407,  407,    0,    0,    0,    0,    0,    0,    0,
02890         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02891         0,    0,    0,    0,    0,    0,    0,    0,  407,  407,
02892       407,  407,  407,  407,  415,  415,  415,  415,  415,  415,
02893       415,  415,  415,  415,    0,    0,    0,    0,    0,    0,
02894       415,  415,  415,  415,  415,  415,    0,    0,    0,    0,
02895 
02896         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02897         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02898         0,  415,  415,  415,  415,  415,  415,  422,    0,    0,
02899         0,  422,    0,    0,    0,    0,    0,    0,    0,    0,
02900       422,  422,  422,  422,  422,  422,  422,  422,    0,    0,
02901         0,    0,    0,    0,    0,  422,    0,    0,    0,    0,
02902         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02903         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02904         0,    0,    0,  422,    0,    0,    0,  422,  422,    0,
02905         0,    0,  422,    0,    0,    0,    0,    0,    0,    0,
02906 
02907       422,    0,    0,    0,  422,    0,  422,    0,  422,    0,
02908       422,  424,    0,    0,    0,  424,    0,    0,    0,    0,
02909         0,    0,    0,    0,  424,  424,  424,  424,  424,  424,
02910       424,  424,    0,    0,    0,    0,    0,    0,    0,  424,
02911         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02912         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02913       424,    0,    0,    0,    0,    0,    0,  424,    0,    0,
02914         0,  424,  424,    0,    0,    0,  424,    0,    0,    0,
02915         0,    0,    0,    0,  424,    0,    0,    0,  424,    0,
02916       424,  424,  424,    0,  424,  428,    0,    0,    0,    0,
02917 
02918       428,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02919         0,    0,    0,  428,  428,  428,  428,  428,  428,  428,
02920       428,  428,  428,    0,    0,    0,    0,    0,    0,  428,
02921       428,  428,  428,  428,  428,    0,    0,    0,    0,    0,
02922         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02923         0,    0,    0,    0,    0,    0,  428,    0,    0,    0,
02924       428,  428,  428,  428,  428,  428,  429,  429,  429,  429,
02925       429,  429,  429,  429,  429,  429,    0,    0,    0,    0,
02926         0,    0,  429,  429,  429,  429,  429,  429,    0,    0,
02927         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02928 
02929         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02930         0,    0,    0,  429,  429,  429,  429,  429,  429,  430,
02931       430,  430,  430,  430,  430,  430,  430,  430,  430,    0,
02932         0,    0,    0,    0,    0,  430,  430,  430,  430,  430,
02933       430,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02934         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02935         0,    0,    0,    0,    0,    0,  430,  430,  430,  430,
02936       430,  430,  435,    0,    0,    0,    0,    0,    0,    0,
02937         0,  435,    0,    0,    0,    0,    0,    0,    0,    0,
02938       435,  435,  435,  435,  435,  435,  435,  435,  435,  435,
02939 
02940         0,    0,    0,    0,    0,    0,  435,  435,  435,  435,
02941       435,  435,    0,    0,    0,    0,    0,    0,    0,    0,
02942         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02943         0,    0,    0,  435,    0,    0,    0,  435,  435,  435,
02944       435,  435,  435,  436,  436,  436,  436,  436,  436,  436,
02945       436,  436,  436,    0,    0,    0,    0,    0,    0,  436,
02946       436,  436,  436,  436,  436,    0,    0,    0,    0,    0,
02947         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02948         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02949       436,  436,  436,  436,  436,  436,  437,  437,  437,  437,
02950 
02951       437,  437,  437,  437,  437,  437,    0,    0,    0,    0,
02952         0,    0,  437,  437,  437,  437,  437,  437,    0,    0,
02953         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02954         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02955         0,    0,    0,  437,  437,  437,  437,  437,  437,  438,
02956         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02957         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02958       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
02959         0,    0,    0,    0,    0,    0,  438,  438,  438,  438,
02960       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
02961 
02962       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
02963       438,  438,    0,  438,    0,    0,  438,  438,  438,  438,
02964       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
02965       438,  438,  438,  438,  438,  438,  438,  438,  438,  438,
02966       438,  438,  438,  439,  439,  439,  439,  439,  439,  439,
02967       439,  439,  439,    0,    0,    0,    0,    0,    0,  439,
02968       439,  439,  439,  439,  439,    0,    0,    0,    0,    0,
02969         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02970         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02971       439,  439,  439,  439,  439,  439,  442,  442,  442,  442,
02972 
02973       442,  442,  442,  442,  442,  442,    0,    0,    0,    0,
02974         0,    0,  442,  442,  442,  442,  442,  442,    0,    0,
02975         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02976         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02977         0,    0,    0,  442,  442,  442,  442,  442,  442,  443,
02978       443,  443,  443,  443,  443,  443,  443,  443,  443,    0,
02979         0,    0,    0,    0,    0,  443,  443,  443,  443,  443,
02980       443,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02981         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02982         0,    0,    0,    0,    0,    0,  443,  443,  443,  443,
02983 
02984       443,  443,  444,  444,  444,  444,  444,  444,  444,  444,
02985       444,  444,    0,    0,    0,    0,    0,    0,  444,  444,
02986       444,  444,  444,  444,    0,    0,    0,    0,    0,    0,
02987         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02988         0,    0,    0,    0,    0,    0,    0,    0,    0,  444,
02989       444,  444,  444,  444,  444,  447,    0,    0,    0,    0,
02990         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
02991         0,    0,    0,    0,    0,    0,  447,  447,  447,  447,
02992       447,  447,  447,  447,  447,  447,    0,    0,    0,    0,
02993         0,    0,  447,  447,  447,  447,  447,  447,  447,  447,
02994 
02995       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
02996       447,  447,  447,  447,  447,  447,  447,  447,    0,  447,
02997         0,    0,  447,  447,  447,  447,  447,  447,  447,  447,
02998       447,  447,  447,  447,  447,  447,  447,  447,  447,  447,
02999       447,  447,  447,  447,  447,  447,  447,  447,  447,  512,
03000       512,  512,  512,  512,  512,  512,  512,  512,  512,    0,
03001         0,    0,    0,    0,    0,  512,  512,  512,  512,  512,
03002       512,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03003         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03004         0,    0,    0,    0,    0,    0,  512,  512,  512,  512,
03005 
03006       512,  512,  514,  514,  514,  514,  514,  514,  514,  514,
03007       514,  514,    0,    0,    0,    0,    0,    0,  514,  514,
03008       514,  514,  514,  514,    0,    0,    0,    0,    0,    0,
03009         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03010         0,    0,    0,    0,    0,    0,    0,    0,    0,  514,
03011       514,  514,  514,  514,  514,  517,  517,  517,  517,  517,
03012       517,  517,  517,  517,  517,    0,    0,    0,    0,    0,
03013         0,  517,  517,  517,  517,  517,  517,    0,    0,    0,
03014         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03015         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03016 
03017         0,    0,  517,  517,  517,  517,  517,  517,  519,  519,
03018       519,  519,  519,  519,  519,  519,  519,  519,    0,    0,
03019         0,    0,    0,    0,  519,  519,  519,  519,  519,  519,
03020         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03021         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03022         0,    0,    0,    0,    0,  519,  519,  519,  519,  519,
03023       519,  521,    0,    0,    0,    0,    0,    0,    0,    0,
03024         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03025         0,    0,  521,  521,  521,  521,  521,  521,  521,  521,
03026       521,  521,    0,    0,    0,    0,    0,    0,  521,  521,
03027 
03028       521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
03029       521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
03030       521,  521,  521,  521,    0,  521,    0,    0,  521,  521,
03031       521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
03032       521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
03033       521,  521,  521,  521,  521,  532,  532,  532,  532,  532,
03034       532,  532,  532,  532,  532,    0,    0,    0,    0,    0,
03035         0,  532,  532,  532,  532,  532,  532,    0,    0,    0,
03036         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03037         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03038 
03039         0,    0,  532,  532,  532,  532,  532,  532,  535,  535,
03040       535,  535,  535,  535,  535,  535,  535,  535,    0,    0,
03041         0,    0,    0,    0,  535,  535,  535,  535,  535,  535,
03042         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03043         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03044         0,    0,    0,    0,    0,  535,  535,  535,  535,  535,
03045       535,  539,    0,    0,    0,    0,  539,    0,    0,    0,
03046         0,    0,    0,    0,    0,    0,    0,    0,    0,  539,
03047       539,  539,  539,  539,  539,  539,  539,  539,  539,    0,
03048         0,    0,    0,    0,    0,  539,  539,  539,  539,  539,
03049 
03050       539,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03051         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03052         0,    0,  539,    0,    0,    0,  539,  539,  539,  539,
03053       539,  539,  540,    0,    0,    0,    0,  540,    0,    0,
03054         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03055       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
03056         0,    0,    0,    0,    0,    0,  540,  540,  540,  540,
03057       540,  540,    0,    0,    0,    0,    0,    0,    0,    0,
03058         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03059         0,    0,    0,  540,    0,    0,    0,  540,  540,  540,
03060 
03061       540,  540,  540,  541,  541,  541,  541,  541,  541,  541,
03062       541,  541,  541,    0,    0,    0,    0,    0,    0,  541,
03063       541,  541,  541,  541,  541,    0,    0,    0,    0,    0,
03064         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03065         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03066       541,  541,  541,  541,  541,  541,  543,    0,    0,    0,
03067         0,  543,    0,    0,    0,    0,    0,    0,    0,    0,
03068         0,    0,    0,    0,  543,  543,  543,  543,  543,  543,
03069       543,  543,  543,  543,    0,    0,    0,    0,    0,    0,
03070       543,  543,  543,  543,  543,  543,    0,    0,    0,    0,
03071 
03072         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03073         0,    0,    0,    0,    0,    0,    0,  543,    0,    0,
03074         0,  543,  543,  543,  543,  543,  543,  546,    0,    0,
03075         0,    0,    0,    0,    0,    0,  546,    0,    0,    0,
03076         0,    0,    0,    0,    0,  546,  546,  546,  546,  546,
03077       546,  546,  546,  546,  546,    0,    0,    0,    0,    0,
03078         0,  546,  546,  546,  546,  546,  546,    0,    0,    0,
03079         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03080         0,    0,    0,    0,    0,    0,    0,    0,  546,    0,
03081         0,    0,  546,  546,  546,  546,  546,  546,  547,    0,
03082 
03083         0,    0,    0,    0,    0,    0,    0,  547,    0,    0,
03084         0,    0,    0,    0,    0,    0,  547,  547,  547,  547,
03085       547,  547,  547,  547,  547,  547,    0,    0,    0,    0,
03086         0,    0,  547,  547,  547,  547,  547,  547,    0,    0,
03087         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03088         0,    0,    0,    0,    0,    0,    0,    0,    0,  547,
03089         0,    0,    0,  547,  547,  547,  547,  547,  547,  548,
03090       548,  548,  548,  548,  548,  548,  548,  548,  548,    0,
03091         0,    0,    0,    0,    0,  548,  548,  548,  548,  548,
03092       548,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03093 
03094         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03095         0,    0,    0,    0,    0,    0,  548,  548,  548,  548,
03096       548,  548,  550,    0,    0,    0,    0,    0,    0,    0,
03097         0,  550,    0,    0,    0,    0,    0,    0,    0,    0,
03098       550,  550,  550,  550,  550,  550,  550,  550,  550,  550,
03099         0,    0,    0,    0,    0,    0,  550,  550,  550,  550,
03100       550,  550,    0,    0,    0,    0,    0,    0,    0,    0,
03101         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03102         0,    0,    0,  550,    0,    0,    0,  550,  550,  550,
03103       550,  550,  550,  552,    0,    0,    0,    0,    0,    0,
03104 
03105         0,    0,    0,    0,    0,    0,    0,    0,    0,  552,
03106         0,  552,  552,    0,  552,  552,  552,  552,  552,  552,
03107       552,  552,  552,  552,    0,    0,    0,    0,    0,    0,
03108       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
03109       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
03110       552,  552,  552,  552,  552,  552,    0,  552,    0,    0,
03111       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
03112       552,  552,  552,  552,  552,  552,  552,  552,  552,  552,
03113       552,  552,  552,  552,  552,  552,  552,  554,    0,  554,
03114         0,    0,  554,  554,  554,  554,  554,  554,  554,  554,
03115 
03116       554,  554,    0,    0,    0,    0,    0,    0,  554,  554,
03117       554,  554,  554,  554,    0,    0,    0,    0,    0,    0,
03118         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03119         0,    0,    0,    0,    0,    0,    0,    0,    0,  554,
03120       554,  554,  554,  554,  554,  560,  560,  560,  560,  560,
03121       560,  560,  560,  560,  560,    0,    0,    0,    0,    0,
03122         0,  560,  560,  560,  560,  560,  560,    0,    0,    0,
03123         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03124         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03125         0,    0,  560,  560,  560,  560,  560,  560,  561,  561,
03126 
03127       561,  561,  561,  561,  561,  561,  561,  561,    0,    0,
03128         0,    0,    0,    0,  561,  561,  561,  561,  561,  561,
03129         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03130         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03131         0,    0,    0,    0,    0,  561,  561,  561,  561,  561,
03132       561,  562,  562,  562,  562,  562,  562,  562,  562,  562,
03133       562,    0,    0,    0,    0,    0,    0,  562,  562,  562,
03134       562,  562,  562,    0,    0,    0,    0,    0,    0,    0,
03135         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03136         0,    0,    0,    0,    0,    0,    0,    0,  562,  562,
03137 
03138       562,  562,  562,  562,  568,  568,  568,  568,  568,  568,
03139       568,  568,  568,  568,    0,    0,    0,    0,    0,    0,
03140       568,  568,  568,  568,  568,  568,    0,    0,    0,    0,
03141         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03142         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03143         0,  568,  568,  568,  568,  568,  568,  571,    0,    0,
03144         0,    0,  571,    0,    0,    0,    0,    0,    0,    0,
03145         0,    0,    0,    0,    0,  571,  571,  571,  571,  571,
03146       571,  571,  571,  571,  571,    0,    0,    0,    0,    0,
03147         0,  571,  571,  571,  571,  571,  571,    0,    0,    0,
03148 
03149         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03150         0,    0,    0,    0,    0,    0,    0,    0,  571,    0,
03151         0,    0,  571,  571,  571,  571,  571,  571,  575,    0,
03152         0,    0,    0,  575,    0,    0,    0,    0,    0,    0,
03153         0,    0,    0,    0,    0,    0,  575,  575,  575,  575,
03154       575,  575,  575,  575,  575,  575,    0,    0,    0,    0,
03155         0,    0,  575,  575,  575,  575,  575,  575,    0,    0,
03156         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03157         0,    0,    0,    0,    0,    0,    0,    0,    0,  575,
03158         0,    0,    0,  575,  575,  575,  575,  575,  575,  577,
03159 
03160       577,  577,  577,  577,  577,  577,  577,  577,  577,    0,
03161         0,    0,    0,    0,    0,  577,  577,  577,  577,  577,
03162       577,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03163         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03164         0,    0,    0,    0,    0,    0,  577,  577,  577,  577,
03165       577,  577,  579,    0,    0,    0,    0,  579,    0,    0,
03166         0,  579,    0,    0,    0,    0,    0,    0,    0,    0,
03167       579,  579,  579,  579,  579,  579,  579,  579,  579,  579,
03168         0,    0,    0,    0,    0,    0,  579,  579,  579,  579,
03169       579,  579,    0,    0,    0,    0,    0,    0,    0,    0,
03170 
03171         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03172         0,    0,    0,  579,    0,    0,    0,  579,  579,  579,
03173       579,  579,  579,  584,    0,    0,    0,    0,    0,    0,
03174         0,    0,  584,    0,    0,    0,    0,    0,    0,    0,
03175         0,  584,  584,  584,  584,  584,  584,  584,  584,  584,
03176       584,    0,    0,    0,    0,    0,    0,  584,  584,  584,
03177       584,  584,  584,    0,    0,    0,    0,    0,    0,    0,
03178         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03179         0,    0,    0,    0,  584,    0,    0,    0,  584,  584,
03180       584,  584,  584,  584,  586,  586,  586,  586,  586,  586,
03181 
03182       586,  586,  586,  586,    0,    0,    0,    0,    0,    0,
03183       586,  586,  586,  586,  586,  586,    0,    0,    0,    0,
03184         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03185         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03186         0,  586,  586,  586,  586,  586,  586,  588,    0,    0,
03187         0,    0,    0,    0,    0,    0,  588,    0,    0,    0,
03188         0,    0,    0,    0,    0,  588,  588,  588,  588,  588,
03189       588,  588,  588,  588,  588,    0,    0,    0,    0,    0,
03190         0,  588,  588,  588,  588,  588,  588,    0,    0,    0,
03191         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03192 
03193         0,    0,    0,    0,    0,    0,    0,    0,  588,    0,
03194         0,    0,  588,  588,  588,  588,  588,  588,  590,    0,
03195         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03196         0,    0,    0,    0,    0,    0,    0,    0,    0,  590,
03197       590,  590,  590,  590,  590,  590,  590,  590,  590,    0,
03198         0,    0,    0,    0,    0,  590,  590,  590,  590,  590,
03199       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
03200       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
03201       590,    0,  590,    0,    0,  590,  590,  590,  590,  590,
03202       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
03203 
03204       590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
03205       590,  590,  593,  593,  593,  593,  593,  593,  593,  593,
03206       593,  593,    0,    0,    0,    0,    0,    0,  593,  593,
03207       593,  593,  593,  593,    0,    0,    0,    0,    0,    0,
03208         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03209         0,    0,    0,    0,    0,    0,    0,    0,    0,  593,
03210       593,  593,  593,  593,  593,  596,  596,  596,  596,  596,
03211       596,  596,  596,  596,  596,    0,    0,    0,    0,    0,
03212         0,  596,  596,  596,  596,  596,  596,    0,    0,    0,
03213         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03214 
03215         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03216         0,    0,  596,  596,  596,  596,  596,  596,  599,  599,
03217       599,  599,  599,  599,  599,  599,  599,  599,    0,    0,
03218         0,    0,    0,    0,  599,  599,  599,  599,  599,  599,
03219         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03220         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03221         0,    0,    0,    0,    0,  599,  599,  599,  599,  599,
03222       599,  602,    0,    0,    0,    0,    0,    0,    0,    0,
03223         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03224         0,    0,  602,  602,  602,  602,  602,  602,  602,  602,
03225 
03226       602,  602,    0,    0,    0,    0,    0,    0,  602,  602,
03227       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
03228       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
03229       602,  602,  602,  602,    0,  602,    0,    0,  602,  602,
03230       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
03231       602,  602,  602,  602,  602,  602,  602,  602,  602,  602,
03232       602,  602,  602,  602,  602,  658,  658,  658,  658,  658,
03233       658,  658,  658,  658,  658,    0,    0,    0,    0,    0,
03234         0,  658,  658,  658,  658,  658,  658,    0,    0,    0,
03235         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03236 
03237         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03238         0,    0,  658,  658,  658,  658,  658,  658,  660,  660,
03239       660,  660,  660,  660,  660,  660,  660,  660,    0,    0,
03240         0,    0,    0,    0,  660,  660,  660,  660,  660,  660,
03241         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03242         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03243         0,    0,    0,    0,    0,  660,  660,  660,  660,  660,
03244       660,  662,  662,  662,  662,  662,  662,  662,  662,  662,
03245       662,    0,    0,    0,    0,    0,    0,  662,  662,  662,
03246       662,  662,  662,    0,    0,    0,    0,    0,    0,    0,
03247 
03248         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03249         0,    0,    0,    0,    0,    0,    0,    0,  662,  662,
03250       662,  662,  662,  662,  664,  664,  664,  664,  664,  664,
03251       664,  664,  664,  664,    0,    0,    0,    0,    0,    0,
03252       664,  664,  664,  664,  664,  664,    0,    0,    0,    0,
03253         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03254         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03255         0,  664,  664,  664,  664,  664,  664,  666,    0,    0,
03256         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03257         0,    0,    0,    0,    0,    0,    0,    0,  666,  666,
03258 
03259       666,  666,  666,  666,  666,  666,  666,  666,    0,    0,
03260         0,    0,    0,    0,  666,  666,  666,  666,  666,  666,
03261       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
03262       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
03263         0,  666,    0,    0,  666,  666,  666,  666,  666,  666,
03264       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
03265       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
03266       666,  674,  674,  674,  674,  674,  674,  674,  674,  674,
03267       674,    0,    0,    0,    0,    0,    0,  674,  674,  674,
03268       674,  674,  674,    0,    0,    0,    0,    0,    0,    0,
03269 
03270         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03271         0,    0,    0,    0,    0,    0,    0,    0,  674,  674,
03272       674,  674,  674,  674,  677,  677,  677,  677,  677,  677,
03273       677,  677,  677,  677,    0,    0,    0,    0,    0,    0,
03274       677,  677,  677,  677,  677,  677,    0,    0,    0,    0,
03275         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03276         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03277         0,  677,  677,  677,  677,  677,  677,  680,    0,    0,
03278         0,    0,  680,    0,    0,    0,    0,    0,    0,    0,
03279         0,    0,    0,    0,    0,  680,  680,  680,  680,  680,
03280 
03281       680,  680,  680,  680,  680,    0,    0,    0,    0,    0,
03282         0,  680,  680,  680,  680,  680,  680,    0,    0,    0,
03283         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03284         0,    0,    0,    0,    0,    0,    0,    0,  680,    0,
03285         0,    0,  680,  680,  680,  680,  680,  680,  681,    0,
03286         0,    0,    0,  681,    0,    0,    0,    0,    0,    0,
03287         0,    0,    0,    0,    0,    0,  681,  681,  681,  681,
03288       681,  681,  681,  681,  681,  681,    0,    0,    0,    0,
03289         0,    0,  681,  681,  681,  681,  681,  681,    0,    0,
03290         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03291 
03292         0,    0,    0,    0,    0,    0,    0,    0,    0,  681,
03293         0,    0,    0,  681,  681,  681,  681,  681,  681,  682,
03294       682,  682,  682,  682,  682,  682,  682,  682,  682,    0,
03295         0,    0,    0,    0,    0,  682,  682,  682,  682,  682,
03296       682,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03297         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03298         0,    0,    0,    0,    0,    0,  682,  682,  682,  682,
03299       682,  682,  684,    0,    0,    0,    0,    0,    0,    0,
03300         0,  684,    0,    0,    0,    0,    0,    0,    0,    0,
03301       684,  684,  684,  684,  684,  684,  684,  684,  684,  684,
03302 
03303         0,    0,    0,    0,    0,    0,  684,  684,  684,  684,
03304       684,  684,    0,    0,    0,    0,    0,    0,    0,    0,
03305         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03306         0,    0,    0,  684,    0,    0,    0,  684,  684,  684,
03307       684,  684,  684,  685,    0,    0,    0,    0,    0,    0,
03308         0,    0,  685,    0,    0,    0,    0,    0,    0,    0,
03309         0,  685,  685,  685,  685,  685,  685,  685,  685,  685,
03310       685,    0,    0,    0,    0,    0,    0,  685,  685,  685,
03311       685,  685,  685,    0,    0,    0,    0,    0,    0,    0,
03312         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03313 
03314         0,    0,    0,    0,  685,    0,    0,    0,  685,  685,
03315       685,  685,  685,  685,  686,  686,  686,  686,  686,  686,
03316       686,  686,  686,  686,    0,    0,    0,    0,    0,    0,
03317       686,  686,  686,  686,  686,  686,    0,    0,    0,    0,
03318         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03319         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03320         0,  686,  686,  686,  686,  686,  686,  688,    0,    0,
03321         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03322         0,    0,    0,    0,    0,    0,  688,    0,  688,  688,
03323       688,  688,  688,  688,  688,  688,  688,  688,    0,    0,
03324 
03325         0,    0,    0,    0,  688,  688,  688,  688,  688,  688,
03326       688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
03327       688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
03328         0,  688,    0,    0,  688,  688,  688,  688,  688,  688,
03329       688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
03330       688,  688,  688,  688,  688,  688,  688,  688,  688,  688,
03331       688,  693,  693,  693,  693,  693,  693,  693,  693,  693,
03332       693,    0,    0,    0,    0,    0,    0,  693,  693,  693,
03333       693,  693,  693,    0,    0,    0,    0,    0,    0,    0,
03334         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03335 
03336         0,    0,    0,    0,    0,    0,    0,    0,  693,  693,
03337       693,  693,  693,  693,  698,  698,  698,  698,  698,  698,
03338       698,  698,  698,  698,    0,    0,    0,    0,    0,    0,
03339       698,  698,  698,  698,  698,  698,    0,    0,    0,    0,
03340         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03341         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03342         0,  698,  698,  698,  698,  698,  698,  703,  703,  703,
03343       703,  703,  703,  703,  703,  703,  703,    0,    0,    0,
03344         0,    0,    0,  703,  703,  703,  703,  703,  703,    0,
03345         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03346 
03347         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03348         0,    0,    0,    0,  703,  703,  703,  703,  703,  703,
03349       709,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03350         0,    0,    0,  709,  709,  709,  709,  709,  709,  709,
03351       709,  709,  709,    0,    0,    0,    0,    0,    0,  709,
03352       709,  709,  709,  709,  709,    0,    0,    0,    0,    0,
03353         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03354         0,    0,    0,    0,    0,    0,  709,    0,    0,    0,
03355       709,  709,  709,  709,  709,  709,  712,    0,    0,    0,
03356         0,  712,    0,    0,    0,    0,    0,    0,    0,    0,
03357 
03358         0,    0,    0,    0,  712,  712,  712,  712,  712,  712,
03359       712,  712,  712,  712,    0,    0,    0,    0,    0,    0,
03360       712,  712,  712,  712,  712,  712,    0,    0,    0,    0,
03361         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03362         0,    0,    0,    0,    0,    0,    0,  712,    0,    0,
03363         0,  712,  712,  712,  712,  712,  712,  715,    0,    0,
03364         0,    0,  715,    0,    0,    0,    0,    0,    0,    0,
03365         0,    0,    0,    0,    0,  715,  715,  715,  715,  715,
03366       715,  715,  715,  715,  715,    0,    0,    0,    0,    0,
03367         0,  715,  715,  715,  715,  715,  715,    0,    0,    0,
03368 
03369         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03370         0,    0,    0,    0,    0,    0,    0,    0,  715,    0,
03371         0,    0,  715,  715,  715,  715,  715,  715,  716,    0,
03372         0,    0,    0,  716,    0,    0,    0,    0,    0,    0,
03373         0,    0,    0,    0,    0,    0,  716,  716,  716,  716,
03374       716,  716,  716,  716,  716,  716,    0,    0,    0,    0,
03375         0,    0,  716,  716,  716,  716,  716,  716,    0,    0,
03376         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03377         0,    0,    0,    0,    0,    0,    0,    0,    0,  716,
03378         0,    0,    0,  716,  716,  716,  716,  716,  716,  717,
03379 
03380       717,  717,  717,  717,  717,  717,  717,  717,  717,    0,
03381         0,    0,    0,    0,    0,  717,  717,  717,  717,  717,
03382       717,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03383         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03384         0,    0,    0,    0,    0,    0,  717,  717,  717,  717,
03385       717,  717,  719,    0,    0,    0,    0,  719,    0,    0,
03386         0,  719,    0,    0,    0,    0,    0,    0,    0,    0,
03387       719,  719,  719,  719,  719,  719,  719,  719,  719,  719,
03388         0,    0,    0,    0,    0,    0,  719,  719,  719,  719,
03389       719,  719,    0,    0,    0,    0,    0,    0,    0,    0,
03390 
03391         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03392         0,    0,    0,  719,    0,    0,    0,  719,  719,  719,
03393       719,  719,  719,  722,    0,    0,    0,    0,    0,    0,
03394         0,    0,  722,    0,    0,    0,    0,    0,    0,    0,
03395         0,  722,  722,  722,  722,  722,  722,  722,  722,  722,
03396       722,    0,    0,    0,    0,    0,    0,  722,  722,  722,
03397       722,  722,  722,    0,    0,    0,    0,    0,    0,    0,
03398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03399         0,    0,    0,    0,  722,    0,    0,    0,  722,  722,
03400       722,  722,  722,  722,  723,    0,    0,    0,    0,    0,
03401 
03402         0,    0,    0,  723,    0,    0,    0,    0,    0,    0,
03403         0,    0,  723,  723,  723,  723,  723,  723,  723,  723,
03404       723,  723,    0,    0,    0,    0,    0,    0,  723,  723,
03405       723,  723,  723,  723,    0,    0,    0,    0,    0,    0,
03406         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03407         0,    0,    0,    0,    0,  723,    0,    0,    0,  723,
03408       723,  723,  723,  723,  723,  724,  724,  724,  724,  724,
03409       724,  724,  724,  724,  724,    0,    0,    0,    0,    0,
03410         0,  724,  724,  724,  724,  724,  724,    0,    0,    0,
03411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03412 
03413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03414         0,    0,  724,  724,  724,  724,  724,  724,  726,    0,
03415         0,    0,    0,    0,    0,    0,    0,  726,    0,    0,
03416         0,    0,    0,    0,    0,    0,  726,  726,  726,  726,
03417       726,  726,  726,  726,  726,  726,    0,    0,    0,    0,
03418         0,    0,  726,  726,  726,  726,  726,  726,    0,    0,
03419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03420         0,    0,    0,    0,    0,    0,    0,    0,    0,  726,
03421         0,    0,    0,  726,  726,  726,  726,  726,  726,  728,
03422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03423 
03424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03425       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
03426         0,    0,    0,    0,    0,    0,  728,  728,  728,  728,
03427       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
03428       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
03429       728,  728,    0,  728,    0,    0,  728,  728,  728,  728,
03430       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
03431       728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
03432       728,  728,  728,  731,  731,  731,  731,  731,  731,  731,
03433       731,  731,  731,    0,    0,    0,    0,    0,    0,  731,
03434 
03435       731,  731,  731,  731,  731,    0,    0,    0,    0,    0,
03436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03438       731,  731,  731,  731,  731,  731,  734,  734,  734,  734,
03439       734,  734,  734,  734,  734,  734,    0,    0,    0,    0,
03440         0,    0,  734,  734,  734,  734,  734,  734,    0,    0,
03441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03443         0,    0,    0,  734,  734,  734,  734,  734,  734,  737,
03444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03445 
03446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03447       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
03448         0,    0,    0,    0,    0,    0,  737,  737,  737,  737,
03449       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
03450       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
03451       737,  737,    0,  737,    0,    0,  737,  737,  737,  737,
03452       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
03453       737,  737,  737,  737,  737,  737,  737,  737,  737,  737,
03454       737,  737,  737,  740,    0,    0,    0,    0,    0,    0,
03455         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03456 
03457         0,    0,    0,    0,  740,  740,  740,  740,  740,  740,
03458       740,  740,  740,  740,    0,    0,    0,    0,    0,    0,
03459       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
03460       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
03461       740,  740,  740,  740,  740,  740,    0,  740,    0,    0,
03462       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
03463       740,  740,  740,  740,  740,  740,  740,  740,  740,  740,
03464       740,  740,  740,  740,  740,  740,  740,  779,  779,  779,
03465       779,  779,  779,  779,  779,  779,  779,    0,    0,    0,
03466         0,    0,    0,  779,  779,  779,  779,  779,  779,    0,
03467 
03468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03469         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03470         0,    0,    0,    0,  779,  779,  779,  779,  779,  779,
03471       781,  781,  781,  781,  781,  781,  781,  781,  781,  781,
03472         0,    0,    0,    0,    0,    0,  781,  781,  781,  781,
03473       781,  781,    0,    0,    0,    0,    0,    0,    0,    0,
03474         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03475         0,    0,    0,    0,    0,    0,    0,  781,  781,  781,
03476       781,  781,  781,  783,  783,  783,  783,  783,  783,  783,
03477       783,  783,  783,    0,    0,    0,    0,    0,    0,  783,
03478 
03479       783,  783,  783,  783,  783,    0,    0,    0,    0,    0,
03480         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03481         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03482       783,  783,  783,  783,  783,  783,  785,    0,    0,    0,
03483         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03484         0,    0,    0,    0,    0,    0,    0,  785,  785,  785,
03485       785,  785,  785,  785,  785,  785,  785,    0,    0,    0,
03486         0,    0,    0,  785,  785,  785,  785,  785,  785,  785,
03487       785,  785,  785,  785,  785,  785,  785,  785,  785,  785,
03488       785,  785,  785,  785,  785,  785,  785,  785,  785,    0,
03489 
03490       785,    0,    0,  785,  785,  785,  785,  785,  785,  785,
03491       785,  785,  785,  785,  785,  785,  785,  785,  785,  785,
03492       785,  785,  785,  785,  785,  785,  785,  785,  785,  785,
03493       791,  791,  791,  791,  791,  791,  791,  791,  791,  791,
03494         0,    0,    0,    0,    0,    0,  791,  791,  791,  791,
03495       791,  791,    0,    0,    0,    0,    0,    0,    0,    0,
03496         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03497         0,    0,    0,    0,    0,    0,    0,  791,  791,  791,
03498       791,  791,  791,  797,    0,    0,    0,    0,  797,    0,
03499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03500 
03501         0,  797,  797,  797,  797,  797,  797,  797,  797,  797,
03502       797,    0,    0,    0,    0,    0,    0,  797,  797,  797,
03503       797,  797,  797,    0,    0,    0,    0,    0,    0,    0,
03504         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03505         0,    0,    0,    0,  797,    0,    0,    0,  797,  797,
03506       797,  797,  797,  797,  798,    0,    0,    0,    0,  798,
03507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03508         0,    0,  798,  798,  798,  798,  798,  798,  798,  798,
03509       798,  798,    0,    0,    0,    0,    0,    0,  798,  798,
03510       798,  798,  798,  798,    0,    0,    0,    0,    0,    0,
03511 
03512         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03513         0,    0,    0,    0,    0,  798,    0,    0,    0,  798,
03514       798,  798,  798,  798,  798,  801,    0,    0,    0,    0,
03515         0,    0,    0,    0,  801,    0,    0,    0,    0,    0,
03516         0,    0,    0,  801,  801,  801,  801,  801,  801,  801,
03517       801,  801,  801,    0,    0,    0,    0,    0,    0,  801,
03518       801,  801,  801,  801,  801,    0,    0,    0,    0,    0,
03519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03520         0,    0,    0,    0,    0,    0,  801,    0,    0,    0,
03521       801,  801,  801,  801,  801,  801,  802,    0,    0,    0,
03522 
03523         0,    0,    0,    0,    0,  802,    0,    0,    0,    0,
03524         0,    0,    0,    0,  802,  802,  802,  802,  802,  802,
03525       802,  802,  802,  802,    0,    0,    0,    0,    0,    0,
03526       802,  802,  802,  802,  802,  802,    0,    0,    0,    0,
03527         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03528         0,    0,    0,    0,    0,    0,    0,  802,    0,    0,
03529         0,  802,  802,  802,  802,  802,  802,  805,    0,    0,
03530         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03531         0,    0,    0,    0,    0,    0,  805,    0,  805,  805,
03532       805,  805,  805,  805,  805,  805,  805,  805,    0,    0,
03533 
03534         0,    0,    0,    0,  805,  805,  805,  805,  805,  805,
03535       805,  805,  805,  805,  805,  805,  805,  805,  805,  805,
03536       805,  805,  805,  805,  805,  805,  805,  805,  805,  805,
03537         0,  805,    0,    0,  805,  805,  805,  805,  805,  805,
03538       805,  805,  805,  805,  805,  805,  805,  805,  805,  805,
03539       805,  805,  805,  805,  805,  805,  805,  805,  805,  805,
03540       805,  810,  810,  810,  810,  810,  810,  810,  810,  810,
03541       810,    0,    0,    0,    0,    0,    0,  810,  810,  810,
03542       810,  810,  810,    0,    0,    0,    0,    0,    0,    0,
03543         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03544 
03545         0,    0,    0,    0,    0,    0,    0,    0,  810,  810,
03546       810,  810,  810,  810,  815,  815,  815,  815,  815,  815,
03547       815,  815,  815,  815,    0,    0,    0,    0,    0,    0,
03548       815,  815,  815,  815,  815,  815,    0,    0,    0,    0,
03549         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03550         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03551         0,  815,  815,  815,  815,  815,  815,  820,    0,    0,
03552         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03553         0,    0,    0,    0,    0,    0,  820,    0,  820,  820,
03554       820,  820,  820,  820,  820,  820,  820,  820,    0,    0,
03555 
03556         0,    0,    0,    0,  820,  820,  820,  820,  820,  820,
03557       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
03558       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
03559         0,  820,    0,    0,  820,  820,  820,  820,  820,  820,
03560       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
03561       820,  820,  820,  820,  820,  820,  820,  820,  820,  820,
03562       820,  826,    0,    0,    0,    0,    0,    0,    0,    0,
03563         0,    0,    0,    0,  826,  826,  826,  826,  826,  826,
03564       826,  826,  826,  826,    0,    0,    0,    0,    0,    0,
03565       826,  826,  826,  826,  826,  826,    0,    0,    0,    0,
03566 
03567         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03568         0,    0,    0,    0,    0,    0,    0,  826,    0,    0,
03569         0,  826,  826,  826,  826,  826,  826,  829,    0,    0,
03570         0,    0,  829,    0,    0,    0,    0,    0,    0,    0,
03571         0,    0,    0,    0,    0,  829,  829,  829,  829,  829,
03572       829,  829,  829,  829,  829,    0,    0,    0,    0,    0,
03573         0,  829,  829,  829,  829,  829,  829,    0,    0,    0,
03574         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03575         0,    0,    0,    0,    0,    0,    0,    0,  829,    0,
03576         0,    0,  829,  829,  829,  829,  829,  829,  831,    0,
03577 
03578         0,    0,    0,  831,    0,    0,    0,    0,    0,    0,
03579         0,    0,    0,    0,    0,    0,  831,  831,  831,  831,
03580       831,  831,  831,  831,  831,  831,    0,    0,    0,    0,
03581         0,    0,  831,  831,  831,  831,  831,  831,    0,    0,
03582         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03583         0,    0,    0,    0,    0,    0,    0,    0,    0,  831,
03584         0,    0,    0,  831,  831,  831,  831,  831,  831,  832,
03585         0,    0,    0,    0,  832,    0,    0,    0,    0,    0,
03586         0,    0,    0,    0,    0,    0,    0,  832,  832,  832,
03587       832,  832,  832,  832,  832,  832,  832,    0,    0,    0,
03588 
03589         0,    0,    0,  832,  832,  832,  832,  832,  832,    0,
03590         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03591         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03592       832,    0,    0,    0,  832,  832,  832,  832,  832,  832,
03593       833,  833,  833,  833,  833,  833,  833,  833,  833,  833,
03594         0,    0,    0,    0,    0,    0,  833,  833,  833,  833,
03595       833,  833,    0,    0,    0,    0,    0,    0,    0,    0,
03596         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03597         0,    0,    0,    0,    0,    0,    0,  833,  833,  833,
03598       833,  833,  833,  835,    0,    0,    0,    0,    0,    0,
03599 
03600         0,    0,  835,    0,    0,    0,    0,    0,    0,    0,
03601         0,  835,  835,  835,  835,  835,  835,  835,  835,  835,
03602       835,    0,    0,    0,    0,    0,    0,  835,  835,  835,
03603       835,  835,  835,    0,    0,    0,    0,    0,    0,    0,
03604         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03605         0,    0,    0,    0,  835,    0,    0,    0,  835,  835,
03606       835,  835,  835,  835,  836,    0,    0,    0,    0,    0,
03607         0,    0,    0,  836,    0,    0,    0,    0,    0,    0,
03608         0,    0,  836,  836,  836,  836,  836,  836,  836,  836,
03609       836,  836,    0,    0,    0,    0,    0,    0,  836,  836,
03610 
03611       836,  836,  836,  836,    0,    0,    0,    0,    0,    0,
03612         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03613         0,    0,    0,    0,    0,  836,    0,    0,    0,  836,
03614       836,  836,  836,  836,  836,  837,  837,  837,  837,  837,
03615       837,  837,  837,  837,  837,    0,    0,    0,    0,    0,
03616         0,  837,  837,  837,  837,  837,  837,    0,    0,    0,
03617         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03618         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03619         0,    0,  837,  837,  837,  837,  837,  837,  839,    0,
03620         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03621 
03622         0,    0,    0,    0,    0,    0,    0,    0,    0,  839,
03623       839,  839,  839,  839,  839,  839,  839,  839,  839,    0,
03624         0,    0,    0,    0,    0,  839,  839,  839,  839,  839,
03625       839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
03626       839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
03627       839,    0,  839,    0,    0,  839,  839,  839,  839,  839,
03628       839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
03629       839,  839,  839,  839,  839,  839,  839,  839,  839,  839,
03630       839,  839,  842,  842,  842,  842,  842,  842,  842,  842,
03631       842,  842,    0,    0,    0,    0,    0,    0,  842,  842,
03632 
03633       842,  842,  842,  842,    0,    0,    0,    0,    0,    0,
03634         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03635         0,    0,    0,    0,    0,    0,    0,    0,    0,  842,
03636       842,  842,  842,  842,  842,  845,  845,  845,  845,  845,
03637       845,  845,  845,  845,  845,    0,    0,    0,    0,    0,
03638         0,  845,  845,  845,  845,  845,  845,    0,    0,    0,
03639         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03640         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03641         0,    0,  845,  845,  845,  845,  845,  845,  848,    0,
03642         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03643 
03644         0,    0,    0,    0,    0,    0,    0,    0,    0,  848,
03645       848,  848,  848,  848,  848,  848,  848,  848,  848,    0,
03646         0,    0,    0,    0,    0,  848,  848,  848,  848,  848,
03647       848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
03648       848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
03649       848,    0,  848,    0,    0,  848,  848,  848,  848,  848,
03650       848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
03651       848,  848,  848,  848,  848,  848,  848,  848,  848,  848,
03652       848,  848,  868,  868,  868,  868,  868,  868,  868,  868,
03653       868,  868,    0,    0,    0,    0,    0,    0,  868,  868,
03654 
03655       868,  868,  868,  868,    0,    0,    0,    0,    0,    0,
03656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03657         0,    0,    0,    0,    0,    0,    0,    0,    0,  868,
03658       868,  868,  868,  868,  868,  870,    0,    0,    0,    0,
03659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03660         0,    0,    0,    0,    0,    0,  870,  870,  870,  870,
03661       870,  870,  870,  870,  870,  870,    0,    0,    0,    0,
03662         0,    0,  870,  870,  870,  870,  870,  870,  870,  870,
03663       870,  870,  870,  870,  870,  870,  870,  870,  870,  870,
03664       870,  870,  870,  870,  870,  870,  870,  870,    0,  870,
03665 
03666         0,    0,  870,  870,  870,  870,  870,  870,  870,  870,
03667       870,  870,  870,  870,  870,  870,  870,  870,  870,  870,
03668       870,  870,  870,  870,  870,  870,  870,  870,  870,  871,
03669       871,  871,  871,  871,  871,  871,  871,  871,  871,    0,
03670         0,    0,    0,    0,    0,  871,  871,  871,  871,  871,
03671       871,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03673         0,    0,    0,    0,    0,    0,  871,  871,  871,  871,
03674       871,  871,  875,  875,  875,  875,  875,  875,  875,  875,
03675       875,  875,    0,    0,    0,    0,    0,    0,  875,  875,
03676 
03677       875,  875,  875,  875,    0,    0,    0,    0,    0,    0,
03678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03679         0,    0,    0,    0,    0,    0,    0,    0,    0,  875,
03680       875,  875,  875,  875,  875,  878,    0,    0,    0,    0,
03681       878,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03682         0,    0,    0,  878,  878,  878,  878,  878,  878,  878,
03683       878,  878,  878,    0,    0,    0,    0,    0,    0,  878,
03684       878,  878,  878,  878,  878,    0,    0,    0,    0,    0,
03685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03686         0,    0,    0,    0,    0,    0,  878,    0,    0,    0,
03687 
03688       878,  878,  878,  878,  878,  878,  879,    0,    0,    0,
03689         0,  879,    0,    0,    0,    0,    0,    0,    0,    0,
03690         0,    0,    0,    0,  879,  879,  879,  879,  879,  879,
03691       879,  879,  879,  879,    0,    0,    0,    0,    0,    0,
03692       879,  879,  879,  879,  879,  879,    0,    0,    0,    0,
03693         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03694         0,    0,    0,    0,    0,    0,    0,  879,    0,    0,
03695         0,  879,  879,  879,  879,  879,  879,  881,    0,    0,
03696         0,  881,    0,    0,    0,    0,    0,    0,    0,    0,
03697       881,  881,  881,  881,  881,  881,  881,  881,    0,    0,
03698 
03699         0,    0,    0,    0,    0,  881,    0,    0,    0,    0,
03700         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03701         0,    0,    0,    0,    0,    0,  881,    0,    0,    0,
03702         0,    0,    0,  881,    0,    0,    0,  881,  881,    0,
03703         0,    0,  881,    0,    0,    0,    0,    0,    0,    0,
03704       881,    0,    0,    0,  881,    0,  881,  881,  881,    0,
03705       881,  882,    0,    0,    0,    0,    0,    0,    0,    0,
03706       882,    0,    0,    0,    0,    0,    0,    0,    0,  882,
03707       882,  882,  882,  882,  882,  882,  882,  882,  882,    0,
03708         0,    0,    0,    0,    0,  882,  882,  882,  882,  882,
03709 
03710       882,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03712         0,    0,  882,    0,    0,    0,  882,  882,  882,  882,
03713       882,  882,  883,    0,    0,    0,    0,    0,    0,    0,
03714         0,  883,    0,    0,    0,    0,    0,    0,    0,    0,
03715       883,  883,  883,  883,  883,  883,  883,  883,  883,  883,
03716         0,    0,    0,    0,    0,    0,  883,  883,  883,  883,
03717       883,  883,    0,    0,    0,    0,    0,    0,    0,    0,
03718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03719         0,    0,    0,  883,    0,    0,    0,  883,  883,  883,
03720 
03721       883,  883,  883,  885,    0,    0,    0,  885,    0,    0,
03722         0,    0,    0,    0,    0,    0,  885,  885,  885,  885,
03723       885,  885,  885,  885,    0,    0,    0,    0,    0,    0,
03724         0,  885,    0,    0,    0,    0,    0,    0,    0,    0,
03725         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03726         0,    0,  885,    0,    0,    0,    0,    0,    0,  885,
03727         0,    0,    0,  885,  885,    0,    0,    0,  885,    0,
03728         0,    0,    0,    0,    0,    0,  885,    0,    0,    0,
03729       885,    0,  885,  885,  885,    0,  885,  886,    0,    0,
03730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03731 
03732         0,    0,    0,    0,    0,    0,  886,    0,  886,  886,
03733       886,  886,  886,  886,  886,  886,  886,  886,    0,    0,
03734         0,    0,    0,    0,  886,  886,  886,  886,  886,  886,
03735       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
03736       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
03737         0,  886,    0,    0,  886,  886,  886,  886,  886,  886,
03738       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
03739       886,  886,  886,  886,  886,  886,  886,  886,  886,  886,
03740       886,  891,  891,  891,  891,  891,  891,  891,  891,  891,
03741       891,    0,    0,    0,    0,    0,    0,  891,  891,  891,
03742 
03743       891,  891,  891,    0,    0,    0,    0,    0,    0,    0,
03744         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03745         0,    0,    0,    0,    0,    0,    0,    0,  891,  891,
03746       891,  891,  891,  891,  896,  896,  896,  896,  896,  896,
03747       896,  896,  896,  896,    0,    0,    0,    0,    0,    0,
03748       896,  896,  896,  896,  896,  896,    0,    0,    0,    0,
03749         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03751         0,  896,  896,  896,  896,  896,  896,  901,    0,    0,
03752         0,    0,  901,    0,    0,    0,    0,    0,    0,    0,
03753 
03754         0,    0,    0,    0,    0,  901,  901,  901,  901,  901,
03755       901,  901,  901,  901,  901,    0,    0,    0,    0,    0,
03756         0,  901,  901,  901,  901,  901,  901,    0,    0,    0,
03757         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03758         0,    0,    0,    0,    0,    0,    0,    0,  901,    0,
03759         0,    0,  901,  901,  901,  901,  901,  901,  902,    0,
03760         0,    0,    0,  902,    0,    0,    0,    0,    0,    0,
03761         0,    0,    0,    0,    0,    0,  902,  902,  902,  902,
03762       902,  902,  902,  902,  902,  902,    0,    0,    0,    0,
03763         0,    0,  902,  902,  902,  902,  902,  902,    0,    0,
03764 
03765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03766         0,    0,    0,    0,    0,    0,    0,    0,    0,  902,
03767         0,    0,    0,  902,  902,  902,  902,  902,  902,  904,
03768         0,    0,    0,    0,    0,    0,    0,    0,  904,    0,
03769         0,    0,    0,    0,    0,    0,    0,  904,  904,  904,
03770       904,  904,  904,  904,  904,  904,  904,    0,    0,    0,
03771         0,    0,    0,  904,  904,  904,  904,  904,  904,    0,
03772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03774       904,    0,    0,    0,  904,  904,  904,  904,  904,  904,
03775 
03776       905,    0,    0,    0,    0,    0,    0,    0,    0,  905,
03777         0,    0,    0,    0,    0,    0,    0,    0,  905,  905,
03778       905,  905,  905,  905,  905,  905,  905,  905,    0,    0,
03779         0,    0,    0,    0,  905,  905,  905,  905,  905,  905,
03780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03782         0,  905,    0,    0,    0,  905,  905,  905,  905,  905,
03783       905,  908,  908,  908,  908,  908,  908,  908,  908,  908,
03784       908,    0,    0,    0,    0,    0,    0,  908,  908,  908,
03785       908,  908,  908,    0,    0,    0,    0,    0,    0,    0,
03786 
03787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03788         0,    0,    0,    0,    0,    0,    0,    0,  908,  908,
03789       908,  908,  908,  908,  911,  911,  911,  911,  911,  911,
03790       911,  911,  911,  911,    0,    0,    0,    0,    0,    0,
03791       911,  911,  911,  911,  911,  911,    0,    0,    0,    0,
03792         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03794         0,  911,  911,  911,  911,  911,  911,  914,  914,  914,
03795       914,  914,  914,  914,  914,  914,  914,    0,    0,    0,
03796         0,    0,    0,  914,  914,  914,  914,  914,  914,    0,
03797 
03798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03800         0,    0,    0,    0,  914,  914,  914,  914,  914,  914,
03801       917,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03802         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03803         0,  917,  917,  917,  917,  917,  917,  917,  917,  917,
03804       917,    0,    0,    0,    0,    0,    0,  917,  917,  917,
03805       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
03806       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
03807       917,  917,  917,    0,  917,    0,    0,  917,  917,  917,
03808 
03809       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
03810       917,  917,  917,  917,  917,  917,  917,  917,  917,  917,
03811       917,  917,  917,  917,  931,  931,  931,  931,  931,  931,
03812       931,  931,  931,  931,    0,    0,    0,    0,    0,    0,
03813       931,  931,  931,  931,  931,  931,    0,    0,    0,    0,
03814         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03815         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03816         0,  931,  931,  931,  931,  931,  931,  933,  933,  933,
03817       933,  933,  933,  933,  933,  933,  933,    0,    0,    0,
03818         0,    0,    0,  933,  933,  933,  933,  933,  933,    0,
03819 
03820         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03821         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03822         0,    0,    0,    0,  933,  933,  933,  933,  933,  933,
03823       935,  935,  935,  935,  935,  935,  935,  935,  935,  935,
03824         0,    0,    0,    0,    0,    0,  935,  935,  935,  935,
03825       935,  935,    0,    0,    0,    0,    0,    0,    0,    0,
03826         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03827         0,    0,    0,    0,    0,    0,    0,  935,  935,  935,
03828       935,  935,  935,  938,    0,    0,    0,    0,  938,    0,
03829         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03830 
03831         0,  938,  938,  938,  938,  938,  938,  938,  938,  938,
03832       938,    0,    0,    0,    0,    0,    0,  938,  938,  938,
03833       938,  938,  938,    0,    0,    0,    0,    0,    0,    0,
03834         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03835         0,    0,    0,    0,  938,    0,    0,    0,  938,  938,
03836       938,  938,  938,  938,  939,    0,    0,    0,    0,  939,
03837         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03838         0,    0,  939,  939,  939,  939,  939,  939,  939,  939,
03839       939,  939,    0,    0,    0,    0,    0,    0,  939,  939,
03840       939,  939,  939,  939,    0,    0,    0,    0,    0,    0,
03841 
03842         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03843         0,    0,    0,    0,    0,  939,    0,    0,    0,  939,
03844       939,  939,  939,  939,  939,  942,  942,  942,  942,  942,
03845       942,  942,  942,  942,  942,    0,    0,    0,    0,    0,
03846         0,  942,  942,  942,  942,  942,  942,    0,    0,    0,
03847         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03848         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03849         0,    0,  942,  942,  942,  942,  942,  942,  943,    0,
03850         0,    0,    0,    0,    0,    0,    0,  943,    0,    0,
03851         0,    0,    0,    0,    0,    0,  943,  943,  943,  943,
03852 
03853       943,  943,  943,  943,  943,  943,    0,    0,    0,    0,
03854         0,    0,  943,  943,  943,  943,  943,  943,    0,    0,
03855         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03856         0,    0,    0,    0,    0,    0,    0,    0,    0,  943,
03857         0,    0,    0,  943,  943,  943,  943,  943,  943,  944,
03858         0,    0,    0,    0,    0,    0,    0,    0,  944,    0,
03859         0,    0,    0,    0,    0,    0,    0,  944,  944,  944,
03860       944,  944,  944,  944,  944,  944,  944,    0,    0,    0,
03861         0,    0,    0,  944,  944,  944,  944,  944,  944,    0,
03862         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03863 
03864         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03865       944,    0,    0,    0,  944,  944,  944,  944,  944,  944,
03866       947,  947,  947,  947,  947,  947,  947,  947,  947,  947,
03867         0,    0,    0,    0,    0,    0,  947,  947,  947,  947,
03868       947,  947,    0,    0,    0,    0,    0,    0,    0,    0,
03869         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03870         0,    0,    0,    0,    0,    0,    0,  947,  947,  947,
03871       947,  947,  947,  948,    0,    0,    0,    0,    0,    0,
03872         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03873         0,    0,  948,    0,  948,  948,  948,  948,  948,  948,
03874 
03875       948,  948,  948,  948,    0,    0,    0,    0,    0,    0,
03876       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
03877       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
03878       948,  948,  948,  948,  948,  948,    0,  948,    0,    0,
03879       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
03880       948,  948,  948,  948,  948,  948,  948,  948,  948,  948,
03881       948,  948,  948,  948,  948,  948,  948,  953,  953,  953,
03882       953,  953,  953,  953,  953,  953,  953,    0,    0,    0,
03883         0,    0,    0,  953,  953,  953,  953,  953,  953,    0,
03884         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03885 
03886         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03887         0,    0,    0,    0,  953,  953,  953,  953,  953,  953,
03888       958,  958,  958,  958,  958,  958,  958,  958,  958,  958,
03889         0,    0,    0,    0,    0,    0,  958,  958,  958,  958,
03890       958,  958,    0,    0,    0,    0,    0,    0,    0,    0,
03891         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03892         0,    0,    0,    0,    0,    0,    0,  958,  958,  958,
03893       958,  958,  958,  963,    0,    0,    0,    0,  963,    0,
03894         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03895         0,  963,  963,  963,  963,  963,  963,  963,  963,  963,
03896 
03897       963,    0,    0,    0,    0,    0,    0,  963,  963,  963,
03898       963,  963,  963,    0,    0,    0,    0,    0,    0,    0,
03899         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03900         0,    0,    0,    0,  963,    0,    0,    0,  963,  963,
03901       963,  963,  963,  963,  964,    0,    0,    0,    0,  964,
03902         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03903         0,    0,  964,  964,  964,  964,  964,  964,  964,  964,
03904       964,  964,    0,    0,    0,    0,    0,    0,  964,  964,
03905       964,  964,  964,  964,    0,    0,    0,    0,    0,    0,
03906         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03907 
03908         0,    0,    0,    0,    0,  964,    0,    0,    0,  964,
03909       964,  964,  964,  964,  964,  965,    0,    0,    0,    0,
03910         0,    0,    0,    0,  965,    0,    0,    0,    0,    0,
03911         0,    0,    0,  965,  965,  965,  965,  965,  965,  965,
03912       965,  965,  965,    0,    0,    0,    0,    0,    0,  965,
03913       965,  965,  965,  965,  965,    0,    0,    0,    0,    0,
03914         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03915         0,    0,    0,    0,    0,    0,  965,    0,    0,    0,
03916       965,  965,  965,  965,  965,  965,  966,    0,    0,    0,
03917         0,    0,    0,    0,    0,  966,    0,    0,    0,    0,
03918 
03919         0,    0,    0,    0,  966,  966,  966,  966,  966,  966,
03920       966,  966,  966,  966,    0,    0,    0,    0,    0,    0,
03921       966,  966,  966,  966,  966,  966,    0,    0,    0,    0,
03922         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03923         0,    0,    0,    0,    0,    0,    0,  966,    0,    0,
03924         0,  966,  966,  966,  966,  966,  966,  968,    0,    0,
03925         0,  968,    0,    0,    0,    0,    0,    0,    0,    0,
03926       968,  968,  968,  968,  968,  968,  968,  968,    0,    0,
03927         0,    0,    0,    0,    0,  968,    0,    0,    0,    0,
03928         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03929 
03930         0,    0,    0,    0,    0,    0,  968,    0,    0,    0,
03931         0,    0,    0,  968,    0,    0,    0,  968,  968,    0,
03932         0,    0,  968,    0,    0,    0,    0,    0,    0,    0,
03933       968,    0,    0,    0,  968,    0,  968,  968,  968,    0,
03934       968,  969,  969,  969,  969,  969,  969,  969,  969,  969,
03935       969,    0,    0,    0,    0,    0,    0,  969,  969,  969,
03936       969,  969,  969,    0,    0,    0,    0,    0,    0,    0,
03937         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03938         0,    0,    0,    0,    0,    0,    0,    0,  969,  969,
03939       969,  969,  969,  969,  972,  972,  972,  972,  972,  972,
03940 
03941       972,  972,  972,  972,    0,    0,    0,    0,    0,    0,
03942       972,  972,  972,  972,  972,  972,    0,    0,    0,    0,
03943         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03944         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03945         0,  972,  972,  972,  972,  972,  972,  975,    0,    0,
03946         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03947         0,    0,    0,    0,    0,    0,    0,    0,  975,  975,
03948       975,  975,  975,  975,  975,  975,  975,  975,    0,    0,
03949         0,    0,    0,    0,  975,  975,  975,  975,  975,  975,
03950       975,  975,  975,  975,  975,  975,  975,  975,  975,  975,
03951 
03952       975,  975,  975,  975,  975,  975,  975,  975,  975,  975,
03953         0,  975,    0,    0,  975,  975,  975,  975,  975,  975,
03954       975,  975,  975,  975,  975,  975,  975,  975,  975,  975,
03955       975,  975,  975,  975,  975,  975,  975,  975,  975,  975,
03956       975,  981,  981,  981,  981,  981,  981,  981,  981,  981,
03957       981,    0,    0,    0,    0,    0,    0,  981,  981,  981,
03958       981,  981,  981,    0,    0,    0,    0,    0,    0,    0,
03959         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03960         0,    0,    0,    0,    0,    0,    0,    0,  981,  981,
03961       981,  981,  981,  981,  983,  983,  983,  983,  983,  983,
03962 
03963       983,  983,  983,  983,    0,    0,    0,    0,    0,    0,
03964       983,  983,  983,  983,  983,  983,    0,    0,    0,    0,
03965         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03966         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03967         0,  983,  983,  983,  983,  983,  983,  985,  985,  985,
03968       985,  985,  985,  985,  985,  985,  985,    0,    0,    0,
03969         0,    0,    0,  985,  985,  985,  985,  985,  985,    0,
03970         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03971         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03972         0,    0,    0,    0,  985,  985,  985,  985,  985,  985,
03973 
03974       988,  988,  988,  988,  988,  988,  988,  988,  988,  988,
03975         0,    0,    0,    0,    0,    0,  988,  988,  988,  988,
03976       988,  988,    0,    0,    0,    0,    0,    0,    0,    0,
03977         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03978         0,    0,    0,    0,    0,    0,    0,  988,  988,  988,
03979       988,  988,  988,  991,    0,    0,    0,    0,  991,    0,
03980         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03981         0,  991,  991,  991,  991,  991,  991,  991,  991,  991,
03982       991,    0,    0,    0,    0,    0,    0,  991,  991,  991,
03983       991,  991,  991,    0,    0,    0,    0,    0,    0,    0,
03984 
03985         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03986         0,    0,    0,    0,  991,    0,    0,    0,  991,  991,
03987       991,  991,  991,  991,  993,  993,  993,  993,  993,  993,
03988       993,  993,  993,  993,    0,    0,    0,    0,    0,    0,
03989       993,  993,  993,  993,  993,  993,    0,    0,    0,    0,
03990         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03991         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03992         0,  993,  993,  993,  993,  993,  993,  996,    0,    0,
03993         0,    0,    0,    0,    0,    0,  996,    0,    0,    0,
03994         0,    0,    0,    0,    0,  996,  996,  996,  996,  996,
03995 
03996       996,  996,  996,  996,  996,    0,    0,    0,    0,    0,
03997         0,  996,  996,  996,  996,  996,  996,    0,    0,    0,
03998         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
03999         0,    0,    0,    0,    0,    0,    0,    0,  996,    0,
04000         0,    0,  996,  996,  996,  996,  996,  996,  998,  998,
04001       998,  998,  998,  998,  998,  998,  998,  998,    0,    0,
04002         0,    0,    0,    0,  998,  998,  998,  998,  998,  998,
04003         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04004         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04005         0,    0,    0,    0,    0,  998,  998,  998,  998,  998,
04006 
04007       998, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
04008      1003,    0,    0,    0,    0,    0,    0, 1003, 1003, 1003,
04009      1003, 1003, 1003,    0,    0,    0,    0,    0,    0,    0,
04010         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04011         0,    0,    0,    0,    0,    0,    0,    0, 1003, 1003,
04012      1003, 1003, 1003, 1003, 1008,    0,    0,    0,    0, 1008,
04013         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04014         0,    0, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
04015      1008, 1008,    0,    0,    0,    0,    0,    0, 1008, 1008,
04016      1008, 1008, 1008, 1008,    0,    0,    0,    0,    0,    0,
04017 
04018         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04019         0,    0,    0,    0,    0, 1008,    0,    0,    0, 1008,
04020      1008, 1008, 1008, 1008, 1008, 1010, 1010, 1010, 1010, 1010,
04021      1010, 1010, 1010, 1010, 1010,    0,    0,    0,    0,    0,
04022         0, 1010, 1010, 1010, 1010, 1010, 1010,    0,    0,    0,
04023         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04024         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04025         0,    0, 1010, 1010, 1010, 1010, 1010, 1010, 1014, 1014,
04026      1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,    0,    0,
04027         0,    0,    0,    0, 1014, 1014, 1014, 1014, 1014, 1014,
04028 
04029         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04030         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04031         0,    0,    0,    0,    0, 1014, 1014, 1014, 1014, 1014,
04032      1014, 1015,    0,    0,    0,    0,    0,    0,    0,    0,
04033         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04034         0,    0, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
04035      1015, 1015,    0,    0,    0,    0,    0,    0, 1015, 1015,
04036      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
04037      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
04038      1015, 1015, 1015, 1015,    0, 1015,    0,    0, 1015, 1015,
04039 
04040      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
04041      1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
04042      1015, 1015, 1015, 1015, 1015, 1018, 1018, 1018, 1018, 1018,
04043      1018, 1018, 1018, 1018, 1018,    0,    0,    0,    0,    0,
04044         0, 1018, 1018, 1018, 1018, 1018, 1018,    0,    0,    0,
04045         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04046         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04047         0,    0, 1018, 1018, 1018, 1018, 1018, 1018, 1025, 1025,
04048      1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025,    0,    0,
04049         0,    0,    0,    0, 1025, 1025, 1025, 1025, 1025, 1025,
04050 
04051         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04052         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04053         0,    0,    0,    0,    0, 1025, 1025, 1025, 1025, 1025,
04054      1025, 1027,    0,    0,    0,    0,    0,    0,    0,    0,
04055         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04056         0,    0, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
04057      1027, 1027,    0,    0,    0,    0,    0,    0, 1027, 1027,
04058      1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
04059      1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
04060      1027, 1027, 1027, 1027,    0, 1027,    0,    0, 1027, 1027,
04061 
04062      1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
04063      1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
04064      1027, 1027, 1027, 1027, 1027, 1042,    0,    0,    0,    0,
04065         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04066         0,    0,    0,    0, 1042,    0, 1042, 1042, 1042, 1042,
04067      1042, 1042, 1042, 1042, 1042, 1042,    0,    0,    0,    0,
04068         0,    0, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
04069      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
04070      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,    0, 1042,
04071         0,    0, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
04072 
04073      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
04074      1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1047,
04075      1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047,    0,
04076         0,    0,    0,    0,    0, 1047, 1047, 1047, 1047, 1047,
04077      1047,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04078         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04079         0,    0,    0,    0,    0,    0, 1047, 1047, 1047, 1047,
04080      1047, 1047, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052,
04081      1052, 1052,    0,    0,    0,    0,    0,    0, 1052, 1052,
04082      1052, 1052, 1052, 1052,    0,    0,    0,    0,    0,    0,
04083 
04084         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04085         0,    0,    0,    0,    0,    0,    0,    0,    0, 1052,
04086      1052, 1052, 1052, 1052, 1052, 1054, 1054, 1054, 1054, 1054,
04087      1054, 1054, 1054, 1054, 1054,    0,    0,    0,    0,    0,
04088         0, 1054, 1054, 1054, 1054, 1054, 1054,    0,    0,    0,
04089         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04090         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04091         0,    0, 1054, 1054, 1054, 1054, 1054, 1054, 1057,    0,
04092         0,    0,    0,    0,    0,    0,    0, 1057,    0,    0,
04093         0,    0,    0,    0,    0,    0, 1057, 1057, 1057, 1057,
04094 
04095      1057, 1057, 1057, 1057, 1057, 1057,    0,    0,    0,    0,
04096         0,    0, 1057, 1057, 1057, 1057, 1057, 1057,    0,    0,
04097         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04098         0,    0,    0,    0,    0,    0,    0,    0,    0, 1057,
04099         0,    0,    0, 1057, 1057, 1057, 1057, 1057, 1057, 1059,
04100      1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,    0,
04101         0,    0,    0,    0,    0, 1059, 1059, 1059, 1059, 1059,
04102      1059,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04103         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04104         0,    0,    0,    0,    0,    0, 1059, 1059, 1059, 1059,
04105 
04106      1059, 1059, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
04107      1067, 1067,    0,    0,    0,    0,    0,    0, 1067, 1067,
04108      1067, 1067, 1067, 1067,    0,    0,    0,    0,    0,    0,
04109         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04110         0,    0,    0,    0,    0,    0,    0,    0,    0, 1067,
04111      1067, 1067, 1067, 1067, 1067, 1079, 1079, 1079, 1079, 1079,
04112      1079, 1079, 1079, 1079, 1079,    0,    0,    0,    0,    0,
04113         0, 1079, 1079, 1079, 1079, 1079, 1079,    0,    0,    0,
04114         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04115         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04116 
04117         0,    0, 1079, 1079, 1079, 1079, 1079, 1079, 1084, 1084,
04118      1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,    0,    0,
04119         0,    0,    0,    0, 1084, 1084, 1084, 1084, 1084, 1084,
04120         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04121         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
04122         0,    0,    0,    0,    0, 1084, 1084, 1084, 1084, 1084,
04123      1084, 1094, 1094, 1094, 1094, 1095, 1095, 1095, 1095, 1096,
04124      1096, 1096, 1096, 1097, 1097, 1097, 1097, 1098, 1098, 1098,
04125      1098, 1099,    0, 1099, 1099, 1100,    0, 1100, 1100, 1101,
04126      1101, 1101, 1101, 1102, 1102, 1102, 1102, 1103, 1103, 1103,
04127 
04128      1103, 1104, 1104, 1104, 1104, 1105, 1105, 1105, 1105, 1106,
04129      1106, 1106, 1106, 1107, 1107, 1107, 1108, 1108, 1108, 1109,
04130      1109, 1109, 1110, 1110, 1110, 1110, 1111, 1111, 1111, 1111,
04131      1112, 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1114, 1114,
04132      1114, 1114, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116,
04133      1117, 1117, 1117, 1117, 1118,    0,    0, 1118, 1119, 1119,
04134      1119, 1119, 1120, 1120, 1120, 1120, 1121, 1121, 1121, 1121,
04135      1122, 1122, 1122, 1122, 1123, 1123, 1123, 1124, 1124, 1124,
04136      1125, 1125, 1125, 1126, 1126, 1126, 1127, 1127, 1127, 1128,
04137      1128, 1128, 1129, 1129, 1129, 1129, 1130, 1130, 1130, 1130,
04138 
04139      1131, 1131, 1131, 1131, 1132, 1132, 1132, 1132, 1133, 1133,
04140      1133, 1133, 1134, 1134, 1134, 1134, 1135, 1135, 1135, 1135,
04141      1136,    0,    0, 1136, 1137, 1137, 1137, 1137, 1138, 1138,
04142      1138, 1138, 1139, 1139, 1139, 1139, 1140, 1140, 1140, 1140,
04143      1141, 1141, 1141, 1141, 1142, 1142, 1142, 1143, 1143, 1143,
04144      1143, 1144, 1144, 1144, 1145, 1145, 1145, 1146, 1146, 1146,
04145      1146, 1147, 1147, 1147, 1148, 1148, 1148, 1149, 1149, 1149,
04146      1149, 1150, 1150, 1150, 1150, 1151, 1151, 1151, 1151, 1152,
04147      1152, 1152, 1152, 1153,    0,    0, 1153, 1154, 1154, 1154,
04148      1154, 1155, 1155, 1155, 1155, 1156, 1156, 1156, 1156, 1157,
04149 
04150      1157, 1157, 1157, 1158, 1158, 1158, 1158, 1159, 1159, 1159,
04151      1159, 1160, 1160, 1160, 1160, 1161, 1161, 1161, 1162, 1162,
04152      1162, 1163, 1163, 1163, 1163, 1164, 1164, 1164, 1165, 1165,
04153      1165, 1166, 1166, 1166, 1166, 1167, 1167, 1167, 1167, 1168,
04154      1168, 1168, 1168, 1169,    0,    0, 1169, 1170, 1170, 1170,
04155      1170, 1171, 1171, 1171, 1171, 1172, 1172, 1172, 1172, 1173,
04156      1173, 1173, 1173, 1174, 1174, 1174, 1174, 1175, 1175, 1175,
04157      1176, 1176, 1176, 1177, 1177, 1177, 1177, 1178, 1178, 1178,
04158      1178, 1179, 1179, 1179, 1179, 1180, 1180, 1180, 1180, 1181,
04159         0,    0, 1181, 1182, 1182, 1182, 1182, 1183, 1183, 1183,
04160 
04161      1183, 1184, 1184, 1184, 1184, 1185, 1185, 1185, 1185, 1186,
04162      1186, 1186, 1186, 1187, 1187, 1187, 1187, 1188, 1188, 1188,
04163      1188, 1189, 1189, 1189, 1189, 1190, 1190, 1190, 1190, 1191,
04164      1191, 1191, 1191, 1192, 1192, 1192, 1192, 1193, 1193, 1193,
04165      1193, 1194, 1194, 1194, 1194, 1195, 1195, 1195, 1195, 1196,
04166      1196, 1196, 1196, 1197, 1197, 1197, 1197, 1198, 1198, 1198,
04167      1198, 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 1201,
04168      1201, 1201, 1201, 1202, 1202, 1202, 1202, 1203, 1203, 1203,
04169      1203, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04170      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04171 
04172      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04173      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04174      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04175      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04176      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04177      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04178      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04179      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
04180      1093
04181     } ;
04182 
04183 static yy_state_type yy_last_accepting_state;
04184 static char *yy_last_accepting_cpos;
04185 
04186 extern int yy_flex_debug;
04187 int yy_flex_debug = 0;
04188 
04189 /* The intent behind this definition is that it'll catch
04190  * any uses of REJECT which flex missed.
04191  */
04192 #define REJECT reject_used_but_not_detected
04193 #define yymore() yymore_used_but_not_detected
04194 #define YY_MORE_ADJ 0
04195 #define YY_RESTORE_YY_MORE_OFFSET
04196 char *yytext;
04197 /*
04198    The lestes compiler suite
04199    Copyright (C) 2002, 2003, 2004, 2005 Miroslav Tichy
04200    Copyright (C) 2002, 2003, 2004, 2005 Petr Zika
04201    Copyright (C) 2002, 2003, 2004, 2005 Vojtech Hala
04202    Copyright (C) 2002, 2003, 2004, 2005 Jiri Kosina
04203    Copyright (C) 2002, 2003, 2004, 2005 Pavel Sanda
04204    Copyright (C) 2002, 2003, 2004, 2005 Jan Zouhar
04205    Copyright (C) 2002, 2003, 2004, 2005 Rudolf Thomas
04206 
04207    This program is free software; you can redistribute it and/or modify
04208    it under the terms of the GNU General Public License as published by
04209    the Free Software Foundation; version 2 of the License.
04210 
04211    This program is distributed in the hope that it will be useful,
04212    but WITHOUT ANY WARRANTY; without even the implied warranty of
04213    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
04214    GNU General Public License for more details.
04215 
04216    See the full text of the GNU General Public License version 2, and
04217    the limitations in the file doc/LICENSE.
04218 
04219    By accepting the license the licensee waives any and all claims
04220    against the copyright holder(s) related in whole or in part to the
04221    work, its use, and/or the inability to use it.
04222  
04223  */
04224 /*! \file pp_lex_guts.yy.cc
04225   \brief C++ preprocessor lexical analyser.
04226 
04227   Performs lexical analysis of incoming text, forming preprocessor tokens.
04228   Should only be called by pp_lex objects, which ensure proper connection.
04229   
04230   Because flex can only handle 7 bit input, ucn tokens are stored outside
04231   in an synchronized buffer and flex processes only the corresponding 
04232   character classes: end of file, translated ucn and each basic source character
04233   is represented in its own class. Basic source characters character classes
04234   values are encoded in ASCII, independently on the character set flex
04235   operates in.
04236 
04237   \author pt
04238 */
04239 
04240 /* GENERAL WARNING:
04241 
04242    The manner in which this file is structured is _VERY_ important, it relies
04243    on the implicit precedence of certain lexical rules:
04244    1) longer match is caught every time (no need to worry about order of + and += rules)
04245    2) in case of tie (i.e. two rules would match the longest portion),
04246    the first in the source file applies: `bitand' is AMP and not ordinary IDENT (identifier)
04247 
04248    The error-catching rules are set up so that every possible silly input is
04249    covered and there should be no holes handled by implicit (print) rules
04250    so be careful when modifying the patterns & stuff.
04251 
04252    Call to yyless() changes yyleng immediately, so store your yyleng into local variable.
04253    The sequence yless(yyleng - 1); SKIP(yyleng - 1); does NOT work properly!
04254 
04255    This file is injected into its own namespace pp_lex in the file pp_lex.cc and that
04256    is also the reason it MUST NOT contain any #included files, as these would
04257    come into invalid namespaces.
04258 */
04259 
04260 #if __GNUC__ > 3
04261 //! avoiding standard C input and output
04262 #pragma GCC poison fprintf fwrite getc fread ferror
04263 #endif
04264 
04265 //! avoiding implicit rules
04266 #define ECHO lassert2(false, "ECHO should not be used.")
04267 
04268 using namespace ::lestes::std;
04269 using namespace ::lestes::lang::cplus::lex;
04270 using namespace ::std;
04271 
04272 //! Current wrapper class, which will be live when used.
04273 static pp_lex *current_ppl;
04274 
04275 //! Current ucn token buffer, which will be live when used
04276 static ucn_token_buffer *current_utb;
04277 
04278 //! Handles encountering real EOF, which should not happen, formal definition.
04279 #define yyterminate() return pp_token::create(LOCGET,pp_token::TOK_FILE_END)
04280 
04281 lstring escape_nonprintable(const lstring &inp)
04282 {
04283    ::std::stringbuf sb;
04284    ::std::ostream os(&sb);
04285    
04286    for (lstring::const_iterator it = inp.begin(), end = inp.end(); it != end; ++it) {
04287       char c = *it;
04288       if (isprint(c)) 
04289          os << c;
04290       else
04291          os << "\\x" << ::std::hex << ::std::setfill('0') << ::std::setw(2) << (ulint)c;
04292    }
04293    return sb.str();
04294 }
04295 
04296 //! Defines action triggered for each rule.
04297 #define YY_USER_ACTION \
04298 { \
04299         /* avoid the warning: address requested for `yy_act', which is declared `register' */ \
04300         int copy_yy_act = yy_act ; \
04301         pp_lex_guts_logger << "Rule #" << copy_yy_act << " matched `" << escape_nonprintable(yytext) << "'\n" << msg::eolog; \
04302 }
04303 
04304 //! Defines flex input function.
04305 #define YY_INPUT(buf,result,max_size) \
04306 { \
04307         result = current_ppl->yy_input(buf,max_size); \
04308 }
04309 
04310 //! Defines prototype for flex parser function.
04311 #define YY_DECL ptr<pp_token> lexer_parse(bool line_start)
04312 
04313 //! Skips all tokens comprising the current rule.
04314 #define ADVANCE      current_utb->advance(yyleng)
04315 //! Skips supplied count of tokens.
04316 #define SKIP(num)    current_utb->advance(num)
04317 //! Returns next token from buffer
04318 #define PEEK         current_utb->peek_front()
04319 //! Saves location of the next token in buffer.
04320 #define LOCSAVE      current_ppl->location_save()
04321 //! Returns the saved location.
04322 #define LOCGET       current_ppl->location_create()
04323 //! Extracts ordinary sequence until stop character from buffer.
04324 #define EXTRACT_UNTIL(stop) current_utb->extract_until(stop)
04325 //! Extracts ordinary sequence of length len from buffer.
04326 #define EXTRACT_ORDINARY(len) current_utb->extract_ordinary(len)
04327 //! Extracts identifier with ucn of length len from buffer.
04328 #define EXTRACT_UCN_IDENTIFIER(len) current_utb->extract_simple_ucn(len,true)
04329 //! Extracts number with ucn of length len from buffer.
04330 #define EXTRACT_UCN_NUMBER(len) current_utb->extract_simple_ucn(len,false)
04331 //! Extracts identifier with bad ucn of length len from buffer.
04332 #define EXTRACT_BAD_IDENTIFIER(len) current_utb->extract_invalid_ucn(len,true)
04333 //! Extracts number with bad ucn of length len from buffer.
04334 #define EXTRACT_BAD_NUMBER(len) current_utb->extract_invalid_ucn(len,false)
04335 //! Extracts literal of length len from buffer.
04336 #define EXTRACT_UCN_LITERAL(len) current_utb->extract_ucn_literal(len)
04337 //! Extracts literal with invalid escape sequences of length len from buffer.
04338 #define EXTRACT_BAD_LITERAL(len) current_utb->extract_bad_literal(len)
04339 
04340 /*!
04341   Returns one token from flex parser.
04342   \param read_include  Set to true if reading tokens after #include.
04343   \return  The next token in input.
04344 */
04345 YY_DECL;
04346 /* settings for better performance from the knowledge of used and unused features */
04347 /*%option never-interactive*/
04348 #define YY_NO_INPUT 1
04349 /* basic source character set character classes */
04350 /* end of file character class */
04351 /* translated characters character class */
04352 /* helper character classes and sequences */
04353 /* any character */
04354 /* any character except end of file */
04355 /* any character except end of line */
04356 /* any character except star and end of file */
04357 /* any character except star, slash and end of file */
04358 /* any character except quote, backslash and end of line */
04359 /* any character except double quote, backslash and end of line */
04360 /* any character except greater than and end of line */
04361 /* any character except double quote and end of line */
04362 /* decimal digits */ 
04363 /* octal digits */ 
04364 /* hexadecimal letters */ 
04365 /* hexadecimal digits */ 
04366 /* four hexadecimal digits */ 
04367 /* short form of ucn escape sequence */ 
04368 /* long form of ucn escape sequence */ 
04369 /* ucn escape sequence */ 
04370 /* ucn bad escape sequence */ 
04371 /* translated or escaped ucn */ 
04372 /* lower alphabet letters */
04373 /* lower alphabet letters */
04374 /* alphabet letters */
04375 /* alphanumeric characters */
04376 /* characters at the start of an identifier */
04377 /* blank characters */
04378 /* string and character literal escape sequence characters */
04379 /* string or character literal escape sequence */
04380 /* content of a line comment */
04381 /* a line comment */
04382 /* content of a multiline comment */
04383 /* a multiline comment */
04384 /* begin conditions */
04385 
04386 #define INITIAL 0
04387 #define include 1
04388 #define line 2
04389 #define directive 3
04390 #define directive_name 4
04391 
04392 #ifndef YY_NO_UNISTD_H
04393 /* Special case for "unistd.h", since it is non-ANSI. We include it way
04394  * down here because we want the user's section 1 to have been scanned first.
04395  * The user has a chance to override it with an option.
04396  */
04397 //#include <unistd.h>
04398 #endif
04399 
04400 #ifndef YY_EXTRA_TYPE
04401 #define YY_EXTRA_TYPE void *
04402 #endif
04403 
04404 static int yy_init_globals (void );
04405 
04406 /* Macros after this point can all be overridden by user definitions in
04407  * section 1.
04408  */
04409 
04410 #ifndef YY_SKIP_YYWRAP
04411 #ifdef __cplusplus
04412 extern "C" int yywrap (void );
04413 #else
04414 extern int yywrap (void );
04415 #endif
04416 #endif
04417 
04418 #ifndef yytext_ptr
04419 static void yy_flex_strncpy (char *,yyconst char *,int );
04420 #endif
04421 
04422 #ifdef YY_NEED_STRLEN
04423 static int yy_flex_strlen (yyconst char * );
04424 #endif
04425 
04426 #ifndef YY_NO_INPUT
04427 
04428 #ifdef __cplusplus
04429 static int yyinput (void );
04430 #else
04431 static int input (void );
04432 #endif
04433 
04434 #endif
04435 
04436 /* Amount of stuff to slurp up with each read. */
04437 #ifndef YY_READ_BUF_SIZE
04438 #define YY_READ_BUF_SIZE 8192
04439 #endif
04440 
04441 /* Copy whatever the last rule matched to the standard output. */
04442 #ifndef ECHO
04443 /* This used to be an fputs(), but since the string might contain NUL's,
04444  * we now use fwrite().
04445  */
04446 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
04447 #endif
04448 
04449 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
04450  * is returned in "result".
04451  */
04452 #ifndef YY_INPUT
04453 #define YY_INPUT(buf,result,max_size) \
04454         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
04455                 { \
04456                 int c = '*'; \
04457                 size_t n; \
04458                 for ( n = 0; n < max_size && \
04459                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
04460                         buf[n] = (char) c; \
04461                 if ( c == '\n' ) \
04462                         buf[n++] = (char) c; \
04463                 if ( c == EOF && ferror( yyin ) ) \
04464                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
04465                 result = n; \
04466                 } \
04467         else \
04468                 { \
04469                 errno=0; \
04470                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
04471                         { \
04472                         if( errno != EINTR) \
04473                                 { \
04474                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
04475                                 break; \
04476                                 } \
04477                         errno=0; \
04478                         clearerr(yyin); \
04479                         } \
04480                 }\
04481 \
04482 
04483 #endif
04484 
04485 /* No semi-colon after return; correct usage is to write "yyterminate();" -
04486  * we don't want an extra ';' after the "return" because that will cause
04487  * some compilers to complain about unreachable statements.
04488  */
04489 #ifndef yyterminate
04490 #define yyterminate() return YY_NULL
04491 #endif
04492 
04493 /* Number of entries by which start-condition stack grows. */
04494 #ifndef YY_START_STACK_INCR
04495 #define YY_START_STACK_INCR 25
04496 #endif
04497 
04498 /* Report a fatal error. */
04499 #ifndef YY_FATAL_ERROR
04500 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
04501 #endif
04502 
04503 /* end tables serialization structures and prototypes */
04504 
04505 /* Default declaration of generated scanner - a define so the user can
04506  * easily add parameters.
04507  */
04508 #ifndef YY_DECL
04509 #define YY_DECL_IS_OURS 1
04510 
04511 extern int yylex (void);
04512 
04513 #define YY_DECL int yylex (void)
04514 #endif /* !YY_DECL */
04515 
04516 /* Code executed at the beginning of each rule, after yytext and yyleng
04517  * have been set up.
04518  */
04519 #ifndef YY_USER_ACTION
04520 #define YY_USER_ACTION
04521 #endif
04522 
04523 /* Code executed at the end of each rule. */
04524 #ifndef YY_BREAK
04525 #define YY_BREAK break;
04526 #endif
04527 
04528 #define YY_RULE_SETUP \
04529         YY_USER_ACTION
04530 
04531 /** The main scanner function which does all the work.
04532  */
04533 YY_DECL
04534 {
04535         register yy_state_type yy_current_state;
04536         register char *yy_cp, *yy_bp;
04537         register int yy_act;
04538     
04539    if (line_start)
04540       BEGIN(directive);
04541 
04542         if ( !(yy_init) )
04543                 {
04544                 (yy_init) = 1;
04545 
04546 #ifdef YY_USER_INIT
04547                 YY_USER_INIT;
04548 #endif
04549 
04550                 if ( ! (yy_start) )
04551                         (yy_start) = 1; /* first start state */
04552 
04553                 if ( ! yyin )
04554                         yyin = stdin;
04555 
04556                 if ( ! yyout )
04557                         yyout = stdout;
04558 
04559                 if ( ! YY_CURRENT_BUFFER ) {
04560                         yyensure_buffer_stack ();
04561                         YY_CURRENT_BUFFER_LVALUE =
04562                                 yy_create_buffer(yyin,YY_BUF_SIZE );
04563                 }
04564 
04565                 yy_load_buffer_state( );
04566                 }
04567 
04568         while ( 1 )             /* loops until end-of-file is reached */
04569                 {
04570                 yy_cp = (yy_c_buf_p);
04571 
04572                 /* Support of yytext. */
04573                 *yy_cp = (yy_hold_char);
04574 
04575                 /* yy_bp points to the position in yy_ch_buf of the start of
04576                  * the current run.
04577                  */
04578                 yy_bp = yy_cp;
04579 
04580                 yy_current_state = (yy_start);
04581 yy_match:
04582                 do
04583                         {
04584                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
04585                         if ( yy_accept[yy_current_state] )
04586                                 {
04587                                 (yy_last_accepting_state) = yy_current_state;
04588                                 (yy_last_accepting_cpos) = yy_cp;
04589                                 }
04590                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
04591                                 {
04592                                 yy_current_state = (int) yy_def[yy_current_state];
04593                                 if ( yy_current_state >= 1094 )
04594                                         yy_c = yy_meta[(unsigned int) yy_c];
04595                                 }
04596                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
04597                         ++yy_cp;
04598                         }
04599                 while ( yy_base[yy_current_state] != 15182 );
04600 
04601 yy_find_action:
04602                 yy_act = yy_accept[yy_current_state];
04603                 if ( yy_act == 0 )
04604                         { /* have to back up */
04605                         yy_cp = (yy_last_accepting_cpos);
04606                         yy_current_state = (yy_last_accepting_state);
04607                         yy_act = yy_accept[yy_current_state];
04608                         }
04609 
04610                 YY_DO_BEFORE_ACTION;
04611 
04612 do_action:      /* This label is used only to access EOF actions. */
04613 
04614                 switch ( yy_act )
04615         { /* beginning of action switch */
04616                         case 0: /* must back up */
04617                         /* undo the effects of YY_DO_BEFORE_ACTION */
04618                         *yy_cp = (yy_hold_char);
04619                         yy_cp = (yy_last_accepting_cpos);
04620                         yy_current_state = (yy_last_accepting_state);
04621                         goto yy_find_action;
04622 
04623 case 1:
04624 /* rule 1 can match eol */
04625 YY_RULE_SETUP
04626 {
04627    pp_lex_guts_logger << "line comment\n" << msg::eolog;
04628    
04629    LOCSAVE;
04630    /* leave newline in buffer */
04631         ulint len = yyleng - 1;
04632         yyless(len);
04633         SKIP(len);
04634         return pp_token::create(LOCGET,pp_token::TOK_BLANK);
04635 }
04636         YY_BREAK
04637 case 2:
04638 /* rule 2 can match eol */
04639 YY_RULE_SETUP
04640 {
04641    pp_lex_guts_logger << "long comment\n" << msg::eolog;
04642 
04643    LOCSAVE;
04644         ADVANCE;
04645         return pp_token::create(LOCGET,pp_token::TOK_BLANK);
04646 }
04647         YY_BREAK
04648 case 3:
04649 /* rule 3 can match eol */
04650 YY_RULE_SETUP
04651 {
04652    pp_lex_guts_logger << "unterminated long comment\n" << msg::eolog;
04653 
04654    LOCSAVE;
04655 
04656    /* leave the implicit new line and EOF in buffer */
04657         ulint len = yyleng - 2;
04658    yyless(len);
04659         SKIP(len);
04660 
04661    ptr<source_location> loc = LOCGET;
04662         
04663    /* error: eof within comment == unterminated comment */
04664         report << unterminated_comment << loc;
04665 
04666         return pp_token::create(loc,pp_token::TOK_BLANK);
04667 }
04668         YY_BREAK
04669 /* character literal without ucn escape sequences */
04670 case 4:
04671 YY_RULE_SETUP
04672 {
04673    pp_lex_guts_logger << "character literal without escaped ucn\n" << msg::eolog;
04674 
04675    LOCSAVE;
04676    /* the beginning quote */
04677         SKIP(1);
04678         ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 2));
04679    /* the ending quote */
04680         SKIP(1);
04681         return pp_token::create(LOCGET,pp_token::TOK_CHAR_LIT,tv);
04682 }
04683         YY_BREAK
04684 /* wide character literal without ucn escape sequences */
04685 case 5:
04686 YY_RULE_SETUP
04687 {
04688    pp_lex_guts_logger << "wide character literal without escaped ucn\n" << msg::eolog;
04689 
04690    LOCSAVE;
04691    /* the beginning L and quote */
04692         SKIP(2);
04693         ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 3));
04694    /* the ending quote */
04695         SKIP(1);
04696         return pp_token::create(LOCGET,pp_token::TOK_WCHAR_LIT,tv);
04697 }
04698         YY_BREAK
04699 /* character literal with ucn escape sequences */
04700 case 6:
04701 YY_RULE_SETUP
04702 {
04703    pp_lex_guts_logger << "character literal with escaped ucn\n" << msg::eolog;
04704 
04705    LOCSAVE;
04706    /* the beginning quote */
04707         SKIP(1);
04708         ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 2));
04709    /* the ending quote */
04710         SKIP(1);
04711         return pp_token::create(LOCGET,pp_token::TOK_CHAR_LIT,tv);
04712 }
04713         YY_BREAK
04714 /* wide character literal with ucn escape sequences */
04715 case 7:
04716 YY_RULE_SETUP
04717 {
04718    pp_lex_guts_logger << "wide character literal with escaped ucn\n" << msg::eolog;
04719 
04720    LOCSAVE;
04721    /* the beginning L and quote */
04722         SKIP(2);
04723         ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 3));
04724    /* the ending quote */
04725         SKIP(1);
04726         return pp_token::create(LOCGET,pp_token::TOK_WCHAR_LIT,tv);
04727 }
04728         YY_BREAK
04729 /* empty, malformed or unterminated character literal */
04730 case 8:
04731 /* rule 8 can match eol */
04732 YY_RULE_SETUP
04733 {
04734    pp_lex_guts_logger << "character literal with errors\n" << msg::eolog;
04735 
04736    LOCSAVE;
04737 
04738    ptr<source_location> loc = LOCGET;
04739    
04740    bool empty = false;
04741    /* the beginning quote */
04742         SKIP(1);
04743         ptr<token_value> tv;
04744    if (yyleng == 2) {
04745       /* empty character literal */
04746       report << empty_character_constant << loc;
04747       empty = true;
04748    } else {
04749       tv = EXTRACT_BAD_LITERAL(yyleng - 2);
04750       empty = tv->content_get().size() == 0;
04751    }
04752    
04753    if (empty) {
04754       /* make nonempty character literal */
04755       tv = token_value::create("\\0");
04756    }
04757 
04758    ptr<ucn_token> ut = PEEK;
04759    /* check ending quote */
04760    if (ut->type_get() == ucn_token::TOK_BASIC &&
04761          ut->value_get() == character::ascii_quote) {
04762       /* skip the quote */
04763            SKIP(1);
04764    } else {
04765       /* return the last character */
04766       yyless(yyleng - 1);
04767       /* missing terminating ' character */
04768       report << missing_terminating_quote << loc;
04769    }
04770 
04771         return pp_token::create(loc,pp_token::TOK_CHAR_LIT,tv);
04772 }
04773         YY_BREAK
04774 /* empty, malformed or unterminated wide character literal */
04775 case 9:
04776 /* rule 9 can match eol */
04777 YY_RULE_SETUP
04778 {
04779    pp_lex_guts_logger << "wide character literal with errors\n" << msg::eolog;
04780 
04781    LOCSAVE;
04782    ptr<source_location> loc = LOCGET;
04783 
04784    bool empty = false;
04785    /* the beginning L and quote */
04786         SKIP(2);
04787         ptr<token_value> tv;
04788    if (yyleng == 3) {
04789       /* empty character constant */
04790       report << empty_character_constant << loc;
04791       empty = true;
04792    } else {
04793       tv = EXTRACT_BAD_LITERAL(yyleng - 3);
04794       empty = tv->content_get().size() == 0;
04795    }
04796    
04797    if (empty) {
04798       /* make nonempty wide character literal */
04799       tv = token_value::create("\\0");
04800    }
04801 
04802    ptr<ucn_token> ut = PEEK;
04803    /* check ending quote */
04804    if (ut->type_get() == ucn_token::TOK_BASIC &&
04805          ut->value_get() == character::ascii_quote) {
04806       /* skip the quote */
04807            SKIP(1);
04808    } else {
04809       /* return the last character */
04810       yyless(yyleng - 1);
04811       /* missing terminating ' character */
04812       report << missing_terminating_quote << loc;
04813    }
04814 
04815         return pp_token::create(LOCGET,pp_token::TOK_WCHAR_LIT,tv);
04816 }
04817         YY_BREAK
04818 /* string literal without ucn escape sequences */
04819 case 10:
04820 YY_RULE_SETUP
04821 {
04822    pp_lex_guts_logger << "string literal without escaped ucn\n" << msg::eolog;
04823 
04824    LOCSAVE;
04825    /* the beginning dquote */
04826         SKIP(1);
04827         ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 2));
04828    /* the ending dquote */
04829         SKIP(1);
04830         return pp_token::create(LOCGET,pp_token::TOK_STRING_LIT,tv);
04831 }
04832         YY_BREAK
04833 /* wide string literal without ucn escape sequences */
04834 case 11:
04835 YY_RULE_SETUP
04836 {
04837    pp_lex_guts_logger << "wide string literal without escaped ucn\n" << msg::eolog;
04838 
04839    LOCSAVE;
04840    /* the beginning L and dquote */
04841         SKIP(2);
04842         ptr<token_value> tv(EXTRACT_ORDINARY(yyleng - 3));
04843    /* the ending dquote */
04844         SKIP(1);
04845         return pp_token::create(LOCGET,pp_token::TOK_WSTRING_LIT,tv);
04846 }
04847         YY_BREAK
04848 /* string literal with ucn escape sequences */
04849 case 12:
04850 YY_RULE_SETUP
04851 {
04852    pp_lex_guts_logger << "string literal with escaped ucn\n" << msg::eolog;
04853 
04854    LOCSAVE;
04855    /* the beginning dquote */
04856         SKIP(1);
04857         ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 2));
04858    /* the ending dquote */
04859         SKIP(1);
04860         return pp_token::create(LOCGET,pp_token::TOK_STRING_LIT,tv);
04861 }
04862         YY_BREAK
04863 /* wide string literal with ucn escape sequences */
04864 case 13:
04865 YY_RULE_SETUP
04866 {
04867    pp_lex_guts_logger << "wide string literal with escaped ucn\n" << msg::eolog;
04868 
04869    LOCSAVE;
04870    /* the beginning L and dquote */
04871         SKIP(2);
04872         ptr<token_value> tv(EXTRACT_UCN_LITERAL(yyleng - 3));
04873    /* the ending dquote */
04874         SKIP(1);
04875         return pp_token::create(LOCGET,pp_token::TOK_WSTRING_LIT,tv);
04876 }
04877         YY_BREAK
04878 /* malformed or unterminated string literal */
04879 case 14:
04880 /* rule 14 can match eol */
04881 YY_RULE_SETUP
04882 {
04883    pp_lex_guts_logger << "wide string literal with errors\n" << msg::eolog;
04884 
04885    LOCSAVE;
04886    ptr<source_location> loc = LOCGET;
04887 
04888    /* the beginning dquote */
04889         SKIP(1);
04890         ptr<token_value> tv(EXTRACT_BAD_LITERAL(yyleng - 2));
04891 
04892    ptr<ucn_token> ut = PEEK;
04893    /* check ending dquote */
04894    if (ut->type_get() == ucn_token::TOK_BASIC &&
04895          ut->value_get() == character::ascii_dquote) {
04896       /* skip the dquote */
04897            SKIP(1);
04898    } else {
04899       /* return the last character */
04900       yyless(yyleng - 1);
04901       /* missing terminating " character */
04902       report << missing_terminating_dquote << loc;
04903    }
04904 
04905         return pp_token::create(loc,pp_token::TOK_STRING_LIT,tv);
04906 }
04907         YY_BREAK
04908 /* malformed or unterminated wide string literal */
04909 case 15:
04910 /* rule 15 can match eol */
04911 YY_RULE_SETUP
04912 {
04913    pp_lex_guts_logger << "wide string literal with errors\n" << msg::eolog;
04914 
04915    LOCSAVE;
04916    ptr<source_location> loc = LOCGET;
04917    
04918    /* the beginning L and dquote */
04919         SKIP(2);
04920         ptr<token_value> tv(EXTRACT_BAD_LITERAL(yyleng - 3));
04921 
04922    ptr<ucn_token> ut = PEEK;
04923    /* check ending dquote */
04924    if (ut->type_get() == ucn_token::TOK_BASIC &&
04925          ut->value_get() == character::ascii_dquote) {
04926       /* skip the dquote */
04927            SKIP(1);
04928    } else {
04929       /* return the last character */
04930       yyless(yyleng - 1);
04931       /* missing terminating " character */
04932       report << missing_terminating_dquote << loc;
04933    }
04934 
04935         return pp_token::create(loc,pp_token::TOK_WSTRING_LIT,tv);
04936 }
04937         YY_BREAK
04938 case 16:
04939 YY_RULE_SETUP
04940 {
04941    pp_lex_guts_logger << "blanks\n" << msg::eolog;
04942 
04943         LOCSAVE;
04944         ADVANCE;
04945         return pp_token::create(LOCGET,pp_token::TOK_BLANK);
04946 }
04947         YY_BREAK
04948 case 17:
04949 /* rule 17 can match eol */
04950 YY_RULE_SETUP
04951 {
04952    pp_lex_guts_logger << "new line\n" << msg::eolog;
04953 
04954         LOCSAVE;
04955         ADVANCE;
04956         return pp_token::create(LOCGET,pp_token::TOK_LINE_END);
04957 }
04958         YY_BREAK
04959 case 18:
04960 YY_RULE_SETUP
04961 {
04962         pp_lex_guts_logger << "left_bracket\n" << msg::eolog;
04963 
04964         LOCSAVE;
04965         ADVANCE;
04966         return pp_token::create(LOCGET,pp_token::TOK_LEFT_BRACKET);
04967 }
04968         YY_BREAK
04969 case 19:
04970 YY_RULE_SETUP
04971 {
04972         pp_lex_guts_logger << "left_bracket\n" << msg::eolog;
04973 
04974         LOCSAVE;
04975         ADVANCE;
04976         return pp_token::create_alternative(LOCGET,pp_token::TOK_LEFT_BRACKET);
04977 }
04978         YY_BREAK
04979 case 20:
04980 YY_RULE_SETUP
04981 {
04982         pp_lex_guts_logger << "right_bracket\n" << msg::eolog;
04983 
04984         LOCSAVE;
04985         ADVANCE;
04986         return pp_token::create(LOCGET,pp_token::TOK_RIGHT_BRACKET);
04987 }
04988         YY_BREAK
04989 case 21:
04990 YY_RULE_SETUP
04991 {
04992         pp_lex_guts_logger << "right_bracket\n" << msg::eolog;
04993 
04994         LOCSAVE;
04995         ADVANCE;
04996         return pp_token::create_alternative(LOCGET,pp_token::TOK_RIGHT_BRACKET);
04997 }
04998         YY_BREAK
04999 case 22:
05000 YY_RULE_SETUP
05001 {
05002         pp_lex_guts_logger << "left_brace\n" << msg::eolog;
05003 
05004         LOCSAVE;
05005         ADVANCE;
05006         return pp_token::create(LOCGET,pp_token::TOK_LEFT_BRACE);
05007 }
05008         YY_BREAK
05009 case 23:
05010 YY_RULE_SETUP
05011 {
05012         pp_lex_guts_logger << "left_brace\n" << msg::eolog;
05013 
05014         LOCSAVE;
05015         ADVANCE;
05016         return pp_token::create_alternative(LOCGET,pp_token::TOK_LEFT_BRACE);
05017 }
05018         YY_BREAK
05019 case 24:
05020 YY_RULE_SETUP
05021 {
05022         pp_lex_guts_logger << "right_brace\n" << msg::eolog;
05023 
05024         LOCSAVE;
05025         ADVANCE;
05026         return pp_token::create(LOCGET,pp_token::TOK_RIGHT_BRACE);
05027 }
05028         YY_BREAK
05029 case 25:
05030 YY_RULE_SETUP
05031 {
05032         pp_lex_guts_logger << "right_brace\n" << msg::eolog;
05033 
05034         LOCSAVE;
05035         ADVANCE;
05036         return pp_token::create_alternative(LOCGET,pp_token::TOK_RIGHT_BRACE);
05037 }
05038         YY_BREAK
05039 case 26:
05040 YY_RULE_SETUP
05041 {
05042         pp_lex_guts_logger << "hash\n" << msg::eolog;
05043 
05044         LOCSAVE;
05045         ADVANCE;
05046         return pp_token::create(LOCGET,pp_token::TOK_HASH);
05047 }
05048         YY_BREAK
05049 case 27:
05050 YY_RULE_SETUP
05051 {
05052         pp_lex_guts_logger << "hash\n" << msg::eolog;
05053 
05054         LOCSAVE;
05055         ADVANCE;
05056         return pp_token::create_alternative(LOCGET,pp_token::TOK_HASH);
05057 }
05058         YY_BREAK
05059 case 28:
05060 YY_RULE_SETUP
05061 {
05062         pp_lex_guts_logger << "hash_hash\n" << msg::eolog;
05063 
05064         LOCSAVE;
05065         ADVANCE;
05066         return pp_token::create(LOCGET,pp_token::TOK_HASH_HASH);
05067 }
05068         YY_BREAK
05069 case 29:
05070 YY_RULE_SETUP
05071 {
05072         pp_lex_guts_logger << "hash_hash\n" << msg::eolog;
05073 
05074         LOCSAVE;
05075         ADVANCE;
05076         return pp_token::create_alternative(LOCGET,pp_token::TOK_HASH_HASH);
05077 }
05078         YY_BREAK
05079 case 30:
05080 YY_RULE_SETUP
05081 {
05082         pp_lex_guts_logger << "left_par\n" << msg::eolog;
05083 
05084         LOCSAVE;
05085         ADVANCE;
05086         return pp_token::create(LOCGET,pp_token::TOK_LEFT_PAR);
05087 }
05088         YY_BREAK
05089 case 31:
05090 YY_RULE_SETUP
05091 {
05092         pp_lex_guts_logger << "right_par\n" << msg::eolog;
05093 
05094         LOCSAVE;
05095         ADVANCE;
05096         return pp_token::create(LOCGET,pp_token::TOK_RIGHT_PAR);
05097 }
05098         YY_BREAK
05099 case 32:
05100 YY_RULE_SETUP
05101 {
05102         pp_lex_guts_logger << "semicolon\n" << msg::eolog;
05103 
05104         LOCSAVE;
05105         ADVANCE;
05106         return pp_token::create(LOCGET,pp_token::TOK_SEMICOLON);
05107 }
05108         YY_BREAK
05109 case 33:
05110 YY_RULE_SETUP
05111 {
05112         pp_lex_guts_logger << "colon\n" << msg::eolog;
05113 
05114         LOCSAVE;
05115         ADVANCE;
05116         return pp_token::create(LOCGET,pp_token::TOK_COLON);
05117 }
05118         YY_BREAK
05119 case 34:
05120 YY_RULE_SETUP
05121 {
05122         pp_lex_guts_logger << "qmark\n" << msg::eolog;
05123 
05124         LOCSAVE;
05125         ADVANCE;
05126         return pp_token::create(LOCGET,pp_token::TOK_QMARK);
05127 }
05128         YY_BREAK
05129 case 35:
05130 YY_RULE_SETUP
05131 {
05132         pp_lex_guts_logger << "dot\n" << msg::eolog;
05133 
05134         LOCSAVE;
05135         ADVANCE;
05136         return pp_token::create(LOCGET,pp_token::TOK_DOT);
05137 }
05138         YY_BREAK
05139 case 36:
05140 YY_RULE_SETUP
05141 {
05142         pp_lex_guts_logger << "plus\n" << msg::eolog;
05143 
05144         LOCSAVE;
05145         ADVANCE;
05146         return pp_token::create(LOCGET,pp_token::TOK_PLUS);
05147 }
05148         YY_BREAK
05149 case 37:
05150 YY_RULE_SETUP
05151 {
05152         pp_lex_guts_logger << "star\n" << msg::eolog;
05153 
05154         LOCSAVE;
05155         ADVANCE;
05156         return pp_token::create(LOCGET,pp_token::TOK_STAR);
05157 }
05158         YY_BREAK
05159 case 38:
05160 YY_RULE_SETUP
05161 {
05162         pp_lex_guts_logger << "percent\n" << msg::eolog;
05163 
05164         LOCSAVE;
05165         ADVANCE;
05166         return pp_token::create(LOCGET,pp_token::TOK_PERCENT);
05167 }
05168         YY_BREAK
05169 case 39:
05170 YY_RULE_SETUP
05171 {
05172         pp_lex_guts_logger << "slash\n" << msg::eolog;
05173 
05174         LOCSAVE;
05175         ADVANCE;
05176         return pp_token::create(LOCGET,pp_token::TOK_SLASH);
05177 }
05178         YY_BREAK
05179 case 40:
05180 YY_RULE_SETUP
05181 {
05182         pp_lex_guts_logger << "hat\n" << msg::eolog;
05183 
05184         LOCSAVE;
05185         ADVANCE;
05186         return pp_token::create(LOCGET,pp_token::TOK_HAT);
05187 }
05188         YY_BREAK
05189 case 41:
05190 YY_RULE_SETUP
05191 {
05192         pp_lex_guts_logger << "hat\n" << msg::eolog;
05193 
05194         LOCSAVE;
05195         ADVANCE;
05196         return pp_token::create_alternative(LOCGET,pp_token::TOK_HAT);
05197 }
05198         YY_BREAK
05199 case 42:
05200 YY_RULE_SETUP
05201 {
05202         pp_lex_guts_logger << "amp\n" << msg::eolog;
05203 
05204         LOCSAVE;
05205         ADVANCE;
05206         return pp_token::create(LOCGET,pp_token::TOK_AMP);
05207 }
05208         YY_BREAK
05209 case 43:
05210 YY_RULE_SETUP
05211 {
05212         pp_lex_guts_logger << "amp\n" << msg::eolog;
05213 
05214         LOCSAVE;
05215         ADVANCE;
05216         return pp_token::create_alternative(LOCGET,pp_token::TOK_AMP);
05217 }
05218         YY_BREAK
05219 case 44:
05220 YY_RULE_SETUP
05221 {
05222         pp_lex_guts_logger << "vbar\n" << msg::eolog;
05223 
05224         LOCSAVE;
05225         ADVANCE;
05226         return pp_token::create(LOCGET,pp_token::TOK_VBAR);
05227 }
05228         YY_BREAK
05229 case 45:
05230 YY_RULE_SETUP
05231 {
05232         pp_lex_guts_logger << "vbar\n" << msg::eolog;
05233 
05234         LOCSAVE;
05235         ADVANCE;
05236         return pp_token::create_alternative(LOCGET,pp_token::TOK_VBAR);
05237 }
05238         YY_BREAK
05239 case 46:
05240 YY_RULE_SETUP
05241 {
05242         pp_lex_guts_logger << "tilde\n" << msg::eolog;
05243 
05244         LOCSAVE;
05245         ADVANCE;
05246         return pp_token::create(LOCGET,pp_token::TOK_TILDE);
05247 }
05248         YY_BREAK
05249 case 47:
05250 YY_RULE_SETUP
05251 {
05252         pp_lex_guts_logger << "tilde\n" << msg::eolog;
05253 
05254         LOCSAVE;
05255         ADVANCE;
05256         return pp_token::create_alternative(LOCGET,pp_token::TOK_TILDE);
05257 }
05258         YY_BREAK
05259 case 48:
05260 YY_RULE_SETUP
05261 {
05262         pp_lex_guts_logger << "emark\n" << msg::eolog;
05263 
05264         LOCSAVE;
05265         ADVANCE;
05266         return pp_token::create(LOCGET,pp_token::TOK_EMARK);
05267 }
05268         YY_BREAK
05269 case 49:
05270 YY_RULE_SETUP
05271 {
05272         pp_lex_guts_logger << "emark\n" << msg::eolog;
05273 
05274         LOCSAVE;
05275         ADVANCE;
05276         return pp_token::create_alternative(LOCGET,pp_token::TOK_EMARK);
05277 }
05278         YY_BREAK
05279 case 50:
05280 YY_RULE_SETUP
05281 {
05282         pp_lex_guts_logger << "eq\n" << msg::eolog;
05283 
05284         LOCSAVE;
05285         ADVANCE;
05286         return pp_token::create(LOCGET,pp_token::TOK_EQ);
05287 }
05288         YY_BREAK
05289 case 51:
05290 YY_RULE_SETUP
05291 {
05292         pp_lex_guts_logger << "lt\n" << msg::eolog;
05293 
05294         LOCSAVE;
05295         ADVANCE;
05296         return pp_token::create(LOCGET,pp_token::TOK_LT);
05297 }
05298         YY_BREAK
05299 case 52:
05300 YY_RULE_SETUP
05301 {
05302         pp_lex_guts_logger << "gt\n" << msg::eolog;
05303 
05304         LOCSAVE;
05305         ADVANCE;
05306         return pp_token::create(LOCGET,pp_token::TOK_GT);
05307 }
05308         YY_BREAK
05309 case 53:
05310 YY_RULE_SETUP
05311 {
05312         pp_lex_guts_logger << "comma\n" << msg::eolog;
05313 
05314         LOCSAVE;
05315         ADVANCE;
05316         return pp_token::create(LOCGET,pp_token::TOK_COMMA);
05317 }
05318         YY_BREAK
05319 case 54:
05320 YY_RULE_SETUP
05321 {
05322         pp_lex_guts_logger << "minus\n" << msg::eolog;
05323 
05324         LOCSAVE;
05325         ADVANCE;
05326         return pp_token::create(LOCGET,pp_token::TOK_MINUS);
05327 }
05328         YY_BREAK
05329 case 55:
05330 YY_RULE_SETUP
05331 {
05332         pp_lex_guts_logger << "colon_colon\n" << msg::eolog;
05333 
05334         LOCSAVE;
05335         ADVANCE;
05336         return pp_token::create(LOCGET,pp_token::TOK_COLON_COLON);
05337 }
05338         YY_BREAK
05339 case 56:
05340 YY_RULE_SETUP
05341 {
05342         pp_lex_guts_logger << "dot_star\n" << msg::eolog;
05343 
05344         LOCSAVE;
05345         ADVANCE;
05346         return pp_token::create(LOCGET,pp_token::TOK_DOT_STAR);
05347 }
05348         YY_BREAK
05349 case 57:
05350 YY_RULE_SETUP
05351 {
05352         pp_lex_guts_logger << "plus_eq\n" << msg::eolog;
05353 
05354         LOCSAVE;
05355         ADVANCE;
05356         return pp_token::create(LOCGET,pp_token::TOK_PLUS_EQ);
05357 }
05358         YY_BREAK
05359 case 58:
05360 YY_RULE_SETUP
05361 {
05362         pp_lex_guts_logger << "minus_eq\n" << msg::eolog;
05363 
05364         LOCSAVE;
05365         ADVANCE;
05366         return pp_token::create(LOCGET,pp_token::TOK_MINUS_EQ);
05367 }
05368         YY_BREAK
05369 case 59:
05370 YY_RULE_SETUP
05371 {
05372         pp_lex_guts_logger << "star_eq\n" << msg::eolog;
05373 
05374         LOCSAVE;
05375         ADVANCE;
05376         return pp_token::create(LOCGET,pp_token::TOK_STAR_EQ);
05377 }
05378         YY_BREAK
05379 case 60:
05380 YY_RULE_SETUP
05381 {
05382         pp_lex_guts_logger << "slash_eq\n" << msg::eolog;
05383 
05384         LOCSAVE;
05385         ADVANCE;
05386         return pp_token::create(LOCGET,pp_token::TOK_SLASH_EQ);
05387 }
05388         YY_BREAK
05389 case 61:
05390 YY_RULE_SETUP
05391 {
05392         pp_lex_guts_logger << "percent_eq\n" << msg::eolog;
05393 
05394         LOCSAVE;
05395         ADVANCE;
05396         return pp_token::create(LOCGET,pp_token::TOK_PERCENT_EQ);
05397 }
05398         YY_BREAK
05399 case 62:
05400 YY_RULE_SETUP
05401 {
05402         pp_lex_guts_logger << "hat_eq\n" << msg::eolog;
05403 
05404         LOCSAVE;
05405         ADVANCE;
05406         return pp_token::create(LOCGET,pp_token::TOK_HAT_EQ);
05407 }
05408         YY_BREAK
05409 case 63:
05410 YY_RULE_SETUP
05411 {
05412         pp_lex_guts_logger << "hat_eq\n" << msg::eolog;
05413 
05414         LOCSAVE;
05415         ADVANCE;
05416         return pp_token::create_alternative(LOCGET,pp_token::TOK_HAT_EQ);
05417 }
05418         YY_BREAK
05419 case 64:
05420 YY_RULE_SETUP
05421 {
05422         pp_lex_guts_logger << "amp_eq\n" << msg::eolog;
05423 
05424         LOCSAVE;
05425         ADVANCE;
05426         return pp_token::create(LOCGET,pp_token::TOK_AMP_EQ);
05427 }
05428         YY_BREAK
05429 case 65:
05430 YY_RULE_SETUP
05431 {
05432         pp_lex_guts_logger << "amp_eq\n" << msg::eolog;
05433 
05434         LOCSAVE;
05435         ADVANCE;
05436         return pp_token::create_alternative(LOCGET,pp_token::TOK_AMP_EQ);
05437 }
05438         YY_BREAK
05439 case 66:
05440 YY_RULE_SETUP
05441 {
05442         pp_lex_guts_logger << "vbar_eq\n" << msg::eolog;
05443 
05444         LOCSAVE;
05445         ADVANCE;
05446         return pp_token::create(LOCGET,pp_token::TOK_VBAR_EQ);
05447 }
05448         YY_BREAK
05449 case 67:
05450 YY_RULE_SETUP
05451 {
05452         pp_lex_guts_logger << "vbar_eq\n" << msg::eolog;
05453 
05454         LOCSAVE;
05455         ADVANCE;
05456         return pp_token::create_alternative(LOCGET,pp_token::TOK_VBAR_EQ);
05457 }
05458         YY_BREAK
05459 case 68:
05460 YY_RULE_SETUP
05461 {
05462         pp_lex_guts_logger << "lt_lt\n" << msg::eolog;
05463 
05464         LOCSAVE;
05465         ADVANCE;
05466         return pp_token::create(LOCGET,pp_token::TOK_LT_LT);
05467 }
05468         YY_BREAK
05469 case 69:
05470 YY_RULE_SETUP
05471 {
05472         pp_lex_guts_logger << "gt_gt\n" << msg::eolog;
05473 
05474         LOCSAVE;
05475         ADVANCE;
05476         return pp_token::create(LOCGET,pp_token::TOK_GT_GT);
05477 }
05478         YY_BREAK
05479 case 70:
05480 YY_RULE_SETUP
05481 {
05482         pp_lex_guts_logger << "gt_gt_eq\n" << msg::eolog;
05483 
05484         LOCSAVE;
05485         ADVANCE;
05486         return pp_token::create(LOCGET,pp_token::TOK_GT_GT_EQ);
05487 }
05488         YY_BREAK
05489 case 71:
05490 YY_RULE_SETUP
05491 {
05492         pp_lex_guts_logger << "lt_lt_eq\n" << msg::eolog;
05493 
05494         LOCSAVE;
05495         ADVANCE;
05496         return pp_token::create(LOCGET,pp_token::TOK_LT_LT_EQ);
05497 }
05498         YY_BREAK
05499 case 72:
05500 YY_RULE_SETUP
05501 {
05502         pp_lex_guts_logger << "eq_eq\n" << msg::eolog;
05503 
05504         LOCSAVE;
05505         ADVANCE;
05506         return pp_token::create(LOCGET,pp_token::TOK_EQ_EQ);
05507 }
05508         YY_BREAK
05509 case 73:
05510 YY_RULE_SETUP
05511 {
05512         pp_lex_guts_logger << "emark_eq\n" << msg::eolog;
05513 
05514         LOCSAVE;
05515         ADVANCE;
05516         return pp_token::create(LOCGET,pp_token::TOK_EMARK_EQ);
05517 }
05518         YY_BREAK
05519 case 74:
05520 YY_RULE_SETUP
05521 {
05522         pp_lex_guts_logger << "emark_eq\n" << msg::eolog;
05523 
05524         LOCSAVE;
05525         ADVANCE;
05526         return pp_token::create_alternative(LOCGET,pp_token::TOK_EMARK_EQ);
05527 }
05528         YY_BREAK
05529 case 75:
05530 YY_RULE_SETUP
05531 {
05532         pp_lex_guts_logger << "lt_eq\n" << msg::eolog;
05533 
05534         LOCSAVE;
05535         ADVANCE;
05536         return pp_token::create(LOCGET,pp_token::TOK_LT_EQ);
05537 }
05538         YY_BREAK
05539 case 76:
05540 YY_RULE_SETUP
05541 {
05542         pp_lex_guts_logger << "gt_eq\n" << msg::eolog;
05543 
05544         LOCSAVE;
05545         ADVANCE;
05546         return pp_token::create(LOCGET,pp_token::TOK_GT_EQ);
05547 }
05548         YY_BREAK
05549 case 77:
05550 YY_RULE_SETUP
05551 {
05552         pp_lex_guts_logger << "amp_amp\n" << msg::eolog;
05553 
05554         LOCSAVE;
05555         ADVANCE;
05556         return pp_token::create(LOCGET,pp_token::TOK_AMP_AMP);
05557 }
05558         YY_BREAK
05559 case 78:
05560 YY_RULE_SETUP
05561 {
05562         pp_lex_guts_logger << "amp_amp\n" << msg::eolog;
05563 
05564         LOCSAVE;
05565         ADVANCE;
05566         return pp_token::create_alternative(LOCGET,pp_token::TOK_AMP_AMP);
05567 }
05568         YY_BREAK
05569 case 79:
05570 YY_RULE_SETUP
05571 {
05572         pp_lex_guts_logger << "vbar_vbar\n" << msg::eolog;
05573 
05574         LOCSAVE;
05575         ADVANCE;
05576         return pp_token::create(LOCGET,pp_token::TOK_VBAR_VBAR);
05577 }
05578         YY_BREAK
05579 case 80:
05580 YY_RULE_SETUP
05581 {
05582         pp_lex_guts_logger << "vbar_vbar\n" << msg::eolog;
05583 
05584         LOCSAVE;
05585         ADVANCE;
05586         return pp_token::create_alternative(LOCGET,pp_token::TOK_VBAR_VBAR);
05587 }
05588         YY_BREAK
05589 case 81:
05590 YY_RULE_SETUP
05591 {
05592         pp_lex_guts_logger << "plus_plus\n" << msg::eolog;
05593 
05594         LOCSAVE;
05595         ADVANCE;
05596         return pp_token::create(LOCGET,pp_token::TOK_PLUS_PLUS);
05597 }
05598         YY_BREAK
05599 case 82:
05600 YY_RULE_SETUP
05601 {
05602         pp_lex_guts_logger << "minus_minus\n" << msg::eolog;
05603 
05604         LOCSAVE;
05605         ADVANCE;
05606         return pp_token::create(LOCGET,pp_token::TOK_MINUS_MINUS);
05607 }
05608         YY_BREAK
05609 case 83:
05610 YY_RULE_SETUP
05611 {
05612         pp_lex_guts_logger << "minus_gt_star\n" << msg::eolog;
05613 
05614         LOCSAVE;
05615         ADVANCE;
05616         return pp_token::create(LOCGET,pp_token::TOK_MINUS_GT_STAR);
05617 }
05618         YY_BREAK
05619 case 84:
05620 YY_RULE_SETUP
05621 {
05622         pp_lex_guts_logger << "minus_gt\n" << msg::eolog;
05623 
05624         LOCSAVE;
05625         ADVANCE;
05626         return pp_token::create(LOCGET,pp_token::TOK_MINUS_GT);
05627 }
05628         YY_BREAK
05629 case 85:
05630 YY_RULE_SETUP
05631 {
05632         pp_lex_guts_logger << "dot_dot_dot\n" << msg::eolog;
05633 
05634         LOCSAVE;
05635         ADVANCE;
05636         return pp_token::create(LOCGET,pp_token::TOK_DOT_DOT_DOT);
05637 }
05638         YY_BREAK
05639 case 86:
05640 YY_RULE_SETUP
05641 {
05642         pp_lex_guts_logger << "asm\n" << msg::eolog;
05643 
05644         LOCSAVE;
05645         ADVANCE;
05646         return pp_token::create(LOCGET,pp_token::TOK_ASM);
05647 }
05648         YY_BREAK
05649 case 87:
05650 YY_RULE_SETUP
05651 {
05652         pp_lex_guts_logger << "auto\n" << msg::eolog;
05653 
05654         LOCSAVE;
05655         ADVANCE;
05656         return pp_token::create(LOCGET,pp_token::TOK_AUTO);
05657 }
05658         YY_BREAK
05659 case 88:
05660 YY_RULE_SETUP
05661 {
05662         pp_lex_guts_logger << "bool\n" << msg::eolog;
05663 
05664         LOCSAVE;
05665         ADVANCE;
05666         return pp_token::create(LOCGET,pp_token::TOK_BOOL);
05667 }
05668         YY_BREAK
05669 case 89:
05670 YY_RULE_SETUP
05671 {
05672         pp_lex_guts_logger << "break\n" << msg::eolog;
05673 
05674         LOCSAVE;
05675         ADVANCE;
05676         return pp_token::create(LOCGET,pp_token::TOK_BREAK);
05677 }
05678         YY_BREAK
05679 case 90:
05680 YY_RULE_SETUP
05681 {
05682         pp_lex_guts_logger << "case\n" << msg::eolog;
05683 
05684         LOCSAVE;
05685         ADVANCE;
05686         return pp_token::create(LOCGET,pp_token::TOK_CASE);
05687 }
05688         YY_BREAK
05689 case 91:
05690 YY_RULE_SETUP
05691 {
05692         pp_lex_guts_logger << "catch\n" << msg::eolog;
05693 
05694         LOCSAVE;
05695         ADVANCE;
05696         return pp_token::create(LOCGET,pp_token::TOK_CATCH);
05697 }
05698         YY_BREAK
05699 case 92:
05700 YY_RULE_SETUP
05701 {
05702         pp_lex_guts_logger << "char\n" << msg::eolog;
05703 
05704         LOCSAVE;
05705         ADVANCE;
05706         return pp_token::create(LOCGET,pp_token::TOK_CHAR);
05707 }
05708         YY_BREAK
05709 case 93:
05710 YY_RULE_SETUP
05711 {
05712         pp_lex_guts_logger << "class\n" << msg::eolog;
05713 
05714         LOCSAVE;
05715         ADVANCE;
05716         return pp_token::create(LOCGET,pp_token::TOK_CLASS);
05717 }
05718         YY_BREAK
05719 case 94:
05720 YY_RULE_SETUP
05721 {
05722         pp_lex_guts_logger << "const\n" << msg::eolog;
05723 
05724         LOCSAVE;
05725         ADVANCE;
05726         return pp_token::create(LOCGET,pp_token::TOK_CONST);
05727 }
05728         YY_BREAK
05729 case 95:
05730 YY_RULE_SETUP
05731 {
05732         pp_lex_guts_logger << "const_cast\n" << msg::eolog;
05733 
05734         LOCSAVE;
05735         ADVANCE;
05736         return pp_token::create(LOCGET,pp_token::TOK_CONST_CAST);
05737 }
05738         YY_BREAK
05739 case 96:
05740 YY_RULE_SETUP
05741 {
05742         pp_lex_guts_logger << "continue\n" << msg::eolog;
05743 
05744         LOCSAVE;
05745         ADVANCE;
05746         return pp_token::create(LOCGET,pp_token::TOK_CONTINUE);
05747 }
05748         YY_BREAK
05749 case 97:
05750 YY_RULE_SETUP
05751 {
05752         pp_lex_guts_logger << "default\n" << msg::eolog;
05753 
05754         LOCSAVE;
05755         ADVANCE;
05756         return pp_token::create(LOCGET,pp_token::TOK_DEFAULT);
05757 }
05758         YY_BREAK
05759 case 98:
05760 YY_RULE_SETUP
05761 {
05762         pp_lex_guts_logger << "delete\n" << msg::eolog;
05763 
05764         LOCSAVE;
05765         ADVANCE;
05766         return pp_token::create(LOCGET,pp_token::TOK_DELETE);
05767 }
05768         YY_BREAK
05769 case 99:
05770 YY_RULE_SETUP
05771 {
05772         pp_lex_guts_logger << "do\n" << msg::eolog;
05773 
05774         LOCSAVE;
05775         ADVANCE;
05776         return pp_token::create(LOCGET,pp_token::TOK_DO);
05777 }
05778         YY_BREAK
05779 case 100:
05780 YY_RULE_SETUP
05781 {
05782         pp_lex_guts_logger << "double\n" << msg::eolog;
05783 
05784         LOCSAVE;
05785         ADVANCE;
05786         return pp_token::create(LOCGET,pp_token::TOK_DOUBLE);
05787 }
05788         YY_BREAK
05789 case 101:
05790 YY_RULE_SETUP
05791 {
05792         pp_lex_guts_logger << "dynamic_cast\n" << msg::eolog;
05793 
05794         LOCSAVE;
05795         ADVANCE;
05796         return pp_token::create(LOCGET,pp_token::TOK_DYNAMIC_CAST);
05797 }
05798         YY_BREAK
05799 case 102:
05800 YY_RULE_SETUP
05801 {
05802         pp_lex_guts_logger << "else\n" << msg::eolog;
05803 
05804         LOCSAVE;
05805         ADVANCE;
05806         return pp_token::create(LOCGET,pp_token::TOK_ELSE);
05807 }
05808         YY_BREAK
05809 case 103:
05810 YY_RULE_SETUP
05811 {
05812         pp_lex_guts_logger << "enum\n" << msg::eolog;
05813 
05814         LOCSAVE;
05815         ADVANCE;
05816         return pp_token::create(LOCGET,pp_token::TOK_ENUM);
05817 }
05818         YY_BREAK
05819 case 104:
05820 YY_RULE_SETUP
05821 {
05822         pp_lex_guts_logger << "explicit\n" << msg::eolog;
05823 
05824         LOCSAVE;
05825         ADVANCE;
05826         return pp_token::create(LOCGET,pp_token::TOK_EXPLICIT);
05827 }
05828         YY_BREAK
05829 case 105:
05830 YY_RULE_SETUP
05831 {
05832         pp_lex_guts_logger << "export\n" << msg::eolog;
05833 
05834         LOCSAVE;
05835         ADVANCE;
05836         return pp_token::create(LOCGET,pp_token::TOK_EXPORT);
05837 }
05838         YY_BREAK
05839 case 106:
05840 YY_RULE_SETUP
05841 {
05842         pp_lex_guts_logger << "extern\n" << msg::eolog;
05843 
05844         LOCSAVE;
05845         ADVANCE;
05846         return pp_token::create(LOCGET,pp_token::TOK_EXTERN);
05847 }
05848         YY_BREAK
05849 case 107:
05850 YY_RULE_SETUP
05851 {
05852         pp_lex_guts_logger << "float\n" << msg::eolog;
05853 
05854         LOCSAVE;
05855         ADVANCE;
05856         return pp_token::create(LOCGET,pp_token::TOK_FLOAT);
05857 }
05858         YY_BREAK
05859 case 108:
05860 YY_RULE_SETUP
05861 {
05862         pp_lex_guts_logger << "for\n" << msg::eolog;
05863 
05864         LOCSAVE;
05865         ADVANCE;
05866         return pp_token::create(LOCGET,pp_token::TOK_FOR);
05867 }
05868         YY_BREAK
05869 case 109:
05870 YY_RULE_SETUP
05871 {
05872         pp_lex_guts_logger << "friend\n" << msg::eolog;
05873 
05874         LOCSAVE;
05875         ADVANCE;
05876         return pp_token::create(LOCGET,pp_token::TOK_FRIEND);
05877 }
05878         YY_BREAK
05879 case 110:
05880 YY_RULE_SETUP
05881 {
05882         pp_lex_guts_logger << "goto\n" << msg::eolog;
05883 
05884         LOCSAVE;
05885         ADVANCE;
05886         return pp_token::create(LOCGET,pp_token::TOK_GOTO);
05887 }
05888         YY_BREAK
05889 case 111:
05890 YY_RULE_SETUP
05891 {
05892         pp_lex_guts_logger << "if\n" << msg::eolog;
05893 
05894         LOCSAVE;
05895         ADVANCE;
05896         return pp_token::create(LOCGET,pp_token::TOK_IF);
05897 }
05898         YY_BREAK
05899 case 112:
05900 YY_RULE_SETUP
05901 {
05902         pp_lex_guts_logger << "inline\n" << msg::eolog;
05903 
05904         LOCSAVE;
05905         ADVANCE;
05906         return pp_token::create(LOCGET,pp_token::TOK_INLINE);
05907 }
05908         YY_BREAK
05909 case 113:
05910 YY_RULE_SETUP
05911 {
05912         pp_lex_guts_logger << "int\n" << msg::eolog;
05913 
05914         LOCSAVE;
05915         ADVANCE;
05916         return pp_token::create(LOCGET,pp_token::TOK_INT);
05917 }
05918         YY_BREAK
05919 case 114:
05920 YY_RULE_SETUP
05921 {
05922         pp_lex_guts_logger << "long\n" << msg::eolog;
05923 
05924         LOCSAVE;
05925         ADVANCE;
05926         return pp_token::create(LOCGET,pp_token::TOK_LONG);
05927 }
05928         YY_BREAK
05929 case 115:
05930 YY_RULE_SETUP
05931 {
05932         pp_lex_guts_logger << "mutable\n" << msg::eolog;
05933 
05934         LOCSAVE;
05935         ADVANCE;
05936         return pp_token::create(LOCGET,pp_token::TOK_MUTABLE);
05937 }
05938         YY_BREAK
05939 case 116:
05940 YY_RULE_SETUP
05941 {
05942         pp_lex_guts_logger << "namespace\n" << msg::eolog;
05943 
05944         LOCSAVE;
05945         ADVANCE;
05946         return pp_token::create(LOCGET,pp_token::TOK_NAMESPACE);
05947 }
05948         YY_BREAK
05949 case 117:
05950 YY_RULE_SETUP
05951 {
05952         pp_lex_guts_logger << "new\n" << msg::eolog;
05953 
05954         LOCSAVE;
05955         ADVANCE;
05956         return pp_token::create(LOCGET,pp_token::TOK_NEW);
05957 }
05958         YY_BREAK
05959 case 118:
05960 YY_RULE_SETUP
05961 {
05962         pp_lex_guts_logger << "operator\n" << msg::eolog;
05963 
05964         LOCSAVE;
05965         ADVANCE;
05966         return pp_token::create(LOCGET,pp_token::TOK_OPERATOR);
05967 }
05968         YY_BREAK
05969 case 119:
05970 YY_RULE_SETUP
05971 {
05972         pp_lex_guts_logger << "private\n" << msg::eolog;
05973 
05974         LOCSAVE;
05975         ADVANCE;
05976         return pp_token::create(LOCGET,pp_token::TOK_PRIVATE);
05977 }
05978         YY_BREAK
05979 case 120:
05980 YY_RULE_SETUP
05981 {
05982         LOCSAVE;
05983         ADVANCE;
05984         return pp_token::create(LOCGET,pp_token::TOK_PROTECTED);
05985         pp_lex_guts_logger << "protected\n" << msg::eolog;
05986 }
05987         YY_BREAK
05988 case 121:
05989 YY_RULE_SETUP
05990 {
05991         pp_lex_guts_logger << "public\n" << msg::eolog;
05992 
05993         LOCSAVE;
05994         ADVANCE;
05995         return pp_token::create(LOCGET,pp_token::TOK_PUBLIC);
05996 }
05997         YY_BREAK
05998 case 122:
05999 YY_RULE_SETUP
06000 {
06001         pp_lex_guts_logger << "register\n" << msg::eolog;
06002 
06003         LOCSAVE;
06004         ADVANCE;
06005         return pp_token::create(LOCGET,pp_token::TOK_REGISTER);
06006 }
06007         YY_BREAK
06008 case 123:
06009 YY_RULE_SETUP
06010 {
06011         pp_lex_guts_logger << "reinterpret_cast\n" << msg::eolog;
06012 
06013         LOCSAVE;
06014         ADVANCE;
06015         return pp_token::create(LOCGET,pp_token::TOK_REINTERPRET_CAST);
06016 }
06017         YY_BREAK
06018 case 124:
06019 YY_RULE_SETUP
06020 {
06021         pp_lex_guts_logger << "return\n" << msg::eolog;
06022 
06023         LOCSAVE;
06024         ADVANCE;
06025         return pp_token::create(LOCGET,pp_token::TOK_RETURN);
06026 }
06027         YY_BREAK
06028 case 125:
06029 YY_RULE_SETUP
06030 {
06031         pp_lex_guts_logger << "short\n" << msg::eolog;
06032 
06033         LOCSAVE;
06034         ADVANCE;
06035         return pp_token::create(LOCGET,pp_token::TOK_SHORT);
06036 }
06037         YY_BREAK
06038 case 126:
06039 YY_RULE_SETUP
06040 {
06041         pp_lex_guts_logger << "signed\n" << msg::eolog;
06042 
06043         LOCSAVE;
06044         ADVANCE;
06045         return pp_token::create(LOCGET,pp_token::TOK_SIGNED);
06046 }
06047         YY_BREAK
06048 case 127:
06049 YY_RULE_SETUP
06050 {
06051         pp_lex_guts_logger << "sizeof\n" << msg::eolog;
06052 
06053         LOCSAVE;
06054         ADVANCE;
06055         return pp_token::create(LOCGET,pp_token::TOK_SIZEOF);
06056 }
06057         YY_BREAK
06058 case 128:
06059 YY_RULE_SETUP
06060 {
06061         pp_lex_guts_logger << "static\n" << msg::eolog;
06062 
06063         LOCSAVE;
06064         ADVANCE;
06065         return pp_token::create(LOCGET,pp_token::TOK_STATIC);
06066 }
06067         YY_BREAK
06068 case 129:
06069 YY_RULE_SETUP
06070 {
06071         pp_lex_guts_logger << "static_cast\n" << msg::eolog;
06072 
06073         LOCSAVE;
06074         ADVANCE;
06075         return pp_token::create(LOCGET,pp_token::TOK_STATIC_CAST);
06076 }
06077         YY_BREAK
06078 case 130:
06079 YY_RULE_SETUP
06080 {
06081         pp_lex_guts_logger << "struct\n" << msg::eolog;
06082 
06083         LOCSAVE;
06084         ADVANCE;
06085         return pp_token::create(LOCGET,pp_token::TOK_STRUCT);
06086 }
06087         YY_BREAK
06088 case 131:
06089 YY_RULE_SETUP
06090 {
06091         pp_lex_guts_logger << "switch\n" << msg::eolog;
06092 
06093         LOCSAVE;
06094         ADVANCE;
06095         return pp_token::create(LOCGET,pp_token::TOK_SWITCH);
06096 }
06097         YY_BREAK
06098 case 132:
06099 YY_RULE_SETUP
06100 {
06101         pp_lex_guts_logger << "template\n" << msg::eolog;
06102 
06103         LOCSAVE;
06104         ADVANCE;
06105         return pp_token::create(LOCGET,pp_token::TOK_TEMPLATE);
06106 }
06107         YY_BREAK
06108 case 133:
06109 YY_RULE_SETUP
06110 {
06111         pp_lex_guts_logger << "this\n" << msg::eolog;
06112 
06113         LOCSAVE;
06114         ADVANCE;
06115         return pp_token::create(LOCGET,pp_token::TOK_THIS);
06116 }
06117         YY_BREAK
06118 case 134:
06119 YY_RULE_SETUP
06120 {
06121         pp_lex_guts_logger << "throw\n" << msg::eolog;
06122 
06123         LOCSAVE;
06124         ADVANCE;
06125         return pp_token::create(LOCGET,pp_token::TOK_THROW);
06126 }
06127         YY_BREAK
06128 case 135:
06129 YY_RULE_SETUP
06130 {
06131         pp_lex_guts_logger << "try\n" << msg::eolog;
06132 
06133         LOCSAVE;
06134         ADVANCE;
06135         return pp_token::create(LOCGET,pp_token::TOK_TRY);
06136 }
06137         YY_BREAK
06138 case 136:
06139 YY_RULE_SETUP
06140 {
06141         pp_lex_guts_logger << "typedef\n" << msg::eolog;
06142 
06143         LOCSAVE;
06144         ADVANCE;
06145         return pp_token::create(LOCGET,pp_token::TOK_TYPEDEF);
06146 }
06147         YY_BREAK
06148 case 137:
06149 YY_RULE_SETUP
06150 {
06151         pp_lex_guts_logger << "typeid\n" << msg::eolog;
06152 
06153         LOCSAVE;
06154         ADVANCE;
06155         return pp_token::create(LOCGET,pp_token::TOK_TYPEID);
06156 }
06157         YY_BREAK
06158 case 138:
06159 YY_RULE_SETUP
06160 {
06161         pp_lex_guts_logger << "typename\n" << msg::eolog;
06162 
06163         LOCSAVE;
06164         ADVANCE;
06165         return pp_token::create(LOCGET,pp_token::TOK_TYPENAME);
06166 }
06167         YY_BREAK
06168 case 139:
06169 YY_RULE_SETUP
06170 {
06171         pp_lex_guts_logger << "union\n" << msg::eolog;
06172 
06173         LOCSAVE;
06174         ADVANCE;
06175         return pp_token::create(LOCGET,pp_token::TOK_UNION);
06176 }
06177         YY_BREAK
06178 case 140:
06179 YY_RULE_SETUP
06180 {
06181         pp_lex_guts_logger << "unsigned\n" << msg::eolog;
06182 
06183         LOCSAVE;
06184         ADVANCE;
06185         return pp_token::create(LOCGET,pp_token::TOK_UNSIGNED);
06186 }
06187         YY_BREAK
06188 case 141:
06189 YY_RULE_SETUP
06190 {
06191         pp_lex_guts_logger << "using\n" << msg::eolog;
06192 
06193         LOCSAVE;
06194         ADVANCE;
06195         return pp_token::create(LOCGET,pp_token::TOK_USING);
06196 }
06197         YY_BREAK
06198 case 142:
06199 YY_RULE_SETUP
06200 {
06201         pp_lex_guts_logger << "virtual\n" << msg::eolog;
06202 
06203         LOCSAVE;
06204         ADVANCE;
06205         return pp_token::create(LOCGET,pp_token::TOK_VIRTUAL);
06206 }
06207         YY_BREAK
06208 case 143:
06209 YY_RULE_SETUP
06210 {
06211         pp_lex_guts_logger << "void\n" << msg::eolog;
06212 
06213         LOCSAVE;
06214         ADVANCE;
06215         return pp_token::create(LOCGET,pp_token::TOK_VOID);
06216 }
06217         YY_BREAK
06218 case 144:
06219 YY_RULE_SETUP
06220 {
06221         pp_lex_guts_logger << "volatile\n" << msg::eolog;
06222 
06223         LOCSAVE;
06224         ADVANCE;
06225         return pp_token::create(LOCGET,pp_token::TOK_VOLATILE);
06226 }
06227         YY_BREAK
06228 case 145:
06229 YY_RULE_SETUP
06230 {
06231         pp_lex_guts_logger << "wchar\n" << msg::eolog;
06232 
06233         LOCSAVE;
06234         ADVANCE;
06235         return pp_token::create(LOCGET,pp_token::TOK_WCHAR);
06236 }
06237         YY_BREAK
06238 case 146:
06239 YY_RULE_SETUP
06240 {
06241         pp_lex_guts_logger << "while\n" << msg::eolog;
06242 
06243         LOCSAVE;
06244         ADVANCE;
06245         return pp_token::create(LOCGET,pp_token::TOK_WHILE);
06246 }
06247         YY_BREAK
06248 case 147:
06249 YY_RULE_SETUP
06250 {
06251         pp_lex_guts_logger << "false\n" << msg::eolog;
06252 
06253         LOCSAVE;
06254         ADVANCE;
06255         return pp_token::create(LOCGET,pp_token::TOK_BOOL_LIT,token_value::create("false"));
06256 }
06257         YY_BREAK
06258 case 148:
06259 YY_RULE_SETUP
06260 {
06261         pp_lex_guts_logger << "false\n" << msg::eolog;
06262 
06263         LOCSAVE;
06264         ADVANCE;
06265         return pp_token::create(LOCGET,pp_token::TOK_BOOL_LIT,token_value::create("true"));
06266 }
06267         YY_BREAK
06268 /*
06269 {i}{n}{c}{l}{u}{d}{e} {
06270         pp_lex_guts_logger << "include\n" << msg::eolog;
06271 
06272         LOCSAVE;
06273         ADVANCE;
06274         return pp_token::create(LOCGET,pp_token::TOK_INCLUDE);
06275 }
06276 
06277 {d}{e}{f}{i}{n}{e} {
06278         pp_lex_guts_logger << "define\n" << msg::eolog;
06279 
06280         LOCSAVE;
06281         ADVANCE;
06282         return pp_token::create(LOCGET,pp_token::TOK_DEFINE);
06283 }
06284 
06285 {u}{n}{d}{e}{f} {
06286         pp_lex_guts_logger << "undef\n" << msg::eolog;
06287 
06288         LOCSAVE;
06289         ADVANCE;
06290         return pp_token::create(LOCGET,pp_token::TOK_UNDEF);
06291 }
06292 
06293 {l}{i}{n}{e} {
06294         pp_lex_guts_logger << "line\n" << msg::eolog;
06295 
06296         LOCSAVE;
06297         ADVANCE;
06298         return pp_token::create(LOCGET,pp_token::TOK_LINE);
06299 }
06300 
06301 {p}{r}{a}{g}{m}{a} {
06302         pp_lex_guts_logger << "pragma\n" << msg::eolog;
06303 
06304         LOCSAVE;
06305         ADVANCE;
06306         return pp_token::create(LOCGET,pp_token::TOK_PRAGMA);
06307 }
06308 
06309 {e}{r}{r}{o}{r} {
06310         pp_lex_guts_logger << "error\n" << msg::eolog;
06311 
06312         LOCSAVE;
06313         ADVANCE;
06314         return pp_token::create(LOCGET,pp_token::TOK_ERROR);
06315 }
06316 
06317 {d}{e}{f}{i}{n}{e}{d} {
06318         pp_lex_guts_logger << "defined\n" << msg::eolog;
06319 
06320         LOCSAVE;
06321         ADVANCE;
06322         return pp_token::create(LOCGET,pp_token::TOK_DEFINED);
06323 }
06324 
06325 {i}{f}{d}{e}{f} {
06326         pp_lex_guts_logger << "ifdef\n" << msg::eolog;
06327 
06328         LOCSAVE;
06329         ADVANCE;
06330         return pp_token::create(LOCGET,pp_token::TOK_IFDEF);
06331 }
06332 
06333 {i}{f}{n}{d}{e}{f} {
06334         pp_lex_guts_logger << "ifndef\n" << msg::eolog;
06335 
06336         LOCSAVE;
06337         ADVANCE;
06338         return pp_token::create(LOCGET,pp_token::TOK_IFNDEF);
06339 }
06340 
06341 {e}{l}{i}{f} {
06342         pp_lex_guts_logger << "elif\n" << msg::eolog;
06343 
06344         LOCSAVE;
06345         ADVANCE;
06346         return pp_token::create(LOCGET,pp_token::TOK_ELIF);
06347 }
06348 
06349 {e}{n}{d}{i}{f} {
06350         pp_lex_guts_logger << "endif\n" << msg::eolog;
06351 
06352         LOCSAVE;
06353         ADVANCE;
06354         return pp_token::create(LOCGET,pp_token::TOK_ENDIF);
06355 }
06356    */
06357 /* pp number, can contain underscore */
06358 case 149:
06359 YY_RULE_SETUP
06360 {
06361         pp_lex_guts_logger << "preprocessing number\n" << msg::eolog;
06362 
06363         LOCSAVE;
06364         return pp_token::create(LOCGET,pp_token::TOK_NUMBER_LIT,EXTRACT_ORDINARY(yyleng));
06365 }
06366         YY_BREAK
06367 /* pp number with ucn */
06368 case 150:
06369 YY_RULE_SETUP
06370 {
06371         pp_lex_guts_logger << "preprocessing number with ucn\n" << msg::eolog;
06372 
06373         LOCSAVE;
06374         return pp_token::create(LOCGET,pp_token::TOK_NUMBER_LIT,EXTRACT_UCN_NUMBER(yyleng));
06375 }
06376         YY_BREAK
06377 /* pp number with bad ucn */
06378 case 151:
06379 YY_RULE_SETUP
06380 {
06381         pp_lex_guts_logger << "preprocessing number with bad ucn\n" << msg::eolog;
06382 
06383         LOCSAVE;
06384         return pp_token::create(LOCGET,pp_token::TOK_NUMBER_LIT,EXTRACT_BAD_NUMBER(yyleng));
06385 }
06386         YY_BREAK
06387 /* pp alphanumeric identifier */
06388 case 152:
06389 YY_RULE_SETUP
06390 {
06391         pp_lex_guts_logger << "identifier without ucn\n" << msg::eolog;
06392 
06393         LOCSAVE;
06394         return pp_token::create(LOCGET,pp_token::TOK_IDENT,EXTRACT_ORDINARY(yyleng));
06395 }
06396         YY_BREAK
06397 /* pp identifier with ucn */
06398 case 153:
06399 YY_RULE_SETUP
06400 {
06401         pp_lex_guts_logger << "identifier with ucn\n" << msg::eolog;
06402 
06403         LOCSAVE;
06404         return pp_token::create(LOCGET,pp_token::TOK_IDENT,EXTRACT_UCN_IDENTIFIER(yyleng));
06405 }
06406         YY_BREAK
06407 /* pp identifier ucn */
06408 case 154:
06409 YY_RULE_SETUP
06410 {
06411         pp_lex_guts_logger << "identifier with bad ucn\n" << msg::eolog;
06412 
06413         LOCSAVE;
06414         return pp_token::create(LOCGET,pp_token::TOK_IDENT,EXTRACT_BAD_IDENTIFIER(yyleng));
06415 }
06416         YY_BREAK
06417 /* start of recognition of directives */
06418 case 155:
06419 /* rule 155 can match eol */
06420 YY_RULE_SETUP
06421 {
06422         pp_lex_guts_logger << "hash in directive\n" << msg::eolog;
06423 
06424    BEGIN(directive_name);
06425    
06426    SKIP(yyleng - 1);
06427    /* save the location of the # */
06428         LOCSAVE;
06429    SKIP(1);
06430 
06431         return pp_token::create(LOCGET,pp_token::TOK_HASH);
06432 }
06433         YY_BREAK
06434 /* ## is longer than # and requires special rule */
06435 case 156:
06436 /* rule 156 can match eol */
06437 YY_RULE_SETUP
06438 {
06439         pp_lex_guts_logger << "hash_hash in directive\n" << msg::eolog;
06440 
06441    BEGIN(INITIAL);
06442    /* return the characters */
06443    yyless(0);
06444 
06445 }
06446         YY_BREAK
06447 /* not a directive */
06448 case 157:
06449 /* rule 157 can match eol */
06450 YY_RULE_SETUP
06451 {
06452         pp_lex_guts_logger << "any char in directive\n" << msg::eolog;
06453 
06454    BEGIN(INITIAL);
06455    /* return the character */
06456    yyless(0);
06457 }
06458         YY_BREAK
06459 /* skip padding */
06460 case 158:
06461 /* rule 158 can match eol */
06462 YY_RULE_SETUP
06463 {
06464         pp_lex_guts_logger << "blanks and comments in directive name\n" << msg::eolog;
06465 
06466    ADVANCE;
06467    /* continue scanning */
06468 }
06469         YY_BREAK
06470 case 159:
06471 YY_RULE_SETUP
06472 {
06473         pp_lex_guts_logger << "define in directive name\n" << msg::eolog;
06474 
06475    BEGIN(INITIAL);
06476         LOCSAVE;
06477         ADVANCE;
06478         return pp_token::create(LOCGET,pp_token::TOK_DEFINE);
06479 }
06480         YY_BREAK
06481 case 160:
06482 YY_RULE_SETUP
06483 {
06484         pp_lex_guts_logger << "undef in directive name\n" << msg::eolog;
06485 
06486    BEGIN(INITIAL);
06487         LOCSAVE;
06488         ADVANCE;
06489         return pp_token::create(LOCGET,pp_token::TOK_UNDEF);
06490 }
06491         YY_BREAK
06492 case 161:
06493 YY_RULE_SETUP
06494 {
06495         pp_lex_guts_logger << "pragma in directive name\n" << msg::eolog;
06496 
06497    BEGIN(INITIAL);
06498         LOCSAVE;
06499         ADVANCE;
06500         return pp_token::create(LOCGET,pp_token::TOK_PRAGMA);
06501 }
06502         YY_BREAK
06503 case 162:
06504 YY_RULE_SETUP
06505 {
06506         pp_lex_guts_logger << "error in directive name\n" << msg::eolog;
06507 
06508    BEGIN(INITIAL);
06509         LOCSAVE;
06510         ADVANCE;
06511         return pp_token::create(LOCGET,pp_token::TOK_ERROR);
06512 }
06513         YY_BREAK
06514 case 163:
06515 YY_RULE_SETUP
06516 {
06517         pp_lex_guts_logger << "defined in directive name\n" << msg::eolog;
06518 
06519    BEGIN(INITIAL);
06520         LOCSAVE;
06521         ADVANCE;
06522         return pp_token::create(LOCGET,pp_token::TOK_DEFINED);
06523 }
06524         YY_BREAK
06525 case 164:
06526 YY_RULE_SETUP
06527 {
06528         pp_lex_guts_logger << "if in directive name\n" << msg::eolog;
06529 
06530    BEGIN(INITIAL);
06531         LOCSAVE;
06532         ADVANCE;
06533         return pp_token::create(LOCGET,pp_token::TOK_IF);
06534 }
06535         YY_BREAK
06536 case 165:
06537 YY_RULE_SETUP
06538 {
06539         pp_lex_guts_logger << "ifdef in directive name\n" << msg::eolog;
06540 
06541    BEGIN(INITIAL);
06542         LOCSAVE;
06543         ADVANCE;
06544         return pp_token::create(LOCGET,pp_token::TOK_IFDEF);
06545 }
06546         YY_BREAK
06547 case 166:
06548 YY_RULE_SETUP
06549 {
06550         pp_lex_guts_logger << "ifndef in directive name\n" << msg::eolog;
06551 
06552    BEGIN(INITIAL);
06553         LOCSAVE;
06554         ADVANCE;
06555         return pp_token::create(LOCGET,pp_token::TOK_IFNDEF);
06556 }
06557         YY_BREAK
06558 case 167:
06559 YY_RULE_SETUP
06560 {
06561         pp_lex_guts_logger << "elif in directive name\n" << msg::eolog;
06562 
06563    BEGIN(INITIAL);
06564         LOCSAVE;
06565         ADVANCE;
06566         return pp_token::create(LOCGET,pp_token::TOK_ELIF);
06567 }
06568         YY_BREAK
06569 case 168:
06570 YY_RULE_SETUP
06571 {
06572         pp_lex_guts_logger << "else in directive name\n" << msg::eolog;
06573 
06574    BEGIN(INITIAL);
06575         LOCSAVE;
06576         ADVANCE;
06577         return pp_token::create(LOCGET,pp_token::TOK_ELSE);
06578 }
06579         YY_BREAK
06580 case 169:
06581 YY_RULE_SETUP
06582 {
06583         pp_lex_guts_logger << "endif in directive name\n" << msg::eolog;
06584 
06585    BEGIN(INITIAL);
06586         LOCSAVE;
06587         ADVANCE;
06588         return pp_token::create(LOCGET,pp_token::TOK_ENDIF);
06589 }
06590         YY_BREAK
06591 case 170:
06592 YY_RULE_SETUP
06593 {
06594         pp_lex_guts_logger << "include in directive name\n" << msg::eolog;
06595 
06596    BEGIN(include);
06597         LOCSAVE;
06598    ADVANCE;
06599         return pp_token::create(LOCGET,pp_token::TOK_INCLUDE);
06600 }
06601         YY_BREAK
06602 case 171:
06603 YY_RULE_SETUP
06604 {
06605         pp_lex_guts_logger << "line in directive name\n" << msg::eolog;
06606 
06607         LOCSAVE;
06608    ADVANCE;
06609         return pp_token::create(LOCGET,pp_token::TOK_LINE);
06610 }
06611         YY_BREAK
06612 /* some other or longer identifier */
06613 case 172:
06614 YY_RULE_SETUP
06615 {
06616         pp_lex_guts_logger << "other identifier in directive name\n" << msg::eolog;
06617 
06618    BEGIN(INITIAL);
06619    /* return the identifier */
06620    yyless(0);
06621 }
06622         YY_BREAK
06623 /* something else than the above */
06624 case 173:
06625 /* rule 173 can match eol */
06626 YY_RULE_SETUP
06627 {
06628         pp_lex_guts_logger << "any char in directive name\n" << msg::eolog;
06629 
06630    BEGIN(INITIAL);
06631    /* return the character */
06632    yyless(0);
06633 }
06634         YY_BREAK
06635 /* skip spaces and comments to simplify processing of the following */
06636 case 174:
06637 /* rule 174 can match eol */
06638 YY_RULE_SETUP
06639 {
06640         pp_lex_guts_logger << "blanks and comments in include\n" << msg::eolog;
06641 
06642         ADVANCE;
06643    /* continue scanning */
06644 }
06645         YY_BREAK
06646 /* angle bracketed name */
06647 case 175:
06648 /* rule 175 can match eol */
06649 YY_RULE_SETUP
06650 {
06651         pp_lex_guts_logger << "angle bracketed name in include\n" << msg::eolog;
06652 
06653    BEGIN(INITIAL);
06654         LOCSAVE;
06655         
06656    SKIP(1);
06657         /* everything between the '<' '>' is significant */
06658         ptr<token_value> tv(EXTRACT_UNTIL(character::ascii_gt));
06659    /* skip the '>' and everything but the newline */
06660         ulint len = yyleng - tv->content_get().size() - 2;
06661         SKIP(len);
06662   
06663    /* return only the newline */
06664         yyless(yyleng - 1);
06665 
06666         return pp_token::create(LOCGET,pp_token::TOK_INCL_HCHAR,tv);
06667 }
06668         YY_BREAK
06669 /* double quoted name */
06670 case 176:
06671 /* rule 176 can match eol */
06672 YY_RULE_SETUP
06673 {
06674         pp_lex_guts_logger << "double quoted name in include\n" << msg::eolog;
06675 
06676    BEGIN(INITIAL);
06677         LOCSAVE;
06678    
06679    SKIP(1);
06680         /* everything between the "" is significant, no support for escape sequences */
06681         ptr<token_value> tv(EXTRACT_UNTIL(character::ascii_dquote));
06682    /* skip the '"' and everything till but the newline */
06683         ulint len = yyleng - tv->content_get().size() - 2;
06684         SKIP(len);
06685   
06686    /* return only the newline */
06687         yyless(yyleng - 1);
06688 
06689         return pp_token::create(LOCGET,pp_token::TOK_INCL_QCHAR,tv);
06690 }
06691         YY_BREAK
06692 /* catches errors and third type include, which is handled by normal parser */
06693 case 177:
06694 /* rule 177 can match eol */
06695 YY_RULE_SETUP
06696 {
06697         pp_lex_guts_logger << "any char in include\n" << msg::eolog;
06698 
06699    BEGIN(INITIAL);
06700         LOCSAVE;
06701    /* return the character */
06702         yyless(0);
06703         return pp_token::create(LOCGET,pp_token::TOK_INCL_SIG);
06704 }
06705         YY_BREAK
06706 /* special end of file class, not the flex <<EOF>> */
06707 case 178:
06708 YY_RULE_SETUP
06709 {
06710         pp_lex_guts_logger << "eof\n" << msg::eolog;
06711    
06712         LOCSAVE;
06713         ADVANCE;
06714         return pp_token::create(LOCGET,pp_token::TOK_FILE_END);
06715 }
06716         YY_BREAK
06717 /* anything which is not a part of a token; " or ' will not appear here */
06718 case 179:
06719 /* rule 179 can match eol */
06720 YY_RULE_SETUP
06721 {
06722         pp_lex_guts_logger << "other\n" << msg::eolog;
06723    
06724         LOCSAVE;
06725         return pp_token::create(LOCGET,pp_token::TOK_OTHER,EXTRACT_ORDINARY(yyleng));
06726 }
06727         YY_BREAK
06728 case 180:
06729 YY_RULE_SETUP
06730 ECHO;
06731         YY_BREAK
06732 case YY_STATE_EOF(INITIAL):
06733 case YY_STATE_EOF(include):
06734 case YY_STATE_EOF(line):
06735 case YY_STATE_EOF(directive):
06736 case YY_STATE_EOF(directive_name):
06737         yyterminate();
06738 
06739         case YY_END_OF_BUFFER:
06740                 {
06741                 /* Amount of text matched not including the EOB char. */
06742                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
06743 
06744                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
06745                 *yy_cp = (yy_hold_char);
06746                 YY_RESTORE_YY_MORE_OFFSET
06747 
06748                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
06749                         {
06750                         /* We're scanning a new file or input source.  It's
06751                          * possible that this happened because the user
06752                          * just pointed yyin at a new source and called
06753                          * yylex().  If so, then we have to assure
06754                          * consistency between YY_CURRENT_BUFFER and our
06755                          * globals.  Here is the right place to do so, because
06756                          * this is the first action (other than possibly a
06757                          * back-up) that will match for the new input source.
06758                          */
06759                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
06760                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
06761                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
06762                         }
06763 
06764                 /* Note that here we test for yy_c_buf_p "<=" to the position
06765                  * of the first EOB in the buffer, since yy_c_buf_p will
06766                  * already have been incremented past the NUL character
06767                  * (since all states make transitions on EOB to the
06768                  * end-of-buffer state).  Contrast this with the test
06769                  * in input().
06770                  */
06771                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
06772                         { /* This was really a NUL. */
06773                         yy_state_type yy_next_state;
06774 
06775                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
06776 
06777                         yy_current_state = yy_get_previous_state(  );
06778 
06779                         /* Okay, we're now positioned to make the NUL
06780                          * transition.  We couldn't have
06781                          * yy_get_previous_state() go ahead and do it
06782                          * for us because it doesn't know how to deal
06783                          * with the possibility of jamming (and we don't
06784                          * want to build jamming into it because then it
06785                          * will run more slowly).
06786                          */
06787 
06788                         yy_next_state = yy_try_NUL_trans( yy_current_state );
06789 
06790                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
06791 
06792                         if ( yy_next_state )
06793                                 {
06794                                 /* Consume the NUL. */
06795                                 yy_cp = ++(yy_c_buf_p);
06796                                 yy_current_state = yy_next_state;
06797                                 goto yy_match;
06798                                 }
06799 
06800                         else
06801                                 {
06802                                 yy_cp = (yy_c_buf_p);
06803                                 goto yy_find_action;
06804                                 }
06805                         }
06806 
06807                 else switch ( yy_get_next_buffer(  ) )
06808                         {
06809                         case EOB_ACT_END_OF_FILE:
06810                                 {
06811                                 (yy_did_buffer_switch_on_eof) = 0;
06812 
06813                                 if ( yywrap( ) )
06814                                         {
06815                                         /* Note: because we've taken care in
06816                                          * yy_get_next_buffer() to have set up
06817                                          * yytext, we can now set up
06818                                          * yy_c_buf_p so that if some total
06819                                          * hoser (like flex itself) wants to
06820                                          * call the scanner after we return the
06821                                          * YY_NULL, it'll still work - another
06822                                          * YY_NULL will get returned.
06823                                          */
06824                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
06825 
06826                                         yy_act = YY_STATE_EOF(YY_START);
06827                                         goto do_action;
06828                                         }
06829 
06830                                 else
06831                                         {
06832                                         if ( ! (yy_did_buffer_switch_on_eof) )
06833                                                 YY_NEW_FILE;
06834                                         }
06835                                 break;
06836                                 }
06837 
06838                         case EOB_ACT_CONTINUE_SCAN:
06839                                 (yy_c_buf_p) =
06840                                         (yytext_ptr) + yy_amount_of_matched_text;
06841 
06842                                 yy_current_state = yy_get_previous_state(  );
06843 
06844                                 yy_cp = (yy_c_buf_p);
06845                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
06846                                 goto yy_match;
06847 
06848                         case EOB_ACT_LAST_MATCH:
06849                                 (yy_c_buf_p) =
06850                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
06851 
06852                                 yy_current_state = yy_get_previous_state(  );
06853 
06854                                 yy_cp = (yy_c_buf_p);
06855                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
06856                                 goto yy_find_action;
06857                         }
06858                 break;
06859                 }
06860 
06861         default:
06862                 YY_FATAL_ERROR(
06863                         "fatal flex scanner internal error--no action found" );
06864         } /* end of action switch */
06865                 } /* end of scanning one token */
06866 } /* end of yylex */
06867 
06868 /* yy_get_next_buffer - try to read in a new buffer
06869  *
06870  * Returns a code representing an action:
06871  *      EOB_ACT_LAST_MATCH -
06872  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
06873  *      EOB_ACT_END_OF_FILE - end of file
06874  */
06875 static int yy_get_next_buffer (void)
06876 {
06877         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
06878         register char *source = (yytext_ptr);
06879         register int number_to_move, i;
06880         int ret_val;
06881 
06882         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
06883                 YY_FATAL_ERROR(
06884                 "fatal flex scanner internal error--end of buffer missed" );
06885 
06886         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
06887                 { /* Don't try to fill the buffer, so this is an EOF. */
06888                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
06889                         {
06890                         /* We matched a single character, the EOB, so
06891                          * treat this as a final EOF.
06892                          */
06893                         return EOB_ACT_END_OF_FILE;
06894                         }
06895 
06896                 else
06897                         {
06898                         /* We matched some text prior to the EOB, first
06899                          * process it.
06900                          */
06901                         return EOB_ACT_LAST_MATCH;
06902                         }
06903                 }
06904 
06905         /* Try to read more data. */
06906 
06907         /* First move last chars to start of buffer. */
06908         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
06909 
06910         for ( i = 0; i < number_to_move; ++i )
06911                 *(dest++) = *(source++);
06912 
06913         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
06914                 /* don't do the read, it's not guaranteed to return an EOF,
06915                  * just force an EOF
06916                  */
06917                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
06918 
06919         else
06920                 {
06921                         int num_to_read =
06922                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
06923 
06924                 while ( num_to_read <= 0 )
06925                         { /* Not enough room in the buffer - grow it. */
06926 
06927                         /* just a shorter name for the current buffer */
06928                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
06929 
06930                         int yy_c_buf_p_offset =
06931                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
06932 
06933                         if ( b->yy_is_our_buffer )
06934                                 {
06935                                 int new_size = b->yy_buf_size * 2;
06936 
06937                                 if ( new_size <= 0 )
06938                                         b->yy_buf_size += b->yy_buf_size / 8;
06939                                 else
06940                                         b->yy_buf_size *= 2;
06941 
06942                                 b->yy_ch_buf = (char *)
06943                                         /* Include room in for 2 EOB chars. */
06944                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
06945                                 }
06946                         else
06947                                 /* Can't grow it, we don't own it. */
06948                                 b->yy_ch_buf = 0;
06949 
06950                         if ( ! b->yy_ch_buf )
06951                                 YY_FATAL_ERROR(
06952                                 "fatal error - scanner input buffer overflow" );
06953 
06954                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
06955 
06956                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
06957                                                 number_to_move - 1;
06958 
06959                         }
06960 
06961                 if ( num_to_read > YY_READ_BUF_SIZE )
06962                         num_to_read = YY_READ_BUF_SIZE;
06963 
06964                 /* Read in more data. */
06965                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
06966                         (yy_n_chars), num_to_read );
06967 
06968                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
06969                 }
06970 
06971         if ( (yy_n_chars) == 0 )
06972                 {
06973                 if ( number_to_move == YY_MORE_ADJ )
06974                         {
06975                         ret_val = EOB_ACT_END_OF_FILE;
06976                         yyrestart(yyin  );
06977                         }
06978 
06979                 else
06980                         {
06981                         ret_val = EOB_ACT_LAST_MATCH;
06982                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
06983                                 YY_BUFFER_EOF_PENDING;
06984                         }
06985                 }
06986 
06987         else
06988                 ret_val = EOB_ACT_CONTINUE_SCAN;
06989 
06990         (yy_n_chars) += number_to_move;
06991         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
06992         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
06993 
06994         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
06995 
06996         return ret_val;
06997 }
06998 
06999 /* yy_get_previous_state - get the state just before the EOB char was reached */
07000 
07001     static yy_state_type yy_get_previous_state (void)
07002 {
07003         register yy_state_type yy_current_state;
07004         register char *yy_cp;
07005     
07006         yy_current_state = (yy_start);
07007 
07008         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
07009                 {
07010                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 99);
07011                 if ( yy_accept[yy_current_state] )
07012                         {
07013                         (yy_last_accepting_state) = yy_current_state;
07014                         (yy_last_accepting_cpos) = yy_cp;
07015                         }
07016                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
07017                         {
07018                         yy_current_state = (int) yy_def[yy_current_state];
07019                         if ( yy_current_state >= 1094 )
07020                                 yy_c = yy_meta[(unsigned int) yy_c];
07021                         }
07022                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
07023                 }
07024 
07025         return yy_current_state;
07026 }
07027 
07028 /* yy_try_NUL_trans - try to make a transition on the NUL character
07029  *
07030  * synopsis
07031  *      next_state = yy_try_NUL_trans( current_state );
07032  */
07033     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
07034 {
07035         register int yy_is_jam;
07036         register char *yy_cp = (yy_c_buf_p);
07037 
07038         register YY_CHAR yy_c = 99;
07039         if ( yy_accept[yy_current_state] )
07040                 {
07041                 (yy_last_accepting_state) = yy_current_state;
07042                 (yy_last_accepting_cpos) = yy_cp;
07043                 }
07044         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
07045                 {
07046                 yy_current_state = (int) yy_def[yy_current_state];
07047                 if ( yy_current_state >= 1094 )
07048                         yy_c = yy_meta[(unsigned int) yy_c];
07049                 }
07050         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
07051         yy_is_jam = (yy_current_state == 1093);
07052 
07053         return yy_is_jam ? 0 : yy_current_state;
07054 }
07055 
07056 #ifndef YY_NO_INPUT
07057 #ifdef __cplusplus
07058     static int yyinput (void)
07059 #else
07060     static int input  (void)
07061 #endif
07062 
07063 {
07064         int c;
07065     
07066         *(yy_c_buf_p) = (yy_hold_char);
07067 
07068         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
07069                 {
07070                 /* yy_c_buf_p now points to the character we want to return.
07071                  * If this occurs *before* the EOB characters, then it's a
07072                  * valid NUL; if not, then we've hit the end of the buffer.
07073                  */
07074                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
07075                         /* This was really a NUL. */
07076                         *(yy_c_buf_p) = '\0';
07077 
07078                 else
07079                         { /* need more input */
07080                         int offset = (yy_c_buf_p) - (yytext_ptr);
07081                         ++(yy_c_buf_p);
07082 
07083                         switch ( yy_get_next_buffer(  ) )
07084                                 {
07085                                 case EOB_ACT_LAST_MATCH:
07086                                         /* This happens because yy_g_n_b()
07087                                          * sees that we've accumulated a
07088                                          * token and flags that we need to
07089                                          * try matching the token before
07090                                          * proceeding.  But for input(),
07091                                          * there's no matching to consider.
07092                                          * So convert the EOB_ACT_LAST_MATCH
07093                                          * to EOB_ACT_END_OF_FILE.
07094                                          */
07095 
07096                                         /* Reset buffer status. */
07097                                         yyrestart(yyin );
07098 
07099                                         /*FALLTHROUGH*/
07100 
07101                                 case EOB_ACT_END_OF_FILE:
07102                                         {
07103                                         if ( yywrap( ) )
07104                                                 return EOF;
07105 
07106                                         if ( ! (yy_did_buffer_switch_on_eof) )
07107                                                 YY_NEW_FILE;
07108 #ifdef __cplusplus
07109                                         return yyinput();
07110 #else
07111                                         return input();
07112 #endif
07113                                         }
07114 
07115                                 case EOB_ACT_CONTINUE_SCAN:
07116                                         (yy_c_buf_p) = (yytext_ptr) + offset;
07117                                         break;
07118                                 }
07119                         }
07120                 }
07121 
07122         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
07123         *(yy_c_buf_p) = '\0';   /* preserve yytext */
07124         (yy_hold_char) = *++(yy_c_buf_p);
07125 
07126         return c;
07127 }
07128 #endif  /* ifndef YY_NO_INPUT */
07129 
07130 /** Immediately switch to a different input stream.
07131  * @param input_file A readable stream.
07132  * 
07133  * @note This function does not reset the start condition to @c INITIAL .
07134  */
07135     void yyrestart  (FILE * input_file )
07136 {
07137     
07138         if ( ! YY_CURRENT_BUFFER ){
07139         yyensure_buffer_stack ();
07140                 YY_CURRENT_BUFFER_LVALUE =
07141             yy_create_buffer(yyin,YY_BUF_SIZE );
07142         }
07143 
07144         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
07145         yy_load_buffer_state( );
07146 }
07147 
07148 /** Switch to a different input buffer.
07149  * @param new_buffer The new input buffer.
07150  * 
07151  */
07152     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
07153 {
07154     
07155         /* TODO. We should be able to replace this entire function body
07156          * with
07157          *              yypop_buffer_state();
07158          *              yypush_buffer_state(new_buffer);
07159      */
07160         yyensure_buffer_stack ();
07161         if ( YY_CURRENT_BUFFER == new_buffer )
07162                 return;
07163 
07164         if ( YY_CURRENT_BUFFER )
07165                 {
07166                 /* Flush out information for old buffer. */
07167                 *(yy_c_buf_p) = (yy_hold_char);
07168                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
07169                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
07170                 }
07171 
07172         YY_CURRENT_BUFFER_LVALUE = new_buffer;
07173         yy_load_buffer_state( );
07174 
07175         /* We don't actually know whether we did this switch during
07176          * EOF (yywrap()) processing, but the only time this flag
07177          * is looked at is after yywrap() is called, so it's safe
07178          * to go ahead and always set it.
07179          */
07180         (yy_did_buffer_switch_on_eof) = 1;
07181 }
07182 
07183 static void yy_load_buffer_state  (void)
07184 {
07185         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
07186         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
07187         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
07188         (yy_hold_char) = *(yy_c_buf_p);
07189 }
07190 
07191 /** Allocate and initialize an input buffer state.
07192  * @param file A readable stream.
07193  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
07194  * 
07195  * @return the allocated buffer state.
07196  */
07197     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
07198 {
07199         YY_BUFFER_STATE b;
07200     
07201         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
07202         if ( ! b )
07203                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
07204 
07205         b->yy_buf_size = size;
07206 
07207         /* yy_ch_buf has to be 2 characters longer than the size given because
07208          * we need to put in 2 end-of-buffer characters.
07209          */
07210         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
07211         if ( ! b->yy_ch_buf )
07212                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
07213 
07214         b->yy_is_our_buffer = 1;
07215 
07216         yy_init_buffer(b,file );
07217 
07218         return b;
07219 }
07220 
07221 /** Destroy the buffer.
07222  * @param b a buffer created with yy_create_buffer()
07223  * 
07224  */
07225     void yy_delete_buffer (YY_BUFFER_STATE  b )
07226 {
07227     
07228         if ( ! b )
07229                 return;
07230 
07231         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
07232                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
07233 
07234         if ( b->yy_is_our_buffer )
07235                 yyfree((void *) b->yy_ch_buf  );
07236 
07237         yyfree((void *) b  );
07238 }
07239 
07240 /* Initializes or reinitializes a buffer.
07241  * This function is sometimes called more than once on the same buffer,
07242  * such as during a yyrestart() or at EOF.
07243  */
07244     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
07245 
07246 {
07247 #if 0
07248         int oerrno = errno;
07249 #endif
07250     
07251         yy_flush_buffer(b );
07252 
07253         b->yy_input_file = file;
07254         b->yy_fill_buffer = 1;
07255 
07256     /* If b is the current buffer, then yy_init_buffer was _probably_
07257      * called from yyrestart() or through yy_get_next_buffer.
07258      * In that case, we don't want to reset the lineno or column.
07259      */
07260     if (b != YY_CURRENT_BUFFER){
07261         b->yy_bs_lineno = 1;
07262         b->yy_bs_column = 0;
07263     }
07264 
07265         b->yy_is_interactive = 1;
07266 
07267 #if 0
07268         errno = oerrno;
07269 #endif
07270 }
07271 
07272 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
07273  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
07274  * 
07275  */
07276     void yy_flush_buffer (YY_BUFFER_STATE  b )
07277 {
07278         if ( ! b )
07279                 return;
07280 
07281         b->yy_n_chars = 0;
07282 
07283         /* We always need two end-of-buffer characters.  The first causes
07284          * a transition to the end-of-buffer state.  The second causes
07285          * a jam in that state.
07286          */
07287         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
07288         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
07289 
07290         b->yy_buf_pos = &b->yy_ch_buf[0];
07291 
07292         b->yy_at_bol = 1;
07293         b->yy_buffer_status = YY_BUFFER_NEW;
07294 
07295         if ( b == YY_CURRENT_BUFFER )
07296                 yy_load_buffer_state( );
07297 }
07298 
07299 /** Pushes the new state onto the stack. The new state becomes
07300  *  the current state. This function will allocate the stack
07301  *  if necessary.
07302  *  @param new_buffer The new state.
07303  *  
07304  */
07305 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
07306 {
07307         if (new_buffer == NULL)
07308                 return;
07309 
07310         yyensure_buffer_stack();
07311 
07312         /* This block is copied from yy_switch_to_buffer. */
07313         if ( YY_CURRENT_BUFFER )
07314                 {
07315                 /* Flush out information for old buffer. */
07316                 *(yy_c_buf_p) = (yy_hold_char);
07317                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
07318                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
07319                 }
07320 
07321         /* Only push if top exists. Otherwise, replace top. */
07322         if (YY_CURRENT_BUFFER)
07323                 (yy_buffer_stack_top)++;
07324         YY_CURRENT_BUFFER_LVALUE = new_buffer;
07325 
07326         /* copied from yy_switch_to_buffer. */
07327         yy_load_buffer_state( );
07328         (yy_did_buffer_switch_on_eof) = 1;
07329 }
07330 
07331 /** Removes and deletes the top of the stack, if present.
07332  *  The next element becomes the new top.
07333  *  
07334  */
07335 void yypop_buffer_state (void)
07336 {
07337         if (!YY_CURRENT_BUFFER)
07338                 return;
07339 
07340         yy_delete_buffer(YY_CURRENT_BUFFER );
07341         YY_CURRENT_BUFFER_LVALUE = NULL;
07342         if ((yy_buffer_stack_top) > 0)
07343                 --(yy_buffer_stack_top);
07344 
07345         if (YY_CURRENT_BUFFER) {
07346                 yy_load_buffer_state( );
07347                 (yy_did_buffer_switch_on_eof) = 1;
07348         }
07349 }
07350 
07351 /* Allocates the stack if it does not exist.
07352  *  Guarantees space for at least one push.
07353  */
07354 static void yyensure_buffer_stack (void)
07355 {
07356         int num_to_alloc;
07357     
07358         if (!(yy_buffer_stack)) {
07359 
07360                 /* First allocation is just for 2 elements, since we don't know if this
07361                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
07362                  * immediate realloc on the next call.
07363          */
07364                 num_to_alloc = 1;
07365                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
07366                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
07367                                                                 );
07368                 
07369                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
07370                                 
07371                 (yy_buffer_stack_max) = num_to_alloc;
07372                 (yy_buffer_stack_top) = 0;
07373                 return;
07374         }
07375 
07376         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
07377 
07378                 /* Increase the buffer to prepare for a possible push. */
07379                 int grow_size = 8 /* arbitrary grow size */;
07380 
07381                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
07382                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
07383                                                                 ((yy_buffer_stack),
07384                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
07385                                                                 );
07386 
07387                 /* zero only the new slots.*/
07388                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
07389                 (yy_buffer_stack_max) = num_to_alloc;
07390         }
07391 }
07392 
07393 #ifndef YY_EXIT_FAILURE
07394 #define YY_EXIT_FAILURE 2
07395 #endif
07396 
07397 static void yy_fatal_error (yyconst char* msg )
07398 {
07399         /* (void) fprintf( stderr, "%s\n", msg ); */
07400         (void)msg;
07401         exit( YY_EXIT_FAILURE );
07402 }
07403 
07404 /* Redefine yyless() so it works in section 3 code. */
07405 
07406 #undef yyless
07407 #define yyless(n) \
07408         do \
07409                 { \
07410                 /* Undo effects of setting up yytext. */ \
07411         int yyless_macro_arg = (n); \
07412         YY_LESS_LINENO(yyless_macro_arg);\
07413                 yytext[yyleng] = (yy_hold_char); \
07414                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
07415                 (yy_hold_char) = *(yy_c_buf_p); \
07416                 *(yy_c_buf_p) = '\0'; \
07417                 yyleng = yyless_macro_arg; \
07418                 } \
07419         while ( 0 )
07420 
07421 /* Accessor  methods (get/set functions) to struct members. */
07422 
07423 /** Get the current line number.
07424  * 
07425  */
07426 int yyget_lineno  (void)
07427 {
07428         
07429     return yylineno;
07430 }
07431 
07432 /** Get the input stream.
07433  * 
07434  */
07435 FILE *yyget_in  (void)
07436 {
07437         return yyin;
07438 }
07439 
07440 /** Get the output stream.
07441  * 
07442  */
07443 FILE *yyget_out  (void)
07444 {
07445         return yyout;
07446 }
07447 
07448 /** Get the length of the current token.
07449  * 
07450  */
07451 int yyget_leng  (void)
07452 {
07453         return yyleng;
07454 }
07455 
07456 /** Get the current token.
07457  * 
07458  */
07459 
07460 char *yyget_text  (void)
07461 {
07462         return yytext;
07463 }
07464 
07465 /** Set the current line number.
07466  * @param line_number
07467  * 
07468  */
07469 void yyset_lineno (int  line_number )
07470 {
07471     
07472     yylineno = line_number;
07473 }
07474 
07475 /** Set the input stream. This does not discard the current
07476  * input buffer.
07477  * @param in_str A readable stream.
07478  * 
07479  * @see yy_switch_to_buffer
07480  */
07481 void yyset_in (FILE *  in_str )
07482 {
07483         yyin = in_str ;
07484 }
07485 
07486 void yyset_out (FILE *  out_str )
07487 {
07488         yyout = out_str ;
07489 }
07490 
07491 int yyget_debug  (void)
07492 {
07493         return yy_flex_debug;
07494 }
07495 
07496 void yyset_debug (int  bdebug )
07497 {
07498         yy_flex_debug = bdebug ;
07499 }
07500 
07501 static int yy_init_globals (void)
07502 {
07503         /* Initialization is the same as for the non-reentrant scanner.
07504      * This function is called from yylex_destroy(), so don't allocate here.
07505      */
07506 
07507     (yy_buffer_stack) = 0;
07508     (yy_buffer_stack_top) = 0;
07509     (yy_buffer_stack_max) = 0;
07510     (yy_c_buf_p) = (char *) 0;
07511     (yy_init) = 0;
07512     (yy_start) = 0;
07513 
07514 /* Defined in main.c */
07515 #ifdef YY_STDINIT
07516     yyin = stdin;
07517     yyout = stdout;
07518 #else
07519     yyin = (FILE *) 0;
07520     yyout = (FILE *) 0;
07521 #endif
07522 
07523     /* For future reference: Set errno on error, since we are called by
07524      * yylex_init()
07525      */
07526     return 0;
07527 }
07528 
07529 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
07530 int yylex_destroy  (void)
07531 {
07532     
07533     /* Pop the buffer stack, destroying each element. */
07534         while(YY_CURRENT_BUFFER){
07535                 yy_delete_buffer(YY_CURRENT_BUFFER  );
07536                 YY_CURRENT_BUFFER_LVALUE = NULL;
07537                 yypop_buffer_state();
07538         }
07539 
07540         /* Destroy the stack itself. */
07541         yyfree((yy_buffer_stack) );
07542         (yy_buffer_stack) = NULL;
07543 
07544     /* Reset the globals. This is important in a non-reentrant scanner so the next time
07545      * yylex() is called, initialization will occur. */
07546     yy_init_globals( );
07547 
07548     return 0;
07549 }
07550 
07551 /*
07552  * Internal utility routines.
07553  */
07554 
07555 #ifndef yytext_ptr
07556 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
07557 {
07558         register int i;
07559         for ( i = 0; i < n; ++i )
07560                 s1[i] = s2[i];
07561 }
07562 #endif
07563 
07564 #ifdef YY_NEED_STRLEN
07565 static int yy_flex_strlen (yyconst char * s )
07566 {
07567         register int n;
07568         for ( n = 0; s[n]; ++n )
07569                 ;
07570 
07571         return n;
07572 }
07573 #endif
07574 
07575 void *yyalloc (yy_size_t  size )
07576 {
07577         return (void *) malloc( size );
07578 }
07579 
07580 void *yyrealloc  (void * ptr, yy_size_t  size )
07581 {
07582         /* The cast to (char *) in the following accommodates both
07583          * implementations that use char* generic pointers, and those
07584          * that use void* generic pointers.  It works with the latter
07585          * because both ANSI C and C++ allow castless assignment from
07586          * any pointer type to void*, and deal with argument conversions
07587          * as though doing an assignment.
07588          */
07589         return (void *) realloc( (char *) ptr, size );
07590 }
07591 
07592 void yyfree (void * ptr )
07593 {
07594         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
07595 }
07596 
07597 #define YYTABLES_NAME "yytables"
07598 
07599 /* vim: set ft=lex : */
07600 

Generated on Mon Feb 12 18:23:10 2007 for lestes by doxygen 1.5.1-20070107