New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
fortran.yy.c in branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/EXTERNAL/AGRIF/LIB – NEMO

source: branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/EXTERNAL/AGRIF/LIB/fortran.yy.c @ 3289

Last change on this file since 3289 was 3289, checked in by rblod, 12 years ago

Fix agrif for 3_4_beta see ticket #921

  • Property svn:keywords set to Id
File size: 208.8 KB
Line 
1#line 2 "fortran.yy.c"
2
3#line 4 "fortran.yy.c"
4
5#define  YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9#define yy_create_buffer fortran_create_buffer
10#define yy_delete_buffer fortran_delete_buffer
11#define yy_flex_debug fortran_flex_debug
12#define yy_init_buffer fortran_init_buffer
13#define yy_flush_buffer fortran_flush_buffer
14#define yy_load_buffer_state fortran_load_buffer_state
15#define yy_switch_to_buffer fortran_switch_to_buffer
16#define yyin fortranin
17#define yyleng fortranleng
18#define yylex fortranlex
19#define yylineno fortranlineno
20#define yyout fortranout
21#define yyrestart fortranrestart
22#define yytext fortrantext
23#define yywrap fortranwrap
24#define yyalloc fortranalloc
25#define yyrealloc fortranrealloc
26#define yyfree fortranfree
27
28#define FLEX_SCANNER
29#define YY_FLEX_MAJOR_VERSION 2
30#define YY_FLEX_MINOR_VERSION 5
31#define YY_FLEX_SUBMINOR_VERSION 35
32#if YY_FLEX_SUBMINOR_VERSION > 0
33#define FLEX_BETA
34#endif
35
36/* First, we deal with  platform-specific or compiler-specific issues. */
37
38/* begin standard C headers. */
39#include <stdio.h>
40#include <string.h>
41#include <errno.h>
42#include <stdlib.h>
43
44/* end standard C headers. */
45
46/* flex integer type definitions */
47
48#ifndef FLEXINT_H
49#define FLEXINT_H
50
51/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52
53#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54
55/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 * if you want the limit (max/min) macros for int types.
57 */
58#ifndef __STDC_LIMIT_MACROS
59#define __STDC_LIMIT_MACROS 1
60#endif
61
62#include <inttypes.h>
63typedef int8_t flex_int8_t;
64typedef uint8_t flex_uint8_t;
65typedef int16_t flex_int16_t;
66typedef uint16_t flex_uint16_t;
67typedef int32_t flex_int32_t;
68typedef uint32_t flex_uint32_t;
69#else
70typedef signed char flex_int8_t;
71typedef short int flex_int16_t;
72typedef int flex_int32_t;
73typedef unsigned char flex_uint8_t; 
74typedef unsigned short int flex_uint16_t;
75typedef unsigned int flex_uint32_t;
76#endif /* ! C99 */
77
78/* Limits of integral types. */
79#ifndef INT8_MIN
80#define INT8_MIN               (-128)
81#endif
82#ifndef INT16_MIN
83#define INT16_MIN              (-32767-1)
84#endif
85#ifndef INT32_MIN
86#define INT32_MIN              (-2147483647-1)
87#endif
88#ifndef INT8_MAX
89#define INT8_MAX               (127)
90#endif
91#ifndef INT16_MAX
92#define INT16_MAX              (32767)
93#endif
94#ifndef INT32_MAX
95#define INT32_MAX              (2147483647)
96#endif
97#ifndef UINT8_MAX
98#define UINT8_MAX              (255U)
99#endif
100#ifndef UINT16_MAX
101#define UINT16_MAX             (65535U)
102#endif
103#ifndef UINT32_MAX
104#define UINT32_MAX             (4294967295U)
105#endif
106
107#endif /* ! FLEXINT_H */
108
109#ifdef __cplusplus
110
111/* The "const" storage-class-modifier is valid. */
112#define YY_USE_CONST
113
114#else /* ! __cplusplus */
115
116/* C99 requires __STDC__ to be defined as 1. */
117#if defined (__STDC__)
118
119#define YY_USE_CONST
120
121#endif   /* defined (__STDC__) */
122#endif   /* ! __cplusplus */
123
124#ifdef YY_USE_CONST
125#define yyconst const
126#else
127#define yyconst
128#endif
129
130/* Returned upon end-of-file. */
131#define YY_NULL 0
132
133/* Promotes a possibly negative, possibly signed char to an unsigned
134 * integer for use as an array index.  If the signed char is negative,
135 * we want to instead treat it as an 8-bit unsigned char, hence the
136 * double cast.
137 */
138#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140/* Enter a start condition.  This macro really ought to take a parameter,
141 * but we do it the disgusting crufty way forced on us by the ()-less
142 * definition of BEGIN.
143 */
144#define BEGIN (yy_start) = 1 + 2 *
145
146/* Translate the current start state into a value that can be later handed
147 * to BEGIN to return to the state.  The YYSTATE alias is for lex
148 * compatibility.
149 */
150#define YY_START (((yy_start) - 1) / 2)
151#define YYSTATE YY_START
152
153/* Action number for EOF rule of a given start state. */
154#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156/* Special action meaning "start processing a new file". */
157#define YY_NEW_FILE fortranrestart(fortranin  )
158
159#define YY_END_OF_BUFFER_CHAR 0
160
161/* Size of default input buffer. */
162#ifndef YY_BUF_SIZE
163#define YY_BUF_SIZE 16384
164#endif
165
166/* The state buf must be large enough to hold one state per character in the main buffer.
167 */
168#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
169
170#ifndef YY_TYPEDEF_YY_BUFFER_STATE
171#define YY_TYPEDEF_YY_BUFFER_STATE
172typedef struct yy_buffer_state *YY_BUFFER_STATE;
173#endif
174
175#ifndef YY_TYPEDEF_YY_SIZE_T
176#define YY_TYPEDEF_YY_SIZE_T
177typedef size_t yy_size_t;
178#endif
179
180extern yy_size_t fortranleng;
181
182extern FILE *fortranin, *fortranout;
183
184#define EOB_ACT_CONTINUE_SCAN 0
185#define EOB_ACT_END_OF_FILE 1
186#define EOB_ACT_LAST_MATCH 2
187
188    #define YY_LESS_LINENO(n)
189   
190/* Return all but the first "n" matched characters back to the input stream. */
191#define yyless(n) \
192   do \
193      { \
194      /* Undo effects of setting up fortrantext. */ \
195        int yyless_macro_arg = (n); \
196        YY_LESS_LINENO(yyless_macro_arg);\
197      *yy_cp = (yy_hold_char); \
198      YY_RESTORE_YY_MORE_OFFSET \
199      (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
200      YY_DO_BEFORE_ACTION; /* set up fortrantext again */ \
201      } \
202   while ( 0 )
203
204#define unput(c) yyunput( c, (yytext_ptr)  )
205
206#ifndef YY_STRUCT_YY_BUFFER_STATE
207#define YY_STRUCT_YY_BUFFER_STATE
208struct yy_buffer_state
209   {
210   FILE *yy_input_file;
211
212   char *yy_ch_buf;     /* input buffer */
213   char *yy_buf_pos;    /* current position in input buffer */
214
215   /* Size of input buffer in bytes, not including room for EOB
216    * characters.
217    */
218   yy_size_t yy_buf_size;
219
220   /* Number of characters read into yy_ch_buf, not including EOB
221    * characters.
222    */
223   yy_size_t yy_n_chars;
224
225   /* Whether we "own" the buffer - i.e., we know we created it,
226    * and can realloc() it to grow it, and should free() it to
227    * delete it.
228    */
229   int yy_is_our_buffer;
230
231   /* Whether this is an "interactive" input source; if so, and
232    * if we're using stdio for input, then we want to use getc()
233    * instead of fread(), to make sure we stop fetching input after
234    * each newline.
235    */
236   int yy_is_interactive;
237
238   /* Whether we're considered to be at the beginning of a line.
239    * If so, '^' rules will be active on the next match, otherwise
240    * not.
241    */
242   int yy_at_bol;
243
244    int yy_bs_lineno; /**< The line count. */
245    int yy_bs_column; /**< The column count. */
246   
247   /* Whether to try to fill the input buffer when we reach the
248    * end of it.
249    */
250   int yy_fill_buffer;
251
252   int yy_buffer_status;
253
254#define YY_BUFFER_NEW 0
255#define YY_BUFFER_NORMAL 1
256   /* When an EOF's been seen but there's still some text to process
257    * then we mark the buffer as YY_EOF_PENDING, to indicate that we
258    * shouldn't try reading from the input source any more.  We might
259    * still have a bunch of tokens to match, though, because of
260    * possible backing-up.
261    *
262    * When we actually see the EOF, we change the status to "new"
263    * (via fortranrestart()), so that the user can continue scanning by
264    * just pointing fortranin at a new input file.
265    */
266#define YY_BUFFER_EOF_PENDING 2
267
268   };
269#endif /* !YY_STRUCT_YY_BUFFER_STATE */
270
271/* Stack of input buffers. */
272static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
273static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
274static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
275
276/* We provide macros for accessing buffer states in case in the
277 * future we want to put the buffer states in a more general
278 * "scanner state".
279 *
280 * Returns the top of the stack, or NULL.
281 */
282#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
283                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
284                          : NULL)
285
286/* Same as previous macro, but useful when we know that the buffer stack is not
287 * NULL or when we need an lvalue. For internal use only.
288 */
289#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
290
291/* yy_hold_char holds the character lost when fortrantext is formed. */
292static char yy_hold_char;
293static yy_size_t yy_n_chars;     /* number of characters read into yy_ch_buf */
294yy_size_t fortranleng;
295
296/* Points to current character in buffer. */
297static char *yy_c_buf_p = (char *) 0;
298static int yy_init = 0;    /* whether we need to initialize */
299static int yy_start = 0;   /* start state number */
300
301/* Flag which is used to allow fortranwrap()'s to do buffer switches
302 * instead of setting up a fresh fortranin.  A bit of a hack ...
303 */
304static int yy_did_buffer_switch_on_eof;
305
306void fortranrestart (FILE *input_file  );
307void fortran_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
308YY_BUFFER_STATE fortran_create_buffer (FILE *file,int size  );
309void fortran_delete_buffer (YY_BUFFER_STATE b  );
310void fortran_flush_buffer (YY_BUFFER_STATE b  );
311void fortranpush_buffer_state (YY_BUFFER_STATE new_buffer  );
312void fortranpop_buffer_state (void );
313
314static void fortranensure_buffer_stack (void );
315static void fortran_load_buffer_state (void );
316static void fortran_init_buffer (YY_BUFFER_STATE b,FILE *file  );
317
318#define YY_FLUSH_BUFFER fortran_flush_buffer(YY_CURRENT_BUFFER )
319
320YY_BUFFER_STATE fortran_scan_buffer (char *base,yy_size_t size  );
321YY_BUFFER_STATE fortran_scan_string (yyconst char *yy_str  );
322YY_BUFFER_STATE fortran_scan_bytes (yyconst char *bytes,yy_size_t len  );
323
324void *fortranalloc (yy_size_t  );
325void *fortranrealloc (void *,yy_size_t  );
326void fortranfree (void *  );
327
328#define yy_new_buffer fortran_create_buffer
329
330#define yy_set_interactive(is_interactive) \
331   { \
332   if ( ! YY_CURRENT_BUFFER ){ \
333        fortranensure_buffer_stack (); \
334      YY_CURRENT_BUFFER_LVALUE =    \
335            fortran_create_buffer(fortranin,YY_BUF_SIZE ); \
336   } \
337   YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
338   }
339
340#define yy_set_bol(at_bol) \
341   { \
342   if ( ! YY_CURRENT_BUFFER ){\
343        fortranensure_buffer_stack (); \
344      YY_CURRENT_BUFFER_LVALUE =    \
345            fortran_create_buffer(fortranin,YY_BUF_SIZE ); \
346   } \
347   YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
348   }
349
350#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
351
352/* Begin user sect3 */
353
354typedef unsigned char YY_CHAR;
355
356FILE *fortranin = (FILE *) 0, *fortranout = (FILE *) 0;
357
358typedef int yy_state_type;
359
360extern int fortranlineno;
361
362int fortranlineno = 1;
363
364extern char *fortrantext;
365#define yytext_ptr fortrantext
366
367static yy_state_type yy_get_previous_state (void );
368static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
369static int yy_get_next_buffer (void );
370static void yy_fatal_error (yyconst char msg[]  );
371
372/* Done after the current pattern has been matched and before the
373 * corresponding action - sets up fortrantext.
374 */
375#define YY_DO_BEFORE_ACTION \
376   (yytext_ptr) = yy_bp; \
377   fortranleng = (size_t) (yy_cp - yy_bp); \
378   (yy_hold_char) = *yy_cp; \
379   *yy_cp = '\0'; \
380   (yy_c_buf_p) = yy_cp;
381
382#define YY_NUM_RULES 176
383#define YY_END_OF_BUFFER 177
384/* This struct is not used in this scanner,
385   but its presence is necessary. */
386struct yy_trans_info
387   {
388   flex_int32_t yy_verify;
389   flex_int32_t yy_nxt;
390   };
391static yyconst flex_int16_t yy_accept[1162] =
392    {   0,
393        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
394        0,    0,  177,  176,  165,  161,  164,  175,  152,  151,
395      155,  167,  152,  154,  154,  154,  157,  153,  137,  150,
396      156,  159,  158,  160,  145,  145,  145,  145,  145,  145,
397      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
398      145,  145,  165,  161,  164,  175,  150,  145,  145,  145,
399      145,  145,  145,  176,  176,  173,  176,  176,  176,  161,
400      161,  154,  145,    0,    0,  165,    0,  166,    0,  164,
401      175,  175,  175,    0,  141,    0,    0,  167,  167,  167,
402      167,    0,    0,    0,  140,    0,    0,  132,   26,    0,
403
404      146,    0,    0,    0,    0,    0,    0,    0,  133,    0,
405      150,   25,    0,  145,  145,  145,  145,  145,  145,  145,
406      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
407       43,  145,  145,  145,  145,  145,  145,  145,  145,  145,
408      145,  145,  145,  145,   85,  145,  145,  145,  145,  145,
409      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
410      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
411      145,  145,  165,  163,    0,  163,    0,    0,    0,    0,
412        0,    0,  166,  162,  163,    0,  175,  174,  175,  175,
413      175,  163,  150,    4,  145,  145,  145,  145,   85,  145,
414
415      145,    0,  173,    0,    0,    0,    0,    0,    0,    0,
416      169,   26,    0,    0,    4,    0,  145,  145,  145,  145,
417      145,  145,    0,    0,    0,  175,  175,    0,    0,  167,
418      167,    0,    0,    0,    0,  139,    0,    0,    0,    0,
419        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420        0,  149,  146,    0,    0,    0,  142,    0,  145,  145,
421      145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
422      145,  115,  145,  145,  145,    0,  145,  145,  145,  145,
423      145,   16,  145,  145,  145,  114,  145,  145,  145,  145,
424      145,    0,  145,    0,   96,  145,  145,  145,  145,  145,
425
426      121,  145,  145,  126,  145,  145,  145,  145,  145,  145,
427      145,   89,  145,  145,  145,  145,  145,  145,  145,  145,
428      145,  145,  145,  145,  145,  145,  118,  145,  145,  145,
429      145,  145,  122,  145,  145,  145,  145,  145,  165,  163,
430        0,  166,    0,    0,    0,    0,    0,    0,    0,    0,
431      163,    0,  163,  175,  175,  175,  150,    4,    4,    4,
432        4,  145,  145,  145,  145,  145,  145,  145,    0,    0,
433        0,    0,  170,    0,    0,  169,    0,    0,    4,    4,
434        4,    4,  142,    0,  145,  145,    0,  145,  145,  145,
435      145,    0,    0,    0,  175,  175,    0,    0,  167,  167,
436
437        0,    0,    0,    0,  147,    0,  146,    0,  148,    0,
438       28,    0,   30,   29,   32,   31,   34,    0,    0,   36,
439        0,  146,    0,  147,    0,  146,    0,  148,    0,  142,
440        0,  125,  117,  145,  145,  120,  123,  145,  145,   22,
441      145,  145,  145,  145,  145,  116,  145,  145,  145,    0,
442      145,  145,  145,   94,    0,  108,  145,  145,  145,  145,
443      145,  145,  145,  145,  145,    0,  109,  145,  145,  145,
444      145,  145,  145,  145,    0,   88,  145,  145,  145,  145,
445      145,  145,  145,    0,   98,  145,  145,    0,  111,  145,
446      145,  145,  145,  112,   21,  145,   60,   74,  145,  145,
447
448      145,  145,  145,  145,  145,  145,   79,   44,  145,  145,
449      145,  145,   69,  145,  127,  119,  145,   72,   54,  145,
450        0,   97,   99,  145,   92,  101,  145,  145,  165,  163,
451      166,    0,    0,    0,    0,    0,    0,    0,  163,    0,
452      163,  175,  175,  175,  150,    4,    4,  145,  145,  145,
453      145,  145,  145,   18,    0,    0,    0,    0,    0,  170,
454        0,    0,    4,    4,    0,  142,    0,  145,  145,  145,
455      145,    0,    0,    0,  175,  175,    0,    0,  167,  167,
456        0,    0,   38,   27,    0,   35,   37,    0,  142,    0,
457      142,  145,  145,  145,  145,  145,   49,  145,  145,  145,
458
459      124,  145,  145,    0,  145,  145,  145,    0,  145,  145,
460        0,    0,    0,    0,    0,    0,    0,    0,   42,  145,
461       95,  145,  145,  145,  145,  145,  145,  145,  145,   76,
462       76,   76,   76,  145,    0,  107,  113,  145,  145,   88,
463      145,  145,   90,  145,  145,  145,  145,  145,  145,  145,
464      145,  145,  145,  145,  145,  145,  145,   52,  145,   77,
465      145,  145,  145,    0,  145,  145,  145,  145,  145,  102,
466      145,  145,   55,   81,  165,  163,  166,    0,    0,    0,
467        0,    0,    0,  163,    0,  163,  175,  175,  175,  150,
468        4,    3,    0,  104,  145,  145,   86,  145,  145,   70,
469
470       71,   70,    0,    0,    0,    0,    4,    3,    0,  142,
471        0,  142,  145,   49,  145,  124,    0,   23,    0,  175,
472       23,    0,   23,   23,  167,   23,    0,   23,   23,   23,
473       33,  145,  145,   23,   23,   23,  145,  145,   63,  145,
474      145,  145,  145,    0,  145,  145,  138,    0,    0,   93,
475      145,   42,    0,   95,    0,    0,    0,    0,    0,    0,
476      145,  145,  145,  145,  145,  145,  145,  145,    0,  110,
477      145,  145,  145,  145,  145,  145,  145,   66,  145,  145,
478      129,  100,  128,  130,   39,  145,  145,  145,  145,  145,
479      145,  145,   83,    0,  145,   11,   75,   19,  145,  145,
480
481       82,  165,  163,  166,    0,    0,    0,    0,  163,  175,
482      175,   23,    4,    3,    3,  145,  145,  145,  145,    0,
483        0,    0,   23,    4,    3,    3,  145,   23,   23,   23,
484       24,    0,  168,   24,   24,   24,   24,   24,   24,   24,
485       24,   24,   24,  145,  145,  145,   58,  145,  145,  145,
486        0,    0,  145,  145,   40,   93,    0,  145,    0,    0,
487        0,    0,    0,    0,    0,  145,  145,  145,  145,  145,
488       73,  145,  145,  145,    0,    0,  145,  145,   17,   50,
489       45,  145,   46,    0,  145,  145,    9,  145,  145,   67,
490       84,    7,    0,    0,  145,    0,  145,  145,    0,    0,
491
492        0,    0,  175,   24,    4,  145,  145,   64,  145,    0,
493        0,   24,    4,   24,   24,   24,  145,    8,  145,  145,
494       87,  145,  145,   40,    0,    0,  145,  145,    0,  145,
495        0,    0,    0,    0,    0,   73,    0,  145,  145,  145,
496      145,  145,   56,  145,   65,    0,    0,    0,    0,  134,
497       12,   20,  145,    0,  145,   80,   68,  145,    0,  145,
498        0,  145,  145,    0,    0,    0,  175,    4,  145,   59,
499      145,    0,    0,    4,  145,  131,   47,  145,   51,    0,
500        0,  145,  145,    0,   57,    0,    0,    0,    0,    0,
501       56,  145,   41,  145,  106,  145,  145,    0,    0,    0,
502
503        0,    0,  134,   91,    0,  145,   61,    0,   62,    0,
504      145,  145,    0,   59,    0,  175,    4,    4,  145,  143,
505        0,    0,    4,    4,  145,   10,    0,    0,  145,  145,
506       57,    0,   41,    0,  106,    0,  145,   14,  145,  145,
507        0,    0,    0,  145,    0,    0,  103,    6,    0,  143,
508      175,    4,    4,  145,    0,    0,    4,    4,   48,    0,
509        0,  145,  145,    0,   14,    0,   15,  145,   53,    0,
510        0,    0,  145,    0,  103,    0,  175,    4,    2,  105,
511        0,    0,    4,    2,    0,    0,  145,  145,   15,    0,
512      145,    0,    0,    0,  145,    0,  105,  175,    4,    0,
513
514        0,    4,    0,    0,  136,  145,    0,   13,    0,    0,
515        0,  145,    0,  175,    1,    0,    0,  144,    1,  136,
516        0,  145,   13,    0,    0,    0,    0,  145,    0,  175,
517        0,    0,  135,    0,    0,    0,   78,    5,  175,    0,
518      135,   78,  175,    0,  175,    0,  175,    0,  175,    0,
519      175,    0,  175,  171,    0,    0,    0,    0,    0,  172,
520        0
521    } ;
522
523static yyconst flex_int32_t yy_ec[256] =
524    {   0,
525        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
526        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
527        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
528        1,    4,    5,    6,    7,    8,    9,   10,   11,   12,
529       13,   14,   15,   16,   17,   18,   19,   20,   21,   22,
530       23,   24,   25,   26,   27,   28,   29,   30,   31,   32,
531       33,   34,    1,    1,   35,   36,   37,   38,   39,   40,
532       41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
533       51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
534       61,    1,   62,    1,   63,    1,   64,   65,   66,   67,
535
536       68,   69,   70,   71,   72,   44,   73,   74,   75,   76,
537       77,   78,   79,   80,   81,   82,   83,   84,   85,   86,
538       87,   88,   89,   89,   89,    1,    1,    1,    1,    1,
539        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
540        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
541        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
542        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
543        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
544        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
545        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
546
547        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
548        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
549        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
550        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
551        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
552        1,    1,    1,    1,    1
553    } ;
554
555static yyconst flex_int32_t yy_meta[90] =
556    {   0,
557        1,    2,    3,    2,    1,    4,    1,    1,    1,    1,
558        1,    1,    1,    1,    1,    1,    1,    5,    1,    6,
559        6,    6,    6,    6,    6,    6,    6,    6,    6,    1,
560        1,    1,    1,    1,    7,    8,    8,    9,    9,    5,
561       10,   11,    8,    8,    8,   10,   10,   10,    7,    8,
562        9,   10,   10,    5,   10,    8,   12,    8,    8,    8,
563        1,    1,    8,    7,    8,    8,    9,    9,    5,   10,
564       11,    8,    8,   10,   10,   10,    7,    8,    9,   10,
565       10,    5,   10,    8,   12,    8,    8,    8,    4
566    } ;
567
568static yyconst flex_int16_t yy_base[1215] =
569    {   0,
570        0,   88,    0,    0,    0,    0, 1215,   93, 1196,   91,
571        0,    0, 1179,   64,   97,  117,  132,   87,  124,   98,
572       99,  142,  173,  154,  108,  135,  134,  254,  172,  179,
573      175,  178,  219,  180,  323,  388,  384,  318,  386,  319,
574      186,  128,  250,  256,  392,  404,  438,  428,  204,  455,
575      432,  465,  544,  120,  537,  548,  627,  624,  622,  544,
576      644,  658,  251, 9159, 1175, 9159,  267,   99,  162,  569,
577      572,  620,  745,  164,  107,  262,  307,  335,  376,  522,
578        0,  167,  157, 1162, 9159,  278,  321, 1160, 1118,  372,
579      304,  532,  593,  567, 9159,  633,  832, 9159, 9159,  911,
580
581      798,  318,  319,  450,  799,  552,  320,  354, 9159,  978,
582      834, 9159,  865,  860,  862,  866,  914,  863,  973,  980,
583      974, 1013, 1024, 1045,  869, 1049, 1075, 1095, 1098, 1101,
584     1182, 1177, 1161, 1181, 1214, 1212, 1237, 1239, 1235, 1270,
585     1290, 1316, 1325, 1293, 1346, 1323, 1366, 1368, 1391, 1399,
586     1403, 1429, 1430, 1455, 1452, 1478, 1498, 1482, 1523, 1521,
587     1554, 1548, 1579, 1586, 1606, 1629, 1649, 1675, 1681, 1698,
588     1707, 1729,  871, 1114, 1109,  140, 1023,  187,  372,  403,
589      553,  401, 1095,  565, 1792, 1818, 1083, 9159,  643,  669,
590      589, 1844, 1870, 1580, 1865, 1867, 1868, 1905, 1926, 1922,
591
592     1925, 1078, 9159,  837,  437,  677,  249,  660, 1072,  712,
593     9159, 1062,  844,  625, 1874, 1993, 2022, 1042,  864,  473,
594      904,  621,  506,  651,  721,  798,  791,  890,  912,  936,
595      907,  725, 1029, 1143,  729, 9159, 1114, 1179, 2097, 2112,
596     2127,  229,  937, 1033, 1012, 1006,  994,  943,  883,  974,
597      891, 9159, 1476, 2142, 2157, 2172, 2182, 2202, 2178, 2180,
598     2200, 2203, 2223, 2243, 2246, 2244, 2276, 2269, 2299, 2307,
599     2301, 2324, 2344, 2351, 2377,  901, 1018, 2374, 2394, 2397,
600     2414, 2495, 2434, 2440, 2465, 2472, 2518, 2521, 2515, 2548,
601     2556, 1138, 2564,  968, 9159, 2581, 2597, 2604, 2627, 2649,
602
603     2650, 2690, 2693, 2686, 2726, 2738, 2746, 2747, 2763, 2783,
604     2799, 2800, 2803, 2820, 2840, 2843, 2870, 2891, 2895, 2903,
605     2926, 2928, 2935, 2961, 2981, 2958, 2984, 2978, 3004, 3011,
606     3027, 3052, 3048, 3059, 3085, 3068, 3105, 3111,  196,  203,
607      976,  383,  974,  988, 1018, 1014, 1025, 1029, 1042,  253,
608     3174, 3200, 3226, 1067, 1182, 1172, 3252,    0,  418,  288,
609     1096, 3228, 3229, 3231, 3251, 3267, 3287, 3290, 1188, 1566,
610      973,  740, 9159,  938,  866, 9159, 1268, 1178,  931, 1170,
611     1241, 1299, 3354, 3381,    0,  903, 3408, 1148, 1116, 1177,
612     1322, 1145,  410, 1415, 1235,  460, 1292, 1218, 1323, 1022,
613
614      963, 1520, 1662, 3418, 3430, 3440, 3450, 3460, 3470,  889,
615     9159,  865, 9159, 9159, 9159, 9159, 9159, 1239,  853, 9159,
616      846, 2472, 3480, 3490, 3500, 3510, 3520, 3530, 3545, 3555,
617     3575, 9159, 3289, 3553, 3573, 3551, 3574, 3590, 3596, 3612,
618     3628, 3634, 3635, 3655, 3671, 3651, 3687, 3688, 3696,  459,
619     3728, 3736, 3740, 3784, 3868, 9159, 3780, 3776, 3807, 3811,
620     3850, 3912, 3872, 3920, 3921, 1351, 9159, 3828, 4005, 4060,
621     4095, 3904, 4063, 4069, 1258, 4096, 4104, 4126, 4134, 4156,
622     4165, 4196, 4205, 1409, 9159, 4208, 4197, 1476, 9159, 4235,
623     4241, 4257, 4261, 4273, 4284, 4293, 4305, 4309, 4332, 4336,
624
625     4353, 4316, 4359, 4362, 4384, 4407, 4385, 4416, 4423, 4448,
626     4455, 4456, 4486, 4494, 4488, 4511, 4527, 4519, 4531, 4554,
627     1498, 9159, 4552, 4575, 4584, 4587, 4607, 4610,  493,  529,
628      551,  476, 1287,  816,  953, 1119, 1293,  841, 4678, 4704,
629     4730, 1607, 1346, 1458, 4756, 1362, 1397, 4733, 4732, 4759,
630     4627, 4768, 4817,  733, 1619, 1594, 1406,  728, 1537, 9159,
631     1571, 1651, 1625, 1613, 4839, 4867, 4894, 1627, 1658, 1686,
632     1714, 1394,    0, 1756, 1574,    0, 1668,  724, 1709,  724,
633     1763, 1775, 9159, 9159,  708, 9159, 9159, 4904, 4916, 4926,
634     4936, 4771, 4931, 5013, 4934, 5068, 5069, 5071, 5075, 5072,
635
636     5120, 5121, 5123, 1725, 5127, 5153, 5176, 1832, 5175, 5179,
637     1458, 1493, 1739, 1516, 1519, 1873, 1592, 1739, 5201, 5224,
638     5202, 5241, 5240, 5257, 5278, 5280, 5301, 5284, 5352, 9159,
639     5351, 5346, 5349, 5353, 1802, 9159, 5355, 5385, 5401, 9159,
640     5405, 5408, 5412, 5428, 5449, 5451, 5458, 5460, 5495, 5501,
641     5531, 5527, 5539, 5571, 5564, 5575, 5591, 5602, 5623, 5614,
642     5634, 5635, 5660,  693, 5666, 5667, 5692, 5703, 5715, 9159,
643     5723, 5719, 5740, 5746,  846, 1103, 1234, 1788, 1768, 1386,
644     1788, 1615, 1847, 1854,  236,  590, 1781, 1913,  715, 5809,
645     1790, 1645, 2264, 9159, 5785, 5805, 1690, 5806, 5807, 2344,
646
647     9159, 1951, 1858, 1924, 2256,  679, 1930, 1879, 5870, 5880,
648     5907, 5917, 1811,  658, 5946,  624,    0, 9159, 6034,    0,
649        0,  613,  609, 9159,  604,  586, 2245, 2364, 2389, 9159,
650     9159, 6063, 6118, 6139, 6138, 6134, 6135, 6141, 6161, 6173,
651     6184, 6209, 6217, 1654, 6260, 6248, 6216, 1844, 1864, 6239,
652     6280, 9159, 1689, 9159, 1930, 1750, 1763, 1934, 1933, 2077,
653     6300, 6292, 6317, 6337, 6338, 6344, 6369, 6376, 2212, 9159,
654     6360, 6413, 6392, 6412, 6424, 6433, 6456, 6435, 6465, 6476,
655     6488, 6497, 6508, 6509, 6552, 6529, 6540, 6549, 6560, 6585,
656     6593, 6605, 6628, 2392, 6636, 6637, 6648, 6659, 6694, 6685,
657
658     6686, 6775, 2286,  518, 2092, 2103, 1938, 2148, 2420, 2303,
659      472,  442, 2196,    0, 1803, 6692, 6717, 6768, 6756, 2424,
660     2334,  426,  422, 2432,  378, 1883, 6858, 6945, 6974,  337,
661     9159, 1922, 9159,    0,  328, 9159,  314, 2481, 2510, 9159,
662     6929, 6757, 7029, 7031, 7037, 7040, 7033, 7077, 7070, 7086,
663     2264, 2842, 7093, 7097, 7118, 9159, 2372, 7129, 2384, 2060,
664     2411, 2418, 2078, 2421, 2139, 7138, 7149, 7170, 7179, 7195,
665     7201, 7227, 7234, 7236, 2483, 3160, 7259, 7257, 7279, 7280,
666     7282, 7302, 7318, 2564, 7325, 7319, 7345, 7356, 7377, 7357,
667     7368, 7388, 2513, 2467, 7400, 2603, 7389, 7425, 2468, 2371,
668
669     2235, 2479,  361,  296,  182, 7409, 7432, 2249, 7455,  622,
670     2529,  227, 1008, 7505,    0,  207, 7482, 7503, 7505, 7514,
671     7535, 7536, 7544, 9159, 2413, 2526, 7567, 7571, 2546, 7593,
672     2547, 2562, 2567, 2526, 2575, 9159, 2526, 7587, 7625, 7594,
673     7631, 7632, 7648, 7657, 7668, 3179, 3203, 2672, 3229, 3335,
674     7684, 7688, 7709, 2597, 7705, 7725, 7732, 7736,  178, 7758,
675     2596, 7775, 7769, 2619, 2617, 2641, 2696, 2668, 7795, 7801,
676     7807, 2677, 2720, 3150, 7827, 7818, 7834, 7867, 7850, 2625,
677     2685, 7870, 7890, 2688, 7859, 2699, 2731, 2741, 2661, 2665,
678     9159, 7911, 7907, 7910, 7927, 7933, 7963, 2822, 3360, 3384,
679
680     3411, 4103, 4220, 7959, 2702, 7970, 7966, 2741, 7986, 2738,
681     8003, 8019, 2758, 9159, 2765, 2781, 2809, 2818, 8030, 8026,
682     2900, 2883, 2903, 2951, 8042, 8051, 2820, 2829, 8063, 8086,
683     9159, 2838, 9159, 2846, 9159, 2846, 8088, 8090, 8113, 8134,
684     3067, 4430, 2880, 8136,  175, 2911, 8125, 8156, 2877, 9159,
685     1190, 2938, 2908, 8157, 3034, 3081, 3049, 3028, 8173, 2959,
686     2985, 8189, 8182, 3029, 9159, 3039, 8205, 8212, 8214, 3241,
687     4684, 3056, 8235, 3049, 9159, 3056, 3212, 3072,    0, 8237,
688     1210, 3169, 3157,  144, 3103, 3103, 8257, 8260, 9159, 3110,
689     8283, 3255, 4708, 3110, 8290,  123, 9159, 3235, 3207, 3329,
690
691     3387, 3558, 3232, 3256, 8306, 8313, 3278, 8315, 8396, 4870,
692     3259, 8391, 3280, 3664,    0, 3349, 3414, 9159,  103, 9159,
693     3346, 8392, 9159, 3745, 4900, 8473, 3347, 8450,   90, 1237,
694     1328, 3570, 8470, 4973, 4977, 3380, 8471, 9159, 3676, 3645,
695     9159, 9159, 3693, 3608, 3764, 3684, 3616, 1433, 3705, 3782,
696     3810, 3774, 3875, 9159, 3852, 3697, 3910, 3892, 3896, 9159,
697     9159, 8553, 8565, 8577, 8589, 8601, 8613, 8621, 8623, 8635,
698     8647, 8659, 8671, 8678, 8687, 8699, 8711, 8723, 8735, 8747,
699     8754, 8762, 8774, 8786, 8798, 8810, 8822, 8834, 8846, 8858,
700     8870, 8882, 8894, 8906, 8918, 8930, 8942, 8954, 8966, 8978,
701
702     8990, 9002, 9014, 9026, 9038, 9050, 9062, 9074, 9086, 9098,
703     9110, 9122, 9134, 9146
704    } ;
705
706static yyconst flex_int16_t yy_def[1215] =
707    {   0,
708     1161,    1, 1162, 1162,    1,    2, 1163, 1163,    1,    2,
709        1,    2, 1161, 1161, 1161, 1161, 1161, 1164, 1165, 1161,
710     1161, 1166, 1167, 1161, 1161, 1161, 1161, 1161, 1161, 1168,
711     1161, 1161, 1161, 1161, 1169, 1169,   36,   36,   36,   36,
712       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
713       36,   36, 1161, 1161,   53, 1170, 1161,   36,   36,   36,
714       36,   36,   36, 1161, 1171, 1161, 1171, 1171, 1171, 1161,
715     1161, 1172, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
716     1164, 1164, 1164, 1165, 1161, 1165, 1165, 1166, 1161, 1166,
717     1166, 1167, 1173, 1167, 1161, 1167, 1167, 1161, 1161, 1161,
718
719     1174, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1175,
720     1161, 1161, 1161,   36,   36,   36,   36,   36,   36,   36,
721       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
722     1169,   36,   36,   36,   36,   36,   36,   36,   36,   36,
723       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
724       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
725       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
726       36,   36,   53,  173, 1176, 1161, 1161, 1161, 1161, 1161,
727     1161, 1161,  173, 1161,  173, 1161, 1170, 1161, 1170, 1170,
728     1170, 1161, 1161, 1177,   36,   36,   36,   36,   36,   36,
729
730       36, 1171, 1161, 1171, 1171, 1171, 1171, 1178, 1179, 1179,
731     1161, 1179, 1179, 1179, 1180, 1179, 1161,  217,  217,  217,
732      217,  217, 1161, 1161, 1161, 1164, 1164, 1165, 1165, 1166,
733     1166, 1173, 1173, 1173, 1173, 1161, 1167, 1167, 1161, 1161,
734     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
735     1161, 1161, 1181, 1161, 1161, 1161, 1161, 1161,   36,   36,
736       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
737       36,   36,   36,   36,   36, 1182,  131,   36,   36,   36,
738       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
739       36, 1161,   36, 1161, 1161,   36,   36,   36,   36,   36,
740
741       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
742       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
743       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
744       36,   36,   36,   36,   36,   36,   36,   36,  173,  173,
745     1161,  173, 1176, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
746      185, 1161, 1161, 1170, 1170, 1170, 1161, 1177, 1177, 1177,
747     1177,   36,   36,   36,   36,   36,   36,   36, 1171, 1171,
748     1183, 1183, 1161, 1179, 1179, 1161, 1179, 1179, 1180, 1180,
749     1180, 1180, 1179, 1179,  217,  217, 1179,  217,  217,  217,
750      217, 1161, 1161, 1161, 1164, 1164, 1165, 1165, 1166, 1166,
751
752     1173, 1167, 1167, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
753     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
754     1161, 1181, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
755     1161, 1161,   36,   36,   36,   36,   36,   36,   36,   36,
756       36,   36,   36,   36,   36,   36,   36,   36,   36, 1161,
757       36,   36,   36,   36, 1161, 1161,   36,   36,   36,   36,
758       36,   36,   36,   36,   36, 1161, 1161,   36, 1161,   36,
759       36,   36,   36,   36, 1161,   36,   36,   36,   36,   36,
760       36,   36,   36, 1161, 1161,   36,   36, 1161, 1161,   36,
761       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
762
763       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
764       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
765     1161, 1161,   36,   36,   36,   36,   36,   36,  173,  173,
766      173, 1161, 1161, 1161, 1161, 1161, 1161, 1161,  185, 1161,
767     1161, 1170, 1170, 1170, 1161, 1177, 1177,   36,   36,   36,
768       36,   36,   36, 1161, 1171, 1171, 1171, 1183, 1183, 1161,
769     1179, 1179, 1180, 1180, 1179, 1179, 1179,  217,  217,  217,
770      217, 1161, 1184, 1161, 1164, 1185, 1165, 1186, 1187, 1188,
771     1189, 1190, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
772     1161,   36,   36, 1161,   36,   36,   36,   36,   36,   36,
773
774       36,   36,   36, 1161,   36,   36,   36, 1161,   36,   36,
775     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,   36,   36,
776       36,   36,   36,   36,   36,   36,   36,   36,   36, 1161,
777     1161,   36,   36,   36, 1161, 1161,   36,   36,   36, 1161,
778       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
779       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
780       36,   36,   36, 1161,   36,   36,   36,   36,   36, 1161,
781       36,   36,   36,   36,  173,  173,  173, 1161, 1161, 1161,
782     1161, 1161, 1161,  173, 1161, 1161, 1170, 1170, 1191, 1161,
783     1177, 1192, 1161, 1161,   36,   36, 1161,   36,   36, 1161,
784
785     1161, 1161, 1171, 1171, 1179, 1193, 1180, 1194, 1179, 1179,
786     1179, 1179,  217,  217, 1161,  217, 1195, 1161, 1161, 1196,
787     1197, 1198, 1199, 1161, 1200, 1201, 1202, 1203, 1203, 1161,
788     1161, 1161,   36, 1161,   36,   36,   36,   36,   36,   36,
789       36,   36,   36, 1161,   36,   36,   36, 1161, 1161,   36,
790       36, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
791       36,   36,   36,   36,   36,   36,   36,   36, 1161, 1161,
792       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
793       36,   36,   36,   36,   36,   36,   36,   36,   36,   36,
794       36,   36,   36, 1161,   36,   36,   36,   36,   36,   36,
795
796       36, 1161,  802,  802, 1161, 1161, 1161, 1161,  802, 1204,
797     1205, 1204, 1206, 1207, 1207,   36,   36,   36,   36, 1208,
798     1208, 1209, 1210, 1211, 1212, 1212, 1161, 1210, 1161,  829,
799     1161, 1161, 1161, 1197, 1199, 1161, 1201, 1203, 1203, 1161,
800     1161,   36,   36,   36,   36,   36,   36,   36,   36,   36,
801     1161, 1161,   36,   36,   36, 1161, 1161,   36, 1161, 1161,
802     1161, 1161, 1161, 1161, 1161,   36,   36,   36,   36,   36,
803       36,   36,   36,   36, 1161, 1213,   36,   36,   36,   36,
804       36,   36,   36, 1161,   36,   36,   36,   36,   36,   36,
805       36,   36, 1161, 1161,   36, 1161,   36,   36, 1161, 1161,
806
807     1161, 1161, 1204, 1204, 1206,   36,   36, 1161,   36, 1208,
808     1208, 1210, 1211, 1210,  829,  829,   36,   36,   36,   36,
809       36,   36,   36, 1161, 1161, 1161,   36,   36, 1161,   36,
810     1161, 1161, 1161, 1161, 1161, 1161, 1161,   36,   36,   36,
811       36,   36,   36,   36,   36, 1213, 1213, 1161, 1214, 1213,
812       36,   36,   36, 1161,   36,   36,   36,   36, 1161,   36,
813     1161,   36,   36, 1161, 1161, 1161, 1204, 1206,   36,   36,
814       36, 1208, 1208, 1211,   36,   36,   36,   36,   36, 1161,
815     1161,   36,   36, 1161,   36, 1161, 1161, 1161, 1161, 1161,
816     1161,   36,   36,   36,   36,   36,   36, 1161, 1214, 1214,
817
818     1213, 1214, 1214,   36, 1161,   36,   36, 1161,   36, 1161,
819       36,   36, 1161, 1161, 1161, 1204, 1206, 1206,   36,   36,
820     1208, 1208, 1211, 1211,   36,   36, 1161, 1161,   36,   36,
821     1161, 1161, 1161, 1161, 1161, 1161,   36,   36,   36,   36,
822     1161, 1213, 1161,   36, 1161, 1161,   36,   36, 1161, 1161,
823     1204, 1206, 1206,   36, 1208, 1208, 1211, 1211,   36, 1161,
824     1161,   36,   36, 1161, 1161, 1161,   36,   36,   36, 1161,
825     1213, 1161,   36, 1161, 1161, 1161, 1204, 1206, 1206,   36,
826     1208, 1208, 1211, 1211, 1161, 1161,   36,   36, 1161, 1161,
827       36, 1161, 1213, 1161,   36, 1161, 1161, 1204, 1206, 1208,
828
829     1208, 1211, 1161, 1161,   36,   36, 1161,   36, 1161, 1213,
830     1161,   36, 1161, 1204, 1206, 1208, 1208, 1161, 1211, 1161,
831     1161,   36, 1161, 1161, 1213, 1213, 1161,   36, 1161, 1204,
832     1208, 1161,   36, 1213, 1214, 1161,   36, 1161, 1204, 1208,
833     1161, 1161, 1204, 1208, 1204, 1208, 1204, 1208, 1204, 1208,
834     1204, 1208, 1204, 1161, 1208, 1208, 1208, 1208, 1208, 1161,
835        0, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
836     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
837     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
838     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
839
840     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
841     1161, 1161, 1161, 1161
842    } ;
843
844static yyconst flex_int16_t yy_nxt[9249] =
845    {   0,
846       14,   15,   16,   17,   18,   19,   14,   20,   21,   22,
847       23,   24,   25,   26,   25,   27,   25,   28,   29,   30,
848       30,   30,   30,   30,   30,   30,   30,   30,   30,   25,
849       31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
850       41,   42,   43,   42,   42,   44,   45,   46,   47,   48,
851       42,   49,   50,   51,   42,   42,   52,   42,   42,   42,
852       25,   25,   42,   35,   36,   37,   38,   39,   40,   41,
853       42,   43,   42,   44,   45,   46,   47,   48,   42,   49,
854       50,   51,   42,   42,   52,   42,   42,   42,   14,   53,
855       54,   55,   56,   71,   67,   66,   67,   68,   76,   77,
856
857       78,  203, 1138,   74,   72,  211,  206,   57,   57,   57,
858       57,   57,   57,   57,   57,   57,   57,   75,   79,   77,
859       79,   79,   77,   79,   58,   59,   82,   73,   60,   85,
860       61,   69,   74,   78,   77,   80,   74,   74,   74, 1113,
861       83,   62,   63,  176,   89,   75,  211,   74,   99,  176,
862       75,   75,   75,   58,   59,   82,   73,   60,  224,   61,
863       69,   75,  115,   86,  203,   74,   74,   74,   83,   62,
864       63,   74,   98,   74,   74,   93,   74,   87,   75,   75,
865       75,   90,   94,   95,  109,   75,  224,   75,   75,   75,
866     1074,  115,   86,   74, 1008,   91,  110,  529,  223,  530,
867
868       74,  226,   74,   74,  531,   87,  530,   75,  227,  207,
869       90,   74,   96,   75,   74,   75,   75,   74,   74,   74,
870      115,  346,   74,   91,  387,   75,   97,  223,   75,  211,
871      226,   75,   75,   75,  142,   75,  227,  207,  115,  176,
872       74,   96,  161,   74,  968,  176,   74,   74,   74,  115,
873      346,  203,  112,   75,   97,  100,   75,  100,   74,   75,
874       75,   75,  142,   76,   77,   78,  410,  115,  204,  203,
875      204,  161,   75,  101,  101,  101,  101,  101,  101,  101,
876      101,  101,  101,   85,  115,  115,  370,   74,  102,  143,
877      115,  538,  103,   74,  104,  410,  144,  145,  188,  105,
878
879       75,  106,  107,  201,  146,  205,   89,   75,   79,   77,
880       79,  108,  228,  115,  115,  370,   89,  102,  143,  115,
881      538,  103,   74,  104,  144,  145,   85,  105,  546,  106,
882      107,  201,  146,   85,  205,   75,   78,   77,   78,  108,
883      113,  228,  114,  114,  114,  114,  114,  114,  114,  114,
884      114,  114,  115,  115,  387,  231,  129,  546,  116,  117,
885      130,  138,  118,  188,  139,  242,  131,  140,  119,  243,
886      132,  250,  229,  141,   89,  120,  121,  225,   77,  225,
887      211,  115,  115,  231,  531,  129,  530,  116,  117,  130,
888      138,  118,  139,  242,  131,  140,  119,  243,  132,  250,
889
890      229,  141,  251,  120,  121,  113,  230,  114,  114,  114,
891      114,  114,  114,  114,  114,  114,  114,  347,  124,  359,
892      115,  359,  122,  967,  211,  125,  147,  118,  211,  126,
893      251,  133,  127,  134,  148,  230,  135,  136,  150,  203,
894      149,  123,  128,  137,  188,  347,  151,  124,  573,  115,
895      348,  122,  152,  350,  125,  147,  118,  126,  153,  133,
896      127,  134,  157,  148,  135,  136,  168,  150,  149,  123,
897      128,  137,  115,  169,  188,  151,  158,  573,  348,  159,
898      152,  350,  160,  170,  207,  154,  153,  155,  244,  162,
899      387,  157,  156,  163,  675,  168,  676,  164,  576,  115,
900
901      604,  115,  169,  245,  158,  165,  171,  159,  166,  167,
902      160,  170,  207,  154,  678,  155,  172,  244,  162,  804,
903      156,  389,  163,   78,   77,   80,  164,  576,  115,  604,
904      677,  245,  676,  165,   93,  171,  166,  167,  183,  184,
905      185,   94,   95,  678,  172,  173,   77,  174,  175,  389,
906      188,  392,  677,  176,  676,  189,  186,  186,  186,  186,
907      186,  186,  186,  186,  186,  186,   79,   77,   79,   93,
908       79,   77,   79,   79,   77,   79,   94,   95,  115,  392,
909      177,  178,  208,   74,  179,  208,  180,  190,   89,  198,
910      248,  188,  142,  176,  233,  234,  233,  181,  182,  176,
911
912      249,  191,  235,  236,  224,  208,   89,  115,  208,  177,
913      178,  349,   74,  179,   85,  180,  190,  198,  836,  248,
914      142,  210,  211,  210,  203,  181,  182,  211,  249,  191,
915      192,  194,  224,  212,  208,   93,  176,  208,  387,  349,
916      356,  387,   94,   95,  110,  188,  193,  193,  193,  193,
917      193,  193,  193,  193,  193,  193,  197,  391,  195,  213,
918      129,  372,  373,  372,  130,  125,   74,  237,  356,  126,
919      131,  188,  196,  214,  132,  387,  378,  354,  115,  203,
920       75,  211,  128,  143,  972,  197,  391,  195,  213,  129,
921      144,  199,  168,  130,  125,   74,  237,  126,  131,  169,
922
923      196,  214,  132,  355,  378,  393,  354,  115,   75,  170,
924      128,  369,  143,  375,  376,  375,  200,  188,  144,  199,
925      794,  168,  394,   77,  394,  731,   89,  234,  169,  724,
926      373,  234,  355,  393,  401,  236,  554,  170,  401,  236,
927      369,  559,  560,  559,  200,  209,  210,  211,  210,  209,
928      209,  209,  215,  209,  209,  209,  209,  209,  209,  209,
929      209,  209,  216,  209,  217,  217,  217,  217,  217,  217,
930      217,  217,  217,  217,  209,  209,  209,  209,  209,  195,
931      218,  218,  218,  218,  219,  218,  125,  218,  218,  218,
932      220,  218,  218,  196,  218,  218,  218,  218,  221,  218,
933
934      218,  218,  218,  222,  218,  209,  209,  218,  195,  218,
935      218,  218,  218,  219,  218,  125,  218,  218,  220,  218,
936      218,  196,  218,  218,  218,  218,  221,  218,  218,  218,
937      218,  222,  218,  209,   93,  239,  240,  246,  204,  203,
938      204,   94,   95,  395,  554,  396,  211,  802,  241,  803,
939      680,  110,  247,  111,  111,  111,  111,  111,  111,  111,
940      111,  111,  111,  587,  239,  240,  246,  375,  376,  375,
941      586,  395,  339,  396,  340,  205,  241,  258,  377,  680,
942      247,  387,  584,  238,  257,  257,  257,  257,  257,  257,
943      257,  257,  257,  257,  115,   85,  115,  261,  388,  115,
944
945      115,  115,  115,  268,  205,  115,  583,  377,  115,   89,
946     1161,  238,  100,  115,  100,  115,  115,   85,  259,  115,
947      387,  387,  115,  115,  341,  115,  261,  388,  115,  115,
948      115,  115,  268,  211,  115,  397,  419,  115,   89, 1161,
949      211,  115,  421,  115,  115,  102,  259,  115,  115,  103,
950      115,  104,  341,  115,  411,  390,  105,  450,  106,  107,
951      417,  400,  260,  397,  419,  234,  398,  115,  108,  294,
952      421,  294,  401,  236,  102,  373,  188,  115,  103,  295,
953      104,  399,  115,  390,  105,  450,  106,  107,  681,  400,
954      260,  420,  412,  418,  398,  115,  108,  253,  253,  253,
955
956      253,  253,  253,  253,  253,  253,  253,  115,  264,  399,
957      211,  416,  115,  115,  115,  254,  255,  681,  262,  115,
958      412,  418,  263,  415,   89,  265,  115,  115,  256,  414,
959      233,  234,  233,  115,  349,  258,  115,  264,  235,  236,
960      532,  115,  115,  115,  254,  255,  262,  115,  115,  266,
961      413,  263,  115,  265,  115,  115,  256,  344,  115,  387,
962      580,  115,  349,  115,  211,  533,  115,  534,  532,  188,
963      974,  345,  115,  535,  211,  265,  115,  115,  266,  115,
964      203,  115,  536,  115,  115,  188,  344,  115,  115,  580,
965      267,  537,  115,  533,  115,  534,  342,  269,  115,  345,
966
967      115,  535,  115,  265,  804,  115,  803,  542,  115,  115,
968      536,  188,  115,  115,  115,  342,   93,  115,  267,  537,
969       89,  270,  271,   94,   95,  269,  115,  272,  115,  115,
970      115,  273,  274,  387,  115,  115,  542,  115,  115,  292,
971      115,  292,  547,  115,  233,  234,  233,  275,  115,  270,
972      271,  115,  235,  236,  115,  272,  115,  682,  115,  402,
973      273,  274,   89,  115,  115,  387,  115,   85,  569,  115,
974      547,  380,  211,  380,  188,  275,  115,  203, 1161,  115,
975      211,   93,  115,  276,  188,  276,  682,  402,   94,   95,
976      203,  475,  188,  568,  387,  115,  569,  572,   70,  113,
977
978      115,  277,  277,  277,  277,  277,  277,  277,  277,  277,
979      277,  115,  203,  281,  115,  115,  115,   66,  282,  475,
980      115,  568,  280,   85,  115,  572,  544,  543,  555,  115,
981      115,  570,  562,  403,  115,  804,  278,  803,  279,  188,
982      115,  281,  115,  211,  115,  115,  115,  282,  115,  115,
983      280,  115, 1077,  115,  544,  543,  578,  555,  115,  570,
984      562,  403,  115,  284,  278,  115,  279,  115,  283,  115,
985      211,  115, 1100,  115,  115,  115,  115,  115,  115,  285,
986      115,  563,  115,  289,  288,  578,  286,  575,  115, 1161,
987      287,  284,  115,  115,  585,  115,  283,   85,  115, 1139,
988
989      115,  211,  115,  115,  115,  115,  640,  115,  285,  115,
990      563,  289,  288,  561,  286,  575,  115,  292,  287,  292,
991      115,  290,  585,  115,  115,   89,  294,  115,  294,  115,
992      203,  683,  115,  115,  640, 1161,  295,  291,  115,  387,
993      679,  561,  296,  115,  577,  564,  115, 1161,  188,  290,
994      115,  115,  466,  115,  466,  115,  115,  115,  115,  261,
995      683,  115,  115,  301,  115,  291, 1161,  571,  679,  293,
996      296,  115,  577,  564,  115,  579,  115, 1161,  115,  115,
997      115, 1161,  297,  467,  115,  115,  115,  697,  261,  697,
998     1140,  115,  301,  115,  298,  571,  299,  293,  688,  300,
999
1000      115, 1161,  115,  579,  115,  115,  115,  115,  203,  115,
1001      484,  297,  484,  691,  115,  303,  574,   77,  574,  115,
1002      485,  115,  298,  302,  299,  115,  688,  300,  304,  115,
1003      115,  115,  717,  115,  115,  203,  115,  115,  115, 1161,
1004     1161,  691,  115,  303,  115,  305,  692,  115, 1161,  115,
1005      306,  302,  115,  704,  115, 1161,  115,  304, 1161,  115,
1006      188,  717,  115,  115,  115, 1161,  115,  115,  115,  115,
1007     1161,  115,  115,  305,  692,  308,  307,  488,  306,  488,
1008      115,  704,  115,  115,  115, 1161,  115,  489, 1161,  115,
1009      310,  115,  115,  115,  115, 1150,  689,  115,  115,  521,
1010
1011      309,  521, 1161,  308,  307,  311,  752, 1161,  115,  522,
1012      115,  115,  115,  239,  240,  115,  115,  115,  115,  310,
1013      115,  115,   93,  115,  315,  689,  241, 1161,  309,   94,
1014       95,  312,  115,  311,  752,  115,  115,  115,  559,  560,
1015      559,  115,  239,  240, 1161,  115,  115,  753, 1161,  313,
1016      115,  115,  314,  315,  241,  115,  318,  115, 1161,  312,
1017      115,  115,  115,  115,  755,  316,  115,  556,  203,  556,
1018      756,  317,  581,  211,  115,  753,  115,  313, 1161,  115,
1019      314,  359,  115,  359,  115,  318,  115,  115,  319,  115,
1020      320,  115,  755,  115,  316,  556,  203,  556,  756,  317,
1021
1022      581,  115,  115,  324,  115, 1161,  321,  322,  557,  188,
1023      323,  115,  720,  115,  360,  211,  115,  319,  115,  320,
1024      115,  203,  115,  705,  325,  115,  326,  211,  361,  115,
1025     1161,  324,  115,  327,  321,  322,  557,  557,  323,  115,
1026      115,  720,  115,  360,  387,  115,  815,  115,  815,  115,
1027      759,  705,  325,  211,  115,  326,  361,  328,  687,  115,
1028      115,  327,  708,  329,   93,  557,  808,  115,  115,  115,
1029      703,   94,   95,   85,  115,  387,  707,  330,  759,  713,
1030      265, 1161,  115,  115,  331,  328,  687,  115,  115,  706,
1031      708,  697,  329,  697,  808,  332,  714,  115,  703,  851,
1032
1033      582, 1161,  115,  387,  707,  330,  722,  713,  265,  115,
1034      115,   89,  115,  331,  115,  115, 1161,  115,  706,  335,
1035      115, 1161,  333,  332,  715,  714,  334,  851,  115,  582,
1036      115,  387,  115, 1161,  115,  722,  859,  115,  115, 1161,
1037      336,  115, 1161,  115,  115,  337,  115,  725,  335,  115,
1038      333,  115,  716,  715,  334, 1161,  115,  719,   77,  719,
1039      115,  115,  115,  115,  859,   93,  115,  744,  115,  336,
1040      115,  338,   94,   95,  337,  115,  725,   93,  754,  115,
1041      760,  716,  115,  188,  729,  730, 1161, 1161,  115,  693,
1042     1161,  693,  115,  342,  184,  351,  744,  115,  861,  694,
1043
1044      338,  727,  806,  635,  815,  635,  815,  754,  862,  760,
1045      115,  352,  352,  352,  352,  352,  352,  352,  352,  352,
1046      352,  353,  807,  810, 1161,  805,  861,  176,  387, 1161,
1047      727,  806,  813,  608,  636,  608,  862,  352,  352,  352,
1048      352,  352,  352,  352,  352,  352,  352,  353,  700,  827,
1049      700,  807,  810,  176,  805,  804,  184,  809,  701, 1161,
1050      203,  813,  702,  352,  352,  352,  352,  352,  352,  352,
1051      352,  352,  352,  353,  748,  380,  211,  380,  827,  176,
1052      826,  211,  826,  856,  826,  211,  826,  110,  749,  357,
1053      357,  357,  357,  357,  357,  357,  357,  357,  357,  115,
1054
1055      820,  115,  115,  748,  115,  857,  115,  115,  381, 1161,
1056      267,  757,  856,  270,  363,  188,  749,  362,  115,  272,
1057      115,  364,  382,  832,   77,  832,  203,  758,  115,  820,
1058      115,  115,  211,  115,  857,  115,  115,  381,  267,  115,
1059      757,  270,  363, 1161,  115,  362,  115,  272,  115,  364,
1060      382,  811,  702,  365,  702,  758,  115, 1161,  115,  115,
1061      115,  115,  297,  368,  115,  115,  702,  860,  115,  863,
1062     1161,  367,  824,  115,  298,  115,  299,  821,  115,  366,
1063      811,  365,  864,  901, 1161,  115,  115, 1161,  115,  115,
1064      115,  297,  368,  115,  115,  211,  860, 1161,  863,  367,
1065
1066     1161,  824,  298,  115,  299,  821,  115,  366, 1161, 1161,
1067      864,  901,  383,  383,  383,  383,  383,  383,  383,  383,
1068      383,  383,  374,  374,  211,  374,  374,  374,  374,  374,
1069      374,  374,  374,  374,  374,  374,  374,  374,  374,  384,
1070      374,  385,  385,  385,  385,  385,  385,  385,  385,  385,
1071      385,  374,  374,  374,  374,  374,  386,  386,  386,  386,
1072      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1073      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1074      386,  386,  374,  374,  386,  386,  386,  386,  386,  386,
1075      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1076
1077      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1078      374,  404, 1161,  404,  932,  865,  405,  405,  405,  405,
1079      405,  405,  405,  405,  405,  405,  406, 1161,  406,  935,
1080      899,  407,  407,  407,  407,  407,  407,  407,  407,  407,
1081      407,  408,  932,  408,  865,  900,  409,  409,  409,  409,
1082      409,  409,  409,  409,  409,  409,  423,  935,  423,  899,
1083     1161,  424,  424,  424,  424,  424,  424,  424,  424,  424,
1084      424,  425, 1161,  425,  900, 1161,  426,  426,  426,  426,
1085      426,  426,  426,  426,  426,  426,  427,  902,  427,  432,
1086      937,  428,  428,  428,  428,  428,  428,  428,  428,  428,
1087
1088      428,  257,  257,  257,  257,  257,  257,  257,  257,  257,
1089      257, 1161,  115,  769,  115,  769,  902,  115,  937,  115,
1090      429,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1091      430,  115,  433,  115,  115,  905,  908,  115,  908,  115,
1092      431,  115,  115,  115,  770,  434,  115,   93,  115,  429,
1093      908,  435,  908,  115,  839,  840,  115,  115,  211,  115,
1094      433,  115,  115,  115,  905,  693,  115,  693,  115,  431,
1095      436,  115, 1161,  434, 1161,  694,  115,  115,  115,  435,
1096      115,  115,  115,  115,  115,  115,  115,  804,  439,  803,
1097      437,  115, 1161, 1161,  822,  176,  115,  115,  436,  115,
1098
1099      438,  805,  924,  115,  115,  188,  115,  115,  115,  115,
1100      115,  115,  115, 1161,  115,  115,  439, 1161,  437, 1161,
1101      441,  440,  115,  822,  115,  115, 1161,  115,  438,  115,
1102      805,  924,  115,  115, 1161,  115,  203,  115,  115,  115,
1103      115,  115,  903, 1161,  115,  700,  115,  700,  441,  440,
1104      115,  442,  115,  443,  445,  701,  444,  115,  115,  702,
1105      115, 1161,  115,  115,  115,  446,   93,  115, 1161,  115,
1106      115,  903,  911,   94,   95,  115, 1161,  115,  115,  442,
1107      115,  443,  445,  115,  444,  115, 1161,  115,  115,  447,
1108      115,   93,  115,  893,  446,  893,  448,  115,   94,   95,
1109
1110     1161,  911, 1161,  894,  115,  115, 1161,  115,  115,  451,
1111      929,  115,  115,  115,  115,  449,  115,  447,  965,  115,
1112      931,  804,  184,  809,  448,  115,  203,  115,  115,  176,
1113      115,  453,  115,  115,  211,  452,  115,  115,  451,  929,
1114      115,  466,  115,  466,  449,  115,  965,  115,  115,  931,
1115      115,  933,  454,  115, 1161,  115,  934,  115,  115,  936,
1116      453,  980,  115,  910,  452,  115, 1161,  115,  115, 1161,
1117     1161,  913,  467,  115,  115,  115,  465,  115,  115,  115,
1118      933,  454,  115,   93,  875,  934,  875,  115,  936,  980,
1119       94,   95,  910,  115,  876,  115,  455,  115,  455,  115,
1120
1121      913,  959,  115,  115,  115,  465,  115,  964,  115,  239,
1122      240,  115,   93,  966,  893,  115,  893,  468,  469,   94,
1123       95,  115,  241, 1161,  894,  115, 1161,  456,  115,  115,
1124      959,  203,  457,  115,  458,  115,  964,  459,  239,  240,
1125      115,  460,  966, 1161,  461,  468,  469,  462,  463,  472,
1126      241,  464,  115,  115,  115,  115,  470,  115,  115,  471,
1127      115,  457,  989,  458,  991,  884,  459,  884,  115,  460,
1128     1161,  115,  461, 1161,  115,  462,  463,  981,  472,  464,
1129      973,  115,  115,  115,  115,  470,  115,  115,  471,  115,
1130      115,  989,  474,  991,  473,  115,  115,  984,  115,  115,
1131
1132      986,  115,  115,  115,  896,  981,  896,  987,  973,  115,
1133     1161,  115,  476,  954, 1161,  115,  115,  115,  988,  115,
1134      115,  474,  473,  990,  115,  984,  477,  115,  986,  115,
1135     1010,  115,  115, 1161,  115,  987,  115,  115,  115,  961,
1136      476,  954,  478,  115,  115,  115,  988, 1161, 1005,  115,
1137      115,  990, 1161, 1013,  477, 1161, 1161,  115,  479, 1010,
1138      115,  115,  115, 1161, 1161,  115,  115,  115,  961, 1014,
1139      478, 1027,  115,  998,  948,  998, 1005, 1015,  115,  203,
1140      115,  480, 1013,  115,  115,  115,  479,  481,  115,  115,
1141      115,  484,  483,  484,  488,  115,  488, 1014,  188, 1027,
1142
1143      482,  485,  115,  115,  489, 1017, 1015, 1018,  115,  480,
1144     1161, 1161,  115,  115, 1035, 1021,  481,  115,  115, 1036,
1145      115,  483,  203, 1028,  115,  115, 1031,  115,  482,  115,
1146      115,  115,  115, 1016, 1017,  486, 1018, 1161,  490,  115,
1147      492, 1032, 1035,  115, 1021,  487,  115, 1036,  491,  115,
1148     1043, 1161, 1028,  115,  115, 1031,  115, 1161,  115, 1022,
1149      115,  115, 1016,  486,  493,  115,  490,  115,  492, 1033,
1150     1032,  115,  115,  487,  115, 1034,  491,  115, 1043,  115,
1151      115,  115, 1045,  188,  495,  115,  115, 1161, 1022,  115,
1152     1046,  494,  496,  493,  115, 1161, 1161,  115, 1033,  115,
1153
1154      115,  115,  115, 1050, 1034, 1161,  115,  115, 1161,  115,
1155      115, 1045, 1049,  495,  115,  115,  115,  115, 1046,  494,
1156      496,  497,  115, 1041,  948, 1041,  115,  115,  115, 1051,
1157      498,  115, 1050,  115,  115, 1161,  115,  500,  115,  115,
1158     1049,  499,  115,  852,  115,  852,  115, 1052, 1161,  497,
1159     1161,  115,  115,  115,  115, 1161,  115, 1051,  498,  115,
1160     1053, 1161,  115,  115,  115, 1061,  500,  115,  115, 1060,
1161      499,  115,  501,  115,  115, 1161, 1052,  115,  925,  115,
1162      115,  115,  115,  115,  115,  203, 1064,  502,  115, 1053,
1163      503,  926, 1065,  115, 1061, 1161,  115, 1060,  504, 1066,
1164
1165      501,  115,  203,  115,  115,  211,  115,  925,  115,  115,
1166      505,  115, 1161, 1161, 1064,  502, 1072, 1056,  503,  926,
1167     1065,  115, 1076,  115,  115,  115,  504, 1066, 1161,  115,
1168      115, 1161,  507,  115,  115, 1161,  506,  115,  115,  505,
1169      508, 1057,  115, 1161,  115, 1072, 1056, 1055,  115, 1075,
1170     1076,  115, 1161,  211,  115, 1079,  115,  509,  115,  115,
1171      115,  507,  115,  115,  506,  115,  115,  115,  508,  115,
1172     1057,  115,  115, 1078,  115, 1055,  115,  512, 1075,  115,
1173      510,  115,  511, 1079,  115,  509, 1161, 1161,  115,  115,
1174     1161,  115,  115, 1058,  115,  115,  115,  115,  115,  513,
1175
1176      115, 1161, 1078,  115, 1085,  515,  512,  115,  510,  115,
1177      511,  115,  115, 1161,  115,  115,  115,  115,  115,  514,
1178      115,  115, 1058,  115,  115,  516,  115, 1086,  513,  115,
1179      211,  517, 1085,  515,  115, 1161,  203,  115,  115,  115,
1180     1161,  115,  115,  115,  115,  115,  115,  115,  514,  115,
1181      115,  211,  115,  521,  516,  521, 1086,  518, 1161,  517,
1182      519,  115,  115,  522,  115,  115,  115,  115, 1070,  948,
1183     1070, 1081,  115, 1161,  115, 1084, 1089, 1161,  520,  115,
1184      115, 1090,  115,  203, 1083,  518,  115,  115,  519,  523,
1185      115,  115,  115,  115, 1094,  115, 1161, 1096,  115,  524,
1186
1187     1081,  115,  115, 1084, 1089,  115,  520,  115,  115, 1097,
1188     1090,  115,  115, 1083,  526,  115,  115, 1082,  523,  115,
1189      115,  115,  115, 1094,  115, 1096, 1099,  115,  524,  115,
1190     1161,  115,  525,  115, 1161, 1161,  115, 1097,  115,  115,
1191      115, 1103,  526, 1161,  115,  115, 1082, 1111,  115,  115,
1192      115, 1161,  211,  115, 1099, 1104,  527, 1107,  115,  211,
1193      525,  947,  948,  947,  528, 1161,  115, 1161,  115,  949,
1194     1103,  203,  950,  115,  115,  531, 1111,  539, 1161,  115,
1195      947,  948,  947, 1104,  527, 1107,  115, 1023,  949, 1024,
1196     1161,  950,  528,  540,  540,  540,  540,  540,  540,  540,
1197
1198      540,  540,  540,  541,  947,  948,  947, 1101, 1161,  176,
1199     1161, 1102,  949, 1161,  188,  950, 1023, 1161, 1024,  540,
1200      540,  540,  540,  540,  540,  540,  540,  540,  540,  541,
1201     1000, 1001, 1000, 1161, 1161,  176, 1101,  188, 1002, 1102,
1202     1161, 1003, 1092,  948, 1092,  540,  540,  540,  540,  540,
1203      540,  540,  540,  540,  540,  541, 1109,  948, 1109, 1098,
1204     1115,  176,  115,  115, 1161,  550,  548,  115,  115,  110,
1205      115,  545,  545,  545,  545,  545,  545,  545,  545,  545,
1206      545,  115,  549, 1114,  115,  115,  551, 1098, 1115, 1120,
1207      115,  115,  115,  554,  550,  548,  115,  115, 1121,  115,
1208
1209     1161,  115, 1161, 1161,  115,  552,  115, 1161, 1161,  115,
1210      549, 1114,  115, 1127,  115,  551, 1123, 1120,  482,  115,
1211      115,  115, 1161,  115,  115,  553,  115, 1121,  115,  115,
1212      115,  203,  115, 1161,  552,  115,  947,  948,  947, 1129,
1213      115, 1127,  115,  115,  949, 1123,  482,  950,  115, 1161,
1214      115,  203,  115,  115,  553,  115,  211,  115,  115, 1161,
1215     1161, 1000, 1001, 1000, 1161, 1161, 1116, 1129,  115, 1002,
1216      115,  115, 1003,  383,  383,  383,  383,  383,  383,  383,
1217      383,  383,  383,  211, 1161, 1000, 1001, 1000, 1117, 1118,
1218     1117, 1161,  565, 1002, 1132, 1116, 1003, 1131, 1136, 1161,
1219
1220      566,  566,  566,  566,  566,  566,  566,  566,  566,  566,
1221      211, 1161, 1042, 1001, 1042, 1117, 1118, 1117, 1142,  567,
1222      949,  565, 1132,  950, 1161, 1131, 1136,  383,  383,  383,
1223      383,  383,  383,  383,  383,  383,  383,  405,  405,  405,
1224      405,  405,  405,  405,  405,  405,  405, 1142,  567,  405,
1225      405,  405,  405,  405,  405,  405,  405,  405,  405,  407,
1226      407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
1227      407,  407,  407,  407,  407,  407,  407,  407,  407,  409,
1228      409,  409,  409,  409,  409,  409,  409,  409,  409,  409,
1229      409,  409,  409,  409,  409,  409,  409,  409,  409,  424,
1230
1231      424,  424,  424,  424,  424,  424,  424,  424,  424,  424,
1232      424,  424,  424,  424,  424,  424,  424,  424,  424,  426,
1233      426,  426,  426,  426,  426,  426,  426,  426,  426,  426,
1234      426,  426,  426,  426,  426,  426,  426,  426,  426,  428,
1235      428,  428,  428,  428,  428,  428,  428,  428,  428,  428,
1236      428,  428,  428,  428,  428,  428,  428,  428,  428,  588,
1237      211,  588, 1161, 1161,  589,  589,  589,  589,  589,  589,
1238      589,  589,  589,  589,  430,  430,  430,  430,  430,  430,
1239      430,  430,  430,  430, 1161,  115, 1161,  115, 1161,  590,
1240      115,  590,  115,  429,  591,  591,  591,  591,  591,  591,
1241
1242      591,  591,  591,  591,  115,  592,  115,  115,  115,  593,
1243      203, 1119,  115,  115,  115, 1161,  115, 1141,  188,  115,
1244     1161,  115,  429, 1161,  115, 1161,  115,  115,  594,  115,
1245      115, 1161,  115,  592,  115,  115,  115,  115,  593, 1119,
1246     1161,  115,  115,  115, 1161, 1141,  115,  203,  595,  115,
1247     1149,  115, 1161,  115,  115,  115, 1146,  594,  115,  115,
1248     1161, 1161,  596, 1161,  115,  115,  188,  115,  115,  115,
1249     1161,  115,  597,  115,  115,  115,  595,  115,  188, 1149,
1250      115,  115, 1161,  598, 1146,  115,  203,  115,  115,  115,
1251      115,  596, 1144,  115,  115,  188,  115,  115,  115,  203,
1252
1253      599,  597,  115,  115,  115,  115, 1161,  188,  115,  115,
1254      115,  598, 1161,  600,  115,  115,  115, 1130,  115,  115,
1255     1144,  115,  115,  115,  115,  601,  115,  115,  599, 1143,
1256      115, 1157,  115,  602,  115,  115,  115, 1148, 1161,  115,
1257      115,  115,  600,  603, 1145, 1130, 1124,  948, 1124,  115,
1258      115,  115,  115, 1161,  601,  115,  115, 1143, 1151,  115,
1259     1157,  602,  115, 1161,  115, 1148,  188,  115,  115,  115,
1260      115,  603, 1145,  605,  115,  115,  203,  115,  606,  115,
1261     1161,  115, 1161, 1161,  203,  608, 1151,  608, 1161,  115,
1262     1161,  115,  607,  115, 1161, 1161,  115, 1161, 1161,  115,
1263
1264     1161,  605, 1147,  115,  115, 1161, 1161,  606,  115,  115,
1265      115, 1153, 1154, 1153,  115,  115, 1161,  115,  115,  115,
1266      607,  115, 1161,  115, 1161, 1155,  609, 1161,  619,  115,
1267      620, 1147, 1161,  115, 1161, 1152, 1161,  115, 1161,  115,
1268      610,  115, 1161,  115,  115,  115,  621,  115,  115, 1161,
1269      115, 1161,  115, 1155,  203,  609,  619,  115,  620,  622,
1270      115,  115,  115, 1152,  115,  115, 1161,  115,  610,  455,
1271      115,  455, 1161, 1161,  115,  621, 1153, 1154, 1153,  115,
1272     1161,  629, 1161, 1161,  115, 1161, 1161,  622,  115,  115,
1273     1156,  115,  115, 1159, 1160, 1159,  115, 1159, 1160, 1159,
1274
1275      456,  623, 1161,  115, 1161,  611,  115,  612, 1161,  629,
1276      613,  115,  203,  115,  614, 1161, 1161,  615,  115, 1156,
1277      616,  617, 1161, 1161,  618,  115, 1161, 1161, 1161,  623,
1278      626,  115, 1161, 1161,  611,  115,  612, 1161,  115,  613,
1279      115, 1161,  614,  115, 1161,  615,  115, 1161,  616,  617,
1280      624,  115,  618,  115,  115,  115, 1161,  637,  626,  115,
1281      115,  627, 1161, 1158, 1161,  115,  625,  115, 1161, 1161,
1282     1161, 1161,  115,  115,  115,  115,  628, 1161, 1161,  624,
1283      115, 1161, 1161,  115,  115,  637, 1161, 1161,  115,  115,
1284      627, 1158, 1161,  115,  625, 1161, 1161, 1161, 1161, 1161,
1285
1286     1161,  115,  115, 1161,  628,  630,  630,  630,  630,  630,
1287      630,  630,  630,  630,  630,  630, 1161,  630,  630,  630,
1288      630,  630,  631,  630,  632,  632,  632,  632,  632,  632,
1289      632,  632,  632,  632,  630,  630,  630,  630,  630,  633,
1290      633,  633,  633,  633,  633,  633,  633,  633,  633,  633,
1291      633,  633,  633,  633,  633,  633,  633,  633,  633,  633,
1292      633,  633,  633,  633,  633,  630,  630,  633,  633,  633,
1293      633,  633,  633,  633,  633,  633,  633,  633,  633,  633,
1294      633,  633,  633,  633,  633,  633,  633,  633,  633,  633,
1295      633,  633,  633,  630,  115, 1161,  635,  638,  635,  115,
1296
1297     1161, 1161,  115,  115, 1000, 1001, 1000, 1161,  115, 1161,
1298     1161,  634, 1002,  115, 1161, 1003,  115, 1161, 1161, 1161,
1299     1161, 1161,  639,  115, 1161, 1161,  638,  636,  115,  115,
1300      115,  115,  115, 1161,  115,  115, 1161,  115,  115,  634,
1301     1161,  115, 1161,  115,  115, 1161,  641, 1161,  115,  115,
1302      639, 1161, 1161, 1161, 1161, 1161, 1161,  115,  115,  115,
1303      115, 1161, 1161,  115,  115,  115, 1161,  115,  115, 1161,
1304     1161, 1161,  115,  115, 1161,  641,  115,  115, 1161,  115,
1305      642, 1161, 1161, 1161, 1161,  115, 1161,  643, 1161,  115,
1306      115, 1161, 1161, 1161,  115,  115, 1161,  115,  644,  115,
1307
1308     1161, 1161,  115, 1161,  115,  645, 1161,  115,  642,  115,
1309     1161, 1161,  646, 1161, 1161,  643, 1161, 1161,  115,  115,
1310     1161, 1000, 1001, 1000,  115, 1161, 1161,  644,  115, 1002,
1311      115,  650, 1003,  115,  645,  115,  115,  115,  647,  115,
1312      646,  648,  115, 1161,  115, 1161,  115,  115, 1161,  115,
1313      115, 1161, 1161, 1161, 1161, 1161,  649, 1161,  115,  115,
1314      650,  115, 1161, 1161,  115,  115, 1161,  647,  115,  115,
1315      648,  115, 1161,  115,  115,  652,  115,  115,  115, 1161,
1316      115, 1161, 1161,  651,  649, 1161,  115, 1161,  115,  115,
1317     1161,  115, 1161, 1161,  115,  115,  115, 1161,  115, 1161,
1318
1319      115, 1161,  653,  115,  652, 1161,  654,  115, 1161,  115,
1320      115,  651,  115, 1161,  115, 1161,  115, 1161,  115, 1161,
1321      115, 1161,  115,  115,  115,  115,  115,  115, 1161,  115,
1322      653, 1161,  115, 1161,  654,  655,  115,  115,  115,  115,
1323     1161,  115,  115,  115,  115, 1161,  115,  115,  115, 1161,
1324      115, 1161,  115, 1161,  115,  115,  115, 1161,  115, 1161,
1325     1161,  115,  115, 1161,  655,  115,  115, 1161,  115,  659,
1326      115,  115,  115,  115,  115,  115, 1161,  115, 1161,  115,
1327      656, 1161,  657, 1161,  115,  115,  115,  115, 1161,  115,
1328      115,  658,  115,  115, 1161,  115,  661,  659,  115,  115,
1329
1330      115,  115, 1161, 1161,  115, 1161,  115, 1161,  656, 1161,
1331      657, 1161,  660,  115, 1161,  115,  115,  115,  115,  115,
1332      658,  115,  115,  115,  115,  661, 1161,  115, 1161,  664,
1333      115, 1071,  948, 1071,  115,  662, 1161,  115,  115,  949,
1334      660,  115,  950,  115, 1161, 1161,  115,  115,  115,  663,
1335      115, 1161,  115,  115, 1161,  115, 1161,  115, 1161, 1161,
1336      115, 1161,  115,  662, 1161,  115,  115, 1161, 1161,  115,
1337      115, 1161, 1161, 1161,  665,  115,  115, 1161,  663,  115,
1338     1161, 1161,  115, 1161,  115, 1161,  115,  115,  115,  115,
1339      115,  115, 1161,  666,  115,  115, 1161,  115, 1161, 1161,
1340
1341     1161,  115,  665,  668,  115, 1161,  667, 1161,  115,  115,
1342     1161,  115, 1161, 1161, 1161, 1161,  115, 1161,  115,  115,
1343      115,  666,  115,  115,  115,  115, 1161,  115,  115,  115,
1344      669,  668, 1161,  115,  667, 1161,  115,  115,  670,  115,
1345     1161,  115, 1161, 1161, 1161,  115, 1161,  115, 1161,  115,
1346      115,  115, 1161,  115,  115, 1161,  115,  115,  115,  669,
1347     1161,  115,  115, 1161,  115,  115,  115,  115, 1161,  115,
1348      115, 1161,  115, 1161,  115,  115, 1161, 1161, 1161,  115,
1349      115, 1161,  115, 1161,  115, 1161,  115,  115,  115, 1161,
1350      115,  115,  115,  115,  115,  115, 1161, 1161, 1161,  115,
1351
1352      115, 1161,  671, 1161, 1161,  115, 1161,  115,  115,  115,
1353     1161, 1161,  115,  672,  115,  115, 1161,  115,  115, 1161,
1354      115,  115,  115,  115, 1161, 1161,  115, 1161,  115, 1161,
1355      671, 1161, 1161,  115, 1161,  115, 1161,  115,  115, 1161,
1356      115,  115,  672,  115,  115,  673,  115,  115,  674,  115,
1357      115, 1161,  115, 1161, 1161,  115,  115, 1161, 1161, 1161,
1358      115,  698, 1161,  115, 1161,  115,  115, 1161,  115, 1161,
1359      115, 1161, 1161,  115,  673,  115, 1161,  674,  115,  677,
1360      115,  684, 1161, 1161, 1161, 1093,  948, 1093,  115, 1161,
1361      698,  115, 1161,  949, 1161,  115,  950,  685,  685,  685,
1362
1363      685,  685,  685,  685,  685,  685,  685,  686,  115, 1110,
1364      948, 1110, 1161,  176, 1161, 1161, 1161,  949, 1161, 1161,
1365      950, 1161, 1161,  685,  685,  685,  685,  685,  685,  685,
1366      685,  685,  685,  686,  693, 1161,  693, 1161, 1161,  176,
1367     1161, 1161, 1161, 1161,  694, 1161, 1161, 1161, 1161,  685,
1368      685,  685,  685,  685,  685,  685,  685,  685,  685,  686,
1369      697, 1161,  697, 1161, 1161,  176,  696,  115, 1161, 1161,
1370      695,  115,  115,  110,  600,  690,  690,  690,  690,  690,
1371      690,  690,  690,  690,  690,  115,  115, 1161, 1161, 1161,
1372     1161, 1161, 1161,  115, 1161,  696,  115, 1161,  115,  695,
1373
1374      115,  115,  115,  600, 1161,  115, 1161,  115,  645,  732,
1375      115, 1161,  115,  115,  115,  646, 1161, 1161,  700,  699,
1376      700,  115,  115, 1161,  115, 1161, 1161,  115,  701, 1161,
1377     1161,  115,  702, 1161,  115, 1161,  115,  645,  732,  115,
1378      115,  211, 1161,  646, 1161, 1161, 1161,  699, 1161,  115,
1379     1161,  115,  115,  709, 1161,  709,  115, 1161,  710,  710,
1380      710,  710,  710,  710,  710,  710,  710,  710, 1161,  211,
1381      115, 1126,  948, 1126, 1161, 1161, 1161, 1161, 1161,  949,
1382      115, 1161,  950, 1161, 1161,  115,  566,  566,  566,  566,
1383      566,  566,  566,  566,  566,  566,  211, 1161,  115, 1161,
1384
1385     1161,  947,  948,  947, 1161,  565, 1161, 1161,  711,  949,
1386      711, 1161,  950,  712,  712,  712,  712,  712,  712,  712,
1387      712,  712,  712,  589,  589,  589,  589,  589,  589,  589,
1388      589,  589,  589, 1161,  565,  589,  589,  589,  589,  589,
1389      589,  589,  589,  589,  589,  591,  591,  591,  591,  591,
1390      591,  591,  591,  591,  591,  591,  591,  591,  591,  591,
1391      591,  591,  591,  591,  591,  733, 1161, 1161,  115, 1161,
1392      115, 1161, 1161,  115,  947,  948,  947, 1161, 1000, 1001,
1393     1000, 1161,  949,  737,  115,  950, 1002,  115, 1161, 1003,
1394     1161, 1161, 1161, 1161,  733, 1161, 1161,  115, 1161,  115,
1395
1396     1161, 1161,  115, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1397     1161,  737,  115,  718,  718,  115,  718,  718,  718,  718,
1398      718,  718,  718,  718,  718,  718,  718,  718,  718,  718,
1399      734,  718,  735,  735,  735,  735,  735,  735,  735,  735,
1400      735,  735,  718,  718,  718,  718,  718,  736,  736,  736,
1401      736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
1402      736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
1403      736,  736,  736,  718,  718,  736,  736,  736,  736,  736,
1404      736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
1405      736,  736,  736,  736,  736,  736,  736,  736,  736,  736,
1406
1407      736,  718,  115,  115,  738,  115,  115,  115,  115,  115,
1408      115,  115, 1161,  740,  115, 1161, 1161, 1161,  739,  741,
1409     1161,  115,  115, 1161,  115,  115, 1161, 1161,  115, 1161,
1410     1161,  115,  115,  738,  115,  115,  115,  115,  115,  115,
1411      115, 1161,  740,  115, 1161, 1161,  739,  741, 1161,  115,
1412      115, 1161,  115,  115,  115,  115,  115,  115, 1161,  115,
1413      115,  115,  115, 1161, 1161,  745,  115, 1161, 1161,  742,
1414     1161, 1161, 1161,  115,  115,  743,  115, 1161, 1161, 1161,
1415      115, 1161, 1161,  115,  115, 1161,  115,  115,  115,  115,
1416      115,  115,  115, 1161,  745,  115, 1161,  742,  746, 1161,
1417
1418     1161,  115,  115,  743,  115, 1161,  115, 1161,  115,  115,
1419      115, 1161, 1161,  115,  750,  115,  115,  747,  115, 1161,
1420      751,  115, 1161, 1161, 1161, 1161,  746, 1161,  115,  115,
1421     1161, 1161,  115, 1161,  115,  115,  115, 1161,  115,  115,
1422      115,  115,  115,  750,  115, 1161,  747,  115, 1161,  751,
1423     1161, 1161, 1161, 1161,  115,  115,  115,  115,  115, 1161,
1424      115, 1161, 1161,  115,  115,  115, 1161, 1161, 1161,  115,
1425      115,  761, 1161, 1161,  115,  115, 1161,  115,  762,  115,
1426      115, 1161,  115,  115, 1161, 1161, 1161,  115,  763, 1161,
1427     1161,  115,  115,  115,  115, 1161,  115, 1161, 1161,  761,
1428
1429     1161, 1161,  764,  115,  115,  115, 1161,  762,  115,  115,
1430      115, 1161,  115,  765,  115, 1161,  763,  115,  768,  115,
1431      115,  115,  115,  115, 1161,  115, 1161, 1161, 1161,  766,
1432      764,  115, 1161,  115, 1161,  115, 1161,  115,  115,  767,
1433      115,  115,  765,  115, 1161, 1161,  115,  768,  115, 1161,
1434     1161, 1161,  115,  769,  115,  769, 1161,  766, 1161,  115,
1435     1161,  115, 1161,  258,  115,  115, 1161, 1161,  767,  115,
1436      257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
1437      115, 1161,  115,  115,  770,  115,  115,  115,  115,  115,
1438     1161,  115,  115, 1161,  115, 1161, 1161, 1161, 1161,  115,
1439
1440      771, 1161,  115, 1161, 1161,  115,  115, 1161,  115,  115,
1441     1161, 1161,  115, 1161,  115,  115,  115,  115,  115,  115,
1442      115,  115, 1161,  115,  115, 1161, 1161,  115,  771, 1161,
1443      115, 1161, 1161,  115,  115,  115,  115, 1161,  772,  115,
1444      115,  774,  115,  773,  115,  775,  115,  115,  115, 1161,
1445     1161,  115, 1161,  115,  115, 1161, 1161, 1161,  115, 1161,
1446     1161,  115,  115, 1161,  115,  115,  772,  115,  115,  115,
1447      774,  115,  773,  115,  775,  115,  115, 1161, 1161,  776,
1448      115,  115,  115,  115, 1161,  115,  115,  777,  115,  115,
1449      115,  115,  115,  115,  780, 1161,  115,  115, 1161,  115,
1450
1451     1161, 1161,  115, 1161,  778,  779, 1161,  776, 1161,  115,
1452     1161,  115,  115,  115,  115, 1161,  777,  115, 1161,  115,
1453     1161,  115, 1161,  780, 1161, 1161,  115, 1161,  115,  115,
1454      115,  781,  778,  779,  115,  115, 1161, 1161, 1161,  115,
1455      115,  115, 1161, 1161, 1161, 1161,  782, 1161,  115, 1161,
1456     1161, 1161, 1161, 1161,  115, 1161, 1161, 1161,  115, 1161,
1457      781,  115, 1161,  115,  115,  115,  115,  783, 1161,  115,
1458      115, 1161,  784,  115,  782, 1161,  115,  785,  115, 1161,
1459      115, 1161,  115, 1161,  115, 1161, 1161, 1161, 1161, 1161,
1460      115, 1161,  115, 1161,  115,  115,  783, 1161,  115,  115,
1461
1462      784, 1161,  115,  787, 1161,  115,  785,  115,  115,  115,
1463      115, 1161,  115,  786,  115, 1161, 1161,  115, 1161, 1161,
1464      115, 1161,  788, 1161,  115,  115, 1161,  115,  115,  789,
1465      115, 1161,  787, 1161,  115, 1161,  115, 1161,  115,  115,
1466     1161,  115,  786,  115,  115,  115, 1161, 1161,  115, 1161,
1467      788, 1161,  115,  115,  115,  115,  115,  115,  789,  115,
1468     1161,  790,  115, 1161, 1161,  115, 1161,  115,  115,  792,
1469      115, 1161,  115,  115,  115, 1161,  115,  115, 1161, 1161,
1470     1161, 1161,  115,  115, 1161, 1161,  115,  791,  115, 1161,
1471      790,  115, 1161, 1161,  115,  115,  793,  115,  792,  115,
1472
1473      115,  115,  115,  115,  115,  115,  115, 1161, 1161, 1161,
1474     1161, 1161, 1161,  115, 1161,  791,  115, 1161,  795,  115,
1475      796, 1161, 1161,  115, 1161,  793,  115, 1161,  115,  115,
1476      115,  115, 1161, 1161,  115,  115, 1161,  115, 1161,  797,
1477      798,  115,  115, 1161, 1161,  115,  795,  115,  796,  115,
1478     1161, 1161, 1161,  115,  115,  115,  115,  115,  115, 1161,
1479      115, 1161,  115, 1161, 1161, 1161,  115,  797,  799,  798,
1480     1161,  115,  801,  115,  115, 1161,  115,  800,  115,  115,
1481      115, 1161,  115,  115,  115,  115,  115,  115, 1161, 1161,
1482     1161,  115, 1161,  115, 1161, 1161,  799, 1161, 1161,  115,
1483
1484      801, 1161, 1161,  115,  115,  800, 1161, 1161,  115,  115,
1485     1161, 1161,  176, 1161,  115, 1161, 1161, 1161,  176,  115,
1486     1161,  115, 1161,  816,  115, 1161,  110,  115,  111,  111,
1487      111,  111,  111,  111,  111,  111,  111,  111,  115,  115,
1488      115,  115, 1161, 1161,  115,  115,  819,  817,  115, 1161,
1489     1161,  818,  816,  115, 1161, 1161, 1161, 1161,  115,  115,
1490      115, 1161, 1161, 1161, 1161, 1161,  115, 1161,  115,  115,
1491      115, 1161,  211,  115,  115,  819,  817, 1161, 1161,  818,
1492     1161, 1161,  211, 1161, 1161, 1161,  115,  115,  115,  710,
1493      710,  710,  710,  710,  710,  710,  710,  710,  710,  710,
1494
1495      710,  710,  710,  710,  710,  710,  710,  710,  710,  211,
1496     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,  211,
1497     1161, 1161, 1161, 1161, 1161, 1161,  712,  712,  712,  712,
1498      712,  712,  712,  712,  712,  712,  712,  712,  712,  712,
1499      712,  712,  712,  712,  712,  712,  823,  823,  211,  823,
1500      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
1501      823,  823,  823,  828,  823,  829,  829,  829,  829,  829,
1502      829,  829,  829,  829,  829,  823,  823,  823,  823,  823,
1503      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
1504      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
1505
1506      830,  830,  830,  830,  830,  830,  823,  823,  830,  830,
1507      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
1508      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
1509      830,  830,  830,  830,  823,  832,   77,  832, 1161, 1161,
1510      833,  833, 1161,  833, 1161, 1161, 1161,  833,  833, 1161,
1511     1161,  833, 1161, 1161,  833,  833,  833,  833,  833,  833,
1512      833,  833,  833,  831,  831, 1161,  831,  831,  831,  831,
1513      831,  831,  831,  831,  831,  831,  831,  831,  831,  831,
1514      841,  831,  842,  842,  842,  842,  842,  842,  842,  842,
1515      842,  842,  831,  831,  831,  831,  831,  843,  843,  843,
1516
1517      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
1518      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
1519      843,  843,  843,  831,  831,  843,  843,  843,  843,  843,
1520      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
1521      843,  843,  843,  843,  843,  843,  843,  843,  843,  843,
1522      843,  831,  115, 1161, 1161,  258, 1161,  115,  257,  257,
1523      257,  257,  257,  257,  257,  257,  257,  257,  115,  845,
1524     1161,  844,  115,  115,  115,  115, 1161,  115, 1161, 1161,
1525      115,  115, 1161, 1161, 1161, 1161,  115,  115,  115, 1161,
1526     1161,  115, 1161, 1161,  846,  115, 1161,  115,  845,  844,
1527
1528      115,  115,  115,  115,  115, 1161,  115,  115, 1161,  115,
1529     1161, 1161,  115, 1161,  115,  115,  115, 1161,  115,  115,
1530     1161, 1161,  846,  115,  115, 1161,  115, 1161, 1161,  115,
1531      847, 1161, 1161, 1161, 1161, 1161,  115,  115,  848, 1161,
1532     1161,  115,  115,  115, 1161,  849, 1161,  115,  115, 1161,
1533      115,  115,  115, 1161,  115,  115,  115, 1161,  847,  850,
1534     1161,  852,  115,  852, 1161,  115,  848, 1161, 1161,  115,
1535      115, 1161,  115,  115,  849, 1161, 1161,  115,  115,  115,
1536      115, 1161,  115, 1161,  115,  115,  855,  115,  850, 1161,
1537      115, 1161,  115, 1161,  115, 1161,  853,  115,  115,  115,
1538
1539     1161,  115,  115, 1161, 1161, 1161, 1161,  115, 1161,  854,
1540     1161,  115, 1161,  115,  115,  855,  115, 1161,  858,  115,
1541      115, 1161, 1161,  115, 1161,  853,  115, 1161,  115,  115,
1542     1161,  115, 1161,  115,  115, 1161,  866,  854, 1161,  115,
1543     1161,  115, 1161,  115, 1161,  115,  867,  858,  115, 1161,
1544     1161,  115, 1161,  115, 1161,  115,  115,  868, 1161, 1161,
1545      115,  115, 1161,  115, 1161,  866, 1161, 1161,  115, 1161,
1546      115,  115,  115,  115,  867,  869,  115,  115,  115, 1161,
1547      115,  115,  871,  115, 1161,  115,  868, 1161, 1161,  870,
1548      115,  115, 1161, 1161,  874, 1161, 1161,  115,  115,  115,
1549
1550      115,  115, 1161,  115,  869,  115,  115,  115,  115, 1161,
1551      115,  871,  115,  115,  875,  115,  875,  870,  115,  115,
1552      872,  873,  115,  874,  876,  115,  115, 1161,  115,  115,
1553     1161,  115,  115, 1161, 1161, 1161, 1161,  115, 1161,  115,
1554      877,  115, 1161, 1161,  115,  115,  115,  115,  872,  873,
1555      115,  115,  115, 1161,  878,  115, 1161,  115,  115, 1161,
1556      115, 1161,  879,  115, 1161,  115,  115,  115,  877,  115,
1557     1161,  880,  115,  115,  115,  115,  115,  115, 1161, 1161,
1558      115,  115, 1161,  878, 1161, 1161,  115,  115,  115, 1161,
1559      115,  879,  115,  115,  115,  115,  115, 1161,  115,  115,
1560
1561      880,  115, 1161,  115,  115,  115, 1161,  881, 1161,  115,
1562      115, 1161, 1161, 1161,  115,  115,  115,  882,  115,  115,
1563     1161,  883,  115, 1161,  115, 1161, 1161,  115,  115,  115,
1564     1161,  115, 1161,  115, 1161,  881,  115,  115, 1161,  115,
1565     1161,  115,  115,  115,  115,  882,  115,  115,  115,  883,
1566      115,  115, 1161,  884, 1161,  884,  115,  115, 1161, 1161,
1567      115,  115,  115,  115, 1161,  115, 1161, 1161,  115,  115,
1568     1161,  115,  115, 1161,  115, 1161,  115,  115,  115,  115,
1569     1161,  886,  115,  888, 1161, 1161,  115, 1161,  115,  115,
1570      115,  115,  115,  115,  115, 1161, 1161,  115,  887,  115,
1571
1572     1161,  885,  115,  115, 1161,  115, 1161, 1161,  115,  886,
1573      115, 1161,  888,  889, 1161,  115, 1161,  115, 1161,  115,
1574      115,  115, 1161,  115,  115, 1161,  887,  115,  115,  885,
1575      115,  891,  115,  115, 1161, 1161,  890, 1161,  115,  115,
1576     1161,  889, 1161, 1161,  115, 1161,  115, 1161,  115, 1161,
1577     1161,  892, 1161,  115, 1161, 1161,  115, 1161,  115, 1161,
1578      891,  115,  115, 1161,  890, 1161,  115,  115,  115, 1161,
1579      115,  115, 1161,  115,  115,  115,  115, 1161,  895,  892,
1580     1161,  115,  115, 1161, 1161, 1161,  115,  115, 1161,  115,
1581      115,  115, 1161,  115, 1161,  896,  115,  896,  115,  115,
1582
1583      115,  115, 1161, 1161,  115,  115, 1161,  895, 1161,  115,
1584     1161,  115,  115, 1161, 1161, 1161,  115,  115,  115,  115,
1585      115, 1161,  115, 1161,  115,  115,  115,  115,  115,  115,
1586      897,  906, 1161,  115, 1161, 1161, 1161, 1161,  898,  115,
1587      115, 1161, 1161, 1161, 1161,  115, 1161,  115,  115,  115,
1588     1161,  115, 1161,  115,  115,  115,  115,  115, 1161,  897,
1589      906, 1161,  115, 1161,  907, 1161,  898,  115, 1161,  908,
1590      115,  908, 1161,  115,  258,  115,  802,   77,  804,  175,
1591      115, 1161, 1161, 1161, 1161,  115, 1161, 1161, 1161, 1161,
1592      909,  115,  907, 1161, 1161,  115,  115, 1161,  115, 1161,
1593
1594     1161, 1161,  115, 1161, 1161, 1161, 1161,  115, 1161,  115,
1595      115,  177,  178, 1161, 1161,  179, 1161,  180, 1161,  909,
1596      115,  115, 1161, 1161,  115,  115, 1161, 1161,  341,  182,
1597     1161,  115, 1161, 1161, 1161, 1161,  115,  115,  115, 1161,
1598      177,  178, 1161, 1161,  179, 1161,  180, 1161, 1161,  115,
1599     1161, 1161, 1161, 1161, 1161, 1161,  341,  182,  912,  912,
1600      211,  912,  912,  912,  912,  912,  912,  912,  912,  912,
1601      912,  912,  912,  912,  912,  914,  912,  915,  915,  915,
1602      915,  915,  915,  915,  915,  915,  915,  912,  912,  912,
1603      912,  912,  916,  916,  916,  916,  916,  916,  916,  916,
1604
1605      916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
1606      916,  916,  916,  916,  916,  916,  916,  916,  912,  912,
1607      916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
1608      916,  916,  916,  916,  916,  916,  916,  916,  916,  916,
1609      916,  916,  916,  916,  916,  916,  912,  211,  257,  257,
1610      257,  257,  257,  257,  257,  257,  257,  257, 1161, 1161,
1611     1161, 1161, 1161, 1161,  383,  383,  383,  383,  383,  383,
1612      383,  383,  383,  383,  374,  374,  211,  374,  374,  374,
1613      374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
1614      374,  384,  374,  385,  385,  385,  385,  385,  385,  385,
1615
1616      385,  385,  385,  374,  374,  374,  374,  374,  386,  386,
1617      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1618      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1619      386,  386,  386,  386,  374,  374,  386,  386,  386,  386,
1620      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1621      386,  386,  386,  386,  386,  386,  386,  386,  386,  386,
1622      386,  386,  374,  115, 1161,  917, 1161,  115,  115,  918,
1623      115,  115,  115,  919,  115, 1161,  115, 1161,  920,  115,
1624     1161, 1161,  115, 1161,  115, 1161,  115, 1161, 1161, 1161,
1625      115, 1161,  115,  115,  917, 1161,  115,  115,  918,  115,
1626
1627      115,  115,  919,  115,  922,  115, 1161,  920,  115,  115,
1628      115,  115,  115, 1161,  115,  921,  115, 1161,  115, 1161,
1629      115,  115, 1161,  115, 1161,  115, 1161,  115, 1161, 1161,
1630      115,  115,  115,  922,  923, 1161,  115, 1161,  115,  115,
1631      115,  927, 1161, 1161,  921,  115,  115, 1161,  928,  115,
1632      115,  115,  115, 1161,  115, 1161,  115,  115,  115, 1161,
1633      115,  115,  923,  115, 1161,  115, 1161,  115,  115,  927,
1634     1161,  115,  115, 1161,  115, 1161,  928,  115,  115, 1161,
1635      930,  115,  115,  115, 1161, 1161,  115, 1161,  115, 1161,
1636     1161,  938,  115, 1161,  939, 1161, 1161,  115, 1161,  115,
1637
1638     1161,  115,  115, 1161,  115, 1161,  115, 1161,  930,  115,
1639      115, 1161,  115,  115, 1161,  941, 1161,  115,  115,  938,
1640     1161,  940,  939,  115, 1161, 1161, 1161, 1161, 1161,  115,
1641      115, 1161,  115,  115,  115,  115, 1161, 1161,  115, 1161,
1642      115, 1161,  115,  942,  941, 1161, 1161,  115,  115,  940,
1643     1161,  115, 1161, 1161,  115, 1161, 1161, 1161,  115, 1161,
1644      115,  115, 1161,  115,  115,  943,  115, 1161,  115,  115,
1645      115,  942,  944,  115, 1161,  115,  115, 1161, 1161, 1161,
1646      115,  945,  115, 1161, 1161, 1161, 1161,  115, 1161,  115,
1647      115,  115, 1161,  115,  943,  115,  115,  115,  115,  115,
1648
1649     1161,  944,  115, 1161,  115, 1161,  951, 1161,  115,  945,
1650      952, 1161,  115,  115,  115,  115,  115,  115,  115,  115,
1651      115,  115,  115, 1161, 1161,  115, 1161,  115, 1161, 1161,
1652     1161, 1161,  115,  115,  951,  115,  115, 1161,  952, 1161,
1653      115,  115,  115,  115,  953,  115, 1161,  115,  115, 1161,
1654      115, 1161,  115,  115, 1161,  115, 1161,  115,  115,  115,
1655      115,  115, 1161,  115,  115,  115, 1161, 1161, 1161, 1161,
1656      115,  115,  956,  953, 1161, 1161,  955, 1161,  115,  115,
1657     1161,  115,  115,  115,  115, 1161,  115,  115,  115, 1161,
1658      115,  115, 1161,  115, 1161,  115,  115, 1161,  115,  115,
1659
1660      956,  957,  115, 1161,  955, 1161,  115,  115,  115,  115,
1661      115,  115, 1161,  115, 1161,  958,  115, 1161, 1161,  115,
1662      115,  115,  115,  962,  115,  115,  115,  115,  115,  957,
1663      115,  115, 1161, 1161,  115, 1161,  115,  115,  115,  115,
1664      115,  115,  115,  969,  958,  115, 1161, 1161,  115,  115,
1665     1161,  115,  962,  115, 1161,  960,  115,  115,  115,  115,
1666     1161, 1161,  115,  115,  115, 1161,  115,  963,  115,  115,
1667      115,  115,  969, 1161, 1161, 1161, 1161,  115,  115, 1161,
1668     1161,  115, 1161,  960,  970,  115, 1161, 1161,  115,  115,
1669      115,  971, 1161,  115,  115,  115,  963, 1161, 1161, 1161,
1670
1671      115, 1161, 1161, 1161, 1161, 1161,  115,  211,  115, 1161,
1672     1161, 1161,  970,  115, 1161, 1161,  115,  975,  115, 1161,
1673      971,  115, 1161,  115,  383,  383,  383,  383,  383,  383,
1674      383,  383,  383,  383, 1161,  115,  115,  115, 1161,  115,
1675     1161, 1161,  115,  976,  115,  115,  975, 1161,  115, 1161,
1676      115, 1161, 1161,  115, 1161, 1161,  115, 1161,  115, 1161,
1677     1161, 1161, 1161,  115, 1161,  977,  115,  115,  115,  115,
1678      115,  115,  976,  115,  115,  115, 1161,  115,  115, 1161,
1679     1161, 1161,  115,  115,  115, 1161,  115, 1161,  115,  978,
1680     1161,  979, 1161,  977, 1161,  115, 1161,  115,  115,  115,
1681
1682     1161,  115, 1161,  115,  115,  115,  115,  115, 1161,  983,
1683      115, 1161,  115,  982, 1161, 1161,  115,  978, 1161,  979,
1684      115,  115, 1161, 1161,  115,  115,  115,  115,  994,  992,
1685      115,  985,  115,  115,  115,  115, 1161, 1161,  983,  115,
1686      115,  982, 1161, 1161, 1161, 1161,  115,  115,  115, 1161,
1687      115, 1161,  115, 1161, 1161,  115,  115,  994,  992,  115,
1688      985,  115,  115,  993,  115,  115,  115, 1161,  115, 1161,
1689      115,  115, 1161, 1161,  115,  115, 1161, 1161,  115, 1161,
1690     1161, 1161,  115, 1161,  995,  115,  996,  115,  115, 1161,
1691     1161,  115,  993,  115,  115,  115,  115, 1161, 1161,  115,
1692
1693      115,  115,  115, 1161,  997, 1161,  115,  115, 1161, 1161,
1694      115,  115,  995,  115,  996, 1161,  115, 1161,  115, 1161,
1695      115,  115,  115,  115, 1161,  115, 1161,  115, 1161,  115,
1696     1161,  115,  997, 1161, 1161, 1161,  115,  115,  115,  115,
1697     1161,  115, 1161,  115,  115, 1004, 1161,  115,  115,  115,
1698     1161,  115,  115, 1006, 1161, 1161,  115, 1161,  115,  115,
1699     1161, 1161,  115, 1161,  115,  115,  115, 1161,  115,  115,
1700      115,  115,  115,  115, 1004,  115, 1161,  115,  115, 1161,
1701     1161, 1006, 1161, 1161, 1161,  115,  115, 1007,  115,  115,
1702      115, 1161,  115,  115, 1161,  115, 1009,  115, 1161,  115,
1703
1704      115, 1161, 1161,  115,  115, 1161,  115, 1161,  115,  115,
1705     1161,  115, 1161,  115,  115, 1007, 1012,  115, 1161, 1161,
1706     1161,  115,  115, 1161, 1161, 1009,  115, 1011,  115,  115,
1707     1161, 1161,  115, 1161,  115,  115, 1161,  115,  115,  115,
1708      115,  115, 1161,  115, 1012, 1020,  115, 1161,  115, 1019,
1709      115, 1161,  115, 1161,  115, 1011,  115,  115,  115, 1161,
1710      115,  115, 1161,  115,  115, 1161,  115, 1161,  115,  115,
1711      115,  115, 1025,  115, 1020,  115,  115, 1019, 1161, 1161,
1712      115,  115,  115, 1161,  115, 1161,  115,  115,  115,  115,
1713      115, 1161, 1161,  115, 1161,  115, 1161,  115,  115,  115,
1714
1715     1025,  115,  115,  115,  115, 1026,  115, 1161,  115,  115,
1716     1161, 1161,  115,  115, 1161,  115, 1161, 1161,  115, 1029,
1717      115, 1161,  115,  115,  115, 1161, 1030,  115, 1161,  115,
1718      115,  115, 1161,  115, 1026,  115, 1161, 1161,  115, 1161,
1719      115,  115, 1161,  115,  115,  115,  115, 1029,  115,  115,
1720      115,  115, 1161,  115, 1161, 1030, 1038, 1161,  115, 1037,
1721      115,  115, 1161,  115,  115, 1161,  115,  115, 1161, 1161,
1722      115,  115,  115,  115,  115,  115, 1161, 1161,  115,  115,
1723      115, 1161, 1161, 1161, 1038, 1161, 1039, 1037,  115, 1161,
1724      115,  115,  115,  115, 1161,  115,  115,  115,  115, 1040,
1725
1726      115,  115,  115, 1161,  115,  115, 1044, 1161,  115,  115,
1727     1161, 1161,  115, 1161, 1039, 1161,  115, 1161, 1161,  115,
1728      115, 1161,  115,  115, 1161,  115,  115,  115, 1040,  115,
1729     1161,  115, 1161,  115,  115, 1044, 1161,  115,  115,  115,
1730      115, 1047,  115, 1161,  115, 1161, 1161,  115, 1161,  115,
1731     1161,  115, 1161,  115,  115, 1161,  115, 1048,  115, 1161,
1732      115, 1161, 1161, 1161,  115,  115,  115,  115, 1161,  115,
1733     1047,  115,  115, 1161, 1161, 1054,  115, 1161, 1161,  115,
1734     1059,  115,  115,  115,  115,  115, 1048,  115, 1161,  115,
1735      115, 1161, 1161,  115,  115,  115, 1161,  115,  115, 1161,
1736
1737      115, 1161,  115, 1054,  115,  115, 1161,  115, 1062, 1059,
1738      115,  115, 1161, 1161,  115, 1161,  115, 1161, 1161,  115,
1739      115, 1161,  115,  115,  115,  115,  115,  115, 1063,  115,
1740     1161,  115,  115, 1161, 1161, 1067, 1062, 1161, 1161,  115,
1741     1161,  115, 1161,  115,  115, 1161, 1161,  115, 1161,  115,
1742     1161,  115,  115,  115,  115, 1068,  115, 1063,  115,  115,
1743     1161, 1161, 1161, 1067,  115, 1161,  115,  115,  115,  115,
1744      115,  115, 1069,  115, 1073,  115,  115, 1161,  115, 1161,
1745     1161,  115, 1161, 1161, 1068, 1161, 1161,  115,  115,  115,
1746      115,  115, 1161,  115,  115,  115,  115,  115, 1161,  115,
1747
1748     1161, 1069,  115, 1073,  115, 1161,  115,  115, 1161,  115,
1749     1080, 1161,  115, 1161, 1161,  115,  115,  115, 1161,  115,
1750      115,  115, 1161,  115,  115,  115,  115, 1087,  115, 1161,
1751     1161, 1161, 1161, 1161, 1088,  115,  115,  115, 1080,  115,
1752     1161,  115,  115, 1161,  115,  115,  115, 1161,  115, 1161,
1753      115,  115,  115,  115,  115, 1161, 1087,  115,  115, 1091,
1754     1161, 1161, 1088,  115, 1161,  115, 1161,  115,  115,  115,
1755      115,  115, 1095,  115,  115,  115,  115,  115, 1161, 1161,
1756      115, 1161,  115, 1161, 1161, 1161,  115, 1091,  115, 1161,
1757      115,  115, 1161,  115,  115,  115,  115, 1161,  115,  115,
1758
1759      115, 1095, 1106,  115, 1161,  115, 1161, 1161, 1161, 1161,
1760      115, 1161, 1161,  115, 1105, 1161,  115,  115,  115, 1161,
1761      115, 1108,  115,  115,  115,  115, 1161, 1161,  115,  115,
1762     1161, 1106, 1161, 1161, 1161, 1161,  115, 1161,  115, 1161,
1763      115,  115, 1105,  115, 1112,  115,  115,  115, 1161,  115,
1764     1108,  115,  115,  115,  115, 1161, 1161, 1161,  115,  115,
1765     1161, 1122, 1161, 1161,  115, 1161,  115, 1161,  115,  115,
1766     1161,  115, 1112, 1161,  115, 1161,  115, 1161,  115, 1161,
1767     1161,  115, 1161,  115, 1161, 1161, 1161,  115, 1161, 1122,
1768     1161, 1161, 1161, 1161,  115, 1161,  115, 1124,  948, 1124,
1769
1770     1161, 1161, 1125, 1125, 1161, 1125, 1161, 1161, 1161, 1125,
1771     1125, 1161, 1161, 1125, 1161, 1161, 1125, 1125, 1125, 1125,
1772     1125, 1125, 1125, 1125, 1125,  115,  115, 1161, 1161, 1161,
1773      115,  115, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1133,
1774     1161, 1161, 1128, 1161,  115,  115, 1161, 1161, 1161, 1161,
1775     1161, 1161, 1161, 1161,  115,  115, 1161, 1161, 1161,  115,
1776      115, 1161, 1161, 1161, 1161, 1161, 1161, 1133, 1161, 1161,
1777     1128, 1161,  115,  115,  947,  948,  947, 1161, 1161, 1134,
1778     1134, 1161, 1135, 1161,  115,  950, 1134, 1134, 1137,  115,
1779     1134, 1161, 1161, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
1780
1781     1134, 1134, 1161,  115,  115,  115, 1161, 1161, 1161,  115,
1782      115, 1161, 1161,  115, 1161, 1161, 1161, 1137,  115, 1161,
1783     1161, 1161, 1161,  115,  115, 1161, 1161, 1161, 1161, 1161,
1784     1161,  115, 1161,  115,  115, 1161, 1161, 1161,  115,  115,
1785     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1786     1161,  115,  115,   64,   64,   64,   64,   64,   64,   64,
1787       64,   64,   64,   64,   64,   65,   65,   65,   65,   65,
1788       65,   65,   65,   65,   65,   65,   65,   81,   81, 1161,
1789       81,   81,   81,   81,   81,   81,   81,   81,   81,   84,
1790       84, 1161,   84,   84,   84,   84,   84,   84,   84,   84,
1791
1792       84,   88,   88,   88,   88,   88,   88,   88,   88,   88,
1793       88,   88,   88,   92,   92,   92,   92,   92,   92,   92,
1794       92,   92,   92,   92,   92,  111,  111,  115,  115,  115,
1795      115,  115,  115,  115,  115,  187,  187,  187,  187,  187,
1796      187,  187,  187,  187,  187,  187,  187,  202,  202,  202,
1797      202,  202,  202,  202,  202,  202,  202,  202,  202,  209,
1798      209,  209,  209,  209,  209, 1161,  209,  209,  209, 1161,
1799      209,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1800      232,  232,  232,  101, 1161, 1161,  101,  252,  252,  252,
1801     1161, 1161,  252, 1161,  252,  252, 1161,  252,  252,  343,
1802
1803      343,  343,  343,  343,  343,  343,  343,  343,  343,  343,
1804      343,  358,  358, 1161,  358,  358,  358,  358,  358,  358,
1805      358,  358,  358,  371,  371,  371,  371,  371,  371, 1161,
1806      371,  371,  371, 1161,  371,  374,  374,  374,  374,  374,
1807      374,  374,  374,  374,  374,  374,  374,  379,  379,  379,
1808      379,  379,  379,  379,  379,  379,  379,  379,  379,  422,
1809     1161, 1161,  422,  276, 1161, 1161, 1161,  276, 1161, 1161,
1810     1161, 1161, 1161,  276,  558,  558,  558,  558,  558,  558,
1811      558,  558,  558,  558,  558,  558,  718,  718, 1161,  718,
1812      718,  718,  718,  718,  718,  718,  718,  718,  721,  721,
1813
1814     1161,  721,  721,  721,  721,  721,  721,  721,  721,  721,
1815      723,  723, 1161,  723,  723,  723,  723,  723,  723,  723,
1816      723,  723,   88,   88,   88,   88,   88,   88,   88,   88,
1817       88,   88,   88,   88,  726,  726,  726,  726,  726,  726,
1818      726,  726,  726,  726,  726,  726,   92,   92,   92,   92,
1819       92,   92,   92,   92,   92,   92,   92,   92,  728,  728,
1820      728,  728,  728,  728,  728,  728,  728,  728,  728,  728,
1821      812,  812,  812,  812,  812,  812,  812,  812,  812,  812,
1822      812,  812,  814,  814, 1161,  814,  814,  814,  814,  814,
1823      814,  814,  814,  814,  823,  823,  823,  823,  823,  823,
1824
1825      823,  823,  823,  823,  823,  823,  825,  825,  825,  825,
1826      825,  825,  825,  825,  825,  825,  825,  825,  831,  831,
1827     1161,  831,  831,  831,  831,  831,  831,  831,  831,  831,
1828      834,  834, 1161,  834,  834,  834,  834,  834,  834,  834,
1829      834,  834,   81,   81, 1161,   81,   81,   81,   81,   81,
1830       81,   81,   81,   81,  835,  835, 1161,  835,  835,  835,
1831      835,  835,  835,  835,  835,  835,   84,   84, 1161,   84,
1832       84,   84,   84,   84,   84,   84,   84,   84,  837,  837,
1833      837,  837,  837,  837,  837,  837,  837,  837,  837,  837,
1834       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
1835
1836       88,   88,  838,  838,  838,  838,  838,  838,  838,  838,
1837      838,  838,  838,  838,   92,   92,   92,   92,   92,   92,
1838       92,   92,   92,   92,   92,   92,  187,  187,  187,  187,
1839      187,  187,  187,  187,  187,  187,  187,  187,  904,  904,
1840      904,  904,  904,  904,  904,  904,  904,  904,  904,  904,
1841      358,  358, 1161,  358,  358,  358,  358,  358,  358,  358,
1842      358,  358,  814,  814, 1161,  814,  814,  814,  814,  814,
1843      814,  814,  814,  814,  202,  202,  202,  202,  202,  202,
1844      202,  202,  202,  202,  202,  202,  912,  912,  912,  912,
1845      912,  912,  912,  912,  912,  912,  912,  912,  374,  374,
1846
1847      374,  374,  374,  374,  374,  374,  374,  374,  374,  374,
1848      379,  379,  379,  379,  379,  379,  379,  379,  379,  379,
1849      379,  379,  825,  825,  825,  825,  825,  825,  825,  825,
1850      825,  825,  825,  825,  946,  946,  946,  946,  946,  946,
1851      946,  946,  946,  946,  946,  946,  999,  999,  999,  999,
1852      999,  999,  999,  999,  999,  999,  999,  999,   13, 1161,
1853     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1854     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1855     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1856     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1857
1858     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1859     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1860     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1861     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1862     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161
1863    } ;
1864
1865static yyconst flex_int16_t yy_chk[9249] =
1866    {   0,
1867        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1868        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1869        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1870        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1871        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1872        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1873        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1874        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1875        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
1876        2,    2,    2,   10,    8,    8,    8,    8,   15,   15,
1877
1878       15,   68, 1129,   14,   10, 1119,   68,    2,    2,    2,
1879        2,    2,    2,    2,    2,    2,    2,   14,   16,   16,
1880       16,   54,   54,   54,    2,    2,   18,   10,    2,   19,
1881        2,    8,   14,   17,   17,   17,   15,   20,   21, 1096,
1882       18,    2,    2,  176,   22,   14, 1084,   25,   26,  176,
1883       15,   20,   21,    2,    2,   18,   10,    2,   75,    2,
1884        8,   25,   42,   19,   69,   15,   20,   21,   18,    2,
1885        2,   17,   24,   27,   26,   23,   25,   19,   15,   20,
1886       21,   22,   23,   23,   29,   17,   75,   27,   26,   25,
1887     1045,   42,   19,   24,  959,   22,   30,  339,   74,  339,
1888
1889       17,   82,   27,   26,  340,   19,  340,   24,   83,   69,
1890       22,   29,   23,   17,   31,   27,   26,   32,   30,   34,
1891       41,  178,   24,   22,  916,   29,   23,   74,   31,  912,
1892       82,   32,   30,   34,   41,   24,   83,   69,   49,  685,
1893       29,   23,   49,   31,  905,  685,   32,   30,   34,   41,
1894      178,  207,   33,   29,   23,   28,   31,   28,   33,   32,
1895       30,   34,   41,   76,   76,   76,  242,   49,   67,   67,
1896       67,   49,   33,   28,   28,   28,   28,   28,   28,   28,
1897       28,   28,   28,   86,   43,   63,  207,   33,   28,   43,
1898       44,  350,   28,   28,   28,  242,   43,   43,  904,   28,
1899
1900       33,   28,   28,   63,   44,   67,   91,   28,   77,   77,
1901       77,   28,   86,   43,   63,  207,  837,   28,   43,   44,
1902      350,   28,   28,   28,   43,   43,   87,   28,  360,   28,
1903       28,   63,   44,  835,   67,   28,   78,   78,   78,   28,
1904       35,   86,   35,   35,   35,   35,   35,   35,   35,   35,
1905       35,   35,   38,   40,  830,   91,   38,  360,   35,   35,
1906       38,   40,   35,  903,   40,  102,   38,   40,   35,  103,
1907       38,  107,   87,   40,   90,   35,   35,   79,   79,   79,
1908      825,   38,   40,   91,  342,   38,  342,   35,   35,   38,
1909       40,   35,   40,  102,   38,   40,   35,  103,   38,  107,
1910
1911       87,   40,  108,   35,   35,   36,   90,   36,   36,   36,
1912       36,   36,   36,   36,   36,   36,   36,  179,   37,  359,
1913       39,  359,   36,  903,  823,   37,   45,   36,  822,   37,
1914      108,   39,   37,   39,   45,   90,   39,   39,   46,  205,
1915       45,   36,   37,   39,  812,  179,   46,   37,  393,   39,
1916      180,   36,   46,  182,   37,   45,   36,   37,   46,   39,
1917       37,   39,   48,   45,   39,   39,   51,   46,   45,   36,
1918       37,   39,   47,   51,  811,   46,   48,  393,  180,   48,
1919       46,  182,   48,   51,  205,   47,   46,   47,  104,   50,
1920      220,   48,   47,   50,  529,   51,  529,   50,  396,   52,
1921
1922      450,   47,   51,  104,   48,   50,   52,   48,   50,   50,
1923       48,   51,  205,   47,  532,   47,   52,  104,   50,  804,
1924       47,  220,   50,   80,   80,   80,   50,  396,   52,  450,
1925      530,  104,  530,   50,   92,   52,   50,   50,   55,   55,
1926       55,   92,   92,  532,   52,   53,   53,   53,   53,  220,
1927       56,  223,  531,   53,  531,   56,   55,   55,   55,   55,
1928       55,   55,   55,   55,   55,   55,  184,  184,  184,   94,
1929       70,   70,   70,   71,   71,   71,   94,   94,   60,  223,
1930       53,   53,   70,   53,   53,   71,   53,   56,  726,   60,
1931      106,  191,   60,  686,   93,   93,   93,   53,   53,  686,
1932
1933      106,   56,   93,   93,  181,   70,  725,   60,   71,   53,
1934       53,  181,   53,   53,  723,   53,   56,   60,  722,  106,
1935       60,   72,   72,   72,  910,   53,   53,  214,  106,   56,
1936       57,   58,  181,   72,   70,   96,   57,   71,  222,  181,
1937      191,  716,   96,   96,   57,  189,   57,   57,   57,   57,
1938       57,   57,   57,   57,   57,   57,   59,  222,   58,   72,
1939       59,  208,  208,  208,   59,   58,   57,   96,  191,   58,
1940       59,  190,   58,   72,   59,  714,  214,  189,   61,  206,
1941       57,  706,   58,   61,  910,   59,  222,   58,   72,   59,
1942       61,   61,   62,   59,   58,   57,   96,   58,   59,   62,
1943
1944       58,   72,   59,  190,  214,  224,  189,   61,   57,   62,
1945       58,  206,   61,  210,  210,  210,   62,  689,   61,   61,
1946      664,   62,  225,  225,  225,  585,  580,  232,   62,  578,
1947      558,  235,  190,  224,  232,  232,  554,   62,  235,  235,
1948      206,  372,  372,  372,   62,   73,   73,   73,   73,   73,
1949       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1950       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1951       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1952       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1953       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1954
1955       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1956       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1957       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
1958       73,   73,   73,   73,   97,  101,  101,  105,  204,  204,
1959      204,   97,   97,  226,  538,  227,  213,  675,  101,  675,
1960      534,  111,  105,  111,  111,  111,  111,  111,  111,  111,
1961      111,  111,  111,  421,  101,  101,  105,  375,  375,  375,
1962      419,  226,  173,  227,  173,  204,  101,  114,  213,  534,
1963      105,  219,  412,   97,  113,  113,  113,  113,  113,  113,
1964      113,  113,  113,  113,  114,  228,  115,  118,  219,  114,
1965
1966      116,  115,  118,  125,  204,  116,  410,  213,  125,  231,
1967      173,   97,  100,  114,  100,  115,  118,  229,  116,  116,
1968      386,  221,  125,  114,  173,  115,  118,  219,  114,  116,
1969      115,  118,  125,  379,  116,  228,  249,  125,  230,  173,
1970      374,  114,  251,  115,  118,  100,  116,  116,  117,  100,
1971      125,  100,  173,  117,  243,  221,  100,  276,  100,  100,
1972      248,  231,  117,  228,  249,  401,  229,  117,  100,  294,
1973      251,  294,  401,  401,  100,  371,  343,  117,  100,  294,
1974      100,  230,  117,  221,  100,  276,  100,  100,  535,  231,
1975      117,  250,  243,  248,  229,  117,  100,  110,  110,  110,
1976
1977      110,  110,  110,  110,  110,  110,  110,  119,  121,  230,
1978      913,  247,  119,  121,  120,  110,  110,  535,  119,  120,
1979      243,  248,  120,  246,  400,  121,  119,  121,  110,  245,
1980      233,  233,  233,  120,  341,  277,  119,  121,  233,  233,
1981      344,  119,  121,  120,  110,  110,  119,  122,  120,  122,
1982      244,  120,  122,  121,  119,  121,  110,  177,  123,  218,
1983      400,  120,  341,  123,  212,  345,  122,  346,  344,  354,
1984      913,  177,  277,  347,  209,  123,  122,  123,  122,  124,
1985      202,  122,  348,  126,  124,  187,  177,  123,  126,  400,
1986      124,  349,  123,  345,  122,  346,  183,  126,  124,  177,
1987
1988      277,  347,  126,  123,  676,  123,  676,  354,  124,  127,
1989      348,  175,  126,  124,  127,  174,  237,  126,  124,  349,
1990       89,  127,  127,  237,  237,  126,  124,  127,  127,  128,
1991      126,  128,  129,  389,  128,  130,  354,  129,  127,  292,
1992      130,  292,  361,  127,  234,  234,  234,  130,  128,  127,
1993      127,  129,  234,  234,  130,  127,  127,  536,  128,  237,
1994      128,  129,   88,  128,  130,  388,  129,   84,  389,  130,
1995      361,  380,  380,  380,  356,  130,  128,   65,   13,  129,
1996      378,  238,  130,  131,  355,  131,  536,  237,  238,  238,
1997      369,  292, 1051,  388,  390,  133,  389,  392,    9,  131,
1998
1999      133,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2000      131,  132, 1081,  133,  133,  134,  132,    7,  134,  292,
2001      134,  388,  132,  398,  133,  392,  356,  355,  369,  133,
2002      132,  390,  378,  238,  134,  677,  131,  677,  131, 1130,
2003      132,  133,  133,  381,  134,  132,  136,  134,  135,  134,
2004      132,  136, 1051,  135,  356,  355,  398,  369,  132,  390,
2005      378,  238,  134,  136,  131,  136,  131,  135,  135,  139,
2006      377,  137, 1081,  138,  139,  136,  137,  135,  138,  137,
2007      136,  381,  135,  139,  138,  398,  137,  395,  139,    0,
2008      137,  136,  138,  136,  418,  135,  135,  397,  139, 1130,
2009
2010      137,  382,  138,  139,  140,  137,  475,  138,  137,  140,
2011      381,  139,  138,  377,  137,  395,  139,  142,  137,  142,
2012      138,  140,  418,  140,  141,  399,  143,  144,  143,  141,
2013     1131,  537,  144,  140,  475,    0,  143,  141,  140,  391,
2014      533,  377,  144,  141,  397,  382,  144,    0,  543,  140,
2015      142,  140,  466,  141,  466,  142,  144,  146,  141,  143,
2016      537,  144,  146,  146,  143,  141,    0,  391,  533,  142,
2017      144,  141,  397,  382,  144,  399,  146,    0,  143,  142,
2018      145,    0,  145,  466,  142,  145,  146,  680,  143,  680,
2019     1131,  146,  146,  143,  145,  391,  145,  142,  543,  145,
2020
2021      147,    0,  148,  399,  146,  147,  143,  148,  557,  145,
2022      484,  145,  484,  546,  145,  148,  394,  394,  394,  147,
2023      484,  148,  145,  147,  145,  149,  543,  145,  149,  147,
2024      149,  148,  572,  150,  147, 1148,  148,  151,  150,    0,
2025        0,  546,  151,  148,  149,  150,  547,  147,    0,  148,
2026      151,  147,  150,  557,  149,    0,  151,  149,    0,  149,
2027      544,  572,  150,  152,  153,    0,  151,  150,  152,  153,
2028        0,  151,  149,  150,  547,  153,  152,  488,  151,  488,
2029      150,  557,  152,  153,  151,    0,  155,  488,    0,  154,
2030      155,  155,  152,  153,  154, 1148,  544,  152,  153,  521,
2031
2032      154,  521,    0,  153,  152,  155,  611,    0,  154,  521,
2033      152,  153,  156,  253,  253,  155,  158,  156,  154,  155,
2034      155,  158,  402,  154,  158,  544,  253,    0,  154,  402,
2035      402,  156,  157,  155,  611,  158,  154,  157,  559,  559,
2036      559,  156,  253,  253,    0,  158,  156,  612,    0,  157,
2037      158,  157,  157,  158,  253,  160,  160,  159,    0,  156,
2038      160,  157,  159,  158,  614,  159,  157,  370,  370,  370,
2039      615,  159,  402,  561,  160,  612,  159,  157,    0,  157,
2040      157,  194,  162,  194,  160,  160,  159,  162,  161,  160,
2041      161,  159,  614,  161,  159,  556,  556,  556,  615,  159,
2042
2043      402,  162,  160,  162,  159,    0,  161,  161,  370,  542,
2044      161,  162,  575,  163,  194,  564,  162,  161,  163,  161,
2045      164,  555,  161,  561,  163,  164,  164,  563,  194,  162,
2046        0,  162,  163,  164,  161,  161,  556,  370,  161,  164,
2047      165,  575,  163,  194,  568,  165,  692,  163,  692,  164,
2048      617,  561,  163,  562,  164,  164,  194,  165,  542,  165,
2049      163,  164,  564,  166,  403,  556,  682,  164,  166,  165,
2050      555,  403,  403,  577,  165,  569,  563,  166,  617,  568,
2051      166,    0,  166,  167,  167,  165,  542,  165,  167,  562,
2052      564,  697,  166,  697,  682,  167,  569,  166,  555,  744,
2053
2054      403,    0,  167,  570,  563,  166,  577,  568,  166,  168,
2055      166,  579,  167,  167,  168,  169,    0,  167,  562,  169,
2056      169,    0,  168,  167,  570,  569,  168,  744,  168,  403,
2057      167,  571,  170,    0,  169,  577,  753,  170,  168,    0,
2058      170,  171,    0,  168,  169,  171,  171,  579,  169,  169,
2059      168,  170,  571,  570,  168,    0,  168,  574,  574,  574,
2060      171,  170,  169,  172,  753,  581,  170,  604,  172,  170,
2061      171,  172,  581,  581,  171,  171,  579,  582,  613,  170,
2062      618,  571,  172,  687,  582,  582,    0,    0,  171,  678,
2063        0,  678,  172,  185,  185,  185,  604,  172,  756,  678,
2064
2065      172,  581,  679,  635,  815,  635,  815,  613,  757,  618,
2066      172,  185,  185,  185,  185,  185,  185,  185,  185,  185,
2067      185,  186,  681,  687,    0,  678,  756,  186,  713,    0,
2068      581,  679,  691,  608,  635,  608,  757,  186,  186,  186,
2069      186,  186,  186,  186,  186,  186,  186,  192,  683,  713,
2070      683,  681,  687,  192,  678,  684,  684,  684,  683,    0,
2071      703,  691,  683,  192,  192,  192,  192,  192,  192,  192,
2072      192,  192,  192,  193,  608,  215,  215,  215,  713,  193,
2073      708,  708,  708,  748,  826,  826,  826,  193,  608,  193,
2074      193,  193,  193,  193,  193,  193,  193,  193,  193,  195,
2075
2076      703,  196,  197,  608,  195,  749,  196,  197,  215,    0,
2077      195,  616,  748,  196,  196,  688,  608,  195,  195,  196,
2078      196,  197,  215,  832,  832,  832,  704,  616,  195,  703,
2079      196,  197,  707,  195,  749,  196,  197,  215,  195,  198,
2080      616,  196,  196,    0,  198,  195,  195,  196,  196,  197,
2081      215,  688,  702,  198,  702,  616,  200,    0,  198,  201,
2082      199,  200,  199,  201,  201,  199,  702,  755,  198,  758,
2083        0,  200,  707,  198,  199,  200,  199,  704,  201,  199,
2084      688,  198,  759,  807,    0,  200,  198,    0,  201,  199,
2085      200,  199,  201,  201,  199,  216,  755,    0,  758,  200,
2086
2087        0,  707,  199,  200,  199,  704,  201,  199,    0,    0,
2088      759,  807,  216,  216,  216,  216,  216,  216,  216,  216,
2089      216,  216,  217,  217,  217,  217,  217,  217,  217,  217,
2090      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2091      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2092      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2093      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2094      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2095      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2096      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2097
2098      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2099      217,  239,    0,  239,  860,  760,  239,  239,  239,  239,
2100      239,  239,  239,  239,  239,  239,  240,    0,  240,  863,
2101      805,  240,  240,  240,  240,  240,  240,  240,  240,  240,
2102      240,  241,  860,  241,  760,  806,  241,  241,  241,  241,
2103      241,  241,  241,  241,  241,  241,  254,  863,  254,  805,
2104        0,  254,  254,  254,  254,  254,  254,  254,  254,  254,
2105      254,  255,    0,  255,  806,    0,  255,  255,  255,  255,
2106      255,  255,  255,  255,  255,  255,  256,  808,  256,  259,
2107      865,  256,  256,  256,  256,  256,  256,  256,  256,  256,
2108
2109      256,  257,  257,  257,  257,  257,  257,  257,  257,  257,
2110      257,    0,  259,  769,  260,  769,  808,  259,  865,  260,
2111      257,  258,  258,  258,  258,  258,  258,  258,  258,  258,
2112      258,  259,  260,  260,  261,  813,  901,  262,  901,  261,
2113      258,  259,  262,  260,  769,  261,  259,  727,  260,  257,
2114      908,  262,  908,  261,  727,  727,  262,  263,  705,  259,
2115      260,  260,  263,  261,  813,  693,  262,  693,  261,  258,
2116      263,  262,    0,  261,    0,  693,  263,  264,  266,  262,
2117      265,  261,  264,  266,  262,  265,  263,  803,  266,  803,
2118      264,  263,    0,    0,  705,  803,  264,  266,  263,  265,
2119
2120      265,  693,  851,  268,  263,  810,  264,  266,  268,  265,
2121      267,  264,  266,    0,  265,  267,  266,    0,  264,    0,
2122      268,  267,  268,  705,  264,  266,    0,  265,  265,  267,
2123      693,  851,  268,  269,    0,  271,  821,  268,  269,  267,
2124      271,  270,  810,    0,  267,  700,  270,  700,  268,  267,
2125      268,  269,  269,  270,  271,  700,  270,  267,  272,  700,
2126      270,    0,  269,  272,  271,  272,  728,  269,    0,  271,
2127      270,  810,  821,  728,  728,  270,    0,  272,  273,  269,
2128      269,  270,  271,  273,  270,  274,    0,  272,  270,  273,
2129      274,  729,  272,  794,  272,  794,  274,  273,  729,  729,
2130
2131        0,  821,    0,  794,  274,  272,    0,  273,  278,  278,
2132      857,  275,  273,  278,  274,  275,  275,  273,  900,  274,
2133      859,  809,  809,  809,  274,  273,  820,  278,  279,  809,
2134      275,  280,  274,  279,  824,  279,  280,  278,  278,  857,
2135      275,  284,  278,  284,  275,  275,  900,  279,  281,  859,
2136      280,  861,  281,  281,    0,  278,  862,  279,  275,  864,
2137      280,  925,  279,  820,  279,  280,    0,  281,  283,    0,
2138        0,  824,  284,  283,  284,  279,  283,  281,  280,  284,
2139      861,  281,  281,  838,  875,  862,  875,  283,  864,  925,
2140      838,  838,  820,  284,  875,  281,  282,  283,  282,  285,
2141
2142      824,  894,  283,  284,  285,  283,  286,  899,  284,  422,
2143      422,  286,  839,  902,  893,  283,  893,  285,  285,  839,
2144      839,  284,  422,    0,  893,  286,    0,  282,  285,  282,
2145      894,  911,  282,  285,  282,  286,  899,  282,  422,  422,
2146      286,  282,  902,    0,  282,  285,  285,  282,  282,  289,
2147      422,  282,  287,  286,  289,  288,  287,  287,  282,  288,
2148      288,  282,  934,  282,  937,  884,  282,  884,  289,  282,
2149        0,  287,  282,    0,  288,  282,  282,  926,  289,  282,
2150      911,  287,  290,  289,  288,  287,  287,  290,  288,  288,
2151      291,  934,  291,  937,  290,  291,  289,  929,  293,  287,
2152
2153      931,  290,  288,  293,  896,  926,  896,  932,  911,  291,
2154        0,  290,  293,  884,    0,  296,  290,  293,  933,  291,
2155      296,  291,  290,  935,  291,  929,  296,  293,  931,  290,
2156      961,  297,  293,    0,  296,  932,  297,  291,  298,  896,
2157      293,  884,  297,  298,  296,  293,  933,    0,  954,  296,
2158      297,  935,    0,  964,  296,    0,    0,  298,  298,  961,
2159      297,  299,  296,    0,    0,  297,  299,  298,  896,  965,
2160      297,  980,  298,  948,  948,  948,  954,  966,  297,  972,
2161      299,  299,  964,  300,  301,  298,  298,  300,  300,  301,
2162      299,  302,  301,  302,  303,  299,  303,  965,  967,  980,
2163
2164      300,  302,  300,  301,  303,  968,  966,  968,  299,  299,
2165        0,    0,  300,  301,  989,  972,  300,  300,  301,  990,
2166      304,  301,  973,  981,  302,  304,  984,  303,  300,  302,
2167      300,  301,  303,  967,  968,  302,  968,    0,  303,  304,
2168      304,  986,  989,  302,  972,  302,  303,  990,  303,  304,
2169     1005,    0,  981,  302,  304,  984,  303,    0,  302,  973,
2170      305,  303,  967,  302,  305,  305,  303,  304,  304,  987,
2171      986,  302,  306,  302,  303,  988,  303,  306, 1005,  305,
2172      307,  308, 1008, 1016,  307,  307,  308,    0,  973,  305,
2173     1010,  306,  308,  305,  305,    0,    0,  309,  987,  307,
2174
2175      308,  306,  309, 1015,  988,    0,  306,  305,    0,  307,
2176      308, 1008, 1013,  307,  307,  308,  309,  310, 1010,  306,
2177      308,  309,  310,  998,  998,  998,  309,  307,  308, 1016,
2178      310,  309, 1015,  311,  312,    0,  310,  313,  311,  312,
2179     1013,  311,  313,  852,  309,  852,  310, 1017,    0,  309,
2180        0,  310,  311,  312,  314,    0,  313, 1016,  310,  314,
2181     1018,    0,  311,  312,  310, 1028,  313,  311,  312, 1027,
2182      311,  313,  314,  314,  315,    0, 1017,  316,  852,  315,
2183      311,  312,  316,  314,  313, 1022, 1032,  315,  314, 1018,
2184      316,  852, 1034,  315, 1028,    0,  316, 1027,  316, 1036,
2185
2186      314,  314, 1021,  315,  317, 1023,  316,  852,  315,  317,
2187      317,  316,    0,    0, 1032,  315, 1043, 1022,  316,  852,
2188     1034,  315, 1049,  317,  316,  318,  316, 1036,    0,  319,
2189      318,    0,  319,  317,  319,    0,  318,  320,  317,  317,
2190      319, 1023,  320,    0,  318, 1043, 1022, 1021,  319, 1046,
2191     1049,  317,    0, 1024,  318, 1053,  320,  320,  319,  318,
2192      321,  319,  322,  319,  318,  321,  320,  322,  319,  323,
2193     1023,  320,  318, 1052,  323, 1021,  319,  323, 1046,  321,
2194      321,  322,  322, 1053,  320,  320,    0,    0,  323,  321,
2195        0,  322,  326, 1024,  321,  324,  322,  326,  323,  324,
2196
2197      324,    0, 1052,  323, 1060,  326,  323,  321,  321,  322,
2198      322,  326,  328,    0,  324,  325,  323,  328,  327,  325,
2199      325,  326, 1024,  327,  324,  327,  326, 1061,  324,  324,
2200     1058,  328, 1060,  326,  325,    0, 1055,  327,  329,  326,
2201        0,  328,  324,  329,  325,  330,  328,  327,  325,  325,
2202      330, 1057,  327,  332,  327,  332, 1061,  329,    0,  328,
2203      330,  331,  325,  332,  330,  327,  331,  329, 1041, 1041,
2204     1041, 1055,  329,    0,  330, 1058, 1064,    0,  331,  330,
2205      331, 1066,  333, 1056, 1057,  329,  332,  333,  330,  333,
2206      331,  332,  330,  334, 1072,  331,    0, 1074,  334,  334,
2207
2208     1055,  333,  336, 1058, 1064,  332,  331,  336,  331, 1076,
2209     1066,  333,  334, 1057,  336,  332,  333, 1056,  333,  335,
2210      332,  336,  334, 1072,  335, 1074, 1078,  334,  334,  333,
2211        0,  336,  335,  332,    0,    0,  336, 1076,  335,  337,
2212      334, 1085,  336,    0,  337,  338, 1056, 1094,  335,  336,
2213      338,    0,  974,  335, 1078, 1086,  337, 1090,  337, 1083,
2214      335,  876,  876,  876,  338,    0,  335,    0,  337,  876,
2215     1085, 1082,  876,  337,  338,  351, 1094,  351,    0,  338,
2216      946,  946,  946, 1086,  337, 1090,  337,  974,  946,  974,
2217        0,  946,  338,  351,  351,  351,  351,  351,  351,  351,
2218
2219      351,  351,  351,  352,  947,  947,  947, 1082,    0,  352,
2220        0, 1083,  947,    0, 1077,  947,  974,    0,  974,  352,
2221      352,  352,  352,  352,  352,  352,  352,  352,  352,  353,
2222      949,  949,  949,    0,    0,  353, 1082, 1098,  949, 1083,
2223        0,  949, 1070, 1070, 1070,  353,  353,  353,  353,  353,
2224      353,  353,  353,  353,  353,  357, 1092, 1092, 1092, 1077,
2225     1099,  357,  362,  363,    0,  364,  362,  362,  363,  357,
2226      364,  357,  357,  357,  357,  357,  357,  357,  357,  357,
2227      357,  362,  363, 1098,  364,  365,  365, 1077, 1099, 1103,
2228      365,  362,  363,  368,  364,  362,  362,  363, 1104,  364,
2229
2230        0,  366,    0,    0,  365,  366,  366,    0,    0,  362,
2231      363, 1098,  364, 1111,  365,  365, 1107, 1103,  366,  365,
2232      366,  367,    0,  433,  368,  367,  367, 1104,  433,  368,
2233      366, 1100,  365,    0,  366,  366,  950,  950,  950, 1113,
2234      367, 1111,  433,  368,  950, 1107,  366,  950,  366,    0,
2235      367, 1116,  433,  368,  367,  367,  383,  433,  368,    0,
2236        0,  999,  999,  999,    0,    0, 1100, 1113,  367,  999,
2237      433,  368,  999,  383,  383,  383,  383,  383,  383,  383,
2238      383,  383,  383,  384,    0, 1000, 1000, 1000, 1101, 1101,
2239     1101,    0,  383, 1000, 1121, 1100, 1000, 1116, 1127,    0,
2240
2241      384,  384,  384,  384,  384,  384,  384,  384,  384,  384,
2242      387,    0, 1001, 1001, 1001, 1117, 1117, 1117, 1136,  384,
2243     1001,  383, 1121, 1001,    0, 1116, 1127,  387,  387,  387,
2244      387,  387,  387,  387,  387,  387,  387,  404,  404,  404,
2245      404,  404,  404,  404,  404,  404,  404, 1136,  384,  405,
2246      405,  405,  405,  405,  405,  405,  405,  405,  405,  406,
2247      406,  406,  406,  406,  406,  406,  406,  406,  406,  407,
2248      407,  407,  407,  407,  407,  407,  407,  407,  407,  408,
2249      408,  408,  408,  408,  408,  408,  408,  408,  408,  409,
2250      409,  409,  409,  409,  409,  409,  409,  409,  409,  423,
2251
2252      423,  423,  423,  423,  423,  423,  423,  423,  423,  424,
2253      424,  424,  424,  424,  424,  424,  424,  424,  424,  425,
2254      425,  425,  425,  425,  425,  425,  425,  425,  425,  426,
2255      426,  426,  426,  426,  426,  426,  426,  426,  426,  427,
2256      427,  427,  427,  427,  427,  427,  427,  427,  427,  428,
2257      428,  428,  428,  428,  428,  428,  428,  428,  428,  429,
2258     1102,  429,    0,    0,  429,  429,  429,  429,  429,  429,
2259      429,  429,  429,  429,  430,  430,  430,  430,  430,  430,
2260      430,  430,  430,  430,    0,  436,    0,  434,    0,  431,
2261      436,  431,  434,  430,  431,  431,  431,  431,  431,  431,
2262
2263      431,  431,  431,  431,  436,  434,  434,  435,  437,  435,
2264     1144, 1102,  435,  437,  436,    0,  434, 1132, 1147,  436,
2265        0,  434,  430,    0,  438,    0,  435,  437,  438,  438,
2266      439,    0,  436,  434,  434,  439,  435,  437,  435, 1102,
2267        0,  435,  437,  438,    0, 1132,  440, 1140,  439,  439,
2268     1147,  440,    0,  438,  435,  437, 1144,  438,  438,  439,
2269        0,    0,  441,    0,  439,  440, 1114,  441,  442,  443,
2270        0,  438,  442,  442,  443,  440,  439,  439, 1139, 1147,
2271      440,  441,    0,  443, 1144,  446, 1146,  442,  443,  444,
2272      446,  441, 1140,  440,  444, 1143,  441,  442,  443, 1156,
2273
2274      444,  442,  442,  443,  446,  445,    0, 1149,  444,  441,
2275      445,  443,    0,  445,  446,  442,  443, 1114,  444,  446,
2276     1140,  447,  448,  444,  445,  447,  447,  448,  444, 1139,
2277      449, 1156,  446,  448,  445,  449,  444, 1146,    0,  445,
2278      447,  448,  445,  449, 1143, 1114, 1124, 1124, 1124,  449,
2279      447,  448,  445,    0,  447,  447,  448, 1139, 1149,  449,
2280     1156,  448,  451,    0,  449, 1146, 1145,  451,  447,  448,
2281      452,  449, 1143,  451,  453,  452, 1152,  449,  452,  453,
2282        0,  451,    0,    0, 1150,  454, 1149,  454,    0,  452,
2283        0,  451,  453,  453,    0,    0,  451,    0,    0,  452,
2284
2285        0,  451, 1145,  453,  452,    0,    0,  452,  453,  451,
2286      458, 1151, 1151, 1151,  457,  458,    0,  452,  454,  457,
2287      453,  453,    0,  454,    0, 1152,  454,    0,  457,  458,
2288      458, 1145,    0,  457,    0, 1150,    0,  454,    0,  458,
2289      454,  459,    0,  457,  458,  460,  459,  454,  457,    0,
2290      460,    0,  454, 1152, 1155,  454,  457,  458,  458,  460,
2291      459,  457,  468, 1150,  460,  454,    0,  468,  454,  455,
2292      459,  455,    0,    0,  460,  459, 1153, 1153, 1153,  460,
2293        0,  468,    0,    0,  461,    0,    0,  460,  459,  461,
2294     1155,  468,  460, 1158, 1158, 1158,  468, 1159, 1159, 1159,
2295
2296      455,  461,    0,  461,    0,  455,  463,  455,    0,  468,
2297      455,  463, 1157,  461,  455,    0,    0,  455,  461, 1155,
2298      455,  455,    0,    0,  455,  463,    0,    0,    0,  461,
2299      463,  461,    0,    0,  455,  463,  455,    0,  472,  455,
2300      463,    0,  455,  472,    0,  455,  462,    0,  455,  455,
2301      462,  462,  455,  463,  464,  465,    0,  472,  463,  464,
2302      465,  464,    0, 1157,    0,  462,  462,  472,    0,    0,
2303        0,    0,  472,  464,  465,  462,  465,    0,    0,  462,
2304      462,    0,    0,  464,  465,  472,    0,    0,  464,  465,
2305      464, 1157,    0,  462,  462,    0,    0,    0,    0,    0,
2306
2307        0,  464,  465,    0,  465,  469,  469,  469,  469,  469,
2308      469,  469,  469,  469,  469,  469,    0,  469,  469,  469,
2309      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2310      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2311      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2312      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2313      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2314      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2315      469,  469,  469,  469,  469,  469,  469,  469,  469,  469,
2316      469,  469,  469,  469,  470,    0,  471,  473,  471,  470,
2317
2318        0,    0,  473,  474, 1002, 1002, 1002,    0,  474,    0,
2319        0,  470, 1002,  470,    0, 1002,  473,    0,    0,    0,
2320        0,    0,  474,  470,    0,    0,  473,  471,  470,  471,
2321      476,  473,  474,    0,  471,  476,    0,  474,  477,  470,
2322        0,  470,    0,  477,  473,    0,  477,    0,  471,  476,
2323      474,    0,    0,    0,    0,    0,    0,  477,  471,  476,
2324      478,    0,    0,  471,  476,  478,    0,  477,  479,    0,
2325        0,    0,  477,  479,    0,  477,  471,  476,    0,  478,
2326      478,    0,    0,    0,    0,  477,    0,  479,    0,  478,
2327      480,    0,    0,    0,  478,  480,    0,  479,  480,  481,
2328
2329        0,    0,  479,    0,  481,  481,    0,  478,  478,  480,
2330        0,    0,  481,    0,    0,  479,    0,    0,  481,  480,
2331        0, 1003, 1003, 1003,  480,    0,    0,  480,  481, 1003,
2332      482,  487, 1003,  481,  481,  482,  487,  480,  482,  483,
2333      481,  483,  486,    0,  483,    0,  481,  486,    0,  482,
2334      487,    0,    0,    0,    0,    0,  486,    0,  483,  482,
2335      487,  486,    0,    0,  482,  487,    0,  482,  483,  490,
2336      483,  486,    0,  483,  490,  491,  486,  482,  487,    0,
2337      491,    0,    0,  490,  486,    0,  483,    0,  490,  486,
2338        0,  492,    0,    0,  491,  493,  492,    0,  490,    0,
2339
2340      493,    0,  492,  490,  491,    0,  493,  494,    0,  491,
2341      492,  490,  494,    0,  493,    0,  490,    0,  495,    0,
2342      492,    0,  491,  495,  493,  492,  494,  496,    0,  493,
2343      492,    0,  496,    0,  493,  496,  494,  495,  492,  497,
2344        0,  494,  493,  498,  497,    0,  496,  495,  498,    0,
2345      502,    0,  495,    0,  494,  502,  496,    0,  497,    0,
2346        0,  496,  498,    0,  496,  495,  499,    0,  497,  502,
2347      500,  499,  498,  497,  496,  500,    0,  498,    0,  502,
2348      499,    0,  500,    0,  502,  499,  497,  501,    0,  500,
2349      498,  501,  501,  503,    0,  499,  504,  502,  503,  500,
2350
2351      499,  504,    0,    0,  500,    0,  501,    0,  499,    0,
2352      500,    0,  503,  499,    0,  504,  501,  500,  505,  507,
2353      501,  501,  503,  505,  507,  504,    0,  503,    0,  508,
2354      504, 1042, 1042, 1042,  501,  505,    0,  505,  507, 1042,
2355      503,  506, 1042,  504,    0,    0,  506,  505,  507,  506,
2356      508,    0,  505,  507,    0,  508,    0,  509,    0,    0,
2357      506,    0,  509,  505,    0,  505,  507,    0,    0,  508,
2358      506,    0,    0,    0,  509,  506,  509,    0,  506,  508,
2359        0,    0,  510,    0,  508,    0,  509,  510,  506,  511,
2360      512,  509,    0,  510,  511,  512,    0,  508,    0,    0,
2361
2362        0,  510,  509,  512,  509,    0,  511,    0,  511,  512,
2363        0,  510,    0,    0,    0,    0,  510,    0,  511,  512,
2364      513,  510,  515,  511,  512,  513,    0,  515,  514,  510,
2365      514,  512,    0,  514,  511,    0,  511,  512,  517,  513,
2366        0,  515,    0,    0,    0,  516,    0,  514,    0,  513,
2367      516,  515,    0,  518,  513,    0,  515,  514,  518,  514,
2368        0,  517,  514,    0,  516,  519,  517,  513,    0,  515,
2369      519,    0,  518,    0,  516,  514,    0,    0,    0,  516,
2370      517,    0,  518,    0,  519,    0,  523,  518,  520,    0,
2371      517,  523,  516,  520,  519,  517,    0,    0,    0,  519,
2372
2373      518,    0,  520,    0,    0,  523,    0,  520,  517,  524,
2374        0,    0,  519,  524,  524,  523,    0,  520,  525,    0,
2375      523,  526,  520,  525,    0,    0,  526,    0,  524,    0,
2376      520,    0,    0,  523,    0,  520,    0,  525,  524,    0,
2377      526,  527,  524,  524,  528,  527,  527,  525,  528,  528,
2378      526,    0,  525,    0,    0,  526,  524,    0,    0,    0,
2379      527,  551,    0,  528,    0,  525,  551,    0,  526,    0,
2380      527,    0,    0,  528,  527,  527,    0,  528,  528,  539,
2381      551,  539,    0,    0,    0, 1071, 1071, 1071,  527,    0,
2382      551,  528,    0, 1071,    0,  551, 1071,  539,  539,  539,
2383
2384      539,  539,  539,  539,  539,  539,  539,  540,  551, 1093,
2385     1093, 1093,    0,  540,    0,    0,    0, 1093,    0,    0,
2386     1093,    0,    0,  540,  540,  540,  540,  540,  540,  540,
2387      540,  540,  540,  541,  548,    0,  548,    0,    0,  541,
2388        0,    0,    0,    0,  548,    0,    0,    0,    0,  541,
2389      541,  541,  541,  541,  541,  541,  541,  541,  541,  545,
2390      550,    0,  550,    0,    0,  545,  549,  548,    0,    0,
2391      548,  549,  548,  545,  549,  545,  545,  545,  545,  545,
2392      545,  545,  545,  545,  545,  549,  548,    0,    0,    0,
2393        0,    0,    0,  550,    0,  549,  548,    0,  550,  548,
2394
2395      549,  548,  552,  549,    0,  592,    0,  552,  552,  592,
2396      592,    0,  550,  549,  548,  552,    0,    0,  553,  552,
2397      553,  552,  550,    0,  592,    0,    0,  550,  553,    0,
2398        0,  552,  553,    0,  592,    0,  552,  552,  592,  592,
2399      550,  565,    0,  552,    0,    0,    0,  552,    0,  552,
2400        0,  553,  592,  565,    0,  565,  553,    0,  565,  565,
2401      565,  565,  565,  565,  565,  565,  565,  565,    0,  566,
2402      553, 1110, 1110, 1110,    0,    0,    0,    0,    0, 1110,
2403      553,    0, 1110,    0,    0,  553,  566,  566,  566,  566,
2404      566,  566,  566,  566,  566,  566,  567,    0,  553,    0,
2405
2406        0, 1125, 1125, 1125,    0,  566,    0,    0,  567, 1125,
2407      567,    0, 1125,  567,  567,  567,  567,  567,  567,  567,
2408      567,  567,  567,  588,  588,  588,  588,  588,  588,  588,
2409      588,  588,  588,    0,  566,  589,  589,  589,  589,  589,
2410      589,  589,  589,  589,  589,  590,  590,  590,  590,  590,
2411      590,  590,  590,  590,  590,  591,  591,  591,  591,  591,
2412      591,  591,  591,  591,  591,  593,    0,    0,  595,    0,
2413      593,    0,    0,  595, 1134, 1134, 1134,    0, 1135, 1135,
2414     1135,    0, 1134,  595,  593, 1134, 1135,  595,    0, 1135,
2415        0,    0,    0,    0,  593,    0,    0,  595,    0,  593,
2416
2417        0,    0,  595,    0,    0,    0,    0,    0,    0,    0,
2418        0,  595,  593,  594,  594,  595,  594,  594,  594,  594,
2419      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2420      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2421      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2422      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2423      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2424      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2425      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2426      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
2427
2428      594,  594,  596,  597,  596,  598,  600,  596,  597,  599,
2429      598,  600,    0,  599,  599,    0,    0,    0,  598,  600,
2430        0,  596,  597,    0,  598,  600,    0,    0,  599,    0,
2431        0,  596,  597,  596,  598,  600,  596,  597,  599,  598,
2432      600,    0,  599,  599,    0,    0,  598,  600,    0,  596,
2433      597,    0,  598,  600,  601,  602,  599,  603,    0,  601,
2434      602,  605,  603,    0,    0,  605,  605,    0,    0,  602,
2435        0,    0,    0,  601,  602,  603,  603,    0,    0,    0,
2436      605,    0,    0,  601,  602,    0,  603,  606,  601,  602,
2437      605,  603,  606,    0,  605,  605,    0,  602,  606,    0,
2438
2439        0,  601,  602,  603,  603,    0,  606,    0,  605,  609,
2440      607,    0,    0,  610,  609,  607,  606,  607,  610,    0,
2441      610,  606,    0,    0,    0,    0,  606,    0,  609,  607,
2442        0,    0,  610,    0,  606,  619,  621,    0,  609,  607,
2443      619,  621,  610,  609,  607,    0,  607,  610,    0,  610,
2444        0,    0,    0,    0,  619,  621,  609,  607,  620,    0,
2445      610,    0,    0,  620,  619,  621,    0,    0,    0,  619,
2446      621,  620,    0,    0,  623,  622,    0,  620,  622,  623,
2447      622,    0,  619,  621,    0,    0,    0,  620,  623,    0,
2448        0,  624,  620,  623,  622,    0,  624,    0,    0,  620,
2449
2450        0,    0,  624,  623,  622,  620,    0,  622,  623,  622,
2451      624,    0,  625,  625,  626,    0,  623,  625,  628,  626,
2452      624,  623,  622,  628,    0,  624,    0,    0,    0,  626,
2453      624,  625,    0,  626,    0,  627,    0,  628,  624,  627,
2454      627,  625,  625,  626,    0,    0,  625,  628,  626,    0,
2455        0,    0,  628,  629,  627,  629,    0,  626,    0,  625,
2456        0,  626,    0,  632,  627,  628,    0,    0,  627,  627,
2457      631,  631,  631,  631,  631,  631,  631,  631,  631,  631,
2458      632,    0,  627,  633,  629,  632,  629,  634,  633,  637,
2459        0,  629,  634,    0,  637,    0,    0,    0,    0,  632,
2460
2461      634,    0,  633,    0,    0,  629,  634,    0,  637,  632,
2462        0,    0,  633,    0,  632,  629,  634,  633,  637,  638,
2463      629,  634,    0,  637,  638,    0,    0,  632,  634,    0,
2464      633,    0,    0,  629,  634,  639,  637,    0,  638,  641,
2465      639,  641,  642,  639,  641,  642,  643,  642,  638,    0,
2466        0,  643,    0,  638,  639,    0,    0,    0,  641,    0,
2467        0,  642,  644,    0,  639,  643,  638,  644,  641,  639,
2468      641,  642,  639,  641,  642,  643,  642,    0,    0,  644,
2469      643,  644,  639,  645,    0,  646,  641,  645,  645,  642,
2470      646,  644,  647,  643,  648,    0,  644,  647,    0,  648,
2471
2472        0,    0,  645,    0,  646,  647,    0,  644,    0,  644,
2473        0,  647,  645,  648,  646,    0,  645,  645,    0,  646,
2474        0,  647,    0,  648,    0,    0,  647,    0,  648,  649,
2475      645,  649,  646,  647,  649,  650,    0,    0,    0,  647,
2476      650,  648,    0,    0,    0,    0,  650,    0,  649,    0,
2477        0,    0,    0,    0,  650,    0,    0,    0,  649,    0,
2478      649,  652,    0,  649,  650,  651,  652,  651,    0,  650,
2479      651,    0,  652,  653,  650,    0,  649,  653,  653,    0,
2480      652,    0,  650,    0,  651,    0,    0,    0,    0,    0,
2481      652,    0,  653,    0,  651,  652,  651,    0,  655,  651,
2482
2483      652,    0,  653,  655,    0,  654,  653,  653,  652,  656,
2484      654,    0,  651,  654,  656,    0,    0,  655,    0,    0,
2485      653,    0,  656,    0,  654,  657,    0,  655,  656,  657,
2486      657,    0,  655,    0,  654,    0,  658,    0,  656,  654,
2487        0,  658,  654,  656,  657,  655,    0,    0,  660,    0,
2488      656,    0,  654,  660,  657,  658,  656,  659,  657,  657,
2489        0,  659,  659,    0,    0,  658,    0,  660,  661,  662,
2490      658,    0,  657,  661,  662,    0,  659,  660,    0,    0,
2491        0,    0,  660,  658,    0,    0,  659,  661,  662,    0,
2492      659,  659,    0,    0,  663,  660,  663,  661,  662,  663,
2493
2494      665,  666,  661,  662,  659,  665,  666,    0,    0,    0,
2495        0,    0,    0,  663,    0,  661,  662,    0,  665,  665,
2496      666,    0,    0,  663,    0,  663,  667,    0,  663,  665,
2497      666,  667,    0,    0,  665,  666,    0,  668,    0,  667,
2498      668,  663,  668,    0,    0,  667,  665,  665,  666,  669,
2499        0,    0,    0,  672,  669,  667,  668,  671,  672,    0,
2500      667,    0,  671,    0,    0,    0,  668,  667,  669,  668,
2501        0,  668,  672,  667,  673,    0,  671,  671,  669,  673,
2502      674,    0,  672,  669,  668,  674,  671,  672,    0,    0,
2503        0,  671,    0,  673,    0,    0,  669,    0,    0,  674,
2504
2505      672,    0,    0,  673,  671,  671,    0,    0,  673,  674,
2506        0,    0,  690,    0,  674,    0,    0,    0,  690,  695,
2507        0,  673,    0,  695,  695,    0,  690,  674,  690,  690,
2508      690,  690,  690,  690,  690,  690,  690,  690,  695,  696,
2509      698,  699,    0,    0,  696,  698,  699,  696,  695,    0,
2510        0,  698,  695,  695,    0,    0,    0,    0,  696,  698,
2511      699,    0,    0,    0,    0,    0,  695,    0,  696,  698,
2512      699,    0,  709,  696,  698,  699,  696,    0,    0,  698,
2513        0,    0,  710,    0,    0,    0,  696,  698,  699,  709,
2514      709,  709,  709,  709,  709,  709,  709,  709,  709,  710,
2515
2516      710,  710,  710,  710,  710,  710,  710,  710,  710,  711,
2517        0,    0,    0,    0,    0,    0,    0,    0,    0,  712,
2518        0,    0,    0,    0,    0,    0,  711,  711,  711,  711,
2519      711,  711,  711,  711,  711,  711,  712,  712,  712,  712,
2520      712,  712,  712,  712,  712,  712,  715,  715,  715,  715,
2521      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2522      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2523      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2524      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2525      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2526
2527      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2528      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2529      715,  715,  715,  715,  715,  715,  715,  715,  715,  715,
2530      715,  715,  715,  715,  715,  719,  719,  719,    0,    0,
2531      719,  719,    0,  719,    0,    0,    0,  719,  719,    0,
2532        0,  719,    0,    0,  719,  719,  719,  719,  719,  719,
2533      719,  719,  719,  732,  732,    0,  732,  732,  732,  732,
2534      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2535      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2536      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2537
2538      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2539      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2540      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2541      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2542      732,  732,  732,  732,  732,  732,  732,  732,  732,  732,
2543      732,  732,  733,    0,    0,  735,    0,  733,  734,  734,
2544      734,  734,  734,  734,  734,  734,  734,  734,  736,  737,
2545        0,  733,  735,  736,  737,  738,    0,  735,    0,    0,
2546      738,  733,    0,    0,    0,    0,  733,  736,  737,    0,
2547        0,  735,    0,    0,  738,  739,    0,  736,  737,  733,
2548
2549      739,  735,  736,  737,  738,    0,  735,  740,    0,  738,
2550        0,    0,  740,    0,  739,  736,  737,    0,  741,  735,
2551        0,    0,  738,  741,  739,    0,  740,    0,    0,  739,
2552      740,    0,    0,    0,    0,    0,  740,  741,  741,    0,
2553        0,  740,  739,  742,    0,  742,    0,  741,  742,    0,
2554      747,  743,  741,    0,  740,  747,  743,    0,  740,  743,
2555        0,  745,  742,  745,    0,  741,  741,    0,    0,  747,
2556      743,    0,  742,  750,  742,    0,    0,  742,  750,  747,
2557      743,    0,  746,    0,  747,  743,  746,  746,  743,    0,
2558      742,    0,  750,    0,  745,    0,  745,  747,  743,  745,
2559
2560        0,  746,  750,    0,    0,    0,    0,  750,    0,  745,
2561        0,  746,    0,  745,  751,  746,  746,    0,  751,  751,
2562      750,    0,    0,  745,    0,  745,  762,    0,  745,  746,
2563        0,  762,    0,  751,  761,    0,  761,  745,    0,  761,
2564        0,  745,    0,  751,    0,  762,  762,  751,  751,    0,
2565        0,  763,    0,  761,    0,  762,  763,  763,    0,    0,
2566      762,  751,    0,  761,    0,  761,    0,    0,  761,    0,
2567      763,  764,  765,  762,  762,  764,  764,  765,  766,    0,
2568      763,  761,  766,  766,    0,  763,  763,    0,    0,  765,
2569      764,  765,    0,    0,  771,    0,    0,  766,  763,  771,
2570
2571      764,  765,    0,  767,  764,  764,  765,  766,  767,    0,
2572      768,  766,  766,  771,  772,  768,  772,  765,  764,  765,
2573      767,  768,  767,  771,  772,  766,  773,    0,  771,  768,
2574        0,  773,  767,    0,    0,    0,    0,  767,    0,  768,
2575      773,  771,    0,    0,  768,  773,  774,  772,  767,  768,
2576      767,  774,  772,    0,  774,  773,    0,  768,  775,    0,
2577      773,    0,  775,  775,    0,  774,  772,  776,  773,  778,
2578        0,  776,  776,  773,  778,  774,  772,  775,    0,    0,
2579      774,  772,    0,  774,    0,    0,  776,  775,  778,    0,
2580      777,  775,  775,  774,  772,  777,  776,    0,  778,  779,
2581
2582      776,  776,    0,  778,  779,  775,    0,  777,    0,  777,
2583      780,    0,    0,    0,  776,  780,  778,  779,  779,  777,
2584        0,  780,  781,    0,  777,    0,    0,  781,  779,  780,
2585        0,  782,    0,  779,    0,  777,  782,  777,    0,  780,
2586        0,  781,  783,  784,  780,  779,  779,  783,  784,  780,
2587      782,  781,    0,  785,    0,  785,  781,  780,    0,    0,
2588      782,  783,  784,  786,    0,  782,    0,    0,  786,  781,
2589        0,  783,  784,    0,  787,    0,  783,  784,  782,  787,
2590        0,  786,  786,  788,    0,    0,  785,    0,  788,  783,
2591      784,  785,  786,  787,  789,    0,    0,  786,  787,  789,
2592
2593        0,  785,  788,  787,    0,  785,    0,    0,  787,  786,
2594      786,    0,  788,  789,    0,  785,    0,  788,    0,  790,
2595      785,  787,    0,  789,  790,    0,  787,  791,  789,  785,
2596      788,  791,  791,  785,    0,    0,  790,    0,  790,  792,
2597        0,  789,    0,    0,  792,    0,  791,    0,  790,    0,
2598        0,  792,    0,  790,    0,    0,  791,    0,  792,    0,
2599      791,  791,  793,    0,  790,    0,  790,  793,  792,    0,
2600      795,  796,    0,  792,  791,  795,  796,    0,  795,  792,
2601        0,  793,  797,    0,    0,    0,  792,  797,    0,  795,
2602      796,  793,    0,  798,    0,  799,  793,  799,  798,  795,
2603
2604      796,  797,    0,    0,  795,  796,    0,  795,    0,  793,
2605        0,  797,  798,    0,    0,    0,  797,  795,  796,  800,
2606      801,    0,  798,    0,  800,  801,  816,  798,  799,  797,
2607      799,  816,    0,  799,    0,    0,    0,    0,  800,  801,
2608      798,    0,    0,    0,    0,  816,    0,  799,  800,  801,
2609        0,  817,    0,  800,  801,  816,  817,  799,    0,  799,
2610      816,    0,  799,    0,  817,    0,  800,  801,    0,  818,
2611      817,  818,    0,  816,  842,  799,  802,  802,  802,  802,
2612      817,    0,    0,    0,    0,  817,    0,    0,    0,    0,
2613      819,  842,  817,    0,    0,  819,  842,    0,  817,    0,
2614
2615        0,    0,  818,    0,    0,    0,    0,  818,    0,  819,
2616      842,  802,  802,    0,    0,  802,    0,  802,    0,  819,
2617      842,  818,    0,    0,  819,  842,    0,    0,  802,  802,
2618        0,  818,    0,    0,    0,    0,  818,  819,  842,    0,
2619      802,  802,    0,    0,  802,    0,  802,    0,    0,  818,
2620        0,    0,    0,    0,    0,    0,  802,  802,  827,  827,
2621      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2622      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2623      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2624      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2625
2626      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2627      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2628      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2629      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
2630      827,  827,  827,  827,  827,  827,  827,  828,  841,  841,
2631      841,  841,  841,  841,  841,  841,  841,  841,    0,    0,
2632        0,    0,    0,    0,  828,  828,  828,  828,  828,  828,
2633      828,  828,  828,  828,  829,  829,  829,  829,  829,  829,
2634      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2635      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2636
2637      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2638      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2639      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2640      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2641      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2642      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
2643      829,  829,  829,  843,    0,  844,    0,  847,  843,  844,
2644      844,  845,  847,  845,  846,    0,  845,    0,  846,  846,
2645        0,    0,  843,    0,  844,    0,  847,    0,    0,    0,
2646      845,    0,  843,  846,  844,    0,  847,  843,  844,  844,
2647
2648      845,  847,  845,  846,  849,  845,    0,  846,  846,  849,
2649      843,  848,  844,    0,  847,  848,  848,    0,  845,    0,
2650      850,  846,    0,  849,    0,  850,    0,  853,    0,    0,
2651      848,  854,  853,  849,  850,    0,  854,    0,  849,  850,
2652      848,  853,    0,    0,  848,  848,  853,    0,  854,  850,
2653      854,  849,  855,    0,  850,    0,  853,  855,  848,    0,
2654      854,  853,  850,  858,    0,  854,    0,  850,  858,  853,
2655        0,  855,  866,    0,  853,    0,  854,  866,  854,    0,
2656      858,  855,  858,  867,    0,    0,  855,    0,  867,    0,
2657        0,  866,  858,    0,  867,    0,    0,  858,    0,  855,
2658
2659        0,  866,  867,    0,  868,    0,  866,    0,  858,  868,
2660      858,    0,  867,  869,    0,  869,    0,  867,  869,  866,
2661        0,  868,  867,  868,    0,    0,    0,    0,    0,  870,
2662      867,    0,  869,  868,  870,  871,    0,    0,  868,    0,
2663      871,    0,  869,  870,  869,    0,    0,  869,  870,  868,
2664        0,  868,    0,    0,  871,    0,    0,    0,  870,    0,
2665      869,  872,    0,  870,  871,  872,  872,    0,  873,  871,
2666      874,  870,  873,  873,    0,  874,  870,    0,    0,    0,
2667      872,  874,  871,    0,    0,    0,    0,  873,    0,  874,
2668      872,  878,    0,  877,  872,  872,  878,  873,  877,  874,
2669
2670        0,  873,  873,    0,  874,    0,  877,    0,  872,  874,
2671      878,    0,  877,  879,  880,  873,  881,  874,  879,  880,
2672      878,  881,  877,    0,    0,  878,    0,  877,    0,    0,
2673        0,    0,  879,  880,  877,  881,  882,    0,  878,    0,
2674      877,  882,  879,  880,  882,  881,    0,  879,  880,    0,
2675      881,    0,  883,  886,    0,  882,    0,  883,  886,  885,
2676      879,  880,    0,  881,  885,  882,    0,    0,    0,    0,
2677      882,  883,  886,  882,    0,    0,  885,    0,  885,  887,
2678        0,  883,  886,  882,  887,    0,  883,  886,  885,    0,
2679      888,  890,    0,  885,    0,  888,  890,    0,  887,  883,
2680
2681      886,  888,  891,    0,  885,    0,  885,  891,  887,  888,
2682      890,  889,    0,  887,    0,  889,  889,    0,    0,  888,
2683      890,  891,  892,  897,  888,  890,  887,  892,  897,  888,
2684      889,  891,    0,    0,  895,    0,  891,  888,  890,  895,
2685      889,  892,  897,  906,  889,  889,    0,    0,  906,  891,
2686        0,  892,  897,  895,    0,  895,  892,  897,  889,  898,
2687        0,    0,  906,  895,  898,    0,  907,  898,  895,  892,
2688      897,  907,  906,    0,    0,    0,    0,  906,  898,    0,
2689        0,  895,    0,  895,  907,  907,    0,    0,  898,  909,
2690      906,  909,    0,  898,  909,  907,  898,    0,    0,    0,
2691
2692      907,    0,    0,    0,    0,    0,  898,  914,  909,    0,
2693        0,    0,  907,  907,    0,    0,  917,  917,  909,    0,
2694      909,  917,    0,  909,  914,  914,  914,  914,  914,  914,
2695      914,  914,  914,  914,    0,  917,  909,  918,    0,  919,
2696        0,    0,  918,  919,  919,  917,  917,    0,  920,    0,
2697      917,    0,    0,  920,    0,    0,  918,    0,  919,    0,
2698        0,    0,    0,  917,    0,  920,  918,  920,  919,  921,
2699      922,  918,  919,  919,  921,  922,    0,  920,  923,    0,
2700        0,    0,  920,  923,  918,    0,  919,    0,  921,  922,
2701        0,  923,    0,  920,    0,  920,    0,  923,  921,  922,
2702
2703        0,  927,    0,  921,  922,  928,  927,  923,    0,  928,
2704      928,    0,  923,  927,    0,    0,  921,  922,    0,  923,
2705      927,  938,    0,    0,  928,  923,  938,  930,  940,  938,
2706      927,  930,  930,  940,  928,  927,    0,    0,  928,  928,
2707      938,  927,    0,    0,    0,    0,  930,  940,  927,    0,
2708      938,    0,  928,    0,    0,  938,  930,  940,  938,  939,
2709      930,  930,  940,  939,  939,  941,  942,    0,  938,    0,
2710      941,  942,    0,    0,  930,  940,    0,    0,  939,    0,
2711        0,    0,  943,    0,  941,  942,  942,  943,  939,    0,
2712        0,  944,  939,  939,  941,  942,  944,    0,    0,  941,
2713
2714      942,  943,  945,    0,  944,    0,  939,  945,    0,    0,
2715      944,  943,  941,  942,  942,    0,  943,    0,  951,    0,
2716      944,  945,  952,  951,    0,  944,    0,  952,    0,  943,
2717        0,  945,  944,    0,    0,    0,  945,  951,  944,  955,
2718        0,  952,    0,  953,  955,  953,    0,  951,  953,  945,
2719        0,  952,  951,  955,    0,    0,  952,    0,  955,  956,
2720        0,    0,  953,    0,  956,  951,  957,    0,  955,  952,
2721      958,  957,  953,  955,  953,  958,    0,  953,  956,    0,
2722        0,  955,    0,    0,    0,  957,  955,  958,  956,  958,
2723      953,    0,  960,  956,    0,  957,  960,  960,    0,  958,
2724
2725      957,    0,    0,  963,  958,    0,  956,    0,  963,  962,
2726        0,  960,    0,  957,  962,  958,  963,  958,    0,    0,
2727        0,  960,  963,    0,    0,  960,  960,  962,  962,  969,
2728        0,    0,  963,    0,  969,  970,    0,  963,  962,  960,
2729      970,  971,    0,  962,  963,  971,  971,    0,  969,  969,
2730      963,    0,  976,    0,  970,  962,  962,  976,  969,    0,
2731      971,  975,    0,  969,  970,    0,  975,    0,  977,  970,
2732      971,  976,  975,  977,  971,  971,  969,  969,    0,    0,
2733      975,  976,  970,    0,  979,    0,  976,  977,  971,  979,
2734      975,    0,    0,  985,    0,  975,    0,  977,  985,  976,
2735
2736      975,  978,  977,  979,  982,  978,  978,    0,  975,  982,
2737        0,    0,  985,  979,    0,  977,    0,    0,  979,  982,
2738      978,    0,  985,  982,  983,    0,  983,  985,    0,  983,
2739      978,  979,    0,  982,  978,  978,    0,    0,  982,    0,
2740      985,  993,    0,  983,  994,  992,  993,  982,  978,  994,
2741      992,  982,    0,  983,    0,  983,  994,    0,  983,  992,
2742      993,  995,    0,  994,  992,    0,  995,  996,    0,    0,
2743      993,  983,  996,  994,  992,  993,    0,    0,  994,  992,
2744      995,    0,    0,    0,  994,    0,  996,  992,  993,    0,
2745      995,  994,  992, 1004,    0,  995,  996,  997, 1004,  997,
2746
2747     1007,  996,  997,    0, 1006, 1007, 1006,    0,  995, 1006,
2748        0,    0, 1004,    0,  996,    0,  997,    0,    0, 1007,
2749     1009,    0, 1004, 1006,    0, 1009,  997, 1004,  997, 1007,
2750        0,  997,    0, 1006, 1007, 1006,    0, 1011, 1006, 1009,
2751     1004, 1011, 1011,    0,  997,    0,    0, 1007,    0, 1009,
2752        0, 1006,    0, 1012, 1009,    0, 1011, 1012, 1012,    0,
2753     1020,    0,    0,    0, 1019, 1020, 1011, 1009,    0, 1019,
2754     1011, 1011, 1012,    0,    0, 1019, 1025,    0,    0, 1020,
2755     1025, 1025, 1012, 1019, 1011, 1026, 1012, 1012,    0, 1020,
2756     1026,    0,    0, 1019, 1020, 1025,    0, 1029, 1019,    0,
2757
2758     1012,    0, 1029, 1019, 1026, 1025,    0, 1020, 1029, 1025,
2759     1025, 1019,    0,    0, 1026,    0, 1029,    0,    0, 1026,
2760     1030,    0, 1037, 1025, 1038, 1030, 1029, 1037, 1030, 1038,
2761        0, 1029, 1026,    0,    0, 1037, 1029,    0,    0, 1030,
2762        0, 1037,    0, 1038, 1029,    0,    0, 1039,    0, 1030,
2763        0, 1037, 1039, 1038, 1030, 1039, 1037, 1030, 1038, 1047,
2764        0,    0,    0, 1037, 1047,    0, 1039, 1030, 1040, 1037,
2765     1044, 1038, 1040, 1040, 1044, 1044, 1039,    0, 1047,    0,
2766        0, 1039,    0,    0, 1039,    0,    0, 1040, 1047, 1044,
2767     1048, 1054,    0, 1047, 1039, 1048, 1054, 1040,    0, 1044,
2768
2769        0, 1040, 1040, 1044, 1044,    0, 1047, 1059,    0, 1048,
2770     1054,    0, 1059,    0,    0, 1040, 1063, 1044,    0, 1048,
2771     1054, 1063,    0, 1062, 1048, 1054, 1059, 1062, 1062,    0,
2772        0,    0,    0,    0, 1063, 1063, 1059, 1048, 1054, 1067,
2773        0, 1059, 1062,    0, 1067, 1063, 1068,    0, 1069,    0,
2774     1063, 1068, 1062, 1069, 1059,    0, 1062, 1062, 1067, 1068,
2775        0,    0, 1063, 1063,    0, 1068,    0, 1069, 1067, 1073,
2776     1062, 1080, 1073, 1067, 1073, 1068, 1080, 1069,    0,    0,
2777     1068,    0, 1069,    0,    0,    0, 1067, 1068, 1073,    0,
2778     1080, 1087,    0, 1068, 1088, 1069, 1087,    0, 1073, 1088,
2779
2780     1080, 1073, 1088, 1073,    0, 1080,    0,    0,    0,    0,
2781     1087,    0,    0, 1088, 1087,    0, 1073, 1091, 1080,    0,
2782     1087, 1091, 1091, 1088, 1095, 1087,    0,    0, 1088, 1095,
2783        0, 1088,    0,    0,    0,    0, 1091,    0, 1087,    0,
2784     1105, 1088, 1087, 1095, 1095, 1105, 1091, 1106,    0, 1108,
2785     1091, 1091, 1106, 1095, 1108,    0,    0,    0, 1095, 1105,
2786        0, 1106,    0,    0, 1091,    0, 1106,    0, 1108, 1105,
2787        0, 1095, 1095,    0, 1105,    0, 1106,    0, 1108,    0,
2788        0, 1106,    0, 1108,    0,    0,    0, 1105,    0, 1106,
2789        0,    0,    0,    0, 1106,    0, 1108, 1109, 1109, 1109,
2790
2791        0,    0, 1109, 1109,    0, 1109,    0,    0,    0, 1109,
2792     1109,    0,    0, 1109,    0,    0, 1109, 1109, 1109, 1109,
2793     1109, 1109, 1109, 1109, 1109, 1112, 1122,    0,    0,    0,
2794     1112, 1122,    0,    0,    0,    0,    0,    0,    0, 1122,
2795        0,    0, 1112,    0, 1112, 1122,    0,    0,    0,    0,
2796        0,    0,    0,    0, 1112, 1122,    0,    0,    0, 1112,
2797     1122,    0,    0,    0,    0,    0,    0, 1122,    0,    0,
2798     1112,    0, 1112, 1122, 1126, 1126, 1126,    0,    0, 1126,
2799     1126,    0, 1126,    0, 1128, 1126, 1126, 1126, 1128, 1128,
2800     1126,    0,    0, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
2801
2802     1126, 1126,    0, 1128, 1133, 1137,    0,    0,    0, 1133,
2803     1137,    0,    0, 1128,    0,    0,    0, 1128, 1128,    0,
2804        0,    0,    0, 1133, 1137,    0,    0,    0,    0,    0,
2805        0, 1128,    0, 1133, 1137,    0,    0,    0, 1133, 1137,
2806        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2807        0, 1133, 1137, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
2808     1162, 1162, 1162, 1162, 1162, 1163, 1163, 1163, 1163, 1163,
2809     1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164, 1164,    0,
2810     1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165,
2811     1165,    0, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
2812
2813     1165, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
2814     1166, 1166, 1166, 1167, 1167, 1167, 1167, 1167, 1167, 1167,
2815     1167, 1167, 1167, 1167, 1167, 1168, 1168, 1169, 1169, 1169,
2816     1169, 1169, 1169, 1169, 1169, 1170, 1170, 1170, 1170, 1170,
2817     1170, 1170, 1170, 1170, 1170, 1170, 1170, 1171, 1171, 1171,
2818     1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1172,
2819     1172, 1172, 1172, 1172, 1172,    0, 1172, 1172, 1172,    0,
2820     1172, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173,
2821     1173, 1173, 1173, 1174,    0,    0, 1174, 1175, 1175, 1175,
2822        0,    0, 1175,    0, 1175, 1175,    0, 1175, 1175, 1176,
2823
2824     1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
2825     1176, 1177, 1177,    0, 1177, 1177, 1177, 1177, 1177, 1177,
2826     1177, 1177, 1177, 1178, 1178, 1178, 1178, 1178, 1178,    0,
2827     1178, 1178, 1178,    0, 1178, 1179, 1179, 1179, 1179, 1179,
2828     1179, 1179, 1179, 1179, 1179, 1179, 1179, 1180, 1180, 1180,
2829     1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1181,
2830        0,    0, 1181, 1182,    0,    0,    0, 1182,    0,    0,
2831        0,    0,    0, 1182, 1183, 1183, 1183, 1183, 1183, 1183,
2832     1183, 1183, 1183, 1183, 1183, 1183, 1184, 1184,    0, 1184,
2833     1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1185, 1185,
2834
2835        0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
2836     1186, 1186,    0, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
2837     1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
2838     1187, 1187, 1187, 1187, 1188, 1188, 1188, 1188, 1188, 1188,
2839     1188, 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1189,
2840     1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1190, 1190,
2841     1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
2842     1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
2843     1191, 1191, 1192, 1192,    0, 1192, 1192, 1192, 1192, 1192,
2844     1192, 1192, 1192, 1192, 1193, 1193, 1193, 1193, 1193, 1193,
2845
2846     1193, 1193, 1193, 1193, 1193, 1193, 1194, 1194, 1194, 1194,
2847     1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1195,
2848        0, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
2849     1196, 1196,    0, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
2850     1196, 1196, 1197, 1197,    0, 1197, 1197, 1197, 1197, 1197,
2851     1197, 1197, 1197, 1197, 1198, 1198,    0, 1198, 1198, 1198,
2852     1198, 1198, 1198, 1198, 1198, 1198, 1199, 1199,    0, 1199,
2853     1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200,
2854     1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
2855     1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201,
2856
2857     1201, 1201, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
2858     1202, 1202, 1202, 1202, 1203, 1203, 1203, 1203, 1203, 1203,
2859     1203, 1203, 1203, 1203, 1203, 1203, 1204, 1204, 1204, 1204,
2860     1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1205, 1205,
2861     1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
2862     1206, 1206,    0, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
2863     1206, 1206, 1207, 1207,    0, 1207, 1207, 1207, 1207, 1207,
2864     1207, 1207, 1207, 1207, 1208, 1208, 1208, 1208, 1208, 1208,
2865     1208, 1208, 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209,
2866     1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1210, 1210,
2867
2868     1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
2869     1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
2870     1211, 1211, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
2871     1212, 1212, 1212, 1212, 1213, 1213, 1213, 1213, 1213, 1213,
2872     1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1214, 1214,
2873     1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1161, 1161,
2874     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2875     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2876     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2877     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2878
2879     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2880     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2881     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2882     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
2883     1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161
2884    } ;
2885
2886static yy_state_type yy_last_accepting_state;
2887static char *yy_last_accepting_cpos;
2888
2889extern int fortran_flex_debug;
2890int fortran_flex_debug = 0;
2891
2892/* The intent behind this definition is that it'll catch
2893 * any uses of REJECT which flex missed.
2894 */
2895#define REJECT reject_used_but_not_detected
2896#define yymore() yymore_used_but_not_detected
2897#define YY_MORE_ADJ 0
2898#define YY_RESTORE_YY_MORE_OFFSET
2899char *fortrantext;
2900#line 1 "fortran.lex"
2901/******************************************************************************/
2902/*                                                                            */
2903/*     CONV (converter) for Agrif (Adaptive Grid Refinement In Fortran)       */
2904/*                                                                            */
2905/* Copyright or   or Copr. Laurent Debreu (Laurent.Debreu@imag.fr)            */
2906/*                        Cyril Mazauric (Cyril_Mazauric@yahoo.fr)            */
2907/* This software is governed by the CeCILL-C license under French law and     */
2908/* abiding by the rules of distribution of free software.  You can  use,      */
2909/* modify and/ or redistribute the software under the terms of the CeCILL-C   */
2910/* license as circulated by CEA, CNRS and INRIA at the following URL          */
2911/* "http://www.cecill.info".                                                  */
2912/*                                                                            */
2913/* As a counterpart to the access to the source code and  rights to copy,     */
2914/* modify and redistribute granted by the license, users are provided only    */
2915/* with a limited warranty  and the software's author,  the holder of the     */
2916/* economic rights,  and the successive licensors  have only  limited         */
2917/* liability.                                                                 */
2918/*                                                                            */
2919/* In this respect, the user's attention is drawn to the risks associated     */
2920/* with loading,  using,  modifying and/or developing or reproducing the      */
2921/* software by the user in light of its specific status of free software,     */
2922/* that may mean  that it is complicated to manipulate,  and  that  also      */
2923/* therefore means  that it is reserved for developers  and  experienced      */
2924/* professionals having in-depth computer knowledge. Users are therefore      */
2925/* encouraged to load and test the software's suitability as regards their    */
2926/* requirements in conditions enabling the security of their systems and/or   */
2927/* data to be ensured and,  more generally, to use and operate it in the      */
2928/* same conditions as regards security.                                       */
2929/*                                                                            */
2930/* The fact that you are presently reading this means that you have had       */
2931/* knowledge of the CeCILL-C license and that you accept its terms.           */
2932/******************************************************************************/
2933/* version 1.7                                                                */
2934/******************************************************************************/
2935
2936
2937
2938
2939
2940#line 41 "fortran.lex"
2941#include <math.h>
2942#include <stdlib.h>
2943#include <string.h>
2944extern FILE * fortranin;
2945#define MAX_INCLUDE_DEPTH 30
2946#define tabsize 6
2947YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
2948int line_num_fortran=1;
2949int line_num_fortran_common=1;
2950int newlinef90 = 0;
2951char *tmp;
2952char tmpc;
2953/******************************************************************************/
2954/**************PETITS PB NON PREVUS *******************************************/
2955/******************************************************************************/
2956/* NEXTLINF77 un ligne fortran 77 peut commencer par -      &a=b or on        */
2957/*            a prevu seulement       & a=b avec l'espace entre le symbole    */
2958/*            de la 7eme et le debut de la ligne de commande                  */
2959/*            le ! est aussi interdit comme symbole de la 7 eme colonne       */
2960/*            Normalement NEXTLINEF77 \n+[ ]{5}[^ ]                           */
2961/******************************************************************************/
2962#define YY_USER_ACTION \
2963        {\
2964           if (firstpass == 0) \
2965           {\
2966              strcat(curbuf,fortrantext); \
2967              Save_Length(curbuf,38); \
2968              strcpy(motparse,fortrantext);\
2969              Save_Length(motparse,32); \
2970              colnum = colnum + strlen(motparse);\
2971              ECHO; \
2972           }\
2973           strcpy(motparse1,fortrantext);\
2974/*           printf("fortrantext = %s\n",fortrantext);*/\
2975        /*if ( firstpass == 1 )
2976                      printf("fortrantext = %s %d\n",fortrantext,strlen(fortrantext));*/\
2977        }
2978#line 2979 "fortran.yy.c"
2979
2980#define INITIAL 0
2981#define parameter 1
2982#define character 2
2983#define donottreat 3
2984#define fortran77style 4
2985#define fortran90style 5
2986
2987#ifndef YY_NO_UNISTD_H
2988/* Special case for "unistd.h", since it is non-ANSI. We include it way
2989 * down here because we want the user's section 1 to have been scanned first.
2990 * The user has a chance to override it with an option.
2991 */
2992#include <unistd.h>
2993#endif
2994
2995#ifndef YY_EXTRA_TYPE
2996#define YY_EXTRA_TYPE void *
2997#endif
2998
2999static int yy_init_globals (void );
3000
3001/* Accessor methods to globals.
3002   These are made visible to non-reentrant scanners for convenience. */
3003
3004int fortranlex_destroy (void );
3005
3006int fortranget_debug (void );
3007
3008void fortranset_debug (int debug_flag  );
3009
3010YY_EXTRA_TYPE fortranget_extra (void );
3011
3012void fortranset_extra (YY_EXTRA_TYPE user_defined  );
3013
3014FILE *fortranget_in (void );
3015
3016void fortranset_in  (FILE * in_str  );
3017
3018FILE *fortranget_out (void );
3019
3020void fortranset_out  (FILE * out_str  );
3021
3022yy_size_t fortranget_leng (void );
3023
3024char *fortranget_text (void );
3025
3026int fortranget_lineno (void );
3027
3028void fortranset_lineno (int line_number  );
3029
3030/* Macros after this point can all be overridden by user definitions in
3031 * section 1.
3032 */
3033
3034#ifndef YY_SKIP_YYWRAP
3035#ifdef __cplusplus
3036extern "C" int fortranwrap (void );
3037#else
3038extern int fortranwrap (void );
3039#endif
3040#endif
3041
3042    static void yyunput (int c,char *buf_ptr  );
3043   
3044#ifndef yytext_ptr
3045static void yy_flex_strncpy (char *,yyconst char *,int );
3046#endif
3047
3048#ifdef YY_NEED_STRLEN
3049static int yy_flex_strlen (yyconst char * );
3050#endif
3051
3052#ifndef YY_NO_INPUT
3053
3054#ifdef __cplusplus
3055static int yyinput (void );
3056#else
3057static int input (void );
3058#endif
3059
3060#endif
3061
3062/* Amount of stuff to slurp up with each read. */
3063#ifndef YY_READ_BUF_SIZE
3064#define YY_READ_BUF_SIZE 8192
3065#endif
3066
3067/* Copy whatever the last rule matched to the standard output. */
3068#ifndef ECHO
3069/* This used to be an fputs(), but since the string might contain NUL's,
3070 * we now use fwrite().
3071 */
3072#define ECHO fwrite( fortrantext, fortranleng, 1, fortranout )
3073#endif
3074
3075/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3076 * is returned in "result".
3077 */
3078#ifndef YY_INPUT
3079#define YY_INPUT(buf,result,max_size) \
3080   if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3081      { \
3082      int c = '*'; \
3083      yy_size_t n; \
3084      for ( n = 0; n < max_size && \
3085              (c = getc( fortranin )) != EOF && c != '\n'; ++n ) \
3086         buf[n] = (char) c; \
3087      if ( c == '\n' ) \
3088         buf[n++] = (char) c; \
3089      if ( c == EOF && ferror( fortranin ) ) \
3090         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3091      result = n; \
3092      } \
3093   else \
3094      { \
3095      errno=0; \
3096      while ( (result = fread(buf, 1, max_size, fortranin))==0 && ferror(fortranin)) \
3097         { \
3098         if( errno != EINTR) \
3099            { \
3100            YY_FATAL_ERROR( "input in flex scanner failed" ); \
3101            break; \
3102            } \
3103         errno=0; \
3104         clearerr(fortranin); \
3105         } \
3106      }\
3107\
3108
3109#endif
3110
3111/* No semi-colon after return; correct usage is to write "yyterminate();" -
3112 * we don't want an extra ';' after the "return" because that will cause
3113 * some compilers to complain about unreachable statements.
3114 */
3115#ifndef yyterminate
3116#define yyterminate() return YY_NULL
3117#endif
3118
3119/* Number of entries by which start-condition stack grows. */
3120#ifndef YY_START_STACK_INCR
3121#define YY_START_STACK_INCR 25
3122#endif
3123
3124/* Report a fatal error. */
3125#ifndef YY_FATAL_ERROR
3126#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3127#endif
3128
3129/* end tables serialization structures and prototypes */
3130
3131/* Default declaration of generated scanner - a define so the user can
3132 * easily add parameters.
3133 */
3134#ifndef YY_DECL
3135#define YY_DECL_IS_OURS 1
3136
3137extern int fortranlex (void);
3138
3139#define YY_DECL int fortranlex (void)
3140#endif /* !YY_DECL */
3141
3142/* Code executed at the beginning of each rule, after fortrantext and fortranleng
3143 * have been set up.
3144 */
3145#ifndef YY_USER_ACTION
3146#define YY_USER_ACTION
3147#endif
3148
3149/* Code executed at the end of each rule. */
3150#ifndef YY_BREAK
3151#define YY_BREAK break;
3152#endif
3153
3154#define YY_RULE_SETUP \
3155   if ( fortranleng > 0 ) \
3156      YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
3157            (fortrantext[fortranleng - 1] == '\n'); \
3158   YY_USER_ACTION
3159
3160/** The main scanner function which does all the work.
3161 */
3162YY_DECL
3163{
3164   register yy_state_type yy_current_state;
3165   register char *yy_cp, *yy_bp;
3166   register int yy_act;
3167   
3168#line 107 "fortran.lex"
3169
3170  if (infixed) BEGIN(fortran77style) ;
3171  if (infree) BEGIN(fortran90style)  ;
3172
3173#line 3174 "fortran.yy.c"
3174
3175   if ( !(yy_init) )
3176      {
3177      (yy_init) = 1;
3178
3179#ifdef YY_USER_INIT
3180      YY_USER_INIT;
3181#endif
3182
3183      if ( ! (yy_start) )
3184         (yy_start) = 1;   /* first start state */
3185
3186      if ( ! fortranin )
3187         fortranin = stdin;
3188
3189      if ( ! fortranout )
3190         fortranout = stdout;
3191
3192      if ( ! YY_CURRENT_BUFFER ) {
3193         fortranensure_buffer_stack ();
3194         YY_CURRENT_BUFFER_LVALUE =
3195            fortran_create_buffer(fortranin,YY_BUF_SIZE );
3196      }
3197
3198      fortran_load_buffer_state( );
3199      }
3200
3201   while ( 1 )    /* loops until end-of-file is reached */
3202      {
3203      yy_cp = (yy_c_buf_p);
3204
3205      /* Support of fortrantext. */
3206      *yy_cp = (yy_hold_char);
3207
3208      /* yy_bp points to the position in yy_ch_buf of the start of
3209       * the current run.
3210       */
3211      yy_bp = yy_cp;
3212
3213      yy_current_state = (yy_start);
3214      yy_current_state += YY_AT_BOL();
3215yy_match:
3216      do
3217         {
3218         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3219         if ( yy_accept[yy_current_state] )
3220            {
3221            (yy_last_accepting_state) = yy_current_state;
3222            (yy_last_accepting_cpos) = yy_cp;
3223            }
3224         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3225            {
3226            yy_current_state = (int) yy_def[yy_current_state];
3227            if ( yy_current_state >= 1162 )
3228               yy_c = yy_meta[(unsigned int) yy_c];
3229            }
3230         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3231         ++yy_cp;
3232         }
3233      while ( yy_base[yy_current_state] != 9159 );
3234
3235yy_find_action:
3236      yy_act = yy_accept[yy_current_state];
3237      if ( yy_act == 0 )
3238         { /* have to back up */
3239         yy_cp = (yy_last_accepting_cpos);
3240         yy_current_state = (yy_last_accepting_state);
3241         yy_act = yy_accept[yy_current_state];
3242         }
3243
3244      YY_DO_BEFORE_ACTION;
3245
3246do_action:  /* This label is used only to access EOF actions. */
3247
3248      switch ( yy_act )
3249   { /* beginning of action switch */
3250         case 0: /* must back up */
3251         /* undo the effects of YY_DO_BEFORE_ACTION */
3252         *yy_cp = (yy_hold_char);
3253         yy_cp = (yy_last_accepting_cpos);
3254         yy_current_state = (yy_last_accepting_state);
3255         goto yy_find_action;
3256
3257case 1:
3258YY_RULE_SETUP
3259#line 111 "fortran.lex"
3260return TOK_DEBUT;
3261   YY_BREAK
3262case 2:
3263YY_RULE_SETUP
3264#line 112 "fortran.lex"
3265return TOK_FIN;
3266   YY_BREAK
3267case 3:
3268YY_RULE_SETUP
3269#line 113 "fortran.lex"
3270return TOK_OMP;
3271   YY_BREAK
3272case 4:
3273YY_RULE_SETUP
3274#line 114 "fortran.lex"
3275return TOK_DOLLAR;
3276   YY_BREAK
3277case 5:
3278YY_RULE_SETUP
3279#line 116 "fortran.lex"
3280{return TOK_REAL8;}
3281   YY_BREAK
3282case 6:
3283YY_RULE_SETUP
3284#line 117 "fortran.lex"
3285{return TOK_SUBROUTINE;}
3286   YY_BREAK
3287case 7:
3288YY_RULE_SETUP
3289#line 118 "fortran.lex"
3290{return TOK_PROGRAM;}
3291   YY_BREAK
3292case 8:
3293YY_RULE_SETUP
3294#line 119 "fortran.lex"
3295{inallocate = 1; return TOK_ALLOCATE;}
3296   YY_BREAK
3297case 9:
3298YY_RULE_SETUP
3299#line 120 "fortran.lex"
3300{return TOK_NULLIFY;}
3301   YY_BREAK
3302case 10:
3303YY_RULE_SETUP
3304#line 121 "fortran.lex"
3305{inallocate = 1; return TOK_DEALLOCATE;}
3306   YY_BREAK
3307case 11:
3308YY_RULE_SETUP
3309#line 122 "fortran.lex"
3310{return TOK_RESULT;}
3311   YY_BREAK
3312case 12:
3313YY_RULE_SETUP
3314#line 123 "fortran.lex"
3315{return TOK_FUNCTION;}
3316   YY_BREAK
3317case 13:
3318YY_RULE_SETUP
3319#line 124 "fortran.lex"
3320{strcpy(yylval.na,fortrantext);return TOK_ENDSUBROUTINE;}
3321   YY_BREAK
3322case 14:
3323YY_RULE_SETUP
3324#line 125 "fortran.lex"
3325{strcpy(yylval.na,fortrantext);return TOK_ENDPROGRAM;}
3326   YY_BREAK
3327case 15:
3328YY_RULE_SETUP
3329#line 126 "fortran.lex"
3330{strcpy(yylval.na,fortrantext);return TOK_ENDFUNCTION;}
3331   YY_BREAK
3332case 16:
3333YY_RULE_SETUP
3334#line 127 "fortran.lex"
3335{strcpy(yylval.na,fortrantext);return TOK_ENDUNIT;}
3336   YY_BREAK
3337case 17:
3338YY_RULE_SETUP
3339#line 128 "fortran.lex"
3340return TOK_INCLUDE;
3341   YY_BREAK
3342case 18:
3343YY_RULE_SETUP
3344#line 129 "fortran.lex"
3345{
3346                            strcpy(yylval.na,fortrantext);
3347                            tmpc = input();
3348                            unput(tmpc);
3349                            if ( (
3350                               tmpc >= 'a' && tmpc <= 'z'
3351                                  ) || (
3352                               tmpc >= 'A' && tmpc <= 'Z'
3353                               )  )
3354                               {
3355                                  return TOK_USE;
3356                               }
3357                               else
3358                               {
3359                                  return TOK_NAME;
3360                               }
3361                         }
3362   YY_BREAK
3363case 19:
3364YY_RULE_SETUP
3365#line 146 "fortran.lex"
3366{return TOK_REWIND;}
3367   YY_BREAK
3368case 20:
3369YY_RULE_SETUP
3370#line 147 "fortran.lex"
3371return TOK_IMPLICIT;
3372   YY_BREAK
3373case 21:
3374YY_RULE_SETUP
3375#line 148 "fortran.lex"
3376return TOK_NONE;
3377   YY_BREAK
3378case 22:
3379YY_RULE_SETUP
3380#line 149 "fortran.lex"
3381return TOK_CALL;
3382   YY_BREAK
3383case 23:
3384YY_RULE_SETUP
3385#line 150 "fortran.lex"
3386return TOK_TRUE;
3387   YY_BREAK
3388case 24:
3389YY_RULE_SETUP
3390#line 151 "fortran.lex"
3391return TOK_FALSE;
3392   YY_BREAK
3393case 25:
3394YY_RULE_SETUP
3395#line 152 "fortran.lex"
3396{return TOK_POINT_TO;}
3397   YY_BREAK
3398case 26:
3399YY_RULE_SETUP
3400#line 153 "fortran.lex"
3401{strcpy(yylval.na,fortrantext);return TOK_DASTER;}
3402   YY_BREAK
3403case 27:
3404YY_RULE_SETUP
3405#line 154 "fortran.lex"
3406{strcpy(yylval.na,fortrantext);return TOK_EQV;}
3407   YY_BREAK
3408case 28:
3409YY_RULE_SETUP
3410#line 155 "fortran.lex"
3411{strcpy(yylval.na,fortrantext);return TOK_EQ;}
3412   YY_BREAK
3413case 29:
3414YY_RULE_SETUP
3415#line 156 "fortran.lex"
3416{strcpy(yylval.na,fortrantext);return TOK_GT;}
3417   YY_BREAK
3418case 30:
3419YY_RULE_SETUP
3420#line 157 "fortran.lex"
3421{strcpy(yylval.na,fortrantext);return TOK_GE;}
3422   YY_BREAK
3423case 31:
3424YY_RULE_SETUP
3425#line 158 "fortran.lex"
3426{strcpy(yylval.na,fortrantext);return TOK_LT;}
3427   YY_BREAK
3428case 32:
3429YY_RULE_SETUP
3430#line 159 "fortran.lex"
3431{strcpy(yylval.na,fortrantext);return TOK_LE;}
3432   YY_BREAK
3433case 33:
3434YY_RULE_SETUP
3435#line 160 "fortran.lex"
3436{strcpy(yylval.na,fortrantext);return TOK_NEQV;}
3437   YY_BREAK
3438case 34:
3439YY_RULE_SETUP
3440#line 161 "fortran.lex"
3441{strcpy(yylval.na,fortrantext);return TOK_NE;}
3442   YY_BREAK
3443case 35:
3444YY_RULE_SETUP
3445#line 162 "fortran.lex"
3446{strcpy(yylval.na,fortrantext);return TOK_NOT;}
3447   YY_BREAK
3448case 36:
3449YY_RULE_SETUP
3450#line 163 "fortran.lex"
3451{strcpy(yylval.na,fortrantext);return TOK_OR;}
3452   YY_BREAK
3453case 37:
3454YY_RULE_SETUP
3455#line 164 "fortran.lex"
3456{strcpy(yylval.na,fortrantext);return TOK_XOR;}
3457   YY_BREAK
3458case 38:
3459YY_RULE_SETUP
3460#line 165 "fortran.lex"
3461{strcpy(yylval.na,fortrantext);return TOK_AND;}
3462   YY_BREAK
3463case 39:
3464YY_RULE_SETUP
3465#line 166 "fortran.lex"
3466{return TOK_MODULE;}
3467   YY_BREAK
3468case 40:
3469YY_RULE_SETUP
3470#line 167 "fortran.lex"
3471{return TOK_DOWHILE;}
3472   YY_BREAK
3473case 41:
3474YY_RULE_SETUP
3475#line 168 "fortran.lex"
3476return TOK_ENDMODULE;
3477   YY_BREAK
3478case 42:
3479YY_RULE_SETUP
3480#line 169 "fortran.lex"
3481return TOK_ENDDO;
3482   YY_BREAK
3483case 43:
3484YY_RULE_SETUP
3485#line 170 "fortran.lex"
3486{return TOK_PLAINDO;}
3487   YY_BREAK
3488case 44:
3489YY_RULE_SETUP
3490#line 171 "fortran.lex"
3491{strcpy(yylval.na,fortrantext);return TOK_REAL;}
3492   YY_BREAK
3493case 45:
3494YY_RULE_SETUP
3495#line 172 "fortran.lex"
3496{strcpy(yylval.na,fortrantext);return TOK_INTEGER;}
3497   YY_BREAK
3498case 46:
3499YY_RULE_SETUP
3500#line 173 "fortran.lex"
3501{strcpy(yylval.na,fortrantext);return TOK_LOGICAL;}
3502   YY_BREAK
3503case 47:
3504YY_RULE_SETUP
3505#line 174 "fortran.lex"
3506{strcpy(yylval.na,fortrantext);return TOK_CHARACTER;}
3507   YY_BREAK
3508case 48:
3509YY_RULE_SETUP
3510#line 175 "fortran.lex"
3511{return TOK_ALLOCATABLE;}
3512   YY_BREAK
3513case 49:
3514YY_RULE_SETUP
3515#line 176 "fortran.lex"
3516return TOK_CLOSE;
3517   YY_BREAK
3518case 50:
3519YY_RULE_SETUP
3520#line 177 "fortran.lex"
3521return TOK_INQUIRE;
3522   YY_BREAK
3523case 51:
3524YY_RULE_SETUP
3525#line 178 "fortran.lex"
3526{return TOK_DIMENSION;}
3527   YY_BREAK
3528case 52:
3529YY_RULE_SETUP
3530#line 179 "fortran.lex"
3531return TOK_PAUSE;
3532   YY_BREAK
3533case 53:
3534YY_RULE_SETUP
3535#line 180 "fortran.lex"
3536return TOK_EQUIVALENCE;
3537   YY_BREAK
3538case 54:
3539YY_RULE_SETUP
3540#line 181 "fortran.lex"
3541return TOK_STOP;
3542   YY_BREAK
3543case 55:
3544YY_RULE_SETUP
3545#line 182 "fortran.lex"
3546return TOK_WHERE;
3547   YY_BREAK
3548case 56:
3549YY_RULE_SETUP
3550#line 183 "fortran.lex"
3551return TOK_ENDWHERE;
3552   YY_BREAK
3553case 57:
3554YY_RULE_SETUP
3555#line 184 "fortran.lex"
3556return TOK_ELSEWHERE;
3557   YY_BREAK
3558case 58:
3559YY_RULE_SETUP
3560#line 185 "fortran.lex"
3561{return TOK_COMPLEX;}
3562   YY_BREAK
3563case 59:
3564YY_RULE_SETUP
3565#line 186 "fortran.lex"
3566{return TOK_CONTAINS;}
3567   YY_BREAK
3568case 60:
3569YY_RULE_SETUP
3570#line 187 "fortran.lex"
3571{return TOK_ONLY;}
3572   YY_BREAK
3573case 61:
3574YY_RULE_SETUP
3575#line 188 "fortran.lex"
3576{return TOK_PARAMETER;}
3577   YY_BREAK
3578case 62:
3579YY_RULE_SETUP
3580#line 189 "fortran.lex"
3581{return TOK_RECURSIVE;}
3582   YY_BREAK
3583case 63:
3584YY_RULE_SETUP
3585#line 190 "fortran.lex"
3586{return TOK_COMMON;}
3587   YY_BREAK
3588case 64:
3589YY_RULE_SETUP
3590#line 191 "fortran.lex"
3591{return TOK_GLOBAL;}
3592   YY_BREAK
3593case 65:
3594YY_RULE_SETUP
3595#line 192 "fortran.lex"
3596{return TOK_EXTERNAL;}
3597   YY_BREAK
3598case 66:
3599YY_RULE_SETUP
3600#line 193 "fortran.lex"
3601{return TOK_INTENT;}
3602   YY_BREAK
3603case 67:
3604YY_RULE_SETUP
3605#line 194 "fortran.lex"
3606{return TOK_POINTER;}
3607   YY_BREAK
3608case 68:
3609YY_RULE_SETUP
3610#line 195 "fortran.lex"
3611{return TOK_OPTIONAL;}
3612   YY_BREAK
3613case 69:
3614YY_RULE_SETUP
3615#line 196 "fortran.lex"
3616{return TOK_SAVE;}
3617   YY_BREAK
3618case 70:
3619YY_RULE_SETUP
3620#line 197 "fortran.lex"
3621{return TOK_TYPE;}
3622   YY_BREAK
3623case 71:
3624YY_RULE_SETUP
3625#line 198 "fortran.lex"
3626{return TOK_TYPEPAR;}
3627   YY_BREAK
3628case 72:
3629YY_RULE_SETUP
3630#line 199 "fortran.lex"
3631{if (inallocate == 1) return TOK_STAT; else {strcpy(yylval.na,fortrantext);return TOK_NAME;}}
3632   YY_BREAK
3633case 73:
3634YY_RULE_SETUP
3635#line 200 "fortran.lex"
3636{return TOK_ENDTYPE;}
3637   YY_BREAK
3638case 74:
3639YY_RULE_SETUP
3640#line 201 "fortran.lex"
3641return TOK_OPEN;
3642   YY_BREAK
3643case 75:
3644YY_RULE_SETUP
3645#line 202 "fortran.lex"
3646return TOK_RETURN;
3647   YY_BREAK
3648case 76:
3649/* rule 76 can match eol */
3650YY_RULE_SETUP
3651#line 203 "fortran.lex"
3652return TOK_EXIT;
3653   YY_BREAK
3654case 77:
3655YY_RULE_SETUP
3656#line 204 "fortran.lex"
3657return TOK_PRINT;
3658   YY_BREAK
3659case 78:
3660YY_RULE_SETUP
3661#line 205 "fortran.lex"
3662{return TOK_PROCEDURE;}
3663   YY_BREAK
3664case 79:
3665YY_RULE_SETUP
3666#line 206 "fortran.lex"
3667{return TOK_READ;}
3668   YY_BREAK
3669case 80:
3670YY_RULE_SETUP
3671#line 207 "fortran.lex"
3672{return TOK_NAMELIST;}
3673   YY_BREAK
3674case 81:
3675YY_RULE_SETUP
3676#line 208 "fortran.lex"
3677{return TOK_WRITE;}
3678   YY_BREAK
3679case 82:
3680YY_RULE_SETUP
3681#line 209 "fortran.lex"
3682{return TOK_TARGET;}
3683   YY_BREAK
3684case 83:
3685YY_RULE_SETUP
3686#line 210 "fortran.lex"
3687{return TOK_PUBLIC;}
3688   YY_BREAK
3689case 84:
3690YY_RULE_SETUP
3691#line 211 "fortran.lex"
3692{return TOK_PRIVATE;}
3693   YY_BREAK
3694case 85:
3695YY_RULE_SETUP
3696#line 212 "fortran.lex"
3697{strcpy(yylval.nac,fortrantext);return TOK_IN;}
3698   YY_BREAK
3699case 86:
3700YY_RULE_SETUP
3701#line 213 "fortran.lex"
3702{strcpy(yylval.na,fortrantext);return TOK_DATA;}
3703   YY_BREAK
3704case 87:
3705YY_RULE_SETUP
3706#line 214 "fortran.lex"
3707return TOK_CONTINUE;
3708   YY_BREAK
3709case 88:
3710YY_RULE_SETUP
3711#line 215 "fortran.lex"
3712{return TOK_PLAINGOTO;}
3713   YY_BREAK
3714case 89:
3715YY_RULE_SETUP
3716#line 216 "fortran.lex"
3717{strcpy(yylval.nac,fortrantext);return TOK_OUT;}
3718   YY_BREAK
3719case 90:
3720YY_RULE_SETUP
3721#line 217 "fortran.lex"
3722{strcpy(yylval.nac,fortrantext);return TOK_INOUT;}
3723   YY_BREAK
3724case 91:
3725YY_RULE_SETUP
3726#line 218 "fortran.lex"
3727{return TOK_INTRINSIC;}
3728   YY_BREAK
3729case 92:
3730YY_RULE_SETUP
3731#line 219 "fortran.lex"
3732{return TOK_THEN;}
3733   YY_BREAK
3734case 93:
3735YY_RULE_SETUP
3736#line 220 "fortran.lex"
3737{return TOK_ELSEIF;}
3738   YY_BREAK
3739case 94:
3740YY_RULE_SETUP
3741#line 221 "fortran.lex"
3742{return TOK_ELSE;}
3743   YY_BREAK
3744case 95:
3745YY_RULE_SETUP
3746#line 222 "fortran.lex"
3747{return TOK_ENDIF;}
3748   YY_BREAK
3749case 96:
3750YY_RULE_SETUP
3751#line 223 "fortran.lex"
3752{return TOK_LOGICALIF;}
3753   YY_BREAK
3754case 97:
3755YY_RULE_SETUP
3756#line 224 "fortran.lex"
3757{return TOK_SUM;}
3758   YY_BREAK
3759case 98:
3760YY_RULE_SETUP
3761#line 225 "fortran.lex"
3762{return TOK_MAX;}
3763   YY_BREAK
3764case 99:
3765YY_RULE_SETUP
3766#line 226 "fortran.lex"
3767{return TOK_TANH;}
3768   YY_BREAK
3769case 100:
3770YY_RULE_SETUP
3771#line 227 "fortran.lex"
3772{return TOK_MAXVAL;}
3773   YY_BREAK
3774case 101:
3775YY_RULE_SETUP
3776#line 228 "fortran.lex"
3777{return TOK_TRIM;}
3778   YY_BREAK
3779case 102:
3780YY_RULE_SETUP
3781#line 229 "fortran.lex"
3782{return TOK_SQRT;}
3783   YY_BREAK
3784case 103:
3785YY_RULE_SETUP
3786#line 230 "fortran.lex"
3787{return TOK_SELECTCASE;}
3788   YY_BREAK
3789case 104:
3790YY_RULE_SETUP
3791#line 231 "fortran.lex"
3792{return TOK_CASE;}
3793   YY_BREAK
3794case 105:
3795YY_RULE_SETUP
3796#line 232 "fortran.lex"
3797{return TOK_CASEDEFAULT;}
3798   YY_BREAK
3799case 106:
3800YY_RULE_SETUP
3801#line 233 "fortran.lex"
3802{return TOK_ENDSELECT;}
3803   YY_BREAK
3804case 107:
3805YY_RULE_SETUP
3806#line 234 "fortran.lex"
3807{return TOK_FILE;}
3808   YY_BREAK
3809case 108:
3810YY_RULE_SETUP
3811#line 235 "fortran.lex"
3812{return TOK_END;}
3813   YY_BREAK
3814case 109:
3815YY_RULE_SETUP
3816#line 236 "fortran.lex"
3817{return TOK_ERR;}
3818   YY_BREAK
3819case 110:
3820YY_RULE_SETUP
3821#line 237 "fortran.lex"
3822{return TOK_EXIST;}
3823   YY_BREAK
3824case 111:
3825YY_RULE_SETUP
3826#line 238 "fortran.lex"
3827{return TOK_MIN;}
3828   YY_BREAK
3829case 112:
3830YY_RULE_SETUP
3831#line 239 "fortran.lex"
3832{return TOK_NINT;}
3833   YY_BREAK
3834case 113:
3835YY_RULE_SETUP
3836#line 240 "fortran.lex"
3837{return TOK_FLOAT;}
3838   YY_BREAK
3839case 114:
3840YY_RULE_SETUP
3841#line 241 "fortran.lex"
3842{return TOK_EXP;}
3843   YY_BREAK
3844case 115:
3845YY_RULE_SETUP
3846#line 242 "fortran.lex"
3847{return TOK_COS;}
3848   YY_BREAK
3849case 116:
3850YY_RULE_SETUP
3851#line 243 "fortran.lex"
3852{return TOK_COSH;}
3853   YY_BREAK
3854case 117:
3855YY_RULE_SETUP
3856#line 244 "fortran.lex"
3857{return TOK_ACOS;}
3858   YY_BREAK
3859case 118:
3860YY_RULE_SETUP
3861#line 245 "fortran.lex"
3862{return TOK_SIN;}
3863   YY_BREAK
3864case 119:
3865YY_RULE_SETUP
3866#line 246 "fortran.lex"
3867{return TOK_SINH;}
3868   YY_BREAK
3869case 120:
3870YY_RULE_SETUP
3871#line 247 "fortran.lex"
3872{return TOK_ASIN;}
3873   YY_BREAK
3874case 121:
3875YY_RULE_SETUP
3876#line 248 "fortran.lex"
3877{return TOK_LOG;}
3878   YY_BREAK
3879case 122:
3880YY_RULE_SETUP
3881#line 249 "fortran.lex"
3882{return TOK_TAN;}
3883   YY_BREAK
3884case 123:
3885YY_RULE_SETUP
3886#line 250 "fortran.lex"
3887{return TOK_ATAN;}
3888   YY_BREAK
3889case 124:
3890YY_RULE_SETUP
3891#line 251 "fortran.lex"
3892{return TOK_CYCLE;}
3893   YY_BREAK
3894case 125:
3895YY_RULE_SETUP
3896#line 252 "fortran.lex"
3897{return TOK_ABS;}
3898   YY_BREAK
3899case 126:
3900YY_RULE_SETUP
3901#line 253 "fortran.lex"
3902{return TOK_MOD;}
3903   YY_BREAK
3904case 127:
3905YY_RULE_SETUP
3906#line 254 "fortran.lex"
3907{return TOK_SIGN;}
3908   YY_BREAK
3909case 128:
3910YY_RULE_SETUP
3911#line 255 "fortran.lex"
3912{return TOK_MINLOC;}
3913   YY_BREAK
3914case 129:
3915YY_RULE_SETUP
3916#line 256 "fortran.lex"
3917{return TOK_MAXLOC;}
3918   YY_BREAK
3919case 130:
3920YY_RULE_SETUP
3921#line 257 "fortran.lex"
3922{return TOK_MINVAL;}
3923   YY_BREAK
3924case 131:
3925YY_RULE_SETUP
3926#line 258 "fortran.lex"
3927{return TOK_BACKSPACE;}
3928   YY_BREAK
3929case 132:
3930YY_RULE_SETUP
3931#line 259 "fortran.lex"
3932{return TOK_LEFTAB;}
3933   YY_BREAK
3934case 133:
3935YY_RULE_SETUP
3936#line 260 "fortran.lex"
3937{return TOK_RIGHTAB;}
3938   YY_BREAK
3939case 134:
3940/* rule 134 can match eol */
3941YY_RULE_SETUP
3942#line 261 "fortran.lex"
3943{return TOK_FORMAT;}
3944   YY_BREAK
3945case 135:
3946YY_RULE_SETUP
3947#line 262 "fortran.lex"
3948{strcpy(yylval.na,fortrantext);return TOK_DOUBLEPRECISION;}
3949   YY_BREAK
3950case 136:
3951YY_RULE_SETUP
3952#line 263 "fortran.lex"
3953{strcpy(yylval.na,fortrantext);return TOK_DOUBLECOMPLEX;}
3954   YY_BREAK
3955case 137:
3956YY_RULE_SETUP
3957#line 264 "fortran.lex"
3958{strcpy(yylval.na,fortrantext);return TOK_SLASH;}
3959   YY_BREAK
3960case 138:
3961YY_RULE_SETUP
3962#line 265 "fortran.lex"
3963{strcpy(yylval.na,fortrantext);return TOK_DSLASH;}
3964   YY_BREAK
3965case 139:
3966/* rule 139 can match eol */
3967YY_RULE_SETUP
3968#line 266 "fortran.lex"
3969{strcpy(yylval.na,fortrantext);return TOK_CHAR_CUT;}
3970   YY_BREAK
3971case 140:
3972YY_RULE_SETUP
3973#line 267 "fortran.lex"
3974{strcpy(yylval.na,fortrantext);return TOK_CHAR_CONSTANT;}
3975   YY_BREAK
3976case 141:
3977YY_RULE_SETUP
3978#line 268 "fortran.lex"
3979{strcpy(yylval.na,fortrantext);return TOK_CHAR_MESSAGE;}
3980   YY_BREAK
3981case 142:
3982YY_RULE_SETUP
3983#line 269 "fortran.lex"
3984{strcpy(yylval.na,fortrantext);return TOK_CHAR_INT;}
3985   YY_BREAK
3986case 143:
3987YY_RULE_SETUP
3988#line 270 "fortran.lex"
3989{printf("debug interfacer\n");BEGIN(donottreat);}
3990   YY_BREAK
3991case 144:
3992/* rule 144 can match eol */
3993YY_RULE_SETUP
3994#line 271 "fortran.lex"
3995{
3996                  BEGIN(INITIAL);
3997                        if (infixed) BEGIN(fortran77style) ;
3998                        if (infree) BEGIN(fortran90style)  ;
3999                        line_num_fortran++;line_num_fortran_common++;
4000                        return '\n';
4001                  }
4002   YY_BREAK
4003case 145:
4004YY_RULE_SETUP
4005#line 278 "fortran.lex"
4006{strcpy(yylval.na,fortrantext);return TOK_NAME;}
4007   YY_BREAK
4008case 146:
4009YY_RULE_SETUP
4010#line 279 "fortran.lex"
4011{strcpy(yylval.na,fortrantext);return TOK_CSTREAL;}
4012   YY_BREAK
4013case 147:
4014YY_RULE_SETUP
4015#line 280 "fortran.lex"
4016{strcpy(yylval.na,fortrantext);return TOK_CSTREALDP;}
4017   YY_BREAK
4018case 148:
4019YY_RULE_SETUP
4020#line 281 "fortran.lex"
4021{strcpy(yylval.na,fortrantext);return TOK_CSTREALQP;}
4022   YY_BREAK
4023case 149:
4024/* rule 149 can match eol */
4025*yy_cp = (yy_hold_char); /* undo effects of setting up fortrantext */
4026(yy_c_buf_p) = yy_cp -= 1;
4027YY_DO_BEFORE_ACTION; /* set up fortrantext again */
4028YY_RULE_SETUP
4029#line 282 "fortran.lex"
4030{strcpy(yylval.na,fortrantext);return TOK_CSTREAL;}
4031   YY_BREAK
4032case 150:
4033YY_RULE_SETUP
4034#line 283 "fortran.lex"
4035{strcpy(yylval.na,fortrantext);return TOK_CSTINT;}
4036   YY_BREAK
4037case 151:
4038YY_RULE_SETUP
4039#line 284 "fortran.lex"
4040{}
4041   YY_BREAK
4042case 152:
4043YY_RULE_SETUP
4044#line 285 "fortran.lex"
4045{return TOK_QUOTE;}
4046   YY_BREAK
4047case 153:
4048YY_RULE_SETUP
4049#line 286 "fortran.lex"
4050{}
4051   YY_BREAK
4052case 154:
4053YY_RULE_SETUP
4054#line 287 "fortran.lex"
4055{strcpy(yylval.na,fortrantext);return (int) *fortrantext;}
4056   YY_BREAK
4057case 155:
4058YY_RULE_SETUP
4059#line 288 "fortran.lex"
4060{afterpercent = 1; strcpy(yylval.na,fortrantext);return (int) *fortrantext;}
4061   YY_BREAK
4062case 156:
4063YY_RULE_SETUP
4064#line 289 "fortran.lex"
4065{return TOK_SEMICOLON;}
4066   YY_BREAK
4067case 157:
4068YY_RULE_SETUP
4069#line 290 "fortran.lex"
4070{return (int) *fortrantext;}
4071   YY_BREAK
4072case 158:
4073YY_RULE_SETUP
4074#line 291 "fortran.lex"
4075{return (int) *fortrantext;}
4076   YY_BREAK
4077case 159:
4078YY_RULE_SETUP
4079#line 292 "fortran.lex"
4080{return (int) *fortrantext;}
4081   YY_BREAK
4082case 160:
4083YY_RULE_SETUP
4084#line 293 "fortran.lex"
4085{return (int) *fortrantext;}
4086   YY_BREAK
4087case 161:
4088/* rule 161 can match eol */
4089YY_RULE_SETUP
4090#line 294 "fortran.lex"
4091{colnum=0;line_num_fortran++;line_num_fortran_common++; return (int) *fortrantext;}
4092   YY_BREAK
4093case 162:
4094*yy_cp = (yy_hold_char); /* undo effects of setting up fortrantext */
4095(yy_c_buf_p) = yy_cp -= 1;
4096YY_DO_BEFORE_ACTION; /* set up fortrantext again */
4097YY_RULE_SETUP
4098#line 295 "fortran.lex"
4099
4100   YY_BREAK
4101case 163:
4102YY_RULE_SETUP
4103#line 296 "fortran.lex"
4104{if (newlinef90 == 0) return TOK_LABEL; else newlinef90 = 0;}
4105   YY_BREAK
4106case 164:
4107YY_RULE_SETUP
4108#line 297 "fortran.lex"
4109
4110   YY_BREAK
4111case 165:
4112YY_RULE_SETUP
4113#line 298 "fortran.lex"
4114{colnum=colnum-1+tabsize;}
4115   YY_BREAK
4116case 166:
4117YY_RULE_SETUP
4118#line 299 "fortran.lex"
4119;
4120   YY_BREAK
4121case 167:
4122/* rule 167 can match eol */
4123YY_RULE_SETUP
4124#line 300 "fortran.lex"
4125{line_num_fortran++;line_num_fortran_common++;newlinef90=1;colnum=0;}
4126   YY_BREAK
4127case 168:
4128/* rule 168 can match eol */
4129YY_RULE_SETUP
4130#line 301 "fortran.lex"
4131{line_num_fortran++;line_num_fortran_common++;colnum=0;}
4132   YY_BREAK
4133case 169:
4134/* rule 169 can match eol */
4135YY_RULE_SETUP
4136#line 302 "fortran.lex"
4137{
4138                           convert2lower(motparse1);
4139                           if ( strncasecmp(motparse1,"contains",8) == 0 )
4140                           {
4141                              return TOK_CONTAINS;
4142                           }
4143                           else
4144                           {
4145                            /*  colnum=0;line_num_fortran++;line_num_fortran_common++;*/
4146                             if ( !strcasecmp(motparse1,"C$AGRIF_DO_NOT_TREAT\n")) 
4147                             return TOK_DONOTTREAT;
4148                             if ( !strcasecmp(motparse1,"C$AGRIF_END_DO_NOT_TREAT\n")) return TOK_ENDDONOTTREAT;
4149                             unput('\n');
4150                           }
4151                         }
4152   YY_BREAK
4153case 170:
4154/* rule 170 can match eol */
4155YY_RULE_SETUP
4156#line 317 "fortran.lex"
4157{
4158                           convert2lower(&motparse1[1]);
4159                           if ( strncasecmp(&motparse1[1],"contains",8) == 0 )
4160                           {
4161                              return TOK_CONTAINS;
4162                           }
4163                           else
4164                           {
4165                             /* colnum=0;line_num_fortran++;line_num_fortran_common++;*/
4166                             if ( !strcasecmp(&motparse1[1],"C$AGRIF_DO_NOT_TREAT\n")) 
4167                             return TOK_DONOTTREAT;
4168                             if ( !strcasecmp(&motparse1[1],"C$AGRIF_END_DO_NOT_TREAT\n")) return TOK_ENDDONOTTREAT;
4169                             unput('\n');
4170                           }
4171                         }                           
4172   YY_BREAK
4173case 171:
4174/* rule 171 can match eol */
4175YY_RULE_SETUP
4176#line 332 "fortran.lex"
4177{
4178                  BEGIN(donottreat);
4179                  }
4180   YY_BREAK
4181case 172:
4182/* rule 172 can match eol */
4183YY_RULE_SETUP
4184#line 335 "fortran.lex"
4185{
4186                  BEGIN(INITIAL);
4187                        if (infixed) BEGIN(fortran77style) ;
4188                        if (infree) BEGIN(fortran90style)  ;
4189                        line_num_fortran++;line_num_fortran_common++;
4190                        return '\n';
4191                  }
4192   YY_BREAK
4193case 173:
4194/* rule 173 can match eol */
4195YY_RULE_SETUP
4196#line 342 "fortran.lex"
4197{line_num_fortran++;line_num_fortran_common++;}
4198   YY_BREAK
4199case 174:
4200/* rule 174 can match eol */
4201YY_RULE_SETUP
4202#line 343 "fortran.lex"
4203{
4204                             colnum = 0;
4205                             if ( !strcasecmp(motparse1,"!$AGRIF_DO_NOT_TREAT\n")) return TOK_DONOTTREAT;
4206                             if ( !strcasecmp(motparse1,"!$AGRIF_END_DO_NOT_TREAT\n")) return TOK_ENDDONOTTREAT;
4207                          }
4208   YY_BREAK
4209case 175:
4210YY_RULE_SETUP
4211#line 348 "fortran.lex"
4212{
4213                             colnum = 0;
4214                             if ( !strcasecmp(motparse1,"!$AGRIF_DO_NOT_TREAT\n")) return TOK_DONOTTREAT;
4215                             if ( !strcasecmp(motparse1,"!$AGRIF_END_DO_NOT_TREAT\n")) return TOK_ENDDONOTTREAT;
4216                          }
4217   YY_BREAK
4218case 176:
4219YY_RULE_SETUP
4220#line 353 "fortran.lex"
4221ECHO;
4222   YY_BREAK
4223#line 4224 "fortran.yy.c"
4224case YY_STATE_EOF(INITIAL):
4225case YY_STATE_EOF(parameter):
4226case YY_STATE_EOF(character):
4227case YY_STATE_EOF(donottreat):
4228case YY_STATE_EOF(fortran77style):
4229case YY_STATE_EOF(fortran90style):
4230   yyterminate();
4231
4232   case YY_END_OF_BUFFER:
4233      {
4234      /* Amount of text matched not including the EOB char. */
4235      int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
4236
4237      /* Undo the effects of YY_DO_BEFORE_ACTION. */
4238      *yy_cp = (yy_hold_char);
4239      YY_RESTORE_YY_MORE_OFFSET
4240
4241      if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4242         {
4243         /* We're scanning a new file or input source.  It's
4244          * possible that this happened because the user
4245          * just pointed fortranin at a new source and called
4246          * fortranlex().  If so, then we have to assure
4247          * consistency between YY_CURRENT_BUFFER and our
4248          * globals.  Here is the right place to do so, because
4249          * this is the first action (other than possibly a
4250          * back-up) that will match for the new input source.
4251          */
4252         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4253         YY_CURRENT_BUFFER_LVALUE->yy_input_file = fortranin;
4254         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4255         }
4256
4257      /* Note that here we test for yy_c_buf_p "<=" to the position
4258       * of the first EOB in the buffer, since yy_c_buf_p will
4259       * already have been incremented past the NUL character
4260       * (since all states make transitions on EOB to the
4261       * end-of-buffer state).  Contrast this with the test
4262       * in input().
4263       */
4264      if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4265         { /* This was really a NUL. */
4266         yy_state_type yy_next_state;
4267
4268         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
4269
4270         yy_current_state = yy_get_previous_state(  );
4271
4272         /* Okay, we're now positioned to make the NUL
4273          * transition.  We couldn't have
4274          * yy_get_previous_state() go ahead and do it
4275          * for us because it doesn't know how to deal
4276          * with the possibility of jamming (and we don't
4277          * want to build jamming into it because then it
4278          * will run more slowly).
4279          */
4280
4281         yy_next_state = yy_try_NUL_trans( yy_current_state );
4282
4283         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4284
4285         if ( yy_next_state )
4286            {
4287            /* Consume the NUL. */
4288            yy_cp = ++(yy_c_buf_p);
4289            yy_current_state = yy_next_state;
4290            goto yy_match;
4291            }
4292
4293         else
4294            {
4295            yy_cp = (yy_c_buf_p);
4296            goto yy_find_action;
4297            }
4298         }
4299
4300      else switch ( yy_get_next_buffer(  ) )
4301         {
4302         case EOB_ACT_END_OF_FILE:
4303            {
4304            (yy_did_buffer_switch_on_eof) = 0;
4305
4306            if ( fortranwrap( ) )
4307               {
4308               /* Note: because we've taken care in
4309                * yy_get_next_buffer() to have set up
4310                * fortrantext, we can now set up
4311                * yy_c_buf_p so that if some total
4312                * hoser (like flex itself) wants to
4313                * call the scanner after we return the
4314                * YY_NULL, it'll still work - another
4315                * YY_NULL will get returned.
4316                */
4317               (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4318
4319               yy_act = YY_STATE_EOF(YY_START);
4320               goto do_action;
4321               }
4322
4323            else
4324               {
4325               if ( ! (yy_did_buffer_switch_on_eof) )
4326                  YY_NEW_FILE;
4327               }
4328            break;
4329            }
4330
4331         case EOB_ACT_CONTINUE_SCAN:
4332            (yy_c_buf_p) =
4333               (yytext_ptr) + yy_amount_of_matched_text;
4334
4335            yy_current_state = yy_get_previous_state(  );
4336
4337            yy_cp = (yy_c_buf_p);
4338            yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4339            goto yy_match;
4340
4341         case EOB_ACT_LAST_MATCH:
4342            (yy_c_buf_p) =
4343            &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4344
4345            yy_current_state = yy_get_previous_state(  );
4346
4347            yy_cp = (yy_c_buf_p);
4348            yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4349            goto yy_find_action;
4350         }
4351      break;
4352      }
4353
4354   default:
4355      YY_FATAL_ERROR(
4356         "fatal flex scanner internal error--no action found" );
4357   } /* end of action switch */
4358      } /* end of scanning one token */
4359} /* end of fortranlex */
4360
4361/* yy_get_next_buffer - try to read in a new buffer
4362 *
4363 * Returns a code representing an action:
4364 * EOB_ACT_LAST_MATCH -
4365 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4366 * EOB_ACT_END_OF_FILE - end of file
4367 */
4368static int yy_get_next_buffer (void)
4369{
4370      register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4371   register char *source = (yytext_ptr);
4372   register int number_to_move, i;
4373   int ret_val;
4374
4375   if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4376      YY_FATAL_ERROR(
4377      "fatal flex scanner internal error--end of buffer missed" );
4378
4379   if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4380      { /* Don't try to fill the buffer, so this is an EOF. */
4381      if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4382         {
4383         /* We matched a single character, the EOB, so
4384          * treat this as a final EOF.
4385          */
4386         return EOB_ACT_END_OF_FILE;
4387         }
4388
4389      else
4390         {
4391         /* We matched some text prior to the EOB, first
4392          * process it.
4393          */
4394         return EOB_ACT_LAST_MATCH;
4395         }
4396      }
4397
4398   /* Try to read more data. */
4399
4400   /* First move last chars to start of buffer. */
4401   number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
4402
4403   for ( i = 0; i < number_to_move; ++i )
4404      *(dest++) = *(source++);
4405
4406   if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4407      /* don't do the read, it's not guaranteed to return an EOF,
4408       * just force an EOF
4409       */
4410      YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4411
4412   else
4413      {
4414         yy_size_t num_to_read =
4415         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4416
4417      while ( num_to_read <= 0 )
4418         { /* Not enough room in the buffer - grow it. */
4419
4420         /* just a shorter name for the current buffer */
4421         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
4422
4423         int yy_c_buf_p_offset =
4424            (int) ((yy_c_buf_p) - b->yy_ch_buf);
4425
4426         if ( b->yy_is_our_buffer )
4427            {
4428            yy_size_t new_size = b->yy_buf_size * 2;
4429
4430            if ( new_size <= 0 )
4431               b->yy_buf_size += b->yy_buf_size / 8;
4432            else
4433               b->yy_buf_size *= 2;
4434
4435            b->yy_ch_buf = (char *)
4436               /* Include room in for 2 EOB chars. */
4437               fortranrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
4438            }
4439         else
4440            /* Can't grow it, we don't own it. */
4441            b->yy_ch_buf = 0;
4442
4443         if ( ! b->yy_ch_buf )
4444            YY_FATAL_ERROR(
4445            "fatal error - scanner input buffer overflow" );
4446
4447         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4448
4449         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4450                  number_to_move - 1;
4451
4452         }
4453
4454      if ( num_to_read > YY_READ_BUF_SIZE )
4455         num_to_read = YY_READ_BUF_SIZE;
4456
4457      /* Read in more data. */
4458      YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4459         (yy_n_chars), num_to_read );
4460
4461      YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4462      }
4463
4464   if ( (yy_n_chars) == 0 )
4465      {
4466      if ( number_to_move == YY_MORE_ADJ )
4467         {
4468         ret_val = EOB_ACT_END_OF_FILE;
4469         fortranrestart(fortranin  );
4470         }
4471
4472      else
4473         {
4474         ret_val = EOB_ACT_LAST_MATCH;
4475         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4476            YY_BUFFER_EOF_PENDING;
4477         }
4478      }
4479
4480   else
4481      ret_val = EOB_ACT_CONTINUE_SCAN;
4482
4483   if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4484      /* Extend the array by 50%, plus the number we really need. */
4485      yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4486      YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) fortranrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
4487      if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4488         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4489   }
4490
4491   (yy_n_chars) += number_to_move;
4492   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4493   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4494
4495   (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4496
4497   return ret_val;
4498}
4499
4500/* yy_get_previous_state - get the state just before the EOB char was reached */
4501
4502    static yy_state_type yy_get_previous_state (void)
4503{
4504   register yy_state_type yy_current_state;
4505   register char *yy_cp;
4506   
4507   yy_current_state = (yy_start);
4508   yy_current_state += YY_AT_BOL();
4509
4510   for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4511      {
4512      register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4513      if ( yy_accept[yy_current_state] )
4514         {
4515         (yy_last_accepting_state) = yy_current_state;
4516         (yy_last_accepting_cpos) = yy_cp;
4517         }
4518      while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4519         {
4520         yy_current_state = (int) yy_def[yy_current_state];
4521         if ( yy_current_state >= 1162 )
4522            yy_c = yy_meta[(unsigned int) yy_c];
4523         }
4524      yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4525      }
4526
4527   return yy_current_state;
4528}
4529
4530/* yy_try_NUL_trans - try to make a transition on the NUL character
4531 *
4532 * synopsis
4533 * next_state = yy_try_NUL_trans( current_state );
4534 */
4535    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
4536{
4537   register int yy_is_jam;
4538      register char *yy_cp = (yy_c_buf_p);
4539
4540   register YY_CHAR yy_c = 1;
4541   if ( yy_accept[yy_current_state] )
4542      {
4543      (yy_last_accepting_state) = yy_current_state;
4544      (yy_last_accepting_cpos) = yy_cp;
4545      }
4546   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4547      {
4548      yy_current_state = (int) yy_def[yy_current_state];
4549      if ( yy_current_state >= 1162 )
4550         yy_c = yy_meta[(unsigned int) yy_c];
4551      }
4552   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4553   yy_is_jam = (yy_current_state == 1161);
4554
4555   return yy_is_jam ? 0 : yy_current_state;
4556}
4557
4558    static void yyunput (int c, register char * yy_bp )
4559{
4560   register char *yy_cp;
4561   
4562    yy_cp = (yy_c_buf_p);
4563
4564   /* undo effects of setting up fortrantext */
4565   *yy_cp = (yy_hold_char);
4566
4567   if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4568      { /* need to shift things up to make room */
4569      /* +2 for EOB chars. */
4570      register yy_size_t number_to_move = (yy_n_chars) + 2;
4571      register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4572               YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4573      register char *source =
4574            &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4575
4576      while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4577         *--dest = *--source;
4578
4579      yy_cp += (int) (dest - source);
4580      yy_bp += (int) (dest - source);
4581      YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4582         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4583
4584      if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4585         YY_FATAL_ERROR( "flex scanner push-back overflow" );
4586      }
4587
4588   *--yy_cp = (char) c;
4589
4590   (yytext_ptr) = yy_bp;
4591   (yy_hold_char) = *yy_cp;
4592   (yy_c_buf_p) = yy_cp;
4593}
4594
4595#ifndef YY_NO_INPUT
4596#ifdef __cplusplus
4597    static int yyinput (void)
4598#else
4599    static int input  (void)
4600#endif
4601
4602{
4603   int c;
4604   
4605   *(yy_c_buf_p) = (yy_hold_char);
4606
4607   if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4608      {
4609      /* yy_c_buf_p now points to the character we want to return.
4610       * If this occurs *before* the EOB characters, then it's a
4611       * valid NUL; if not, then we've hit the end of the buffer.
4612       */
4613      if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4614         /* This was really a NUL. */
4615         *(yy_c_buf_p) = '\0';
4616
4617      else
4618         { /* need more input */
4619         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
4620         ++(yy_c_buf_p);
4621
4622         switch ( yy_get_next_buffer(  ) )
4623            {
4624            case EOB_ACT_LAST_MATCH:
4625               /* This happens because yy_g_n_b()
4626                * sees that we've accumulated a
4627                * token and flags that we need to
4628                * try matching the token before
4629                * proceeding.  But for input(),
4630                * there's no matching to consider.
4631                * So convert the EOB_ACT_LAST_MATCH
4632                * to EOB_ACT_END_OF_FILE.
4633                */
4634
4635               /* Reset buffer status. */
4636               fortranrestart(fortranin );
4637
4638               /*FALLTHROUGH*/
4639
4640            case EOB_ACT_END_OF_FILE:
4641               {
4642               if ( fortranwrap( ) )
4643                  return 0;
4644
4645               if ( ! (yy_did_buffer_switch_on_eof) )
4646                  YY_NEW_FILE;
4647#ifdef __cplusplus
4648               return yyinput();
4649#else
4650               return input();
4651#endif
4652               }
4653
4654            case EOB_ACT_CONTINUE_SCAN:
4655               (yy_c_buf_p) = (yytext_ptr) + offset;
4656               break;
4657            }
4658         }
4659      }
4660
4661   c = *(unsigned char *) (yy_c_buf_p);   /* cast for 8-bit char's */
4662   *(yy_c_buf_p) = '\0';   /* preserve fortrantext */
4663   (yy_hold_char) = *++(yy_c_buf_p);
4664
4665   YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4666
4667   return c;
4668}
4669#endif   /* ifndef YY_NO_INPUT */
4670
4671/** Immediately switch to a different input stream.
4672 * @param input_file A readable stream.
4673 *
4674 * @note This function does not reset the start condition to @c INITIAL .
4675 */
4676    void fortranrestart  (FILE * input_file )
4677{
4678   
4679   if ( ! YY_CURRENT_BUFFER ){
4680        fortranensure_buffer_stack ();
4681      YY_CURRENT_BUFFER_LVALUE =
4682            fortran_create_buffer(fortranin,YY_BUF_SIZE );
4683   }
4684
4685   fortran_init_buffer(YY_CURRENT_BUFFER,input_file );
4686   fortran_load_buffer_state( );
4687}
4688
4689/** Switch to a different input buffer.
4690 * @param new_buffer The new input buffer.
4691 *
4692 */
4693    void fortran_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4694{
4695   
4696   /* TODO. We should be able to replace this entire function body
4697    * with
4698    *    fortranpop_buffer_state();
4699    *    fortranpush_buffer_state(new_buffer);
4700     */
4701   fortranensure_buffer_stack ();
4702   if ( YY_CURRENT_BUFFER == new_buffer )
4703      return;
4704
4705   if ( YY_CURRENT_BUFFER )
4706      {
4707      /* Flush out information for old buffer. */
4708      *(yy_c_buf_p) = (yy_hold_char);
4709      YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4710      YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4711      }
4712
4713   YY_CURRENT_BUFFER_LVALUE = new_buffer;
4714   fortran_load_buffer_state( );
4715
4716   /* We don't actually know whether we did this switch during
4717    * EOF (fortranwrap()) processing, but the only time this flag
4718    * is looked at is after fortranwrap() is called, so it's safe
4719    * to go ahead and always set it.
4720    */
4721   (yy_did_buffer_switch_on_eof) = 1;
4722}
4723
4724static void fortran_load_buffer_state  (void)
4725{
4726      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4727   (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4728   fortranin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4729   (yy_hold_char) = *(yy_c_buf_p);
4730}
4731
4732/** Allocate and initialize an input buffer state.
4733 * @param file A readable stream.
4734 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4735 *
4736 * @return the allocated buffer state.
4737 */
4738    YY_BUFFER_STATE fortran_create_buffer  (FILE * file, int  size )
4739{
4740   YY_BUFFER_STATE b;
4741   
4742   b = (YY_BUFFER_STATE) fortranalloc(sizeof( struct yy_buffer_state )  );
4743   if ( ! b )
4744      YY_FATAL_ERROR( "out of dynamic memory in fortran_create_buffer()" );
4745
4746   b->yy_buf_size = size;
4747
4748   /* yy_ch_buf has to be 2 characters longer than the size given because
4749    * we need to put in 2 end-of-buffer characters.
4750    */
4751   b->yy_ch_buf = (char *) fortranalloc(b->yy_buf_size + 2  );
4752   if ( ! b->yy_ch_buf )
4753      YY_FATAL_ERROR( "out of dynamic memory in fortran_create_buffer()" );
4754
4755   b->yy_is_our_buffer = 1;
4756
4757   fortran_init_buffer(b,file );
4758
4759   return b;
4760}
4761
4762/** Destroy the buffer.
4763 * @param b a buffer created with fortran_create_buffer()
4764 *
4765 */
4766    void fortran_delete_buffer (YY_BUFFER_STATE  b )
4767{
4768   
4769   if ( ! b )
4770      return;
4771
4772   if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4773      YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4774
4775   if ( b->yy_is_our_buffer )
4776      fortranfree((void *) b->yy_ch_buf  );
4777
4778   fortranfree((void *) b  );
4779}
4780
4781#ifndef __cplusplus
4782extern int isatty (int );
4783#endif /* __cplusplus */
4784   
4785/* Initializes or reinitializes a buffer.
4786 * This function is sometimes called more than once on the same buffer,
4787 * such as during a fortranrestart() or at EOF.
4788 */
4789    static void fortran_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4790
4791{
4792   int oerrno = errno;
4793   
4794   fortran_flush_buffer(b );
4795
4796   b->yy_input_file = file;
4797   b->yy_fill_buffer = 1;
4798
4799    /* If b is the current buffer, then fortran_init_buffer was _probably_
4800     * called from fortranrestart() or through yy_get_next_buffer.
4801     * In that case, we don't want to reset the lineno or column.
4802     */
4803    if (b != YY_CURRENT_BUFFER){
4804        b->yy_bs_lineno = 1;
4805        b->yy_bs_column = 0;
4806    }
4807
4808        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4809   
4810   errno = oerrno;
4811}
4812
4813/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4814 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4815 *
4816 */
4817    void fortran_flush_buffer (YY_BUFFER_STATE  b )
4818{
4819      if ( ! b )
4820      return;
4821
4822   b->yy_n_chars = 0;
4823
4824   /* We always need two end-of-buffer characters.  The first causes
4825    * a transition to the end-of-buffer state.  The second causes
4826    * a jam in that state.
4827    */
4828   b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4829   b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4830
4831   b->yy_buf_pos = &b->yy_ch_buf[0];
4832
4833   b->yy_at_bol = 1;
4834   b->yy_buffer_status = YY_BUFFER_NEW;
4835
4836   if ( b == YY_CURRENT_BUFFER )
4837      fortran_load_buffer_state( );
4838}
4839
4840/** Pushes the new state onto the stack. The new state becomes
4841 *  the current state. This function will allocate the stack
4842 *  if necessary.
4843 *  @param new_buffer The new state.
4844 * 
4845 */
4846void fortranpush_buffer_state (YY_BUFFER_STATE new_buffer )
4847{
4848      if (new_buffer == NULL)
4849      return;
4850
4851   fortranensure_buffer_stack();
4852
4853   /* This block is copied from fortran_switch_to_buffer. */
4854   if ( YY_CURRENT_BUFFER )
4855      {
4856      /* Flush out information for old buffer. */
4857      *(yy_c_buf_p) = (yy_hold_char);
4858      YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4859      YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4860      }
4861
4862   /* Only push if top exists. Otherwise, replace top. */
4863   if (YY_CURRENT_BUFFER)
4864      (yy_buffer_stack_top)++;
4865   YY_CURRENT_BUFFER_LVALUE = new_buffer;
4866
4867   /* copied from fortran_switch_to_buffer. */
4868   fortran_load_buffer_state( );
4869   (yy_did_buffer_switch_on_eof) = 1;
4870}
4871
4872/** Removes and deletes the top of the stack, if present.
4873 *  The next element becomes the new top.
4874 * 
4875 */
4876void fortranpop_buffer_state (void)
4877{
4878      if (!YY_CURRENT_BUFFER)
4879      return;
4880
4881   fortran_delete_buffer(YY_CURRENT_BUFFER );
4882   YY_CURRENT_BUFFER_LVALUE = NULL;
4883   if ((yy_buffer_stack_top) > 0)
4884      --(yy_buffer_stack_top);
4885
4886   if (YY_CURRENT_BUFFER) {
4887      fortran_load_buffer_state( );
4888      (yy_did_buffer_switch_on_eof) = 1;
4889   }
4890}
4891
4892/* Allocates the stack if it does not exist.
4893 *  Guarantees space for at least one push.
4894 */
4895static void fortranensure_buffer_stack (void)
4896{
4897   yy_size_t num_to_alloc;
4898   
4899   if (!(yy_buffer_stack)) {
4900
4901      /* First allocation is just for 2 elements, since we don't know if this
4902       * scanner will even need a stack. We use 2 instead of 1 to avoid an
4903       * immediate realloc on the next call.
4904         */
4905      num_to_alloc = 1;
4906      (yy_buffer_stack) = (struct yy_buffer_state**)fortranalloc
4907                        (num_to_alloc * sizeof(struct yy_buffer_state*)
4908                        );
4909      if ( ! (yy_buffer_stack) )
4910         YY_FATAL_ERROR( "out of dynamic memory in fortranensure_buffer_stack()" );
4911                         
4912      memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4913           
4914      (yy_buffer_stack_max) = num_to_alloc;
4915      (yy_buffer_stack_top) = 0;
4916      return;
4917   }
4918
4919   if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4920
4921      /* Increase the buffer to prepare for a possible push. */
4922      int grow_size = 8 /* arbitrary grow size */;
4923
4924      num_to_alloc = (yy_buffer_stack_max) + grow_size;
4925      (yy_buffer_stack) = (struct yy_buffer_state**)fortranrealloc
4926                        ((yy_buffer_stack),
4927                        num_to_alloc * sizeof(struct yy_buffer_state*)
4928                        );
4929      if ( ! (yy_buffer_stack) )
4930         YY_FATAL_ERROR( "out of dynamic memory in fortranensure_buffer_stack()" );
4931
4932      /* zero only the new slots.*/
4933      memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4934      (yy_buffer_stack_max) = num_to_alloc;
4935   }
4936}
4937
4938/** Setup the input buffer state to scan directly from a user-specified character buffer.
4939 * @param base the character buffer
4940 * @param size the size in bytes of the character buffer
4941 *
4942 * @return the newly allocated buffer state object.
4943 */
4944YY_BUFFER_STATE fortran_scan_buffer  (char * base, yy_size_t  size )
4945{
4946   YY_BUFFER_STATE b;
4947   
4948   if ( size < 2 ||
4949        base[size-2] != YY_END_OF_BUFFER_CHAR ||
4950        base[size-1] != YY_END_OF_BUFFER_CHAR )
4951      /* They forgot to leave room for the EOB's. */
4952      return 0;
4953
4954   b = (YY_BUFFER_STATE) fortranalloc(sizeof( struct yy_buffer_state )  );
4955   if ( ! b )
4956      YY_FATAL_ERROR( "out of dynamic memory in fortran_scan_buffer()" );
4957
4958   b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4959   b->yy_buf_pos = b->yy_ch_buf = base;
4960   b->yy_is_our_buffer = 0;
4961   b->yy_input_file = 0;
4962   b->yy_n_chars = b->yy_buf_size;
4963   b->yy_is_interactive = 0;
4964   b->yy_at_bol = 1;
4965   b->yy_fill_buffer = 0;
4966   b->yy_buffer_status = YY_BUFFER_NEW;
4967
4968   fortran_switch_to_buffer();
4969
4970   return b;
4971}
4972
4973/** Setup the input buffer state to scan a string. The next call to fortranlex() will
4974 * scan from a @e copy of @a str.
4975 * @param yystr a NUL-terminated string to scan
4976 *
4977 * @return the newly allocated buffer state object.
4978 * @note If you want to scan bytes that may contain NUL values, then use
4979 *       fortran_scan_bytes() instead.
4980 */
4981YY_BUFFER_STATE fortran_scan_string (yyconst char * yystr )
4982{
4983   
4984   return fortran_scan_bytes(yystr,strlen(yystr) );
4985}
4986
4987/** Setup the input buffer state to scan the given bytes. The next call to fortranlex() will
4988 * scan from a @e copy of @a bytes.
4989 * @param bytes the byte buffer to scan
4990 * @param len the number of bytes in the buffer pointed to by @a bytes.
4991 *
4992 * @return the newly allocated buffer state object.
4993 */
4994YY_BUFFER_STATE fortran_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
4995{
4996   YY_BUFFER_STATE b;
4997   char *buf;
4998   yy_size_t n, i;
4999   
5000   /* Get memory for full buffer, including space for trailing EOB's. */
5001   n = _yybytes_len + 2;
5002   buf = (char *) fortranalloc();
5003   if ( ! buf )
5004      YY_FATAL_ERROR( "out of dynamic memory in fortran_scan_bytes()" );
5005
5006   for ( i = 0; i < _yybytes_len; ++i )
5007      buf[i] = yybytes[i];
5008
5009   buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5010
5011   b = fortran_scan_buffer(buf,n );
5012   if ( ! b )
5013      YY_FATAL_ERROR( "bad buffer in fortran_scan_bytes()" );
5014
5015   /* It's okay to grow etc. this buffer, and we should throw it
5016    * away when we're done.
5017    */
5018   b->yy_is_our_buffer = 1;
5019
5020   return b;
5021}
5022
5023#ifndef YY_EXIT_FAILURE
5024#define YY_EXIT_FAILURE 2
5025#endif
5026
5027static void yy_fatal_error (yyconst char* msg )
5028{
5029      (void) fprintf( stderr, "%s\n", msg );
5030   exit( YY_EXIT_FAILURE );
5031}
5032
5033/* Redefine yyless() so it works in section 3 code. */
5034
5035#undef yyless
5036#define yyless(n) \
5037   do \
5038      { \
5039      /* Undo effects of setting up fortrantext. */ \
5040        int yyless_macro_arg = (n); \
5041        YY_LESS_LINENO(yyless_macro_arg);\
5042      fortrantext[fortranleng] = (yy_hold_char); \
5043      (yy_c_buf_p) = fortrantext + yyless_macro_arg; \
5044      (yy_hold_char) = *(yy_c_buf_p); \
5045      *(yy_c_buf_p) = '\0'; \
5046      fortranleng = yyless_macro_arg; \
5047      } \
5048   while ( 0 )
5049
5050/* Accessor  methods (get/set functions) to struct members. */
5051
5052/** Get the current line number.
5053 *
5054 */
5055int fortranget_lineno  (void)
5056{
5057       
5058    return fortranlineno;
5059}
5060
5061/** Get the input stream.
5062 *
5063 */
5064FILE *fortranget_in  (void)
5065{
5066        return fortranin;
5067}
5068
5069/** Get the output stream.
5070 *
5071 */
5072FILE *fortranget_out  (void)
5073{
5074        return fortranout;
5075}
5076
5077/** Get the length of the current token.
5078 *
5079 */
5080yy_size_t fortranget_leng  (void)
5081{
5082        return fortranleng;
5083}
5084
5085/** Get the current token.
5086 *
5087 */
5088
5089char *fortranget_text  (void)
5090{
5091        return fortrantext;
5092}
5093
5094/** Set the current line number.
5095 * @param line_number
5096 *
5097 */
5098void fortranset_lineno (int  line_number )
5099{
5100   
5101    fortranlineno = line_number;
5102}
5103
5104/** Set the input stream. This does not discard the current
5105 * input buffer.
5106 * @param in_str A readable stream.
5107 *
5108 * @see fortran_switch_to_buffer
5109 */
5110void fortranset_in (FILE *  in_str )
5111{
5112        fortranin = in_str ;
5113}
5114
5115void fortranset_out (FILE *  out_str )
5116{
5117        fortranout = out_str ;
5118}
5119
5120int fortranget_debug  (void)
5121{
5122        return fortran_flex_debug;
5123}
5124
5125void fortranset_debug (int  bdebug )
5126{
5127        fortran_flex_debug = bdebug ;
5128}
5129
5130static int yy_init_globals (void)
5131{
5132        /* Initialization is the same as for the non-reentrant scanner.
5133     * This function is called from fortranlex_destroy(), so don't allocate here.
5134     */
5135
5136    (yy_buffer_stack) = 0;
5137    (yy_buffer_stack_top) = 0;
5138    (yy_buffer_stack_max) = 0;
5139    (yy_c_buf_p) = (char *) 0;
5140    (yy_init) = 0;
5141    (yy_start) = 0;
5142
5143/* Defined in main.c */
5144#ifdef YY_STDINIT
5145    fortranin = stdin;
5146    fortranout = stdout;
5147#else
5148    fortranin = (FILE *) 0;
5149    fortranout = (FILE *) 0;
5150#endif
5151
5152    /* For future reference: Set errno on error, since we are called by
5153     * fortranlex_init()
5154     */
5155    return 0;
5156}
5157
5158/* fortranlex_destroy is for both reentrant and non-reentrant scanners. */
5159int fortranlex_destroy  (void)
5160{
5161   
5162    /* Pop the buffer stack, destroying each element. */
5163   while(YY_CURRENT_BUFFER){
5164      fortran_delete_buffer(YY_CURRENT_BUFFER  );
5165      YY_CURRENT_BUFFER_LVALUE = NULL;
5166      fortranpop_buffer_state();
5167   }
5168
5169   /* Destroy the stack itself. */
5170   fortranfree((yy_buffer_stack) );
5171   (yy_buffer_stack) = NULL;
5172
5173    /* Reset the globals. This is important in a non-reentrant scanner so the next time
5174     * fortranlex() is called, initialization will occur. */
5175    yy_init_globals( );
5176
5177    return 0;
5178}
5179
5180/*
5181 * Internal utility routines.
5182 */
5183
5184#ifndef yytext_ptr
5185static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
5186{
5187   register int i;
5188   for ( i = 0; i < n; ++i )
5189      s1[i] = s2[i];
5190}
5191#endif
5192
5193#ifdef YY_NEED_STRLEN
5194static int yy_flex_strlen (yyconst char * s )
5195{
5196   register int n;
5197   for ( n = 0; s[n]; ++n )
5198      ;
5199
5200   return n;
5201}
5202#endif
5203
5204void *fortranalloc (yy_size_t  size )
5205{
5206   return (void *) malloc( size );
5207}
5208
5209void *fortranrealloc  (void * ptr, yy_size_t  size )
5210{
5211   /* The cast to (char *) in the following accommodates both
5212    * implementations that use char* generic pointers, and those
5213    * that use void* generic pointers.  It works with the latter
5214    * because both ANSI C and C++ allow castless assignment from
5215    * any pointer type to void*, and deal with argument conversions
5216    * as though doing an assignment.
5217    */
5218   return (void *) realloc( (char *) ptr, size );
5219}
5220
5221void fortranfree (void * ptr )
5222{
5223   free( (char *) ptr );   /* see fortranrealloc() for (char *) cast */
5224}
5225
5226#define YYTABLES_NAME "yytables"
5227
5228#line 353 "fortran.lex"
5229
5230
5231
5232fortranerror(char *s)
5233{
5234   if (!strcasecmp(curfile,mainfile))
5235   {
5236      printf("%s line %d, file %s motclef = %s\n",s,line_num_fortran,curfile,fortrantext);
5237   }
5238   else
5239   {
5240      printf("%s line %d, file %s motclef = %s curbuf = %s\n",s,line_num_fortran_common,curfile,fortrantext,curbuf);
5241   }
5242/*   exit(0);*/
5243}
5244
5245int fortranwrap()
5246{
5247}
5248
Note: See TracBrowser for help on using the repository browser.