scanner.cpp
Go to the documentation of this file.
1 #line 2 "/nova/app/home/novasoft/doxygen/doxygen-1.8.11/build/generated_src/scanner.cpp"
2 
3 #line 4 "/nova/app/home/novasoft/doxygen/doxygen-1.8.11/build/generated_src/scanner.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define yy_create_buffer scannerYY_create_buffer
10 #define yy_delete_buffer scannerYY_delete_buffer
11 #define yy_flex_debug scannerYY_flex_debug
12 #define yy_init_buffer scannerYY_init_buffer
13 #define yy_flush_buffer scannerYY_flush_buffer
14 #define yy_load_buffer_state scannerYY_load_buffer_state
15 #define yy_switch_to_buffer scannerYY_switch_to_buffer
16 #define yyin scannerYYin
17 #define yyleng scannerYYleng
18 #define yylex scannerYYlex
19 #define yylineno scannerYYlineno
20 #define yyout scannerYYout
21 #define yyrestart scannerYYrestart
22 #define yytext scannerYYtext
23 #define yywrap scannerYYwrap
24 #define yyalloc scannerYYalloc
25 #define yyrealloc scannerYYrealloc
26 #define yyfree scannerYYfree
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>
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef 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 scannerYYrestart(scannerYYin )
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
173 #endif
174 
175 extern int scannerYYleng;
176 
177 extern FILE *scannerYYin, *scannerYYout;
178 
179 #define EOB_ACT_CONTINUE_SCAN 0
180 #define EOB_ACT_END_OF_FILE 1
181 #define EOB_ACT_LAST_MATCH 2
182 
183  #define YY_LESS_LINENO(n)
184 
185 /* Return all but the first "n" matched characters back to the input stream. */
186 #define yyless(n) \
187  do \
188  { \
189  /* Undo effects of setting up scannerYYtext. */ \
190  int yyless_macro_arg = (n); \
191  YY_LESS_LINENO(yyless_macro_arg);\
192  *yy_cp = (yy_hold_char); \
193  YY_RESTORE_YY_MORE_OFFSET \
194  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195  YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */ \
196  } \
197  while ( 0 )
198 
199 #define unput(c) yyunput( c, (yytext_ptr) )
200 
201 #ifndef YY_TYPEDEF_YY_SIZE_T
202 #define YY_TYPEDEF_YY_SIZE_T
203 typedef size_t yy_size_t;
204 #endif
205 
206 #ifndef YY_STRUCT_YY_BUFFER_STATE
207 #define YY_STRUCT_YY_BUFFER_STATE
208 struct 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  */
219 
220  /* Number of characters read into yy_ch_buf, not including EOB
221  * characters.
222  */
223  int 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 scannerYYrestart()), so that the user can continue scanning by
264  * just pointing scannerYYin 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. */
272 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
273 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
274 static 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 scannerYYtext is formed. */
292 static char yy_hold_char;
293 static int yy_n_chars; /* number of characters read into yy_ch_buf */
295 
296 /* Points to current character in buffer. */
297 static char *yy_c_buf_p = (char *) 0;
298 static int yy_init = 0; /* whether we need to initialize */
299 static int yy_start = 0; /* start state number */
300 
301 /* Flag which is used to allow scannerYYwrap()'s to do buffer switches
302  * instead of setting up a fresh scannerYYin. A bit of a hack ...
303  */
305 
306 void scannerYYrestart (FILE *input_file );
307 void scannerYY_switch_to_buffer (YY_BUFFER_STATE new_buffer );
308 YY_BUFFER_STATE scannerYY_create_buffer (FILE *file,int size );
309 void scannerYY_delete_buffer (YY_BUFFER_STATE b );
310 void scannerYY_flush_buffer (YY_BUFFER_STATE b );
311 void scannerYYpush_buffer_state (YY_BUFFER_STATE new_buffer );
312 void scannerYYpop_buffer_state (void );
313 
314 static void scannerYYensure_buffer_stack (void );
315 static void scannerYY_load_buffer_state (void );
316 static void scannerYY_init_buffer (YY_BUFFER_STATE b,FILE *file );
317 
318 #define YY_FLUSH_BUFFER scannerYY_flush_buffer(YY_CURRENT_BUFFER )
319 
320 YY_BUFFER_STATE scannerYY_scan_buffer (char *base,yy_size_t size );
321 YY_BUFFER_STATE scannerYY_scan_string (yyconst char *yy_str );
322 YY_BUFFER_STATE scannerYY_scan_bytes (yyconst char *bytes,int len );
323 
324 void *scannerYYalloc (yy_size_t );
325 void *scannerYYrealloc (void *,yy_size_t );
326 void scannerYYfree (void * );
327 
328 #define yy_new_buffer scannerYY_create_buffer
329 
330 #define yy_set_interactive(is_interactive) \
331  { \
332  if ( ! YY_CURRENT_BUFFER ){ \
333  scannerYYensure_buffer_stack (); \
334  YY_CURRENT_BUFFER_LVALUE = \
335  scannerYY_create_buffer(scannerYYin,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  scannerYYensure_buffer_stack (); \
344  YY_CURRENT_BUFFER_LVALUE = \
345  scannerYY_create_buffer(scannerYYin,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 
354 #define scannerYYwrap(n) 1
355 #define YY_SKIP_YYWRAP
356 
357 typedef unsigned char YY_CHAR;
358 
359 FILE *scannerYYin = (FILE *) 0, *scannerYYout = (FILE *) 0;
360 
361 typedef int yy_state_type;
362 
363 extern int scannerYYlineno;
364 
365 int scannerYYlineno = 1;
366 
367 extern char *scannerYYtext;
368 #define yytext_ptr scannerYYtext
369 
370 static yy_state_type yy_get_previous_state (void );
371 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
372 static int yy_get_next_buffer (void );
373 static void yy_fatal_error (yyconst char msg[] );
374 
375 /* Done after the current pattern has been matched and before the
376  * corresponding action - sets up scannerYYtext.
377  */
378 #define YY_DO_BEFORE_ACTION \
379  (yytext_ptr) = yy_bp; \
380  scannerYYleng = (size_t) (yy_cp - yy_bp); \
381  (yy_hold_char) = *yy_cp; \
382  *yy_cp = '\0'; \
383  (yy_c_buf_p) = yy_cp;
384 
385 #define YY_NUM_RULES 731
386 #define YY_END_OF_BUFFER 732
387 /* This struct is not used in this scanner,
388  but its presence is necessary. */
389 struct yy_trans_info
390  {
391  flex_int32_t yy_verify;
393  };
395  { 0,
396  40, 40, 376, 376, 376, 376, 376, 376, 373, 373,
397  51, 51, 59, 59, 433, 433, 433, 433, 732, 726,
398  731, 721, 731, 722, 725, 726, 731, 723, 726, 731,
399  724, 726, 731, 726, 731, 726, 731, 571, 726, 731,
400  570, 721, 731, 571, 722, 725, 726, 731, 571, 723,
401  726, 731, 571, 724, 726, 731, 569, 571, 726, 731,
402  571, 726, 731, 575, 726, 731, 574, 721, 731, 575,
403  722, 725, 726, 731, 575, 723, 726, 731, 575, 724,
404  726, 731, 572, 575, 726, 731, 573, 575, 726, 731,
405  575, 726, 731, 726, 731, 228, 726, 731, 234, 726,
406 
407  731, 234, 726, 731, 229, 721, 731, 233, 234, 722,
408  725, 726, 731, 234, 723, 726, 731, 234, 724, 726,
409  731, 234, 726, 731, 234, 726, 731, 726, 731, 721,
410  731, 726, 731, 726, 731, 726, 731, 726, 731, 558,
411  726, 731, 559, 726, 731, 577, 578, 726, 731,16952,
412  16960, 606, 726, 731, 726, 731, 726, 731, 721, 731,
413  726, 731, 726, 731, 726, 731, 600, 726, 731, 583,
414  726, 731, 605, 726, 731, 580, 726, 731, 726, 731,
415  599, 726, 731, 619, 726, 731, 726, 731, 582, 726,
416  731, 582, 726, 731, 582, 726, 731, 594, 726, 731,
417 
418  593, 721, 731, 594, 722, 725, 726, 731, 586, 594,
419  723, 726, 731, 594, 726, 731, 594, 724, 726, 731,
420  594, 726, 731, 589, 594, 726, 731, 588, 594, 726,
421  731, 590, 594, 726, 731, 594, 726, 731, 592, 594,
422  726, 731, 592, 594, 726, 731, 587, 594, 726, 731,
423  726, 731, 726, 731, 598, 726, 731, 595, 726, 731,
424  566, 726, 731, 566, 722, 725, 726, 731, 566, 723,
425  726, 731, 566, 724, 726, 731, 166, 566, 726, 731,
426  167, 566, 726, 731, 566, 726, 731, 565, 566, 726,
427  731, 564, 566, 726, 731, 41, 726, 731, 40, 41,
428 
429  726, 731, 39, 721, 731, 41, 722, 725, 726, 731,
430  41, 723, 726, 731, 41, 726, 731, 41, 724, 726,
431  731, 41, 726, 731, 38, 41, 726, 731, 35, 41,
432  726, 731, 36, 41, 726, 731, 37, 41, 726, 731,
433  43, 726, 731, 43, 722, 725, 726, 731, 43, 723,
434  726, 731, 43, 724, 726, 731, 43, 726, 731, 42,
435  43, 726, 731, 495, 726, 731, 494, 721, 731, 495,
436  722, 725, 726, 731, 495, 723, 726, 731, 495, 726,
437  731, 495, 724, 726, 731, 495, 726, 731, 492, 495,
438  726, 731, 493, 495, 726, 731, 726, 731, 721, 731,
439 
440  726, 731, 726, 731, 634, 726, 731, 726, 731, 560,
441  726, 731, 620, 726, 731, 634, 726, 731, 614, 615,
442  616, 726, 731, 726, 731, 635, 726, 731, 613, 726,
443  731, 612, 613, 726, 731, 612, 721, 731, 613, 722,
444  725, 726, 731, 613, 723, 726, 731, 613, 724, 726,
445  731, 613, 726, 731, 613, 726, 731, 613, 726, 731,
446  613, 726, 731, 9, 722, 725, 726, 731, 7, 724,
447  726, 731, 2, 726, 731, 10, 726, 731, 10, 726,
448  731, 1, 726, 731, 325, 726, 731, 325, 722, 725,
449  726, 731, 325, 723, 726, 731, 325, 724, 726, 731,
450 
451  11, 325, 726, 731, 325, 726, 731, 11, 325, 726,
452  731, 326, 726, 731, 327, 721, 731, 326, 722, 725,
453  726, 731, 326, 723, 726, 731, 326, 724, 726, 731,
454  12, 326, 726, 731, 326, 726, 731, 12, 326, 726,
455  731, 12, 326, 726, 731, 62, 726, 731, 62, 721,
456  731, 62, 726, 731, 726, 731, 218, 723, 726, 731,
457  726, 731, 236, 726, 731, 237, 726, 731, 429, 726,
458  731, 47, 726, 731, 328, 726, 731, 204, 726, 731,
459  726, 731, 726, 731, 324, 726, 731, 328, 726, 731,
460  363, 726, 731, 243, 726, 731, 726, 731, 726, 731,
461 
462  195, 726, 731, 195, 726, 731, 329, 726, 731, 236,
463  726, 731, 195, 726, 731, 195, 726, 731, 195, 726,
464  731, 195, 726, 731, 195, 726, 731, 195, 726, 731,
465  195, 726, 731, 195, 726, 731, 195, 726, 731, 195,
466  726, 731, 195, 726, 731, 195, 726, 731, 195, 726,
467  731, 195, 726, 731, 195, 726, 731, 195, 726, 731,
468  195, 726, 731, 195, 726, 731, 653, 726, 731, 16,
469  18, 726, 731, 17, 721, 731, 16, 18, 722, 725,
470  726, 731, 16, 18, 723, 726, 731, 16, 18, 724,
471  726, 731, 16, 18, 726, 731, 18, 726, 731, 726,
472 
473  731, 721, 731, 726, 731, 726, 731, 726, 731, 195,
474  726, 731, 726, 731, 721, 731, 726, 731, 218, 723,
475  726, 731, 726, 731, 369, 726, 731, 374, 726, 731,
476  726, 731, 371, 726, 731, 370, 726, 731, 368, 726,
477  731, 375, 726, 731, 726, 731, 490, 723, 726, 731,
478  521, 726, 731, 523, 726, 731, 522, 726, 731, 523,
479  726, 731, 508, 726, 731, 489, 508, 726, 731, 489,
480  721, 731, 508, 722, 725, 726, 731, 490, 508, 723,
481  726, 731, 508, 724, 726, 731, 469, 508, 726, 731,
482  470, 508, 726, 731, 488, 508, 726, 731, 508, 726,
483 
484  731, 516, 726, 731, 516, 722, 725, 726, 731, 516,
485  723, 726, 731, 516, 724, 726, 731, 514, 516, 726,
486  731, 515, 516, 726, 731, 516, 726, 731, 520, 726,
487  731, 519, 721, 731, 520, 722, 725, 726, 731, 520,
488  723, 726, 731, 520, 724, 726, 731, 520, 726, 731,
489  518, 520, 726, 731, 517, 520, 726, 731, 489, 508,
490  726, 731, 489, 721, 731, 508, 726, 731, 471, 508,
491  726, 731, 508, 726, 731, 508, 726, 731, 491, 508,
492  726, 731, 503, 508, 726, 731, 503, 508, 726, 731,
493  503, 508, 726, 731, 503, 508, 726, 731, 503, 508,
494 
495  726, 731, 503, 508, 726, 731, 503, 508, 726, 731,
496  503, 508, 726, 731, 503, 508, 726, 731, 503, 508,
497  726, 731, 486, 726, 731, 486, 726, 731, 487, 721,
498  731, 486, 722, 725, 726, 731, 486, 723, 726, 731,
499  486, 724, 726, 731, 486, 726, 731, 485, 486, 726,
500  731, 486, 726, 731, 486, 726, 731, 486, 726, 731,
501  129, 726, 731, 129, 721, 731, 129, 722, 725, 726,
502  731, 129, 723, 726, 731, 129, 724, 726, 731, 131,
503  726, 731, 129, 726, 731, 128, 129, 726, 731, 129,
504  726, 731, 358, 726, 731, 358, 722, 725, 726, 731,
505 
506  358, 723, 726, 731, 358, 724, 726, 731, 358, 726,
507  731, 357, 358, 726, 731, 355, 358, 726, 731, 376,
508  401, 726, 731, 376, 399, 401, 726, 731, 399, 721,
509  731, 399, 401, 726, 731, 381, 401, 722, 725, 726,
510  731, 378, 401, 723, 726, 731, 384, 401, 724, 726,
511  731, 401, 726, 731, 401, 726, 731, 401, 726, 731,
512  386, 401, 726, 731, 388, 401, 726, 731, 388, 401,
513  726, 731, 401, 726, 731, 387, 401, 726, 731, 726,
514  731, 154, 726, 731, 147, 726, 731, 146, 726, 731,
515  146, 726, 731, 146, 726, 731, 150, 726, 731, 151,
516 
517  721, 731, 150, 722, 725, 726, 731, 150, 723, 726,
518  731, 150, 724, 726, 731, 150, 726, 731, 148, 150,
519  726, 731, 152, 726, 731, 726, 731, 721, 731, 726,
520  731, 726, 731, 726, 731, 153, 726, 731, 539, 551,
521  726, 731, 539, 551, 726, 731, 537, 721, 731, 535,
522  551, 722, 725, 726, 731, 547, 551, 723, 726, 731,
523  550, 551, 724, 726, 731, 551, 726, 731, 551, 726,
524  731, 551, 726, 731, 551, 726, 731, 529, 551, 726,
525  731, 531, 551, 726, 731, 539, 551, 726, 731, 536,
526  547, 551, 723, 726, 731, 540, 721, 731, 551, 722,
527 
528  725, 726, 731, 551, 726, 731, 551, 726, 731, 534,
529  726, 731, 557, 726, 731, 556, 721, 731, 553, 557,
530  722, 725, 726, 731, 557, 723, 726, 731, 557, 724,
531  726, 731, 557, 726, 731, 557, 726, 731, 557, 726,
532  731, 557, 722, 725, 726, 731, 554, 557, 724, 726,
533  731, 545, 551, 722, 725, 726, 731, 547, 551, 723,
534  726, 731, 551, 726, 731, 544, 551, 726, 731, 551,
535  726, 731, 546, 551, 726, 731, 551, 726, 731, 528,
536  551, 726, 731, 551, 723, 726, 731, 551, 724, 726,
537  731, 551, 726, 731, 525, 551, 726, 731, 526, 551,
538 
539  726, 731, 551, 726, 731, 224, 726, 731, 226, 721,
540  731, 224, 726, 731, 224, 722, 725, 726, 731, 224,
541  723, 726, 731, 224, 724, 726, 731, 224, 726, 731,
542  224, 726, 731, 719, 726, 731, 719, 726, 731, 719,
543  722, 725, 726, 731, 719, 723, 726, 731, 719, 724,
544  726, 731, 726, 731, 719, 726, 731, 726, 731, 718,
545  721, 731, 722, 725, 726, 731, 723, 726, 731, 724,
546  726, 731, 726, 731, 726, 731, 5, 726, 731, 6,
547  726, 731, 3, 726, 731, 4, 726, 731, 367, 726,
548  731, 366, 367, 726, 731, 366, 721, 731, 367, 722,
549 
550  725, 726, 731, 367, 723, 726, 731, 367, 724, 726,
551  731, 367, 726, 731, 365, 367, 726, 731, 364, 367,
552  726, 731, 633, 722, 725, 726, 731, 631, 726, 731,
553  632, 726, 731, 362, 726, 731, 361, 722, 725, 726,
554  731, 362, 723, 726, 731, 362, 724, 726, 731, 362,
555  726, 731, 359, 726, 731, 360, 726, 731, 373, 726,
556  731, 372, 721, 731, 373, 722, 725, 726, 731, 373,
557  723, 726, 731, 373, 724, 726, 731, 373, 726, 731,
558  198, 726, 731, 197, 198, 726, 731, 197, 721, 731,
559  198, 722, 725, 726, 731, 198, 723, 726, 731, 198,
560 
561  724, 726, 731, 196, 198, 726, 731, 198, 726, 731,
562  201, 726, 731, 200, 201, 726, 731, 200, 721, 731,
563  201, 722, 725, 726, 731, 201, 723, 726, 731, 201,
564  724, 726, 731, 199, 201, 726, 731, 201, 726, 731,
565  726, 731, 392, 726, 731, 391, 726, 731, 391, 726,
566  731, 391, 726, 731, 213, 726, 731, 211, 721, 731,
567  213, 722, 725, 726, 731, 213, 723, 726, 731, 213,
568  724, 726, 731, 213, 726, 731, 212, 213, 726, 731,
569  216, 726, 731, 216, 726, 731, 215, 721, 731, 216,
570  722, 725, 726, 731, 216, 723, 726, 731, 216, 724,
571 
572  726, 731, 216, 726, 731, 216, 726, 731, 645, 647,
573  726, 731, 640, 647, 726, 731, 640, 721, 731, 645,
574  647, 722, 725, 726, 731, 645, 647, 723, 726, 731,
575  645, 647, 724, 726, 731, 647, 726, 731, 647, 726,
576  731, 647, 726, 731, 645, 647, 726, 731, 726, 731,
577  79, 726, 731, 78, 726, 731, 80, 726, 731, 726,
578  731, 726, 731, 726, 731, 141, 726, 731, 138, 726,
579  731,16521, 726, 731, 721, 731, 726, 731, 140, 726,
580  731, 665, 726, 731, 666, 721, 731, 665, 722, 725,
581  726, 731, 665, 723, 726, 731, 665, 724, 726, 731,
582 
583  665, 726, 731, 665, 726, 731, 665, 726, 731, 665,
584  726, 731, 665, 726, 731, 665, 726, 731, 654, 665,
585  726, 731, 655, 665, 726, 731, 562, 726, 731, 222,
586  726, 731, 223, 721, 731, 222, 722, 725, 726, 731,
587  222, 723, 726, 731, 222, 724, 726, 731, 222, 726,
588  731, 726, 731, 726, 731, 231, 726, 731, 231, 722,
589  725, 726, 731, 231, 723, 726, 731, 231, 724, 726,
590  731, 231, 726, 731, 230, 231, 726, 731, 507, 726,
591  731, 507, 726, 731, 507, 722, 725, 726, 731, 507,
592  723, 726, 731, 507, 726, 731, 507, 724, 726, 731,
593 
594  504, 507, 726, 731, 507, 726, 731, 504, 507, 726,
595  731, 505, 507, 726, 731, 506, 507, 726, 731, 268,
596  272, 726, 731, 271, 721, 731, 270, 272, 722, 725,
597  726, 731, 268, 272, 723, 726, 731, 268, 272, 724,
598  726, 731, 268, 272, 726, 731, 726, 731, 48, 726,
599  731, 50, 726, 731, 60, 726, 731, 49, 726, 731,
600  61, 726, 731, 51, 726, 731, 51, 721, 731, 51,
601  722, 725, 726, 731, 51, 723, 726, 731, 51, 724,
602  726, 731, 52, 726, 731, 51, 726, 731, 726, 731,
603  56, 726, 731, 726, 731, 53, 726, 731, 54, 726,
604 
605  731, 59, 726, 731, 59, 721, 731, 59, 722, 725,
606  726, 731, 59, 723, 726, 731, 59, 724, 726, 731,
607  57, 726, 731, 58, 726, 731, 59, 726, 731, 563,
608  726, 731, 75, 726, 731, 726, 731, 726, 731, 726,
609  731, 726, 731, 726, 731, 726, 731, 726, 731, 726,
610  731, 77, 726, 731, 184, 726, 731, 726, 731, 181,
611  726, 731, 185, 726, 731, 185, 726, 731, 185, 726,
612  731, 185, 726, 731, 185, 726, 731, 185, 726, 731,
613  726, 731, 186, 726, 731, 182, 726, 731, 726, 731,
614  726, 731, 726, 731, 726, 731, 726, 731, 192, 726,
615 
616  731, 726, 731, 193, 726, 731, 274, 726, 731, 274,
617  726, 731, 266, 721, 731, 258, 274, 722, 725, 726,
618  731, 274, 723, 726, 731, 264, 274, 724, 726, 731,
619  246, 262, 274, 726, 731, 263, 274, 726, 731, 248,
620  274, 726, 731, 274, 726, 731, 274, 726, 731, 248,
621  274, 726, 731, 262, 274, 726, 731, 263, 274, 726,
622  731, 274, 726, 731, 274, 726, 731, 274, 726, 731,
623  274, 726, 731, 262, 274, 726, 731, 274, 726, 731,
624  247, 262, 274, 726, 731, 726, 731, 721, 731, 726,
625  731, 245, 726, 731, 726, 731, 721, 731, 726, 731,
626 
627  726, 731, 726, 731, 217, 726, 731, 726, 731, 721,
628  731, 726, 731, 726, 731, 394, 726, 731, 395, 726,
629  731, 726, 731, 395, 726, 731, 396, 726, 731, 393,
630  726, 731, 397, 726, 731, 398, 726, 731, 168, 726,
631  731, 168, 722, 725, 726, 731, 168, 723, 726, 731,
632  168, 724, 726, 731, 166, 168, 726, 731, 167, 168,
633  726, 731, 168, 726, 731, 160, 168, 726, 731, 162,
634  168, 726, 731,16548, 405, 726, 731, 405, 726, 731,
635  721, 731, 405, 726, 731, 405, 722, 725, 726, 731,
636  405, 723, 726, 731, 405, 726, 731, 405, 724, 726,
637 
638  731, 405, 726, 731, 405, 726, 731, 404, 405, 726,
639  731, 409, 726, 731, 407, 721, 731, 409, 722, 725,
640  726, 731, 409, 723, 726, 731, 409, 724, 726, 731,
641  408, 409, 726, 731, 409, 726, 731, 413, 726, 731,
642  415, 726, 731, 726, 731, 430, 468, 726, 731, 433,
643  468, 726, 731, 433, 467, 721, 731, 435, 468, 722,
644  725, 726, 731, 468, 723, 726, 731, 466, 468, 724,
645  726, 731, 436, 468, 726, 731, 437, 468, 726, 731,
646  468, 726, 731, 430, 468, 726, 731, 430, 468, 726,
647  731, 430, 468, 726, 731, 468, 726, 731, 455, 468,
648 
649  726, 731, 456, 468, 726, 731, 468, 726, 731, 468,
650  726, 731, 468, 726, 731, 210, 726, 731, 209, 721,
651  731, 210, 722, 725, 726, 731, 210, 723, 726, 731,
652  210, 724, 726, 731, 210, 726, 731, 208, 210, 726,
653  731, 726, 731, 134, 726, 731, 726, 731, 136, 726,
654  731, 135, 726, 731, 280, 726, 731, 279, 721, 731,
655  276, 280, 722, 725, 726, 731, 280, 723, 726, 731,
656  280, 724, 726, 731, 280, 726, 731, 280, 726, 731,
657  280, 726, 731, 280, 722, 725, 726, 731, 277, 280,
658  724, 726, 731, 286, 726, 731, 285, 721, 731, 282,
659 
660  286, 722, 725, 726, 731, 286, 723, 726, 731, 286,
661  724, 726, 731, 286, 726, 731, 286, 726, 731, 286,
662  726, 731, 286, 722, 725, 726, 731, 283, 286, 724,
663  726, 731, 293, 294, 726, 731, 290, 721, 731, 287,
664  294, 722, 725, 726, 731, 293, 294, 723, 726, 731,
665  291, 294, 724, 726, 731, 288, 294, 726, 731, 289,
666  294, 726, 731, 293, 294, 726, 731, 308, 311, 726,
667  731, 310, 721, 731, 303, 311, 722, 725, 726, 731,
668  308, 311, 723, 726, 731, 304, 311, 724, 726, 731,
669  309, 311, 726, 731, 305, 311, 726, 731, 306, 311,
670 
671  726, 731, 301, 302, 726, 731, 298, 721, 731, 295,
672  302, 722, 725, 726, 731, 301, 302, 723, 726, 731,
673  299, 302, 724, 726, 731, 296, 302, 726, 731, 297,
674  302, 726, 731, 302, 726, 731, 319, 323, 726, 731,
675  322, 721, 731, 314, 323, 722, 725, 726, 731, 319,
676  323, 723, 726, 731, 315, 323, 724, 726, 731, 320,
677  323, 726, 731, 321, 323, 726, 731, 316, 323, 726,
678  731, 317, 323, 726, 731, 319, 323, 723, 726, 731,
679  639, 726, 731, 639, 726, 731, 638, 721, 731, 639,
680  722, 725, 726, 731, 639, 723, 726, 731, 639, 724,
681 
682  726, 731, 636, 639, 726, 731, 637, 639, 726, 731,
683  639, 726, 731, 630, 726, 731, 623, 630, 726, 731,
684  623, 721, 731, 630, 722, 725, 726, 731, 630, 723,
685  726, 731, 630, 724, 726, 731, 628, 630, 726, 731,
686  629, 630, 726, 731, 630, 726, 731, 621, 630, 726,
687  731, 622, 630, 726, 731, 630, 726, 731, 501, 726,
688  731, 502, 721, 731, 497, 501, 722, 725, 726, 731,
689  501, 723, 726, 731, 501, 726, 731, 498, 501, 724,
690  726, 731, 501, 726, 731, 496, 501, 726, 731, 500,
691  501, 726, 731, 416, 508, 726, 731, 417, 508, 726,
692 
693  731, 421, 726, 731, 421, 722, 725, 726, 731, 421,
694  723, 726, 731, 421, 724, 726, 731, 421, 726, 731,
695  421, 726, 731, 426, 726, 731, 425, 426, 726, 731,
696  425, 721, 731, 426, 722, 725, 726, 731, 426, 723,
697  726, 731, 426, 724, 726, 731, 422, 426, 726, 731,
698  423, 426, 726, 731, 424, 426, 726, 731, 426, 726,
699  731, 356, 358, 726, 731, 431, 468, 726, 731, 467,
700  721, 731, 463, 468, 722, 725, 726, 731, 431, 468,
701  723, 726, 731, 468, 724, 726, 731, 431, 468, 726,
702  731, 468, 726, 731, 468, 722, 725, 726, 731, 464,
703 
704  468, 724, 726, 731, 432, 468, 726, 731, 432, 468,
705  723, 726, 731, 457, 468, 726, 731, 458, 468, 726,
706  731, 468, 726, 731, 432, 468, 726, 731, 432, 468,
707  726, 731, 432, 468, 726, 731, 459, 468, 726, 731,
708  460, 468, 726, 731, 461, 468, 726, 731, 444, 453,
709  726, 731, 452, 721, 731, 444, 453, 722, 725, 726,
710  731, 444, 453, 723, 726, 731, 444, 453, 724, 726,
711  731, 453, 726, 731, 444, 453, 726, 731, 453, 726,
712  731, 444, 453, 726, 731, 453, 726, 731,16827, 450,
713  451, 726, 731, 446, 721, 731, 450, 451, 722, 725,
714 
715  726, 731, 450, 451, 723, 726, 731, 450, 451, 724,
716  726, 731, 450, 451, 726, 731, 451, 726, 731, 453,
717  726, 731, 453, 722, 725, 726, 731, 453, 723, 726,
718  731, 453, 724, 726, 731, 453, 726, 731, 453, 726,
719  731, 726, 731, 724, 726, 731, 172, 726, 731, 175,
720  726, 731, 175, 722, 725, 726, 731, 175, 723, 726,
721  731, 175, 724, 726, 731, 175, 726, 731, 175, 726,
722  731, 174, 175, 726, 731, 726, 731, 724, 726, 731,
723  170, 726, 731, 178, 726, 731, 177, 721, 731, 178,
724  722, 725, 726, 731, 178, 723, 726, 731, 178, 724,
725 
726  726, 731, 178, 726, 731, 178, 726, 731, 176, 178,
727  726, 731, 255, 256, 726, 731, 255, 257, 721, 731,
728  255, 256, 722, 725, 726, 731, 255, 256, 723, 726,
729  731, 255, 256, 724, 726, 731, 256, 726, 731, 255,
730  256, 726, 731, 251, 252, 726, 731, 253, 721, 731,
731  251, 252, 722, 725, 726, 731, 251, 252, 723, 726,
732  731, 251, 252, 724, 726, 731, 252, 726, 731, 251,
733  252, 726, 731, 344, 726, 731, 344, 722, 725, 726,
734  731, 344, 723, 726, 731, 344, 724, 726, 731, 344,
735  726, 731, 330, 344, 726, 731, 344, 726, 731, 344,
736 
737  726, 731, 344, 726, 731, 344, 726, 731, 344, 726,
738  731, 344, 726, 731, 344, 726, 731, 344, 726, 731,
739  354, 726, 731, 354, 726, 731, 721, 731, 354, 722,
740  725, 726, 731, 354, 723, 726, 731, 354, 726, 731,
741  354, 724, 726, 731, 354, 726, 731, 353, 354, 726,
742  731, 350, 354, 726, 731, 354, 726, 731, 726, 731,
743  721, 731, 726, 731, 726, 731, 345, 726, 731, 715,
744  726, 731, 715, 722, 725, 726, 731, 715, 723, 726,
745  731, 715, 724, 726, 731, 701, 715, 726, 731, 715,
746  726, 731, 715, 726, 731, 706, 726, 731, 706, 726,
747 
748  731, 721, 731, 706, 726, 731, 706, 722, 725, 726,
749  731, 706, 723, 726, 731, 706, 726, 731, 706, 724,
750  726, 731, 704, 706, 726, 731, 705, 706, 726, 731,
751  706, 726, 731, 706, 726, 731, 703, 706, 726, 731,
752  714, 726, 731, 714, 726, 731, 714, 722, 725, 726,
753  731, 714, 723, 726, 731, 714, 724, 726, 731, 714,
754  726, 731, 714, 726, 731, 714, 726, 731, 714, 726,
755  731, 714, 726, 731, 707, 714, 726, 731, 713, 726,
756  731, 713, 722, 725, 726, 731, 713, 723, 726, 731,
757  713, 724, 726, 731, 712, 713, 726, 731, 713, 726,
758 
759  731, 716, 726, 731, 716, 722, 725, 726, 731, 716,
760  723, 726, 731, 716, 724, 726, 731, 716, 726, 731,
761  726, 731, 726, 731, 669, 721, 731, 722, 725, 726,
762  731, 723, 726, 731, 724, 726, 731, 726, 731, 683,
763  685, 726, 731, 683, 685, 726, 731, 684, 721, 731,
764  683, 685, 722, 725, 726, 731, 683, 685, 723, 726,
765  731, 683, 685, 724, 726, 731, 685, 726, 731, 685,
766  726, 731, 683, 685, 726, 731, 685, 726, 731, 685,
767  726, 731, 685, 726, 731, 683, 685, 726, 731, 685,
768  726, 731, 685, 726, 731, 683, 685, 726, 731, 685,
769 
770  726, 731, 696, 699, 726, 731, 698, 721, 731, 696,
771  699, 722, 725, 726, 731, 696, 699, 723, 726, 731,
772  699, 726, 731, 696, 699, 724, 726, 731, 699, 726,
773  731, 699, 726, 731, 699, 726, 731, 699, 726, 731,
774  696, 699, 726, 731, 8885, 699, 726, 731,17074,17075,
775  17076,17077, 696, 699, 726, 731, 699, 726, 731, 728,
776  730, 720, 228, 227, 228, 728, 730, 232, 606, 577,
777  16952,16960, 577, 578,16952,16960, 578, 8760, 8768, 577,
778  578,16952,16960, 567, 561, 606, 577, 578,16952,16960,
779  617, 617, 617, 582, 605, 728, 730, 579, 582, 582,
780 
781  582, 590, 728, 730, 590, 592, 592, 592, 202, 595,
782  597, 596, 595, 159, 161, 40, 35, 35, 492, 492,
783  620, 615, 616, 615, 616, 635, 617, 617, 617, 620,
784  615, 616, 617, 615, 616, 617, 614, 615, 616, 634,
785  614, 615, 616, 614, 635, 62, 62, 218, 195, 195,
786  21, 22, 237, 403, 47, 728, 730, 203, 205, 19,
787  76, 76, 76, 76, 76, 76, 195, 156, 195, 195,
788  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
789  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
790  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
791 
792  195, 16, 16, 728, 16, 730, 14, 195, 195, 195,
793  157, 218, 368, 728, 730, 368, 489, 488, 488, 489,
794  503, 484, 728, 730, 481, 503, 503, 503, 503, 503,
795  503, 503, 503, 503, 503, 503, 503, 130, 376, 376,
796  399, 399, 378, 378, 382, 728, 377, 730, 379, 146,
797  146, 146, 146, 153, 153, 153, 539, 539, 542, 728,
798  543, 730, 548, 539, 536, 542, 728, 543, 730, 541,
799  555, 555, 728, 555, 730, 552, 543, 730, 524, 542,
800  728, 543, 730, 527, 226, 226, 225, 719, 719, 729,
801  727, 728, 719, 727, 730, 718, 728, 730, 717, 718,
802 
803  366, 362, 362, 728, 362, 730, 373, 373, 728, 373,
804  730, 197, 200, 391, 391, 391, 391, 645, 640, 646,
805  641, 728, 642, 730, 645, 645, 645, 78, 78, 138,
806  16521, 138,16521, 140, 140, 221, 505, 728, 730, 505,
807  268, 269, 268, 728, 268, 730, 49, 50, 49, 51,
808  51, 728, 51, 730, 54, 54, 54, 53, 59, 58,
809  59, 728, 59, 730, 184, 185, 185, 185, 185, 185,
810  185, 185, 185, 186, 186, 192, 192, 193, 193, 259,
811  728, 730, 260, 261, 273, 267, 428, 206, 393, 393,
812  393, 159,16548, 163, 404, 404, 404, 411, 410, 412,
813 
814  414, 430, 433, 440, 728, 441, 730, 430, 430, 207,
815  134, 134, 135, 135, 278, 278, 728, 278, 730, 275,
816  284, 284, 728, 284, 730, 281, 293, 293, 728, 293,
817  730, 308, 301, 319, 320, 319, 636, 623, 624, 626,
818  500, 500, 418, 419, 420, 425, 424, 424, 431, 431,
819  728, 431, 730, 462, 432, 432, 432, 444, 445, 444,
820  730, 444,16827, 8635, 450, 450, 728, 450, 730, 172,
821  172, 174, 174, 170, 170, 176, 176, 255, 254, 255,
822  728, 255, 730, 251, 250, 251, 728, 251, 730, 350,
823  352, 351, 350, 349, 345, 345, 345, 346, 345, 348,
824 
825  702, 703, 703, 703, 710, 669, 728, 730, 683, 683,
826  683, 670, 675, 728, 674, 730, 683, 683, 683, 683,
827  671, 672, 671, 672, 671, 671, 671, 672, 671, 672,
828  673, 674, 730, 683, 696, 697, 697, 728, 697, 730,
829  696, 8885,17074,17075,17076,17077, 696, 8882, 8885, 8882,
830  8885, 8884, 8884, 696, 577,16952,16960, 577,16952,16960,
831  578, 578, 577, 578,16952,16960, 603, 648, 604, 650,
832  582, 582, 585, 585, 592, 592, 615, 616, 615, 616,
833  615, 616, 614, 8, 62, 62, 195, 21, 403, 648,
834  650, 203, 63, 76, 76, 76, 76, 76, 76, 76,
835 
836  76, 155, 195, 195, 195, 195, 195, 195, 195, 195,
837  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
838  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
839  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
840  195, 195, 195, 195, 195, 195, 195, 195, 648, 650,
841  484, 648, 650, 481, 503, 503, 503, 476, 503, 503,
842  503, 503, 503, 503, 503, 503, 127, 376, 399, 399,
843  378, 385, 382, 383, 377, 380, 146, 146, 146, 153,
844  549, 538, 541, 225, 391, 391, 645, 645, 645, 78,
845  142, 143, 662, 661, 660, 235, 648, 650, 61, 185,
846 
847  185, 185, 185, 185, 185, 185, 265, 249, 393, 158,
848  8356, 165, 404, 406, 465, 438, 438, 434, 292, 307,
849  300, 318, 319, 499, 448, 173, 171, 254, 250, 352,
850  349, 345, 345, 347, 703, 710, 683, 683, 677, 683,
851  671, 673, 673, 681, 683, 680, 688, 696, 8882, 8885,
852  8883, 8884, 695, 696, 694, 240, 577,16952,16960, 578,
853  602, 649, 601, 651, 601, 651, 618, 582, 582, 585,
854  584, 592, 592, 564, 615, 616, 615, 616, 8, 62,
855  62, 402, 649, 649, 649, 241, 651, 651, 651, 651,
856  242, 76, 76, 76, 76, 76, 76, 76, 76, 195,
857 
858  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
859  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
860  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
861  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
862  195, 195, 195, 195, 240, 649, 240, 651, 476, 503,
863  503, 503, 476, 503, 503, 503, 503, 503, 510, 509,
864  503, 376, 399, 399, 378, 385, 146, 146, 549, 391,
865  391, 645, 645, 645, 78, 143, 8329, 139, 235, 55,
866  71, 72, 185, 183, 185, 185, 185, 185, 185, 187,
867  265, 8356, 465, 438, 439, 292, 307, 300, 318, 319,
868 
869  625, 499, 449, 254, 250, 347, 667, 683, 683, 676,
870  676, 683, 681, 672, 681, 683, 680, 696, 8882, 8885,
871  8883, 695, 695, 696, 694, 582, 582, 591, 592, 564,
872  564, 615, 616, 239, 238, 62, 62, 220, 427, 242,
873  13, 76, 76, 76, 76, 76, 76, 76, 76, 195,
874  195, 195, 195, 195, 195, 195, 195, 195, 195, 20,
875  20, 20, 20, 156, 20, 195, 125, 124, 195, 195,
876  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
877  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
878  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
879 
880  195, 195, 14, 503, 477, 503, 474, 503, 503, 503,
881  503, 503, 503, 503, 474, 126, 376, 399, 399, 220,
882  378, 400, 146, 146, 149, 532, 533, 391, 391, 214,
883  643, 645, 645, 645, 645, 664, 185, 185, 185, 188,
884  442, 447, 254, 250, 337, 708, 668, 669, 678, 683,
885  683, 679, 681, 695, 582, 582,16965, 564, 615, 616,
886  62, 62, 125, 242, 76, 104, 76, 76, 76, 76,
887  76, 76, 76, 76, 195, 195, 195, 195, 195, 106,
888  105, 195, 195, 195, 195, 33, 195, 195, 195, 195,
889  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
890 
891  195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
892  195, 195, 195,16499, 195, 195, 195, 123, 122, 144,
893  195, 195, 195, 477, 503, 477, 474, 503, 503, 503,
894  475, 503, 511, 503, 503, 376, 399, 399, 146, 146,
895  390, 391, 645, 645, 645, 663, 68, 70, 73, 185,
896  185, 254, 250, 708, 711, 682, 683, 686, 582, 8773,
897  8773, 615, 616, 608, 62, 62, 106, 33,16499, 123,
898  219, 76, 76, 76, 76, 76, 76, 76, 76, 195,
899  195, 195, 195, 195, 195, 195, 195, 195, 195, 83,
900  195, 195, 195, 87, 195, 195, 24, 195, 195, 94,
901 
902  195, 195, 195, 195, 195, 29, 195, 195, 195, 195,
903  195, 195, 195, 82, 8307, 114, 195, 195, 195, 195,
904  195, 195, 475, 482, 503, 503, 503, 512, 475, 513,
905  503, 376, 399, 399, 146, 146, 391, 645, 645, 645,
906  185, 185, 189, 454, 254, 250, 332, 331, 687, 615,
907  616, 611, 607, 62, 62, 83, 87, 24, 94, 29,
908  82, 8307, 76, 76, 76, 76, 76, 76, 46, 76,
909  179, 195, 195, 195, 195, 195, 113, 195, 169, 195,
910  195, 195, 8324, 156,16516, 195, 195, 195, 195, 24,
911  95, 88, 195, 32, 195, 195, 195, 195, 195, 29,
912 
913  195, 195, 195, 195, 97, 25, 195, 195, 195, 84,
914  195, 483, 482, 472, 503, 479, 503, 473, 503, 478,
915  503, 473, 376, 399, 399, 146, 146, 530, 644, 645,
916  645, 645, 64, 66, 65, 189, 254, 250, 335, 333,
917  336, 709, 689, 615, 616, 610, 62, 62, 46, 113,
918  95, 88, 32, 97, 25, 84, 76, 76, 76, 44,
919  76, 76, 76, 195, 195, 86, 195, 195, 195, 89,
920  652, 8324, 155, 195, 81, 195, 30, 195, 32, 195,
921  195, 195, 34, 195, 195, 195, 195, 195, 25, 195,
922  92, 195, 472, 479, 478, 483, 472, 479, 480, 473,
923 
924  478, 376, 399, 399, 146, 146, 146, 146, 146, 146,
925  146, 146, 146, 146, 146, 146, 146, 146, 645, 64,
926  74, 67, 65, 312, 313, 627, 254, 250, 334, 341,
927  338, 340, 709, 615, 616, 609, 62, 62, 44, 86,
928  89, 81, 30, 34, 92, 76, 76, 91, 76, 102,
929  90, 180, 195, 195, 96, 195, 103, 652, 652, 195,
930  99, 99, 30, 93, 93,16517, 93, 93, 156, 93,
931  195, 195, 195, 195, 31, 195, 195, 195, 195, 85,
932  110, 109, 195, 98, 376, 399, 399, 389, 145, 146,
933  146, 146, 146, 146, 645, 312, 312, 313, 313, 254,
934 
935  250, 700, 615, 616, 634, 62, 62, 91, 102, 90,
936  96, 103, 99, 99, 93, 31, 85, 98, 76, 101,
937  45, 195, 125, 195, 93, 93, 195, 195, 23, 31,
938  195, 195, 195, 195, 119, 118, 195, 376, 399, 399,
939  645, 658, 656, 254, 250, 339, 634, 62, 62, 101,
940  45, 23, 76, 195, 8325, 195, 195, 23, 195, 195,
941  195, 26, 108, 107, 376, 399, 399, 191, 190, 254,
942  250, 342, 62, 62, 26, 76, 194, 195, 28, 195,
943  195, 26, 117, 116, 376, 399, 399, 659, 657, 191,
944  190, 254, 250, 62, 62, 28, 76, 28, 195, 195,
945 
946  376, 399, 399, 244, 254, 250, 343, 62, 62, 76,
947  195, 27, 376, 399, 399, 254, 250, 62, 62, 27,
948  100, 112, 111, 27, 376, 399, 399, 254, 250, 62,
949  62, 100, 121, 120, 376, 399, 399, 69, 254, 250,
950  62, 62, 376, 399, 399, 254, 250, 62, 62, 376,
951  399, 399, 62, 62, 376, 399, 399, 62, 62, 15,
952  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
953  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
954  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
955  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
956 
957  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
958  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
959  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
960  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
961  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
962  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
963  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
964  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
965  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
966  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
967 
968  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
969  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
970  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
971  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
972  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
973  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
974  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
975  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
976  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
977  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
978 
979  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
980  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
981  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
982  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
983  376, 399, 399, 62, 62, 376, 399, 399, 62, 62,
984  376, 399, 399, 62, 62, 376, 399, 399, 376
985  } ;
986 
988  { 0,
989  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
991  1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
992  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
993  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
994  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
995  3, 3, 3, 3, 3, 3, 3, 4, 5, 6,
996  7, 8, 9, 9, 9, 9, 9, 9, 9, 9,
997  9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
998  9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
999 
1000  9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1001  9, 9, 9, 9, 9, 10, 11, 11, 11, 11,
1002  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1003  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1004  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1005  11, 11, 11, 12, 13, 13, 13, 14, 15, 15,
1006  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1007  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1008  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1009  15, 15, 15, 15, 15, 15, 15, 16, 17, 18,
1010 
1011  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1012  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1013  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1014  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1015  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1016  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1017  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1018  19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1019  19, 19, 19, 19, 19, 20, 22, 24, 28, 31,
1020  34, 36, 38, 41, 44, 49, 53, 57, 61, 64,
1021 
1022  67, 70, 75, 79, 83, 87, 91, 94, 96, 99,
1023  102, 105, 108, 114, 118, 122, 125, 128, 130, 132,
1024  134, 136, 138, 140, 143, 146, 152, 155, 157, 159,
1025  161, 163, 165, 167, 170, 173, 176, 179, 181, 184,
1026  187, 189, 192, 195, 198, 201, 204, 209, 214, 217,
1027  221, 224, 228, 232, 236, 239, 243, 247, 251, 253,
1028  255, 258, 261, 264, 269, 273, 277, 281, 285, 288,
1029  292, 296, 299, 303, 306, 311, 315, 318, 322, 325,
1030  329, 333, 337, 341, 344, 349, 353, 357, 360, 364,
1031  367, 370, 375, 379, 382, 386, 389, 393, 397, 399,
1032 
1033  401, 403, 405, 408, 410, 413, 416, 419, 424, 426,
1034  429, 432, 436, 439, 444, 448, 452, 455, 458, 461,
1035  464, 469, 473, 476, 479, 482, 485, 488, 493, 497,
1036  501, 505, 508, 512, 515, 518, 523, 527, 531, 535,
1037  538, 542, 546, 549, 552, 555, 557, 561, 563, 566,
1038  569, 572, 575, 578, 581, 583, 585, 588, 591, 594,
1039  597, 599, 601, 604, 607, 610, 613, 616, 619, 622,
1040  625, 628, 631, 634, 637, 640, 643, 646, 649, 652,
1041  655, 658, 661, 664, 667, 670, 674, 677, 683, 688,
1042  693, 697, 700, 702, 704, 706, 708, 710, 713, 715,
1043 
1044  717, 719, 723, 725, 728, 731, 733, 736, 739, 742,
1045  745, 747, 751, 754, 757, 760, 763, 766, 770, 773,
1046  778, 783, 787, 791, 795, 799, 802, 805, 810, 814,
1047  818, 822, 826, 829, 832, 835, 840, 844, 848, 851,
1048  855, 859, 863, 866, 869, 873, 876, 879, 883, 887,
1049  891, 895, 899, 903, 907, 911, 915, 919, 923, 926,
1050  929, 932, 937, 941, 945, 948, 952, 955, 958, 961,
1051  964, 967, 972, 976, 980, 983, 986, 990, 993, 996,
1052  1001, 1005, 1009, 1012, 1016, 1020, 1024, 1029, 1032, 1036,
1053  1042, 1047, 1052, 1055, 1058, 1061, 1065, 1069, 1073, 1076,
1054 
1055  1080, 1082, 1085, 1088, 1091, 1094, 1097, 1100, 1103, 1108,
1056  1112, 1116, 1119, 1123, 1126, 1128, 1130, 1132, 1134, 1136,
1057  1139, 1143, 1147, 1150, 1156, 1161, 1166, 1169, 1172, 1175,
1058  1178, 1182, 1186, 1190, 1196, 1199, 1204, 1207, 1210, 1213,
1059  1216, 1219, 1225, 1229, 1233, 1236, 1239, 1242, 1247, 1252,
1060  1258, 1263, 1266, 1270, 1273, 1277, 1280, 1284, 1288, 1292,
1061  1295, 1299, 1303, 1306, 1309, 1312, 1315, 1320, 1324, 1328,
1062  1331, 1334, 1337, 1340, 1345, 1349, 1353, 1355, 1358, 1360,
1063  1363, 1367, 1370, 1373, 1375, 1377, 1380, 1383, 1386, 1389,
1064  1392, 1396, 1399, 1404, 1408, 1412, 1415, 1419, 1423, 1428,
1065 
1066  1431, 1434, 1437, 1442, 1446, 1450, 1453, 1456, 1459, 1462,
1067  1465, 1470, 1474, 1478, 1481, 1484, 1488, 1491, 1496, 1500,
1068  1504, 1508, 1511, 1514, 1518, 1521, 1526, 1530, 1534, 1538,
1069  1541, 1543, 1546, 1549, 1552, 1555, 1558, 1561, 1566, 1570,
1070  1574, 1577, 1581, 1584, 1587, 1590, 1595, 1599, 1603, 1606,
1071  1609, 1613, 1617, 1620, 1626, 1631, 1636, 1639, 1642, 1645,
1072  1649, 1651, 1654, 1657, 1660, 1662, 1664, 1666, 1669, 1673,
1073  1675, 1677, 1679, 1682, 1685, 1688, 1693, 1697, 1701, 1704,
1074  1707, 1710, 1713, 1716, 1719, 1723, 1727, 1730, 1733, 1736,
1075  1741, 1745, 1749, 1752, 1754, 1756, 1759, 1764, 1768, 1772,
1076 
1077  1775, 1779, 1782, 1785, 1790, 1794, 1797, 1801, 1805, 1808,
1078  1812, 1816, 1820, 1824, 1827, 1833, 1838, 1843, 1847, 1849,
1079  1852, 1855, 1858, 1861, 1864, 1867, 1870, 1875, 1879, 1883,
1080  1886, 1889, 1891, 1894, 1896, 1899, 1902, 1905, 1908, 1913,
1081  1917, 1921, 1924, 1927, 1930, 1933, 1936, 1938, 1940, 1942,
1082  1944, 1946, 1948, 1950, 1952, 1955, 1958, 1960, 1963, 1966,
1083  1969, 1972, 1975, 1978, 1981, 1983, 1986, 1989, 1991, 1993,
1084  1995, 1997, 1999, 2002, 2004, 2007, 2010, 2013, 2016, 2022,
1085  2026, 2031, 2036, 2040, 2044, 2047, 2050, 2054, 2058, 2062,
1086  2065, 2068, 2071, 2074, 2078, 2081, 2086, 2088, 2090, 2092,
1087 
1088  2095, 2097, 2099, 2101, 2103, 2105, 2108, 2110, 2112, 2114,
1089  2116, 2119, 2122, 2124, 2127, 2130, 2133, 2136, 2139, 2142,
1090  2147, 2151, 2155, 2159, 2163, 2166, 2170, 2175, 2178, 2181,
1091  2183, 2186, 2191, 2195, 2198, 2202, 2205, 2208, 2212, 2215,
1092  2218, 2223, 2227, 2231, 2235, 2238, 2241, 2244, 2246, 2250,
1093  2254, 2258, 2264, 2268, 2273, 2277, 2281, 2284, 2288, 2292,
1094  2296, 2299, 2303, 2307, 2310, 2313, 2316, 2319, 2322, 2327,
1095  2331, 2335, 2338, 2342, 2344, 2347, 2349, 2352, 2355, 2358,
1096  2361, 2367, 2371, 2375, 2378, 2381, 2384, 2389, 2394, 2397,
1097  2400, 2406, 2410, 2414, 2417, 2420, 2423, 2428, 2433, 2437,
1098 
1099  2440, 2446, 2451, 2456, 2460, 2464, 2468, 2472, 2475, 2481,
1100  2486, 2491, 2495, 2499, 2503, 2507, 2510, 2516, 2521, 2526,
1101  2530, 2534, 2537, 2541, 2544, 2550, 2555, 2560, 2564, 2568,
1102  2572, 2576, 2581, 2584, 2587, 2590, 2595, 2599, 2603, 2607,
1103  2611, 2614, 2617, 2621, 2624, 2629, 2633, 2637, 2641, 2645,
1104  2648, 2652, 2656, 2659, 2662, 2665, 2671, 2675, 2678, 2683,
1105  2686, 2690, 2694, 2698, 2702, 2705, 2710, 2714, 2718, 2721,
1106  2724, 2727, 2731, 2734, 2739, 2743, 2747, 2751, 2755, 2759,
1107  2762, 2766, 2770, 2773, 2779, 2784, 2788, 2792, 2795, 2800,
1108  2805, 2809, 2814, 2818, 2822, 2825, 2829, 2833, 2837, 2841,
1109 
1110  2845, 2849, 2853, 2856, 2862, 2867, 2872, 2875, 2879, 2882,
1111  2886, 2890, 2894, 2897, 2903, 2908, 2913, 2917, 2920, 2923,
1112  2928, 2932, 2936, 2939, 2942, 2944, 2947, 2950, 2953, 2958,
1113  2962, 2966, 2969, 2972, 2976, 2978, 2981, 2984, 2987, 2990,
1114  2995, 2999, 3003, 3006, 3009, 3013, 3017, 3021, 3027, 3032,
1115  3037, 3040, 3044, 3048, 3051, 3057, 3062, 3067, 3070, 3074,
1116  3077, 3082, 3086, 3090, 3093, 3097, 3100, 3103, 3106, 3109,
1117  3112, 3115, 3118, 3121, 3124, 3127, 3129, 3134, 3138, 3141,
1118  3145, 3148, 3152, 3156, 3159, 3161, 3163, 3165, 3167, 3170,
1119  3173, 3178, 3182, 3186, 3190, 3193, 3196, 3199, 3202, 3204,
1120 
1121  3207, 3212, 3216, 3219, 3223, 3227, 3231, 3234, 3237, 3241,
1122  3244, 3247, 3252, 3256, 3260, 3263, 3266, 3269, 3272, 3275,
1123  3279, 3282, 3287, 3291, 3295, 3299, 3302, 3305, 3310, 3314,
1124  3318, 3321, 3323, 3325, 3328, 3332, 3335, 3338, 3340, 3344,
1125  3348, 3351, 3357, 3362, 3367, 3370, 3373, 3377, 3380, 3383,
1126  3386, 3390, 3393, 3396, 3400, 3403, 3407, 3410, 3416, 3421,
1127  3424, 3429, 3432, 3435, 3438, 3441, 3445, 3453, 3457, 3460,
1128  3461, 3462, 3463, 3464, 3464, 3465, 3466, 3466, 3466, 3467,
1129  3468, 3469, 3469, 3469, 3469, 3469, 3469, 3470, 3470, 3470,
1130  3473, 3473, 3473, 3473, 3477, 3477, 3477, 3478, 3478, 3478,
1131 
1132  3478, 3479, 3480, 3484, 3485, 3486, 3487, 3487, 3487, 3491,
1133  3491, 3491, 3491, 3492, 3492, 3493, 3494, 3494, 3494, 3494,
1134  3494, 3494, 3495, 3496, 3497, 3498, 3498, 3498, 3498, 3499,
1135  3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3507, 3507,
1136  3508, 3508, 3509, 3509, 3510, 3511, 3511, 3512, 3513, 3514,
1137  3515, 3515, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3521,
1138  3521, 3521, 3522, 3524, 3526, 3527, 3527, 3528, 3529, 3531,
1139  3534, 3537, 3540, 3540, 3540, 3541, 3541, 3541, 3544, 3544,
1140  3544, 3544, 3545, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
1141  3546, 3546, 3546, 3546, 3547, 3548, 3549, 3549, 3549, 3549,
1142 
1143  3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549,
1144  3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549,
1145  3549, 3549, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3551,
1146  3552, 3553, 3554, 3554, 3554, 3555, 3555, 3555, 3556, 3557,
1147  3558, 3558, 3559, 3560, 3560, 3560, 3561, 3561, 3562, 3563,
1148  3564, 3565, 3566, 3567, 3567, 3568, 3569, 3570, 3570, 3570,
1149  3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3579, 3580,
1150  3581, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590,
1151  3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600,
1152  3601, 3602, 3603, 3605, 3607, 3608, 3608, 3608, 3608, 3608,
1153 
1154  3608, 3609, 3609, 3609, 3610, 3610, 3610, 3611, 3612, 3612,
1155  3613, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621,
1156  3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621,
1157  3621, 3622, 3623, 3624, 3625, 3625, 3626, 3626, 3627, 3628,
1158  3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638,
1159  3638, 3638, 3638, 3638, 3638, 3639, 3640, 3642, 3643, 3643,
1160  3644, 3645, 3645, 3645, 3647, 3649, 3649, 3650, 3650, 3650,
1161  3651, 3651, 3651, 3652, 3652, 3653, 3654, 3654, 3654, 3654,
1162  3654, 3654, 3654, 3655, 3655, 3655, 3656, 3656, 3657, 3658,
1163  3659, 3659, 3659, 3659, 3661, 3663, 3663, 3664, 3664, 3664,
1164 
1165  3665, 3666, 3668, 3670, 3671, 3671, 3671, 3671, 3672, 3674,
1166  3676, 3677, 3677, 3679, 3679, 3679, 3680, 3682, 3684, 3685,
1167  3686, 3687, 3687, 3688, 3688, 3689, 3690, 3690, 3691, 3693,
1168  3696, 3696, 3697, 3697, 3698, 3699, 3701, 3702, 3703, 3705,
1169  3707, 3708, 3710, 3712, 3713, 3714, 3715, 3716, 3717, 3718,
1170  3718, 3718, 3718, 3719, 3720, 3721, 3723, 3725, 3726, 3727,
1171  3728, 3729, 3729, 3730, 3730, 3730, 3730, 3730, 3732, 3732,
1172  3734, 3734, 3734, 3734, 3735, 3736, 3736, 3736, 3736, 3736,
1173  3736, 3736, 3736, 3737, 3737, 3737, 3737, 3738, 3739, 3740,
1174  3741, 3742, 3743, 3745, 3747, 3748, 3749, 3749, 3750, 3751,
1175 
1176  3753, 3755, 3756, 3756, 3756, 3757, 3758, 3759, 3760, 3761,
1177  3763, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765,
1178  3765, 3766, 3767, 3768, 3768, 3768, 3769, 3770, 3771, 3772,
1179  3773, 3774, 3775, 3776, 3776, 3776, 3776, 3776, 3777, 3778,
1180  3779, 3780, 3780, 3780, 3781, 3782, 3783, 3784, 3785, 3786,
1181  3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787, 3787,
1182  3787, 3788, 3788, 3788, 3789, 3789, 3789, 3789, 3790, 3791,
1183  3792, 3792, 3793, 3794, 3795, 3795, 3795, 3795, 3795, 3795,
1184  3796, 3796, 3796, 3797, 3797, 3798, 3798, 3798, 3798, 3799,
1185  3800, 3801, 3801, 3802, 3803, 3804, 3804, 3804, 3804, 3804,
1186 
1187  3806, 3808, 3809, 3809, 3810, 3810, 3810, 3811, 3812, 3813,
1188  3814, 3815, 3815, 3816, 3818, 3820, 3821, 3822, 3824, 3826,
1189  3827, 3828, 3828, 3828, 3830, 3832, 3833, 3833, 3833, 3834,
1190  3834, 3834, 3835, 3835, 3835, 3836, 3837, 3837, 3838, 3839,
1191  3840, 3841, 3841, 3842, 3842, 3842, 3843, 3843, 3844, 3845,
1192  3846, 3847, 3848, 3849, 3850, 3852, 3854, 3855, 3856, 3857,
1193  3858, 3859, 3860, 3862, 3862, 3862, 3863, 3864, 3865, 3866,
1194  3868, 3870, 3870, 3870, 3870, 3870, 3870, 3870, 3870, 3870,
1195  3870, 3870, 3871, 3871, 3871, 3872, 3873, 3874, 3875, 3875,
1196  3875, 3876, 3877, 3878, 3879, 3879, 3880, 3882, 3884, 3885,
1197 
1198  3885, 3886, 3888, 3890, 3890, 3890, 3890, 3890, 3890, 3890,
1199  3890, 3890, 3890, 3890, 3890, 3890, 3891, 3891, 3892, 3893,
1200  3894, 3894, 3895, 3895, 3895, 3895, 3896, 3897, 3897, 3897,
1201  3897, 3898, 3899, 3900, 3901, 3901, 3901, 3902, 3902, 3902,
1202  3902, 3902, 3902, 3902, 3903, 3903, 3903, 3904, 3904, 3905,
1203  3905, 3905, 3905, 3905, 3905, 3906, 3906, 3906, 3906, 3906,
1204  3907, 3907, 3907, 3907, 3907, 3908, 3909, 3910, 3911, 3912,
1205  3912, 3913, 3915, 3917, 3918, 3919, 3919, 3919, 3919, 3919,
1206  3919, 3919, 3919, 3919, 3919, 3920, 3920, 3920, 3921, 3921,
1207  3923, 3925, 3926, 3927, 3929, 3931, 3934, 3935, 3935, 3936,
1208 
1209  3937, 3939, 3941, 3941, 3941, 3941, 3942, 3947, 3948, 3948,
1210  3950, 3952, 3952, 3953, 3954, 3954, 3955, 3955, 3955, 3955,
1211  3955, 3955, 3958, 3961, 3961, 3962, 3962, 3962, 3963, 3963,
1212  3967, 3967, 3967, 3967, 3969, 3969, 3969, 3971, 3971, 3971,
1213  3971, 3972, 3973, 3974, 3975, 3976, 3976, 3976, 3976, 3977,
1214  3977, 3979, 3981, 3981, 3981, 3982, 3982, 3983, 3983, 3984,
1215  3984, 3984, 3984, 3984, 3984, 3984, 3985, 3985, 3985, 3985,
1216  3985, 3985, 3985, 3986, 3987, 3987, 3987, 3987, 3987, 3987,
1217  3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987,
1218  3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987,
1219 
1220  3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987,
1221  3987, 3988, 3988, 3988, 3988, 3989, 3990, 3990, 3990, 3990,
1222  3990, 3990, 3990, 3990, 3990, 3990, 3991, 3991, 3991, 3991,
1223  3992, 3992, 3992, 3993, 3993, 3993, 3993, 3993, 3994, 3994,
1224  3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004,
1225  4005, 4006, 4006, 4006, 4007, 4008, 4009, 4010, 4011, 4012,
1226  4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022,
1227  4023, 4024, 4025, 4026, 4027, 4028, 4029, 4030, 4031, 4032,
1228  4033, 4034, 4035, 4036, 4037, 4038, 4039, 4040, 4041, 4042,
1229  4043, 4044, 4045, 4046, 4047, 4048, 4048, 4048, 4048, 4049,
1230 
1231  4049, 4050, 4050, 4051, 4051, 4051, 4051, 4051, 4051, 4051,
1232  4051, 4051, 4051, 4051, 4052, 4053, 4053, 4053, 4054, 4054,
1233  4055, 4055, 4056, 4057, 4058, 4060, 4061, 4062, 4063, 4064,
1234  4065, 4066, 4067, 4067, 4067, 4067, 4068, 4068, 4070, 4071,
1235  4072, 4072, 4073, 4073, 4073, 4074, 4075, 4075, 4076, 4077,
1236  4077, 4077, 4077, 4077, 4078, 4079, 4080, 4080, 4080, 4081,
1237  4081, 4081, 4082, 4082, 4082, 4083, 4083, 4083, 4084, 4084,
1238  4084, 4084, 4084, 4084, 4085, 4086, 4087, 4087, 4088, 4089,
1239  4090, 4090, 4091, 4091, 4091, 4092, 4093, 4093, 4093, 4093,
1240  4093, 4094, 4095, 4095, 4095, 4095, 4095, 4096, 4096, 4097,
1241 
1242  4098, 4098, 4099, 4099, 4100, 4100, 4100, 4100, 4100, 4100,
1243  4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4101, 4102,
1244  4103, 4104, 4105, 4106, 4107, 4107, 4107, 4107, 4107, 4107,
1245  4107, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108,
1246  4108, 4109, 4109, 4109, 4110, 4111, 4111, 4111, 4112, 4112,
1247  4113, 4114, 4114, 4114, 4115, 4115, 4116, 4116, 4116, 4116,
1248  4116, 4117, 4118, 4118, 4119, 4119, 4119, 4120, 4120, 4120,
1249  4120, 4121, 4121, 4121, 4121, 4122, 4122, 4122, 4122, 4123,
1250  4123, 4123, 4124, 4124, 4124, 4124, 4124, 4125, 4125, 4125,
1251  4125, 4125, 4125, 4125, 4126, 4126, 4126, 4126, 4126, 4126,
1252 
1253  4126, 4126, 4127, 4127, 4128, 4128, 4128, 4129, 4129, 4130,
1254  4130, 4130, 4130, 4130, 4130, 4130, 4130, 4130, 4130, 4130,
1255  4131, 4132, 4133, 4134, 4134, 4135, 4135, 4135, 4135, 4135,
1256  4136, 4136, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4138,
1257  4139, 4139, 4139, 4139, 4139, 4140, 4140, 4140, 4140, 4140,
1258  4140, 4141, 4142, 4143, 4143, 4143, 4143, 4144, 4144, 4146,
1259  4147, 4147, 4147, 4147, 4148, 4149, 4151, 4152, 4153, 4153,
1260  4155, 4156, 4157, 4157, 4160, 4161, 4161, 4163, 4163, 4165,
1261  4167, 4168, 4169, 4170, 4171, 4172, 4172, 4173, 4174, 4174,
1262  4174, 4174, 4174, 4175, 4177, 4178, 4179, 4179, 4179, 4179,
1263 
1264  4179, 4179, 4179, 4179, 4180, 4180, 4180, 4180, 4181, 4182,
1265  4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
1266  4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
1267  4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
1268  4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
1269  4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
1270  4182, 4182, 4182, 4182, 4183, 4183, 4183, 4183, 4183, 4183,
1271  4183, 4183, 4184, 4185, 4186, 4187, 4187, 4187, 4188, 4189,
1272  4190, 4191, 4192, 4192, 4192, 4192, 4192, 4193, 4194, 4195,
1273  4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205,
1274 
1275  4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 4215,
1276  4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225,
1277  4226, 4227, 4228, 4229, 4230, 4231, 4232, 4232, 4233, 4234,
1278  4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244,
1279  4245, 4245, 4245, 4247, 4249, 4249, 4249, 4250, 4250, 4250,
1280  4250, 4250, 4250, 4250, 4250, 4250, 4251, 4252, 4253, 4254,
1281  4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4262, 4262,
1282  4262, 4262, 4264, 4265, 4266, 4266, 4267, 4267, 4267, 4267,
1283  4268, 4269, 4269, 4269, 4270, 4270, 4270, 4270, 4270, 4270,
1284  4271, 4272, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279,
1285 
1286  4279, 4279, 4279, 4279, 4280, 4281, 4281, 4282, 4282, 4282,
1287  4282, 4282, 4282, 4282, 4282, 4283, 4283, 4284, 4286, 4287,
1288  4288, 4289, 4290, 4290, 4291, 4291, 4291, 4291, 4291, 4292,
1289  4292, 4292, 4292, 4293, 4293, 4293, 4293, 4293, 4294, 4294,
1290  4294, 4295, 4296, 4296, 4296, 4296, 4297, 4297, 4297, 4298,
1291  4298, 4298, 4299, 4299, 4299, 4300, 4300, 4301, 4302, 4302,
1292  4302, 4303, 4303, 4303, 4303, 4303, 4303, 4303, 4303, 4303,
1293  4303, 4303, 4303, 4304, 4304, 4305, 4305, 4306, 4306, 4306,
1294  4306, 4306, 4306, 4306, 4306, 4306, 4306, 4307, 4307, 4307,
1295  4307, 4307, 4307, 4308, 4308, 4309, 4310, 4311, 4311, 4312,
1296 
1297  4312, 4312, 4312, 4312, 4312, 4312, 4312, 4313, 4313, 4314,
1298  4315, 4317, 4318, 4318, 4318, 4318, 4319, 4321, 4322, 4323,
1299  4325, 4326, 4326, 4327, 4328, 4330, 4330, 4330, 4331, 4331,
1300  4331, 4331, 4332, 4334, 4334, 4334, 4334, 4334, 4334, 4334,
1301  4334, 4335, 4336, 4337, 4338, 4338, 4338, 4338, 4338, 4338,
1302  4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338,
1303  4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338,
1304  4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338,
1305  4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338, 4338,
1306  4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,
1307 
1308  4340, 4340, 4340, 4340, 4340, 4341, 4341, 4342, 4342, 4343,
1309  4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353,
1310  4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363,
1311  4365, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375,
1312  4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385,
1313  4386, 4387, 4388, 4389, 4389, 4389, 4390, 4391, 4392, 4393,
1314  4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403,
1315  4404, 4404, 4404, 4404, 4404, 4404, 4404, 4404, 4404, 4404,
1316  4404, 4405, 4407, 4409, 4410, 4411, 4412, 4413, 4414, 4415,
1317  4416, 4416, 4416, 4417, 4419, 4420, 4422, 4422, 4422, 4422,
1318 
1319  4423, 4424, 4425, 4426, 4426, 4426, 4427, 4428, 4429, 4430,
1320  4431, 4433, 4434, 4435, 4436, 4436, 4436, 4437, 4437, 4437,
1321  4437, 4437, 4437, 4437, 4437, 4437, 4437, 4437, 4438, 4439,
1322  4440, 4440, 4440, 4440, 4441, 4441, 4441, 4441, 4441, 4441,
1323  4441, 4441, 4442, 4442, 4442, 4442, 4442, 4442, 4442, 4442,
1324  4442, 4442, 4442, 4442, 4442, 4442, 4442, 4442, 4443, 4443,
1325  4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443, 4443,
1326  4443, 4443, 4444, 4444, 4445, 4445, 4446, 4446, 4446, 4446,
1327  4446, 4446, 4446, 4446, 4446, 4446, 4446, 4447, 4447, 4447,
1328  4447, 4449, 4451, 4452, 4453, 4453, 4453, 4453, 4453, 4453,
1329 
1330  4454, 4454, 4454, 4454, 4454, 4454, 4454, 4454, 4454, 4454,
1331  4455, 4456, 4458, 4459, 4459, 4461, 4461, 4461, 4461, 4461,
1332  4461, 4462, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1333  4463, 4463, 4463, 4463, 4463, 4463, 4464, 4464, 4464, 4464,
1334  4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464,
1335  4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464,
1336  4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464, 4464,
1337  4464, 4464, 4464, 4465, 4465, 4467, 4468, 4469, 4470, 4471,
1338  4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481,
1339  4482, 4483, 4483, 4484, 4485, 4486, 4486, 4486, 4487, 4488,
1340 
1341  4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498,
1342  4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508,
1343  4508, 4508, 4509, 4510, 4511, 4512, 4513, 4515, 4516, 4517,
1344  4518, 4519, 4520, 4521, 4521, 4522, 4523, 4524, 4524, 4524,
1345  4525, 4525, 4525, 4525, 4525, 4525, 4525, 4525, 4526, 4527,
1346  4528, 4529, 4530, 4531, 4533, 4533, 4534, 4535, 4536, 4536,
1347  4538, 4539, 4539, 4540, 4541, 4541, 4542, 4543, 4544, 4545,
1348  4546, 4546, 4546, 4547, 4548, 4548, 4548, 4548, 4548, 4549,
1349  4549, 4550, 4550, 4551, 4552, 4552, 4552, 4552, 4552, 4552,
1350  4552, 4552, 4552, 4552, 4552, 4552, 4552, 4552, 4552, 4552,
1351 
1352  4552, 4552, 4552, 4552, 4552, 4552, 4552, 4553, 4553, 4554,
1353  4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554,
1354  4554, 4554, 4554, 4555, 4555, 4556, 4556, 4558, 4558, 4558,
1355  4558, 4558, 4558, 4558, 4559, 4559, 4559, 4559, 4559, 4559,
1356  4559, 4559, 4560, 4560, 4561, 4562, 4564, 4564, 4564, 4564,
1357  4565, 4565, 4566, 4567, 4567, 4567, 4567, 4567, 4567, 4567,
1358  4567, 4567, 4567, 4567, 4567, 4568, 4568, 4568, 4568, 4569,
1359  4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569,
1360  4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569,
1361  4569, 4569, 4570, 4570, 4570, 4571, 4571, 4571, 4571, 4571,
1362 
1363  4571, 4572, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579,
1364  4580, 4581, 4582, 4583, 4584, 4585, 4586, 4586, 4586, 4587,
1365  4587, 4587, 4588, 4588, 4588, 4589, 4590, 4591, 4591, 4591,
1366  4592, 4593, 4594, 4595, 4596, 4597, 4597, 4598, 4599, 4600,
1367  4601, 4602, 4603, 4604, 4605, 4606, 4606, 4607, 4608, 4609,
1368  4610, 4610, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617,
1369  4618, 4619, 4620, 4620, 4620, 4621, 4622, 4623, 4623, 4623,
1370  4623, 4623, 4624, 4624, 4624, 4624, 4625, 4626, 4627, 4628,
1371  4628, 4629, 4630, 4631, 4632, 4632, 4634, 4635, 4635, 4636,
1372  4637, 4637, 4638, 4639, 4640, 4641, 4641, 4641, 4641, 4641,
1373 
1374  4641, 4641, 4641, 4641, 4642, 4643, 4643, 4643, 4644, 4644,
1375  4644, 4644, 4644, 4644, 4644, 4645, 4645, 4645, 4645, 4645,
1376  4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4646,
1377  4646, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4648,
1378  4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649,
1379  4649, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650,
1380  4652, 4652, 4653, 4653, 4654, 4655, 4656, 4656, 4656, 4656,
1381  4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
1382  4656, 4656, 4657, 4657, 4658, 4658, 4658, 4658, 4659, 4659,
1383  4659, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4661, 4661,
1384 
1385  4661, 4661, 4661, 4661, 4661, 4662, 4663, 4663, 4663, 4663,
1386  4663, 4663, 4663, 4663, 4664, 4665, 4666, 4667, 4668, 4669,
1387  4670, 4671, 4673, 4674, 4675, 4676, 4677, 4678, 4678, 4679,
1388  4679, 4680, 4681, 4681, 4681, 4682, 4683, 4683, 4683, 4683,
1389  4683, 4683, 4686, 4687, 4688, 4689, 4690, 4691, 4692, 4692,
1390  4693, 4694, 4694, 4695, 4696, 4697, 4698, 4699, 4700, 4701,
1391  4702, 4703, 4704, 4704, 4704, 4705, 4706, 4706, 4707, 4708,
1392  4708, 4709, 4709, 4709, 4710, 4711, 4712, 4712, 4712, 4712,
1393  4712, 4713, 4714, 4716, 4718, 4720, 4722, 4723, 4725, 4726,
1394  4726, 4727, 4728, 4729, 4731, 4732, 4733, 4733, 4733, 4733,
1395 
1396  4734, 4734, 4735, 4735, 4735, 4736, 4736, 4736, 4737, 4737,
1397  4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737,
1398  4737, 4737, 4737, 4737, 4737, 4738, 4738, 4739, 4739, 4739,
1399  4739, 4739, 4739, 4740, 4741, 4742, 4742, 4742, 4742, 4743,
1400  4743, 4743, 4743, 4743, 4744, 4744, 4744, 4744, 4744, 4744,
1401  4746, 4747, 4747, 4748, 4749, 4749, 4749, 4749, 4749, 4749,
1402  4749, 4750, 4750, 4750, 4750, 4750, 4751, 4751, 4751, 4751,
1403  4751, 4751, 4751, 4752, 4752, 4753, 4753, 4753, 4754, 4754,
1404  4754, 4754, 4754, 4754, 4754, 4754, 4754, 4755, 4755, 4756,
1405  4756, 4756, 4756, 4756, 4757, 4757, 4757, 4758, 4759, 4760,
1406 
1407  4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4769,
1408  4769, 4770, 4771, 4772, 4772, 4772, 4772, 4772, 4774, 4775,
1409  4776, 4777, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784,
1410  4785, 4786, 4787, 4788, 4788, 4788, 4789, 4790, 4791, 4791,
1411  4791, 4792, 4792, 4792, 4793, 4793, 4794, 4795, 4796, 4797,
1412  4798, 4799, 4800, 4801, 4802, 4804, 4805, 4805, 4806, 4806,
1413  4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816,
1414  4817, 4818, 4819, 4820, 4820, 4820, 4820, 4820, 4821, 4822,
1415  4823, 4824, 4824, 4824, 4824, 4824, 4824, 4824, 4825, 4826,
1416  4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4828,
1417 
1418  4828, 4829, 4830, 4830, 4830, 4830, 4831, 4832, 4833, 4833,
1419  4833, 4834, 4834, 4834, 4834, 4834, 4834, 4834, 4834, 4836,
1420  4837, 4838, 4839, 4839, 4839, 4839, 4840, 4840, 4840, 4840,
1421  4840, 4841, 4841, 4841, 4842, 4843, 4843, 4843, 4844, 4844,
1422  4844, 4844, 4844, 4845, 4845, 4845, 4845, 4845, 4845, 4846,
1423  4846, 4847, 4848, 4849, 4850, 4851, 4852, 4854, 4855, 4856,
1424  4857, 4857, 4857, 4858, 4859, 4860, 4860, 4860, 4860, 4860,
1425  4861, 4862, 4863, 4864, 4865, 4867, 4868, 4870, 4872, 4873,
1426  4874, 4875, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882,
1427  4883, 4883, 4884, 4885, 4885, 4885, 4885, 4885, 4887, 4888,
1428 
1429  4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4896, 4896,
1430  4896, 4896, 4896, 4896, 4896, 4896, 4896, 4897, 4898, 4899,
1431  4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4901, 4901,
1432  4902, 4902, 4902, 4902, 4902, 4903, 4903, 4903, 4903, 4903,
1433  4903, 4903, 4906, 4907, 4908, 4908, 4908, 4909, 4909, 4910,
1434  4911, 4911, 4912, 4913, 4914, 4915, 4916, 4916, 4916, 4916,
1435  4916, 4917, 4917, 4917, 4917, 4917, 4918, 4919, 4920, 4921,
1436  4922, 4923, 4924, 4924, 4924, 4924, 4925, 4925, 4925, 4926,
1437  4926, 4927, 4928, 4929, 4929, 4930, 4931, 4932, 4933, 4934,
1438  4935, 4936, 4937, 4938, 4938, 4938, 4938, 4938, 4940, 4941,
1439 
1440  4942, 4943, 4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944,
1441  4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944, 4945, 4945,
1442  4946, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4948, 4949,
1443  4950, 4950, 4951, 4952, 4952, 4952, 4952, 4953, 4953, 4953,
1444  4953, 4953, 4954, 4955, 4955, 4955, 4955, 4955, 4955, 4955,
1445  4956, 4957, 4958, 4959, 4960, 4961, 4962, 4962, 4963, 4963,
1446  4964, 4965, 4965, 4965, 4967, 4968, 4968, 4968, 4968, 4968,
1447  4969, 4969, 4970, 4970, 4970, 4970, 4970, 4970, 4970, 4970,
1448  4970, 4970, 4970, 4971, 4971, 4972, 4972, 4973, 4973, 4973,
1449  4974, 4975, 4975, 4975, 4975, 4975, 4975, 4975, 4975, 4976,
1450 
1451  4977, 4978, 4978, 4978, 4979, 4979, 4980, 4981, 4982, 4983,
1452  4984, 4985, 4985, 4987, 4988, 4989, 4990, 4990, 4991, 4992,
1453  4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
1454  4992, 4992, 4992, 4992, 4993, 4993, 4994, 4994, 4994, 4995,
1455  4996, 4996, 4996, 4996, 4997, 4997, 4997, 4998, 4998, 4998,
1456  4999, 5000, 5001, 5001, 5003, 5004, 5004, 5004, 5004, 5004,
1457  5004, 5004, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005,
1458  5005, 5006, 5006, 5007, 5008, 5008, 5009, 5010, 5010, 5010,
1459  5010, 5011, 5011, 5011, 5012, 5012, 5013, 5013, 5015, 5016,
1460  5016, 5016, 5016, 5016, 5016, 5016, 5016, 5016, 5016, 5016,
1461 
1462  5016, 5016, 5017, 5017, 5018, 5019, 5020, 5020, 5020, 5020,
1463  5021, 5022, 5023, 5024, 5024, 5025, 5025, 5027, 5028, 5028,
1464  5028, 5028, 5028, 5028, 5028, 5028, 5029, 5029, 5030, 5031,
1465  5032, 5033, 5034, 5035, 5035, 5035, 5037, 5038, 5039, 5039,
1466  5039, 5039, 5040, 5040, 5041, 5042, 5043, 5043, 5043, 5043,
1467  5045, 5046, 5046, 5046, 5047, 5048, 5049, 5050, 5050, 5052,
1468  5053, 5054, 5055, 5055, 5057, 5058, 5059, 5060, 5060, 5060,
1469  5061, 5063, 5064, 5065, 5066, 5068, 5069, 5070, 5071, 5073,
1470  5074, 5075, 5076, 5078, 5079, 5080, 5081, 5083, 5084, 5085,
1471  5086, 5088, 5089, 5090, 5091, 5093, 5094, 5095, 5096, 5098,
1472 
1473  5099, 5100, 5101, 5103, 5104, 5105, 5106, 5108, 5109, 5110,
1474  5111, 5113, 5114, 5115, 5116, 5118, 5119, 5120, 5121, 5123,
1475  5124, 5125, 5126, 5128, 5129, 5130, 5131, 5133, 5134, 5135,
1476  5136, 5138, 5139, 5140, 5141, 5143, 5144, 5145, 5146, 5148,
1477  5149, 5150, 5151, 5153, 5154, 5155, 5156, 5158, 5159, 5160,
1478  5161, 5163, 5164, 5165, 5166, 5168, 5169, 5170, 5171, 5173,
1479  5174, 5175, 5176, 5178, 5179, 5180, 5181, 5183, 5184, 5185,
1480  5186, 5188, 5189, 5190, 5191, 5193, 5194, 5195, 5196, 5198,
1481  5199, 5200, 5201, 5203, 5204, 5205, 5206, 5208, 5209, 5210,
1482  5211, 5213, 5214, 5215, 5216, 5218, 5219, 5220, 5221, 5223,
1483 
1484  5224, 5225, 5226, 5228, 5229, 5230, 5231, 5233, 5234, 5235,
1485  5236, 5238, 5239, 5240, 5241, 5243, 5244, 5245, 5246, 5248,
1486  5249, 5250, 5251, 5253, 5254, 5255, 5256, 5258, 5259, 5260,
1487  5261, 5263, 5264, 5265, 5266, 5268, 5269, 5270, 5271, 5273,
1488  5274, 5275, 5276, 5278, 5279, 5280, 5281, 5283, 5284, 5285,
1489  5286, 5288, 5289, 5290, 5291, 5293, 5294, 5295, 5296, 5298,
1490  5299, 5300, 5301, 5303, 5304, 5305, 5306, 5308, 5309, 5310,
1491  5311, 5313, 5314, 5315, 5316, 5318, 5319, 5320, 5321, 5323,
1492  5324, 5325, 5326, 5328, 5329, 5330, 5331, 5333, 5334, 5335,
1493  5336, 5338, 5339, 5340, 5341, 5343, 5344, 5345, 5346, 5348,
1494 
1495  5349, 5350, 5351, 5353, 5354, 5355, 5356, 5358, 5359, 5359,
1496  5359, 5360, 5360
1497  } ;
1498 
1500  { 0,
1501  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1502  1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
1503  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1504  1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
1505  14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1506  24, 24, 24, 24, 24, 25, 26, 27, 28, 29,
1507  30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1508  40, 39, 41, 42, 39, 43, 39, 44, 45, 46,
1509  47, 48, 49, 50, 51, 39, 52, 39, 53, 39,
1510  54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1511 
1512  64, 65, 66, 67, 68, 39, 69, 70, 71, 72,
1513  73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
1514  83, 39, 84, 85, 86, 87, 1, 88, 88, 88,
1515  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1516  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1517  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1518  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1519  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1520  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1521  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1522 
1523  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1524  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1525  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1526  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1527  88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1528  88, 88, 88, 88, 88
1529  } ;
1530 
1532  { 0,
1533  1, 2, 3, 4, 2, 5, 6, 7, 8, 1,
1534  9, 10, 11, 12, 13, 1, 14, 1, 15, 16,
1535  17, 17, 17, 17, 17, 17, 18, 19, 20, 21,
1536  22, 1, 23, 24, 24, 24, 24, 24, 24, 24,
1537  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1538  24, 24, 24, 25, 26, 27, 28, 24, 29, 24,
1539  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1540  24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1541  24, 24, 24, 30, 1, 31, 32, 33
1542  } ;
1543 
1545  { 0,
1546  0, 2, 16, 18, 32, 50, 70, 0, 157, 168,
1547  223, 0, 311, 0, 399, 0, 487, 0, 573, 575,
1548  629, 0, 171, 191, 717, 0, 803, 805, 861, 0,
1549  949, 0, 1036, 1047, 1057, 1075, 189, 589, 1094, 1116,
1550  1200, 0, 591, 819, 1288, 0, 1376, 0, 830, 1127,
1551  1462, 1464, 1148, 1167, 833, 1490, 1493, 1504, 1588, 0,
1552  1675, 1689, 1515, 1542, 1522, 1678, 1708, 1748, 1762, 1781,
1553  1795, 1818, 1904, 0, 1544, 1715, 1718, 1832, 1992, 0,
1554  2079, 2090, 2113, 2124, 1105, 2097, 1842, 2140, 2170, 2181,
1555  2236, 0, 2322, 2325, 2336, 2347, 2358, 2365, 1856, 1863,
1556 
1557  1883, 2204, 2368, 2379, 2390, 2409, 2214, 2419, 2433, 2453,
1558  2478, 2493, 2460, 2463, 2439, 2515, 2526, 2540, 2554, 2568,
1559  2588, 0, 2674, 2676, 2695, 2706, 2717, 2736, 2791, 0,
1560  2879, 0, 2967, 0, 3055, 0, 3141, 3156, 2758, 3159,
1561  2529, 2768, 3242, 0, 3162, 3177, 3330, 0, 3184, 3191,
1562  3418, 0, 3504, 3507, 3527, 0, 3613, 3616, 3631, 3634,
1563  3661, 3740, 3637, 3659, 3821, 0, 3909, 0, 3677, 3687,
1564  3997, 0, 4085, 0, 4172, 4257, 3708, 4229, 4343, 0,
1565  3216, 3738, 3756, 3759, 4431, 0, 3775, 3781, 4289, 4309,
1566  4519, 0, 4175, 4199, 4605, 4608, 4661, 4739, 4817, 4895,
1567 
1568  4260, 4623, 4974, 0, 5062, 0, 4629, 4675, 4690, 4708,
1569  4714, 4753, 4759, 4773, 4232, 4626, 4789, 4792, 4803, 4831,
1570  4846, 4874, 4909, 4937, 5149, 5163, 5241, 0, 5183, 5202,
1571  4210, 4881, 5328, 5347, 5350, 5365, 4849, 5368, 5371, 5387,
1572  5389, 5421, 5436, 5463, 5405, 5483, 5501, 5515, 5517, 5533,
1573  5588, 0, 3697, 5676, 5764, 0, 4235, 5852, 5217, 5443,
1574  5551, 5561, 5938, 6014, 6092, 0, 6180, 0, 5940, 5954,
1575  6268, 0, 5973, 6355, 5976, 6016, 5152, 5998, 6035, 6057,
1576  6366, 6385, 6395, 6481,13661,36418,36418,36418,36418,36418,
1577  12,13599,36418,36418,36418,36418,36418,36418, 22,36418,
1578 
1579  36418,36418,36418,36418,36418,36418, 28, 0, 205,36418,
1580  13, 1555,36418,36418,36418, 35, 56, 4652, 586, 1534,
1581  619, 6443, 6452,13625,36418, 1814, 63, 1190, 4194, 816,
1582  2135, 1564, 6460,36418,36418, 211,36418, 46,13624,36418,
1583  13585, 2167, 6472, 6500,36418,36418,36418,36418, 0,36418,
1584  148,36418,36418, 0, 0, 589, 1071,36418,13592, 0,
1585  5966, 0,36418,36418,36418,36418,36418,36418, 166,13618,
1586  4932,36418, 185,36418,36418,36418, 0,36418, 564,36418,
1587  0,36418,36418,36418,36418,36418,36418, 592,36418,36418,
1588  36418,36418,36418, 0,36418, 595, 0,36418, 6513, 6597,
1589 
1590  6684, 0,36418,13614,36418,36418, 3153, 5528,13613, 614,
1591  36418,36418,36418,36418,36418,36418, 794,13544, 773,13546,
1592  36418,13540,36418, 2200, 2506,36418,36418,36418,36418,36418,
1593  4279, 809, 4322,36418,36418,36418,36418,36418, 4950, 836,
1594  6504,36418, 6767, 6696, 6715, 1577, 1135, 6700, 109, 36,
1595  6728, 1483, 6541,36418, 840,13585,13564, 6546, 594,36418,
1596  13551, 4618, 6550, 6799,13525,36418, 6805, 6813, 6846, 6850,
1597  6862, 6856, 6866, 6894, 6898, 6902, 6908, 6936, 6944, 6948,
1598  6957, 6986, 6990, 6995,36418, 0,36418, 0, 0, 0,
1599  1027, 1014, 6555, 6567, 2780, 6999,13553, 7025, 6742, 6571,
1600 
1601  6692, 1478, 0,36418, 6777, 1038,36418,36418, 0,36418,
1602  1042,36418,36418,36418,36418, 6786,36418, 2687, 7029,36418,
1603  36418,36418,36418,36418, 2227, 1046,36418,36418,36418,36418,
1604  36418,36418, 1048,36418,36418,36418,36418,36418, 1056,36418,
1605  36418, 7085, 0, 0,36418,13547, 1060, 7035, 0,13516,
1606  13503,13495, 513,13482,13500,13495, 740,13480,36418, 7040,
1607  7055,36418,36418,36418, 1066,36418, 7070,13484,13471,36418,
1608  36418,36418,36418,36418, 6077, 1074,36418,13518,36418,36418,
1609  36418,36418, 1078,36418,36418, 0, 4329, 2580, 4962,36418,
1610  852,13485, 1128,13510,13529,36418, 5230,36418, 1100,36418,
1611 
1612  0,36418,36418, 7074, 7092, 7104,36418,36418,36418,36418,
1613  36418, 1134, 7079,36418, 7122, 7132, 5575, 7137,13498, 7164,
1614  0, 1180,36418,36418, 1094,13468, 1143,13493,13514,36418,
1615  36418, 7151, 1181, 1140,36418,36418, 1453, 163, 7170,36418,
1616  36418,36418,36418,36418,13498, 1479, 0,36418,36418,36418,
1617  36418, 0,36418, 1494,36418, 6427,36418,36418,36418, 1500,
1618  36418,36418,13460,36418,13510, 1069,36418,36418,36418, 1511,
1619  1163, 0, 1734, 0, 0, 0,13488, 1669, 1102,36418,
1620  1530, 1703, 1721, 2086, 1741,36418,36418,36418,36418,36418,
1621  6476, 6581,36418,36418,36418, 1684,36418,36418,36418,36418,
1622 
1623  36418, 0,36418, 0, 0, 1687,36418,36418, 0,36418,
1624  0, 0, 0, 1727,36418, 6585, 7177,36418,36418,36418,
1625  36418, 1760,36418, 7181, 7190,36418,36418,36418,36418, 1789,
1626  0,36418, 0,13432,13431,36418,36418,36418,36418,36418,
1627  1791,36418,36418, 7194, 7198,36418,36418,36418, 1793,13443,
1628  0, 7202, 7206, 0, 0, 0,13477,36418, 1838, 1699,
1629  0,36418, 1817,36418, 0, 7210, 0,36418, 7214, 7218,
1630  7223, 0, 0,36418,36418,36418,36418,36418, 1841,13433,
1631  13422,13409, 540,13419,36418,36418,36418,36418,36418,13474,
1632  36418,36418, 1854, 0, 1866,36418,36418,36418,36418, 1862,
1633 
1634  36418,36418, 7228,36418,36418, 0,36418, 7232, 1869, 7237,
1635  0,36418, 0,36418,13470, 0, 0, 1872, 0,36418,
1636  1171, 7241, 0,36418, 0, 0, 0, 0, 0,36418,
1637  1879, 0,36418, 7260,36418, 7268, 0, 0, 0, 0,
1638  0,36418, 1582, 1881,36418,36418,13398,13400,13408,13395,
1639  13402, 766,13376,13375,36418, 1785, 0,36418, 40, 1490,
1640  2127, 1704, 2056, 2352, 0, 0,36418,13396,13384,13373,
1641  13360, 0, 0, 0, 0,36418, 7272, 7282,36418,36418,
1642  13344,36418,36418, 7286,13359, 2115, 7294,13356,13347,13323,
1643  13334,13289,13328,36418, 2063,36418, 7305, 7313,13266,36418,
1644 
1645  7317, 7325, 7333, 7341, 2159,36418, 7346, 7361, 7382, 7396,
1646  36418, 7410, 2166, 7414,36418, 7418,36418,36418,36418,36418,
1647  36418,36418,36418,36418, 2172,13299, 7422,36418, 7434, 7438,
1648  7442,36418,36418, 7453,36418, 2198,13293, 7464,36418,36418,
1649  36418,36418,36418, 7471, 2311,36418, 7479,13263, 0, 7484,
1650  7491,36418,36418,13251,36418, 7495, 2321,13252,13291, 2065,
1651  36418,36418,36418,13248,13288, 2150,36418,36418,36418,36418,
1652  36418, 2331,13266, 0, 0, 0,36418,13264,36418,36418,
1653  36418,36418,36418,13269, 2332, 0,36418,36418,36418,36418,
1654  36418,36418,36418,13267, 2338, 0,36418,36418, 0,36418,
1655 
1656  36418, 0,13230,36418,36418, 2369, 0,36418,36418, 0,
1657  13226, 2375,36418,36418, 0,36418,36418, 0,13224,36418,
1658  36418, 2381, 0,36418,36418, 0,13216,13236, 2385,36418,
1659  36418, 2402,36418, 2729,36418,36418,36418,36418,36418,36418,
1660  2399,36418, 7499, 7506,36418,36418,36418,36418,36418, 2428,
1661  13221,13218,13162,36418,36418,36418,36418, 0,13188, 2429,
1662  36418, 0,36418,36418,36418,36418,36418,36418, 7514, 2474,
1663  36418, 7518, 7526,36418,36418,36418,36418,36418, 7534, 2482,
1664  36418, 0,36418,36418, 0,36418, 2484, 0,36418,36418,
1665  0, 0,36418,36418, 2500,13188,13227, 2166,36418,36418,
1666 
1667  36418, 0,36418, 0, 0, 0,13212, 2535, 1668, 2413,
1668  7542, 0,36418, 0, 0, 0, 2548, 7489,36418,36418,
1669  36418,36418, 2549, 2085, 0,13216, 0,36418,36418,36418,
1670  36418, 2665, 0, 0, 0,13207, 0,36418,36418,36418,
1671  36418,36418, 2686, 0, 0, 0, 0, 0, 0, 0,
1672  13197, 2697, 0,36418, 0, 0, 0,13196, 2708,36418,
1673  36418,36418,36418, 2715,36418,13123,13121,13116,13125,13110,
1674  13094,13101,13083,36418, 7561, 7570,36418,36418, 0,36418,
1675  2732,36418, 7578,13101, 7584, 7597, 0, 7609, 7617,36418,
1676  36418,36418,36418, 4722, 2734,13081,36418, 7623, 7629, 7633,
1677 
1678  36418,36418, 7649,36418,36418,36418, 2744,13126, 7644,36418,
1679  6411,36418,36418,36418, 2747, 2519,13078,13082,13074,36418,
1680  36418,36418,36418,36418,36418, 2759,36418,36418,36418,36418,
1681  2766,13142, 3650, 3173,13136,13134,13108, 3157, 0, 2549,
1682  36418, 0, 0, 0, 3130, 3131, 3140, 7607, 7628,36418,
1683  6706, 7736, 3132,13048,13017, 0,36418, 0, 0,36418,
1684  0,13083, 3180,13081, 2094, 6746, 7823,13040,13011,36418,
1685  36418,36418, 3207, 3208,36418, 3645, 7659, 3211, 1103, 1694,
1686  36418,13093, 7837, 7698, 7842,13067, 3233, 7702, 7710, 7850,
1687  7866, 7718, 0, 7870, 7898, 7909, 7663, 7726, 7921, 7930,
1688 
1689  36418,36418, 7937,36418,36418, 3515, 7958, 7966, 7974, 7978,
1690  7990,13066,36418, 7995, 8007,13065, 8011, 8021, 8033, 8038,
1691  0, 8046, 7855, 1559, 3672, 8051,13018, 8061,36418, 8066,
1692  8078, 8082, 0, 2088, 2559, 0, 3669,13074,13072, 3689,
1693  13071, 4632,13023,36418, 0, 8094,36418,36418, 0,36418,
1694  8098,13039,36418, 3520, 0, 0, 0, 0, 8108, 8117,
1695  8125,36418, 8145, 8154, 3521, 8225, 0, 8158,36418, 8186,
1696  8312, 8316, 8166, 8320,36418, 8191,13050, 8325,13028,13044,
1697  13040,12979, 3630,12951, 3166,12967,12949,13012, 8176, 8343,
1698  3493, 8352, 3602, 8403, 8357, 3751,12987, 3723,12955,12956,
1699 
1700  12950,12946, 3586,12938, 2042,12931,12944,12924, 2614,12930,
1701  3607,12924, 3666,12903,12913, 3747,12912, 2386,12921, 8212,
1702  8364, 8372, 8391,12871,12876, 8383, 8419, 0, 8441, 0,
1703  36418, 2762, 8482, 8496, 8511,12907, 8515, 8387, 5332, 5425,
1704  0, 0, 8529,12856,12850,36418, 0, 8436, 8544, 8556,
1705  8568, 8575, 8580, 8562, 8593,12892, 8603,12857, 8395, 8607,
1706  8635, 8653, 8663, 8667, 8671, 8682, 8699, 8712, 8717, 8748,
1707  8753, 8758, 8767, 8763, 8800, 8804, 8808, 8836, 8841, 8845,
1708  8850, 8854, 8889, 8893, 8897, 8908, 8929, 8936, 8943, 8947,
1709  8976, 0, 0, 0,12832,12843, 8598,12876, 8981, 8989,
1710 
1711  8997, 9005, 0, 9013, 9025, 9033, 9045,36418, 9051, 4770,
1712  4857, 0, 5949, 7248, 0, 9061, 8703, 8795, 9111,12857,
1713  9065,12824,12811,12798, 2310,12785,12804,12796, 2402,12780,
1714  0, 8885, 2473, 4683, 9077, 9017,12786, 0,12758,12762,
1715  12752,12742,12757,12755,12750,12755,12737,12723,12735, 9087,
1716  12721,12728, 9091, 9097,36418, 0, 9116, 9104, 3691, 0,
1717  9125,12777, 9110, 9133, 0,12759,36418, 9140,12705, 9151,
1718  9163, 9190, 9198,12749, 9202, 9207, 9159, 3757, 9211,12748,
1719  9228, 9237, 0, 9245, 0, 9253, 9263, 9257, 0, 3803,
1720  9272,12761, 9264, 2497, 4865,12743,36418, 9297, 3760, 4271,
1721 
1722  3701,36418,36418,12759, 2360, 9301, 3766,36418,36418,36418,
1723  36418, 9305, 4189, 9309, 9320,36418,12751, 4730,36418,12747,
1724  12745, 2583,12744, 2742, 0, 3717,12714,36418,36418, 0,
1725  2522,36418, 3151, 4211, 4621,36418, 9324, 0, 0, 0,
1726  0, 0, 0, 9328, 9332, 0, 0,12661,12661, 9336,
1727  12670,12651, 0, 9340,36418,36418,36418,12561,12561,12563,
1728  2375,12603, 2708, 9344, 9349, 9355, 9369, 9373, 9377, 9381,
1729  9392, 9403,12534, 0, 0,12547,12521, 4180,12529,12525,
1730  12516,12585,36418, 4286, 9407, 4307, 0, 4210, 5206, 0,
1731  0,36418, 0, 0, 0, 4252, 9411, 0, 0, 0,
1732 
1733  0, 9415, 9436,12562, 9441, 9445,36418, 0, 4289, 0,
1734  0,12502,12492,12483,12487, 1777,12472,12463,12442,12451,
1735  4302, 192, 1479,12482,12477, 4778, 5317, 4762, 4672, 4631,
1736  4643, 0, 0,12449, 0,12444,12449, 0, 0, 0,
1737  0,12476, 9430,36418, 6523, 7829,36418,36418,36418,36418,
1738  12475,12467,12430, 9454,12412,12392, 9462, 9471, 9479, 9483,
1739  36418, 9487, 4885,36418, 9501, 9519, 9533, 9547, 9551, 9555,
1740  12413,12439, 9559, 9564,12423, 9572,12419, 9578, 9586, 0,
1741  9608, 0, 9616, 9620, 9628, 9632, 9636, 9648,36418,36418,
1742  36418,12387,36418, 0, 9654,12430, 9641, 9664, 4315, 4608,
1743 
1744  3749,12433,12425,12388,12428,12386,36418, 0, 0,12402,
1745  12392,12385,36418,36418,36418,36418,36418,36418,36418,36418,
1746  0,12397, 9649, 0, 0, 0,12396, 9656, 0,12385,
1747  9664, 0,12383, 9668,12376, 9691, 4781,36418, 9695,36418,
1748  4878,12317, 0,12372, 9682, 0, 9706,36418,36418,36418,
1749  9718, 9722, 9726, 0, 0, 0,36418, 0,12373,12331,
1750  0,36418, 0,12293,12300, 4926, 9734, 9738, 0, 0,
1751  0,12290,12279, 5330,12257,12274,12269,12259,12250,12242,
1752  4698, 0, 0,12298, 0, 0, 0, 0, 0,12296,
1753  0, 0, 0, 0,12299,12297, 0, 0, 0,12294,
1754 
1755  12293, 0, 0,12212,12197,12203,12191,12191,12192, 2036,
1756  12204, 9742, 9750, 9759,12204, 9763, 9767, 9783,36418, 9789,
1757  12198, 9795, 9805, 9817, 9829, 9837, 9841, 9846, 9854, 9862,
1758  9868,36418, 9875,36418, 6043, 0, 6723,12225,12186, 9880,
1759  12218, 9888, 9896, 0, 9906, 0, 9914, 9918, 9926, 7875,
1760  4904,12153,12149, 5177, 4753,12148,12142,12146,12207, 5179,
1761  5541, 1475, 5216,12185,12188, 1809, 0, 5364, 5127, 4627,
1762  36418,36418,36418, 2376,12105,12164,12078,12077, 5465,12071,
1763  12073,12072,12063,12037, 9931,10018,12087,12033,11989,36418,
1764  6977, 4633,36418,12011,11975, 5497,11997,11964, 0,36418,
1765 
1766  36418,36418, 6010,11973, 5391, 7373,10105,11976,11943,10119,
1767  9935,10123,36418, 0,11969,11955,11925, 4733, 3784,11981,
1768  9952, 9959, 9980, 9996,10137,10008,10141, 0,10149,10157,
1769  10164,10185,10191,36418, 0, 5476,36418,11993,10210,11933,
1770  10198,10218,11966, 4807,36418, 0, 0,11963, 5973,10224,
1771  10236,10245,10256,10264,10275, 0,11973,10280,11935,11920,
1772  11885,11864,11864,11850,11914,36418,11910,10269, 4825, 4694,
1773  4849, 4758,10318,10336,10304, 4538,11838, 4834,11847,11861,
1774  11825,11821,11836, 2161,11817,11814,11828, 3687, 5160,11813,
1775  11813,11795,11800,11783,11778, 4730,11770,11742,11729, 1054,
1776 
1777  2091,11730,11733,11730,11723,11723,11707,11701,11701,10296,
1778  10313,10331,11699,11691, 0,10364,10403,10420,10344,10398,
1779  10429,10437,11728,11711, 6404, 6952, 7299, 3097, 7889, 7883,
1780  10241, 4124, 0,10452,11672,11665,10465,36418,11722,10469,
1781  10481,10488,10493,10500,10512,10525,10530,36418,10518,10552,
1782  10561,10506,11658,10570,10589,10604,10608,10617,10621,10625,
1783  10636,10653,10657,10666,10671,10699,10708,10713,10717,10729,
1784  10746,10757,10762,10766,10776,10796,10806,10824,10834,10842,
1785  10852,10880,10888,10892,10896,10900,10908,10928,10936,10942,
1786  10946,10956,10974,10985,10989,11653,11640,10993,11021,11027,
1787 
1788  11006,11015,11035,11036,11637,11641,11631,11637,11632,11630,
1789  11610,11593,11600,10325,36418, 0, 6066,36418,11574,10556,
1790  4777,11402,11402,11415,10703,11387,11389,11386,11381,11377,
1791  10813,11389,11377,11349,11053,36418,11391,11069,10750,11073,
1792  11408,36418,11400,11064,11098,36418,11102, 0,36418,11312,
1793  11313,11106,11114,11122,11126,11131, 4912, 4927, 0,11157,
1794  11363,36418,11362,11152,36418, 4956, 5416,11360, 5187, 5453,
1795  11348, 6359,11314,11324,11248,11263,11250,11247,11244,11229,
1796  0, 4174,11178,11195,36418,11135,11210,11209,11217,11165,
1797  36418,36418,11197,11197,11186,11187,36418,11225,11229,11230,
1798 
1799  11224,11214, 5478,36418,11222,11171,11141,11145,11145,11140,
1800  11142,11117,11119,11131,11120,11179,11141,11144, 5499, 6012,
1801  5425, 5389, 6343, 5960,11124,11107,11094,11079,11031,11067,
1802  36418,11055,11224, 8348,11233,10976, 8731,11235,10974,11046,
1803  36418,11247,10996,10993,36418,11252,11267,11276,11281,36418,
1804  0,11290,11298,36418,11034,36418,11033,11292, 5447, 5554,
1805  11013, 5936,11008,36418,11006,10993,36418,10990,11297,10987,
1806  36418,10970,11310,10969,36418,10968,11314,10962,36418,10958,
1807  11318,11322, 6492,10937,10892,10942,36418,10930,11337,10860,
1808  10853,10861,10840,36418,10837,10782,10762,10755,10760,10757,
1809 
1810  0,36418,10800,36418,10790,10789,10775,10767,10750,10669,
1811  10655,10648,10636,10623,10616,10620,10606,10605,11348,11352,
1812  11364,11368,11376,11380,11384,11388,10645,10639,10588, 0,
1813  11394, 4967,10576,10574,10572, 2337, 5943, 2713, 144,10554,
1814  0,11481,10552,10536,36418,10532,10523,10512,10507,10499,
1815  10847,11569, 6421, 7253,10493,10491, 6751,10533,10487,10453,
1816  3603, 4701, 126,36418, 8817,11656,11402, 0, 566, 6506,
1817  741,36418,11406,11411, 0,11439,36418, 843,36418, 6046,
1818  36418,11660,11664,36418,36418, 1014, 1066, 6945,11676,11427,
1819  11690, 1119,11443,11702,11451, 1158,11455, 1114, 1136, 1402,
1820 
1821  1515, 1609, 1696,36418,11450, 1728, 1749,11776,11706, 1731,
1822  1802, 1815, 4806, 1839, 2140, 2194, 2248, 2399, 2410, 2625,
1823  2628, 2679, 2719, 3101, 3144, 3171, 3445, 3540, 3563, 3597,
1824  3610, 3655, 3690, 3731, 3758, 4117, 4147, 5139, 4180, 4305,
1825  4248, 4267, 4586, 4589, 4598, 4642, 4645, 4640, 4647, 4697,
1826  4706, 4723, 5580, 4744, 4758,11735,11749, 4814,11720,11785,
1827  11793,11808,11812,36418,11855,11863, 4859,11861,11886, 4917,
1828  11900,36418, 9538, 5858,36418, 4941,10444,36418,10817, 6374,
1829  5945, 0, 4885, 4894, 0,11904,11916,11928,11935,11947,
1830  11954,11959,11966,11978,11984,11998,12002,12017,12036,12045,
1831 
1832  12050,12056,12064,12084,12152,12092,12096,12101,12112,12185,
1833  12190,12194,12198,12226,12230,12239,12244,12276,12280,12284,
1834  12289,12293,12322,12328,12335,12339,12356,12369,12373,12384,
1835  12401,12418,12422,12450,12454,12458,12462,12470,12498,12502,
1836  4899, 5090,36418,36418, 5096, 5146,11763, 5157, 5163, 5273,
1837  5283,11816, 5303, 5321, 5318, 5310, 5320, 5335,11824, 5348,
1838  5335, 5351, 5418, 5408,11876,36418, 5419, 5435, 5434, 5486,
1839  12343,12140,11972, 6389, 5527,36418,12500, 5477, 0,12491,
1840  12533, 5523, 5545,36418,12520, 5533, 5538, 6419, 5580, 5881,
1841  5894, 5906, 5913, 5935, 5930, 5989,12412,36418,12511, 5947,
1842 
1843  5961, 5968, 5953,12543,36418, 5997,36418, 6002, 5989, 6303,
1844  6005, 6019, 6017, 6294,36418, 0, 6663, 6393, 6784, 6431,
1845  6757, 6855, 6325,36418, 6316, 6331, 6344, 6371,36418,12541,
1846  6388,12552,12567,12571,12581, 6381, 6400,36418,12566, 6390,
1847  36418,36418, 6414, 0, 6426,36418,12579, 6430,36418,12583,
1848  6431,36418,12597, 6455,36418,12601, 6817,36418, 6396, 6480,
1849  36418,12614, 6434, 6424, 6448, 0, 6450, 6459, 6453, 6470,
1850  6459, 8140,36418, 6527, 6528, 6534, 6555, 6495, 6504, 6502,
1851  6528, 6522, 6650, 6523, 6534, 6604,12612, 8130, 6631, 6629,
1852  6629, 6637,36418, 7046, 6691, 6665,36418,12638, 0, 6672,
1853 
1854  0, 6670, 6685, 6681, 6696, 6685, 8427, 6821, 6701,36418,
1855  6704, 6680, 6857, 6879,12665, 7387,12735,12627, 6715, 6797,
1856  6690, 6866,12739,12751, 7103,12756,12765, 0,12777, 0,
1857  12781,12793,12798, 6724, 6720, 6737, 6758, 6816, 6866, 6874,
1858  36418,36418,12867,12824, 6817, 6824, 6822, 6812, 6831, 6845,
1859  6843, 6886, 6867, 6860, 6868, 6895, 6889, 6900,12807, 6891,
1860  6902, 6910, 6904, 6910, 6934, 6934, 6938, 6954, 6943, 6948,
1861  6980, 6970, 6993, 6997, 7001, 7003, 7040, 7012, 7032, 7030,
1862  7036, 7048, 7049, 7042, 7054, 7050, 7052, 7062, 7080,36418,
1863  7084, 7079,12828,12836,12854, 7133, 7139,12840,12893,36418,
1864 
1865  12939,12945, 7161, 7157, 0, 7119,36418,12913,12970,12974,
1866  12992,12996,13014,13018,13037,13041,12953,13060,13068,13073,
1867  13081,13111,13115,13119,13123,13127,36418,13131, 7161, 7158,
1868  13159,13164,36418,13169,13173,13178,13206,13210,13215,13219,
1869  13225,13257,13261,13265,13272,13300,13305,13309,13313,13320,
1870  13341,13348,13353, 7168, 7169,13357,13362,13391,13398,13402,
1871  13409,13438,13442,13447,13451,13455,13486,13490,13497,36418,
1872  7175, 7175, 7181, 7199, 7202, 7203, 7199, 7204, 7214, 7216,
1873  7240,12844,12874, 7241, 7243, 7236, 7260,13507, 7256,12906,
1874  7257,13525,36418,13529,12947, 0, 7319, 7321, 7275,36418,
1875 
1876  13539,13253,36418, 7329, 7335, 7346,36418,13369,13543,36418,
1877  0, 7280, 7294, 7299, 7282, 7300,36418, 7303, 7296, 7293,
1878  7300, 7302, 7301, 7308, 7305, 7317, 7330, 7450, 7505, 7402,
1879  7351, 7401, 7346,36418, 7392, 7396, 7396, 7350,13552, 7416,
1880  7421,36418, 7435, 7438, 7440, 7442, 7451, 7452, 7459, 7466,
1881  7478, 0, 7445, 7494, 7500, 7449, 7446,36418, 7452, 7444,
1882  7469, 7488, 7477, 7477, 7480, 7477, 7498, 7501, 7503, 7505,
1883  7571, 7577, 7578, 7583, 7530,36418, 7518, 7770, 7524, 7527,
1884  7540, 7526, 7535, 7548, 7541, 7538, 7639, 7679, 7549, 7683,
1885  7655, 0, 7592,36418, 7556, 7557, 7571, 7599, 7601, 7621,
1886 
1887  7828, 7663, 7623, 7624, 7631, 7656, 7658, 7660, 7655, 7673,
1888  13566,13570, 0,13583,13596, 7673, 7670, 7751,13600, 7767,
1889  13669,13615, 7784, 7789, 7803, 7821, 7822, 7822, 7828, 7860,
1890  7836, 7848,13604, 7838,13622,13627,13631, 7841, 7858, 7859,
1891  7864, 7881, 7881, 7877, 7876, 7909, 7909, 7904, 7910, 7908,
1892  7912, 7927, 7942, 7928, 7931, 7942, 7945, 7940, 7957, 7967,
1893  13635, 8026, 7968, 7961, 7967, 7955, 7976, 7980,13641,13653,
1894  8014,13682,36418, 7978,13695,13748,13752,13770,13774,13792,
1895  13796,13818,13822,13841,13845,13857,13861,13890,13897,36418,
1896  13901,13905,13909,13918,13937, 7988, 7983,13946,13958,13987,
1897 
1898  13991,13998,14002,14006,14019,14034,14038,14047,14054,14075,
1899  14082,14088,14092,14120,14124,14128,14133,14137,14141, 8007,
1900  7996,14169,14173,14188,14216,14220,14224,14237,14252,14256,
1901  14266,36418,14270,14284,14299,14316,14320, 7997, 8016,13951,
1902  8013, 8012, 8027,14327, 8024, 8024, 8042, 8045,14331,14348,
1903  8034, 8051,14352,14364,14368,36418,14372, 8045, 8053,14389,
1904  14396, 8055,14403,14407, 8106,36418, 8061, 8070, 8060, 8062,
1905  8079, 8066,36418,36418, 8121, 8081, 8083, 8097,36418, 8136,
1906  36418, 8116, 8155, 8309, 8143, 8332, 8145, 8167, 8115, 8173,
1907  8197, 8135, 8446, 8136, 8139, 8153, 8146, 8239, 8263, 8271,
1908 
1909  8261, 8262, 8270, 8275, 8288, 8357, 8358, 8363, 8371, 8303,
1910  8334, 8324, 8338, 8336, 8358, 8341, 8348, 8349, 8361, 8372,
1911  8371, 8379, 8487, 8523,36418, 8388, 0, 8388, 8389, 8394,
1912  8391, 8406, 8447,36418, 8425, 8428, 8423, 8417, 8424, 8426,
1913  8433,14411,14415, 8477,36418,14441, 8438,14445, 8446,14449,
1914  14453,14462,14467, 8441, 8456, 8455, 8459, 8478, 8479, 8481,
1915  8469, 8516, 8483, 8490,14471, 8477,14479, 8483,14483, 8494,
1916  8506,14488, 8506,14493, 8526, 8530,14498, 8509, 8527,14504,
1917  8549, 8555, 8553, 8540, 8541,14510, 8554, 8559, 8547, 8548,
1918  14514,14518, 8564, 8560,14524, 8573, 8550, 8571, 8573, 8585,
1919 
1920  36418, 8568,14546,14558,14565,14570,14577,14590,14595,14602,
1921  14624,14633,14640,14644,14673,14682, 8577, 8575,14686,14690,
1922  14694,14720, 8599, 8584,14725,14729,14733, 8625,14739,14767,
1923  14818,14773,14777,14784,14788,14837,14857,14865,14883,14893,
1924  14911,14921,14925,14929,14939,14957,14971,14986,14990,15003,
1925  8586, 8598, 8620,15018,15022,15034,15050,15054,36418,15066,
1926  15070,15082, 8609, 8605,15086,15098,15114,14550, 8626, 8615,
1927  14628,14654,14850, 8621, 8615,14876, 8617, 8619, 8635,15118,
1928  36418,14975,15038, 8646, 8654,15130,15145, 8659,15149,15153,
1929  8706, 8663, 8665, 8669, 8663, 8729, 8673, 8729, 8672, 8659,
1930 
1931  8665, 8736, 8668, 8754, 8844, 8719, 8955, 0, 8724, 8760,
1932  8697, 8771, 8813, 8724, 8859, 8719, 8721, 8718, 8746, 8738,
1933  8759, 8773, 8772, 8787, 8787, 8801, 8793, 8862, 8868, 8873,
1934  8875, 8806, 8817, 8842, 8840, 8849, 8849, 8838,36418,36418,
1935  8840, 8857, 8856, 8853, 8872, 8872, 8871, 8861, 8886, 8876,
1936  36418, 8898, 8905, 0, 8897, 8907, 8900, 8914, 8904,15160,
1937  15179,15186, 8924,15190,15194,15198, 8924, 8929, 8935, 8932,
1938  8928, 8938,15202, 8948, 8981, 8948, 8954,15210, 8955, 8966,
1939  8963,15214, 8960,15218, 8982, 8975,15231,15235,15239,15243,
1940  15247,15251, 8989,15260, 8990, 8993,15269,15277, 9003, 9005,
1941 
1942  9012,15281,15286, 9004,15290,15295,15299, 9019, 9010,15306,
1943  9021, 9025, 9057,15315,15319,15337,15349,15356,15361,15380,
1944  15386,15368,15374,15406,15410,15414,15423, 9021,15442,15454,
1945  36418,15460, 9026, 9025,15470,15476, 9165, 9041, 9044, 9051,
1946  15480, 9094,15488,15508,15518,15522,15526,15536,15550,15554,
1947  15564,15568,15582,15596,15600,15608,15614,15628,15644,15648,
1948  15656,15660, 9062, 9095,15676,15690,15697,15704,15708,15736,
1949  15740, 9098, 9083,15748,15752,15756,15664, 9091, 9096, 9111,
1950  15768,15784,15789,15801,15805,15815,15819,15823,15830, 9112,
1951  15834,15897,36418, 0, 9120, 9114,15843, 9123, 9187, 0,
1952 
1953  9135,36418, 9134, 9199, 0, 9147, 9177, 0, 9179, 9210,
1954  9160, 9214, 9491,15838, 9145, 9165, 9165, 9170, 9171, 9163,
1955  9179, 9192, 9181, 9257, 9263, 9268, 9269, 9214, 9207, 9213,
1956  9222, 9220,36418,36418,36418, 9225, 9213, 9420, 9313, 9209,
1957  9246, 9248, 9247,36418, 9282, 9274, 9289, 9302, 9293,15847,
1958  15852,15860,15865,15878, 9294, 9305, 9299,15873, 9323, 9320,
1959  15882, 9328, 9343, 9332,15886,15890, 9323, 9330,15927,15931,
1960  9339,15935,15940,15945,15961, 9357,15965,15971, 9365, 9356,
1961  9363,15975, 9366, 9381, 9358, 9371,15983,15991,15995, 9363,
1962  15999,16003, 9396,16011,16017, 9397,16021,16025,16043,16047,
1963 
1964  16062,16067,16088,16092,16100,16106,16110,16138, 9385, 9406,
1965  16144,16148,16152, 9453, 9410, 9401, 9410,36418,16156,16177,
1966  16184,16188,16192,16236,16080,16230,16197,16269,16273,16278,
1967  16283,16311,16325,16205, 9401,16329,16218,16339, 9427, 9426,
1968  16345, 9424, 9428,16357, 9448,16373,16377,16389,16393,16400,
1969  16404,36418,16408,16416,16420,16427,16431,16435,16461, 9479,
1970  9481, 9515, 9485, 9502, 9499, 9489, 9517, 9495, 9554, 9497,
1971  9509,36418, 9455,16439, 9477, 9501, 9565, 0,36418,36418,
1972  0, 9502, 9554, 9558, 9584, 9521, 9587, 9601, 9810,16443,
1973  9519, 9534, 9536, 9541, 9545, 9538, 9557, 9621, 9635, 9637,
1974 
1975  9638,36418, 9584, 9588, 9581,36418,36418,36418, 9822, 9823,
1976  9773, 9591, 9602, 9609, 9609, 9613, 9616, 9625,16455,16447,
1977  16481,16492, 9623, 9654,16496,16504, 9669,16508,16518, 9669,
1978  16522,16526,16531,16535,16539,16547,16554,16559,16563, 9699,
1979  9677, 9679,16571,16575, 9714, 9680,16580,16584,16588,16592,
1980  16596,16601,16608,16614,16621,16626,16633,16638,16642,16646,
1981  16674, 9696,16678,16682,36418, 9772, 9705, 9704, 9716,16686,
1982  16690,16694,16706,36418,16771, 9768, 9770,16722,16726,16858,
1983  16730,16862,16734,16738,16867,16871,16875,16879,16742,36418,
1984  16908,16915,16919, 9730, 9728, 9749, 9744,16923,16790,16930,
1985 
1986  16951,36418,36418,36418, 9787, 9793, 9761, 9758, 9769,16955,
1987  9788, 9884, 9930, 9840,16959, 9847, 9965,36418, 9972,36418,
1988  9792, 9792, 9796, 9791, 9807, 9804, 9887, 9888, 9895, 9897,
1989  9843, 9833, 9843, 9989,36418, 9845, 9855, 9854, 9851, 9874,
1990  9860,16963,16971,16981, 9884,16991,16995,16999,17007,17011,
1991  9884,17015,17020,17024,17031,17035, 9905, 9871,17043,17048,
1992  17052, 9894, 9888, 9914, 9889,17060,17064,17069,17074,17081,
1993  17087,17094, 9894, 9911, 9906,17099, 9909, 9908, 0,17107,
1994  17115,17119,17127,17131,17138,17148,17164,17168,17172,17176,
1995  17180,36418,17185, 9912,17204, 9914, 9929,17213,17221, 9925,
1996 
1997  36418,36418,17225, 9938, 9940, 9928,10110,10128,10001,17229,
1998  17234,10003, 9965,10028,10043,10045,10110,10122,10124,10128,
1999  36418,10074,10070,10076,10074,10093,10094,17242,17248,17252,
2000  10093,17260,17268,10127,10096,17272,17278,10126,10106,10130,
2001  17282,17291,17309,17303,10103,10123,10108,17314,17320,36418,
2002  17337,17343,17349,17353,17372,17381,17386,17390,10113,17358,
2003  36418,17400,10118,17416,17423,10121,10127,10147,10683, 0,
2004  10734, 0,10195,17429,17437,17449,10182,17458,10204,10152,
2005  10149,10227,10228,10235,10237,10173,36418,10181,10171,17462,
2006  17466,10189,10212,17475,10227,10193,10226,17484,17492,17496,
2007 
2008  17501,10209,10208,17515,17520,17528,17536,17548,17554,17568,
2009  36418,10234,17580,17587,36418,36418,10227, 0, 0,10290,
2010  17591,17599,17607,17611,17624,17637,17645,17632,17652,17663,
2011  10291,10235,10305,10307,10317,10325,10257,10265,17615,17679,
2012  10264,10294,17671,17683,10299,10273,17689,10283,10299,17710,
2013  17714,17723,10296,17727,17718,10292,10357,17763,17767,17783,
2014  17771,36418,17791,17799,17810,10346,17818,10361,10300,10377,
2015  10378,10386,10402,36418,10327,17822,17826,10343,10367,17836,
2016  17845,17852,10341,17863,17857,17869,10356,17877,17896,10362,
2017  10414,17905,17913,17921,17925,17937,17945,17953,17957,10415,
2018 
2019  10428,10429,10430,10437,17929,17973,17983,10396,17987,17991,
2020  17999,18003,36418,18013,18017,18024,18035,18042,10385,10437,
2021  18053,18057,18073,10440,10452,10455,10456,10458,18061,18081,
2022  18085,18089,36418,18099,18107,18113,18120,36418,10462,10463,
2023  10473,10474,10480,10482,18128,18132,18136,10444,10457,18148,
2024  18160,10513,10523,36418,36418,18164,18169,10463,18174,18181,
2025  18185,18189,18199,18215,18222,18231,18236,18240,18251,36418,
2026  18256,18270,18274,18281,18285,18292,18298,18307,18315,18322,
2027  18326,18333,18337,18348,18352,18361,18369,18376,18387,18395,
2028  18400,18412,18416,18423,18428,18440,18444,18449,18457,18464,
2029 
2030  18475,18479,18485,18492,18505,18511,18516,18528,18532,18541,
2031  18546,18558,18562,18567,18573,18580,18593,18597,18603,18610,
2032  18623,18629,18634,18646,18650,18659,18664,18676,18680,18685,
2033  18691,18698,18711,18715,18721,18728,18741,18747,18752,18764,
2034  18768,18777,18782,18794,18798,18803,18809,18816,18829,18833,
2035  18839,18846,18859,18865,18870,18882,18886,18895,18900,18912,
2036  18916,18921,18927,18934,18947,18951,18957,18964,18977,18983,
2037  18988,19000,19004,19013,19018,19030,19034,19039,19045,19052,
2038  19065,19069,19075,19082,19095,19101,19106,19118,19122,19131,
2039  19136,19148,19152,19157,19163,19170,19183,19187,19193,19200,
2040 
2041  19213,19219,19224,19236,19240,19249,19254,19266,19270,19275,
2042  19281,19288,19301,19305,19311,19318,19331,19337,19342,19354,
2043  19358,19367,19372,19384,19388,19393,19399,19406,19419,19423,
2044  19429,19436,19449,19455,19460,19472,19476,19485,19490,19502,
2045  19506,19511,19517,19524,19537,19541,19547,19554,19567,19573,
2046  19578,19590,19594,19603,19608,19620,19624,19629,19635,19642,
2047  19655,19659,19665,19672,19685,19691,19696,19708,19712,19721,
2048  19726,19738,19742,19747,19753,19760,19773,19777,19783,19790,
2049  19803,19809,19814,19826,19830,19839,19844,19856,19860,19865,
2050  19871,19878,19891,19895,19901,19908,19921,19927,19932,19944,
2051 
2052  19948,19957,19962,19974,19978,19983,19989,36418,19996,20009,
2053  20013,36418,20089,20122,20155,20188,20221,20254,20287,20320,
2054  20353,20386,20419,20452,20485,20518,20551,20584,20617,20650,
2055  20683,20716,20749,20782,20815,20848,20881,20914,20947,20980,
2056  21013,21046,21079,21112,21145,21178,21211,21244,21277,21310,
2057  21343,21376,21409,21442,21475,21508,21541,21574,21607,21640,
2058  21673,21706,21739,21772,21805,21838,21871,21904,21937,21970,
2059  22003,22036,22069,22102,22135,22168,22201,22234,22267,22300,
2060  22333,22366,22399,22432,22465,10518,22497,22529,22561,22593,
2061  22625,22657,22690,22722,22754,22786,10543,10565,10544,22809,
2062 
2063  22842,10563,10759,10571,10773,10610,10841,22874,10612,22906,
2064  10780,22939,22971,23003,23035,10840,10976,23067,23100,23133,
2065  23165,23197,23229,10618,10853,10663,10919,23262,23295,23328,
2066  10690,23360,23392,23424,23456,23489,23522,23555,10714,23587,
2067  23620,23653,23686,23719,10761,11010,23752,10808,23771,10835,
2068  23803,10854,23835,10856,11161,23868,10929,23896,10980,11184,
2069  23929,11056,11192,23962,11059,23994,24027,11060,24044,11088,
2070  11241,11089,11444,11118,11702,24077,24109,24141,24173,24205,
2071  24237,24269,24301,24334,24367,24400,11119,11724,11122,11999,
2072  24433,24466,24499,24532,24565,24598,24631,24664,24697,24730,
2073 
2074  11123,24763,11758,24796,24829,24862,24895,24928,11124,11265,
2075  12047,11153,12085,11182,11393,12107,11273,12234,24961,24994,
2076  25027,25060,25092,11394,25124,25157,25189,11443,25221,25253,
2077  25285,25317,25349,25381,25414,25447,25480,25512,25544,25576,
2078  25608,25640,11650,25672,25704,25736,25768,25800,25833,25865,
2079  25897,11651,25929,12239,25952,11664,11694,25985,12295,12377,
2080  12415,26017,26049,26081,26113,11737,11800,12856,26146,26179,
2081  26212,26244,26276,11665,26308,26341,26373,26405,11808,12516,
2082  11818,26437,26470,26502,26534,11838,26566,12534,12869,26599,
2083  26632,26665,26698,26731,26763,26795,26827,12895,11891,26859,
2084 
2085  26892,26925,26958,26990,27023,27056,27089,27122,13034,27155,
2086  27174,11892,27206,27238,27270,27302,13173,27335,27363,13214,
2087  27396,13359,27429,27461,27494,27511,27543,13364,13399,13402,
2088  27567,27600,27633,27665,27697,27729,27761,27794,27826,27858,
2089  13404,11912,27890,27923,27956,27989,28022,28055,13446,13642,
2090  28088,28121,28154,28187,28220,28253,28286,28319,28352,28385,
2091  28418,28451,13688,28484,28517,28550,28583,28616,28649,13689,
2092  11920,13701,13711,13852,11922,13955,13854,28682,28715,28748,
2093  28781,28813,28845,28878,28910,28942,28974,29006,29038,29070,
2094  11985,13953,29102,13995,12000,29134,29167,29200,12357,29233,
2095 
2096  29265,14036,29297,29329,29361,29393,14049,29425,29457,29489,
2097  29521,29554,29587,29619,29651,12049,12051,14177,29674,29706,
2098  29738,29770,29802,12057,14180,14274,29835,29867,29899,29932,
2099  29964,29996,30028,30060,30092,30116,30149,14363,12738,30181,
2100  30213,30245,30277,14408,30310,30343,30376,30409,30442,30474,
2101  30506,14507,30538,30571,14637,30604,12096,30623,30655,30687,
2102  30719,12783,30751,30759,30792,30825,30858,30890,30922,14722,
2103  30954,30987,31020,12828,31053,31086,31119,31152,31185,31218,
2104  31251,15443,16284,31284,31317,31349,31381,31413,15153,14750,
2105  31445,31478,31511,12102,31544,31577,14866,31609,14876,31641,
2106 
2107  31673,15703,31696,31728,31760,31792,31824,31856,14922,31888,
2108  31921,31953,31985,32017,32049,32081,32107,32139,32163,32196,
2109  12113,32228,32260,32292,14884,32325,32358,32391,32424,32457,
2110  32489,32522,15081,32555,32574,32606,12114,32623,32656,32689,
2111  32721,32754,32787,12153,32820,32853,32886,32919,32952,32985,
2112  33018,33051,33084,33116,33149,33182,33215,33248,33280,33303,
2113  33335,15112,12180,33367,33399,33431,33463,33495,33518,33544,
2114  33577,33610,33642,33674,33706,15142,33739,33772,33804,33836,
2115  33869,33886,33919,33951,33984,34017,34050,34083,34116,34149,
2116  34181,15243,34213,34245,34277,34309,34332,34364,15312,34397,
2117 
2118  34429,15405,34462,34479,13002,34512,34545,34578,34611,34644,
2119  12866,13024,15471,34677,34710,34743,34776,34809,15697,15778,
2120  34842,34875,34908,34941,34974,35007,35040,35073,35106,35139,
2121  35172,35205,35238,12191,35270,13028,13588,35303,35335,35368,
2122  35401,35434,16099,16145,35467,35499,35531,35564,35597,35630,
2123  35663,35695,35727,35760,35793,35826,35859,35891,35923,35956,
2124  35989,36022,36055,36087,36120,36153,36186,36219,36252,36285,
2125  36318,36351,36384
2126  } ;
2127 
2129  { 0,
2130  4613, 4613, 4614, 4614, 4615, 4615, 4612, 7, 4616, 4616,
2131  4612, 11, 4612, 13, 4612, 15, 4612, 17, 4613, 4613,
2132  4612, 21, 4617, 4617, 4612, 25, 4618, 4618, 4612, 29,
2133  4612, 31, 4619, 4619, 4613, 4613, 4620, 4620, 4621, 4621,
2134  4612, 41, 4622, 4622, 4612, 45, 4612, 47, 4613, 4613,
2135  4613, 4613, 4623, 4623, 4624, 4624, 4625, 4625, 4612, 59,
2136  4626, 4626, 4627, 4627, 4628, 4628, 4629, 4629, 4629, 4629,
2137  4629, 4629, 4612, 73, 4630, 4630, 4613, 4613, 4612, 79,
2138  4631, 4631, 4631, 4631, 4613, 4613, 4632, 4632, 4632, 4632,
2139  4612, 91, 4633, 4633, 4633, 4633, 4634, 4634, 4613, 4613,
2140 
2141  4635, 4635, 4636, 4636, 4613, 4613, 4613, 4613, 4637, 4637,
2142  4613, 4613, 4638, 4638, 4639, 4639, 4640, 4640, 4641, 4641,
2143  4612, 121, 4642, 4642, 4643, 4643, 4644, 4644, 4612, 129,
2144  4612, 131, 4612, 133, 4612, 135, 4645, 4645, 4613, 4613,
2145  4646, 4646, 4612, 143, 4647, 4647, 4612, 147, 4648, 4648,
2146  4612, 151, 4649, 4649, 4612, 155, 4650, 4650, 4613, 4613,
2147  4613, 4613, 4613, 4613, 4612, 165, 4612, 167, 4613, 4613,
2148  4612, 171, 4612, 173, 4651, 4651, 4613, 4613, 4612, 179,
2149  4613, 4613, 4613, 4613, 4612, 185, 4613, 4613, 4652, 4652,
2150  4612, 191, 4653, 4653, 4613, 4613, 4654, 4654, 4655, 4655,
2151 
2152  4656, 4656, 4612, 203, 4612, 205, 4657, 4657, 4657, 4657,
2153  4658, 4658, 4658, 4658, 4659, 4659, 4660, 4660, 4661, 4661,
2154  4662, 4662, 4663, 4663, 4664, 4664, 4612, 227, 4665, 4665,
2155  4666, 4666, 4667, 4667, 4668, 4668, 4669, 4669, 4669, 4669,
2156  4670, 4670, 4655, 4655, 4671, 4671, 4672, 4672, 4673, 4673,
2157  4612, 251, 4674, 4612, 4612, 255, 4675, 4612, 4676, 4676,
2158  4677, 4677, 4678, 4678, 4612, 265, 4612, 267, 4679, 4679,
2159  4612, 271, 4680, 4680, 4681, 4681, 4682, 4682, 4683, 4683,
2160  4684, 4684, 4685, 4685, 4612, 4612, 4612, 4612, 4612, 4612,
2161  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2162 
2163  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4686, 4687, 4612,
2164  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2165  4688, 4689, 4690, 4612, 4612, 4691, 4612, 4692, 4612, 4693,
2166  4612, 4694, 4695, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2167  4612, 4696, 4696, 4696, 4612, 4612, 4612, 4612, 4697, 4612,
2168  4612, 4612, 4612, 4698, 4699, 4700, 4700, 4612, 4701, 4702,
2169  4612, 4703, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2170  4612, 4612, 4612, 4612, 4612, 4612, 4704, 4612, 4612, 4612,
2171  4705, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2172  4612, 4612, 4612, 4706, 4612, 4612, 4707, 4612, 4708, 4612,
2173 
2174  4708, 4709, 4612, 4612, 4612, 4612, 4612, 4710, 4711, 4612,
2175  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2176  4612, 4712, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2177  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2178  4612, 4612, 4612, 4612, 4612, 4713, 4612, 4714, 4612, 4612,
2179  4715, 4612, 4612, 4612, 4612, 4716, 4612, 4612, 4612, 4612,
2180  4612, 4717, 4718, 4718, 4719, 4612, 4718, 4718, 4718, 4718,
2181  4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718, 4718,
2182  4718, 4718, 4718, 4718, 4612, 4720, 4612, 4720, 4720, 4720,
2183  4720, 4612, 4612, 4612, 4721, 4722, 4612, 4723, 4612, 4612,
2184 
2185  4612, 4612, 4724, 4612, 4612, 4612, 4612, 4612, 4725, 4612,
2186  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2187  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2188  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2189  4612, 4612, 542, 4726, 4612, 4612, 4612, 4612, 4727, 4727,
2190  4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4612, 4612,
2191  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2192  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2193  4612, 4612, 4612, 4612, 4612, 4728, 4728, 4612, 4612, 4612,
2194  4729, 4730, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2195 
2196  4731, 4612, 4612, 4732, 4732, 4732, 4612, 4612, 4612, 4612,
2197  4612, 4612, 4612, 4612, 4612, 4612, 4733, 4734, 4612, 4735,
2198  4736, 4736, 4612, 4612, 4612, 4737, 4612, 4612, 4612, 4612,
2199  4612, 4612, 4736, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2200  4612, 4612, 4612, 4612, 4612, 4612, 4738, 4612, 4612, 4612,
2201  4612, 4739, 4612, 4612, 4612, 4740, 4612, 4612, 4612, 4612,
2202  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2203  4612, 4741, 4741, 4741, 4741, 4741, 4612, 4741, 4742, 4612,
2204  4742, 4742, 4742, 4742, 4742, 4612, 4612, 4612, 4612, 4612,
2205  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2206 
2207  4612, 4743, 4612, 4743, 4743, 4743, 4612, 4612, 4744, 4612,
2208  4744, 4744, 4744, 4744, 4612, 4612, 4612, 4612, 4612, 4612,
2209  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2210  4745, 4612, 4746, 4746, 4746, 4612, 4612, 4612, 4612, 4612,
2211  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2212  4747, 4612, 4612, 4747, 4747, 4747, 4612, 4612, 4612, 4747,
2213  4748, 4612, 4749, 4612, 4750, 4751, 4752, 4612, 4753, 4612,
2214  4612, 4754, 4755, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2215  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4756,
2216  4612, 4612, 4612, 4757, 4758, 4612, 4612, 4612, 4612, 4612,
2217 
2218  4612, 4612, 4612, 4612, 4612, 4759, 4612, 4612, 4612, 4612,
2219  4760, 4612, 4761, 4612, 4612, 4761, 4761, 4761, 4762, 4612,
2220  4612, 4612, 4763, 4612, 4764, 4764, 4764, 4764, 4764, 4612,
2221  4764, 4765, 4612, 4612, 4612, 4766, 4767, 4767, 4767, 4767,
2222  4767, 4612, 4612, 4767, 4612, 4612, 4612, 4612, 4612, 4612,
2223  4612, 4612, 4612, 4612, 4612, 4612, 4768, 4612, 4769, 4769,
2224  4769, 4769, 4769, 4769, 4770, 4771, 4612, 4612, 4612, 4612,
2225  4612, 4772, 4773, 4774, 4775, 4612, 4612, 4612, 4612, 4612,
2226  4776, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2227  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2228 
2229  4777, 4777, 4777, 4778, 4612, 4612, 4779, 4779, 4779, 4779,
2230  4612, 4612, 4612, 4612, 4612, 4780, 4612, 4612, 4612, 4612,
2231  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2232  4781, 4612, 4612, 4782, 4612, 4612, 4612, 4783, 4612, 4612,
2233  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4784, 4785, 4612,
2234  4612, 4612, 4612, 4786, 4612, 4612, 4612, 4785, 4785, 4785,
2235  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2236  4612, 4612, 4612, 4787, 4788, 4789, 4612, 4790, 4612, 4612,
2237  4612, 4612, 4612, 4612, 4612, 4791, 4612, 4612, 4612, 4612,
2238  4612, 4612, 4612, 4612, 4612, 4792, 4612, 4612, 4793, 4612,
2239 
2240  4612, 4793, 4794, 4612, 4612, 4793, 4795, 4612, 4612, 4795,
2241  4796, 4612, 4612, 4612, 4797, 4612, 4612, 4797, 4798, 4612,
2242  4612, 4612, 4799, 4612, 4612, 4799, 4800, 4612, 4612, 4612,
2243  4612, 4799, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2244  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2245  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4801, 4802, 4612,
2246  4612, 4803, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2247  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2248  4612, 4804, 4612, 4612, 4804, 4612, 4804, 4805, 4612, 4612,
2249  4806, 4806, 4612, 4612, 4612, 4806, 4806, 4806, 4612, 4612,
2250 
2251  4612, 4807, 4612, 4807, 4807, 4807, 4612, 4807, 4612, 4807,
2252  4612, 4808, 4612, 4808, 4808, 4808, 4808, 4612, 4612, 4612,
2253  4612, 4612, 4612, 4612, 4809, 4810, 4811, 4612, 4612, 4612,
2254  4612, 4612, 4812, 4813, 4814, 4815, 4816, 4612, 4612, 4612,
2255  4612, 4612, 4612, 4817, 4818, 4819, 4819, 4819, 4819, 4819,
2256  4820, 4819, 4821, 4612, 4821, 4821, 4821, 4822, 4821, 4612,
2257  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2258  4612, 4612, 4612, 4612, 4823, 4823, 4612, 4612, 4824, 4612,
2259  4612, 4612, 4825, 4826, 4827, 4827, 4828, 4829, 4830, 4612,
2260  4612, 4612, 4612, 4831, 4612, 4612, 4612, 4612, 4612, 4832,
2261 
2262  4612, 4612, 4833, 4612, 4612, 4612, 4612, 4612, 4834, 4612,
2263  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2264  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2265  4612, 4835, 4835, 4612, 4835, 4835, 4835, 4835, 4836, 4836,
2266  4612, 4836, 4836, 4836, 4612, 4612, 4836, 4612, 4612, 4612,
2267  4836, 4612, 4612, 4836, 4612, 4837, 4612, 4837, 4837, 4612,
2268  4837, 4612, 4612, 4612, 4612, 4837, 4838, 4837, 4612, 4612,
2269  4612, 4612, 4839, 4612, 4612, 4839, 4612, 4612, 4612, 4612,
2270  4612, 4612, 4612, 4612, 4840, 4612, 4612, 4841, 4841, 4842,
2271  4612, 4841, 4843, 4844, 4840, 4840, 4845, 4846, 4843, 4612,
2272 
2273  4612, 4612, 4844, 4612, 4612, 4612, 4847, 4847, 4848, 4612,
2274  4612, 4612, 4612, 4849, 4849, 4612, 4850, 4850, 4851, 4850,
2275  4852, 4853, 4612, 4612, 4612, 4852, 4612, 4612, 4612, 4853,
2276  4853, 4853, 4854, 4612, 4612, 4854, 4855, 4612, 4856, 4855,
2277  4857, 4855, 4858, 4612, 4859, 4612, 4612, 4612, 4859, 4612,
2278  4612, 4612, 4612, 4612, 4860, 4860, 4861, 4861, 4862, 4862,
2279  4862, 4612, 4863, 4863, 4612, 4612, 1366, 4862, 4612, 4863,
2280  4863, 4864, 4865, 4612, 4612, 4612, 4866, 4864, 4612, 4867,
2281  4867, 4868, 4612, 4612, 4612, 4612, 4612, 4869, 4870, 4612,
2282  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4871,
2283 
2284  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2285  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4872,
2286  4872, 4873, 4612, 4612, 4612, 4612, 4872, 4874, 4875, 4876,
2287  4612, 4612, 4877, 4877, 4612, 4612, 4878, 4612, 4612, 4612,
2288  4879, 4880, 4874, 4612, 4612, 4612, 4881, 4882, 4882, 4882,
2289  4882, 4882, 4882, 4612, 4875, 4612, 4875, 4871, 4612, 4875,
2290  4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875,
2291  4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875,
2292  4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875,
2293  4875, 4883, 4883, 4883, 4612, 4612, 4612, 4612, 4884, 4884,
2294 
2295  4885, 4884, 4886, 4887, 4886, 4612, 4887, 4612, 4612, 4612,
2296  4612, 4888, 4612, 4612, 4888, 4612, 4612, 4612, 4612, 4612,
2297  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2298  4889, 4612, 4612, 4612, 4612, 4612, 4612, 4889, 4889, 4889,
2299  4889, 4889, 4889, 4889, 4889, 4889, 4889, 4889, 4889, 4612,
2300  4612, 4612, 4612, 4612, 4612, 4890, 4890, 4612, 4612, 4891,
2301  4891, 4892, 4893, 4612, 4894, 4612, 4612, 4612, 4612, 4895,
2302  4612, 4896, 4895, 4612, 4895, 4895, 4612, 4612, 4612, 4612,
2303  4897, 4897, 4898, 4897, 4899, 4900, 4899, 4900, 4901, 4901,
2304  4612, 4902, 4903, 4612, 4612, 4612, 4612, 4612, 4612, 4901,
2305 
2306  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2307  4612, 4904, 4612, 4612, 4904, 4612, 4612, 4612, 4612, 4612,
2308  4612, 4612, 4612, 4612, 4905, 4905, 4612, 4612, 4612, 4905,
2309  4906, 4612, 4906, 4906, 4906, 4612, 4612, 4907, 4907, 4907,
2310  4908, 4908, 4908, 4612, 4612, 4909, 4909, 4909, 4909, 4612,
2311  4612, 4612, 4910, 4612, 4612, 4612, 4612, 4910, 4910, 4910,
2312  4911, 4912, 4911, 4913, 4612, 4914, 4913, 4915, 4612, 4915,
2313  4916, 4612, 4612, 4917, 4917, 4612, 4612, 4612, 4612, 4612,
2314  4612, 4918, 4612, 4919, 4612, 4919, 4920, 4612, 4612, 4920,
2315  4921, 4612, 4921, 4921, 4922, 4612, 4612, 4922, 4923, 4923,
2316 
2317  4923, 4924, 4612, 4612, 4612, 4924, 4612, 4925, 4612, 4925,
2318  4925, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2319  4612, 4926, 4926, 4612, 4927, 4926, 4926, 4926, 4926, 4926,
2320  4926, 4928, 4928, 4612, 4612, 4612, 4612, 4929, 4929, 4930,
2321  4930, 4931, 4932, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2322  4612, 4933, 4612, 4612, 4612, 4612, 4934, 4934, 4935, 4612,
2323  4612, 4935, 4612, 4612, 4936, 4936, 4936, 4937, 4612, 4937,
2324  4938, 4612, 4612, 4939, 4612, 4612, 4612, 4940, 4940, 4941,
2325  4940, 4942, 4943, 4942, 4943, 4612, 4612, 4612, 4612, 4612,
2326  4612, 4944, 4612, 4945, 4612, 4946, 4947, 4612, 4612, 4612,
2327 
2328  4612, 4945, 4948, 4945, 4612, 4612, 4612, 4949, 4949, 4950,
2329  4950, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2330  4951, 4952, 4953, 4951, 4951, 4954, 4955, 4956, 4957, 4958,
2331  4959, 4960, 4961, 4962, 4612, 4960, 4612, 4612, 4612, 4612,
2332  4612, 4612, 4963, 4964, 4965, 4963, 4612, 4612, 4612, 4612,
2333  4612, 4612, 4612, 4966, 4966, 4966, 4612, 4967, 4967, 4967,
2334  4968, 4612, 4968, 4612, 4612, 4968, 4612, 4612, 4969, 4969,
2335  4969, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2336  4612, 4970, 4971, 4972, 4970, 4973, 4973, 4974, 4975, 4976,
2337  4974, 4977, 4977, 4978, 4979, 4979, 4978, 4978, 4980, 4981,
2338 
2339  4981, 4980, 4980, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2340  4612, 4982, 4982, 4983, 4984, 4985, 4612, 4612, 4612, 4985,
2341  4984, 4612, 4986, 4986, 4987, 4988, 4989, 4987, 4987, 4990,
2342  4612, 4612, 4989, 4612, 4612, 4991, 4612, 4992, 4612, 4612,
2343  4612, 4993, 4993, 4994, 4993, 4995, 4996, 4995, 4996, 4612,
2344  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4997, 4612,
2345  4997, 4997, 4612, 4612, 4997, 4997, 4998, 4998, 4998, 4612,
2346  4612, 4612, 4612, 4998, 4998, 4999, 4612, 4612, 4612, 4612,
2347  4612, 4612, 4612, 4612, 4998, 4612, 4612, 4998, 4612, 4612,
2348  4612, 1986, 4612, 4612, 4612, 4612, 4998, 4612, 5000, 4612,
2349 
2350  4612, 4612, 4612, 4612, 4612, 5000, 5001, 5000, 4612, 4612,
2351  4612, 5001, 4612, 5002, 4612, 5000, 4612, 4612, 4612, 4612,
2352  4612, 5003, 5004, 4612, 5005, 5006, 5006, 5007, 5008, 5009,
2353  4612, 5010, 5011, 4612, 5012, 4612, 4612, 5013, 5014, 4612,
2354  5015, 5015, 4612, 4612, 4612, 5016, 5017, 5018, 5019, 5020,
2355  5021, 5021, 5022, 5022, 5023, 5024, 5025, 5022, 5026, 4612,
2356  4612, 4612, 4612, 4612, 5027, 4612, 4612, 4612, 4612, 4612,
2357  4612, 4612, 4612, 4612, 5028, 4612, 4612, 4612, 4612, 4612,
2358  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2359  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2360 
2361  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2362  5029, 4612, 4612, 4612, 5030, 4612, 5031, 5032, 4612, 4612,
2363  5033, 5034, 4612, 5035, 4612, 4612, 5036, 4612, 4612, 4612,
2364  5037, 4612, 5038, 5028, 4612, 4612, 4612, 4612, 5039, 5040,
2365  5040, 5040, 5040, 5040, 5040, 5040, 5040, 4612, 5041, 5041,
2366  5041, 4612, 4612, 5041, 5041, 5041, 5041, 5041, 5041, 5041,
2367  5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041,
2368  5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041,
2369  5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041,
2370  5041, 5041, 5041, 5041, 5041, 4612, 4612, 4612, 5042, 5043,
2371 
2372  4612, 5036, 4612, 5037, 4612, 4612, 4612, 4612, 4612, 4612,
2373  4612, 4612, 4612, 4612, 4612, 5036, 4612, 4612, 5037, 4612,
2374  4612, 5044, 5044, 5044, 5044, 5044, 5044, 5044, 5044, 5044,
2375  5044, 5044, 4612, 4612, 4612, 4612, 5045, 5046, 4612, 5047,
2376  5048, 4612, 4612, 4612, 4612, 4612, 4612, 5049, 4612, 4612,
2377  4612, 5050, 5050, 5051, 5051, 5051, 4612, 4612, 5052, 5053,
2378  5054, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2379  4612, 4612, 4612, 4612, 5055, 5055, 4612, 5056, 5056, 5056,
2380  5057, 5058, 5059, 5059, 4612, 5060, 4612, 5061, 5061, 4612,
2381  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2382 
2383  5036, 4612, 5037, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2384  4612, 4612, 4612, 4612, 4612, 5062, 5063, 4612, 5064, 5064,
2385  5064, 5064, 5064, 5064, 4612, 4612, 4612, 4612, 4612, 5065,
2386  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5066,
2387  4612, 4612, 5067, 4612, 4612, 5068, 5068, 4612, 5069, 4612,
2388  5070, 5071, 4612, 4612, 5072, 4612, 4612, 4612, 4612, 4612,
2389  4612, 4612, 5073, 4612, 5074, 5075, 4612, 4612, 4612, 5076,
2390  4612, 4612, 4612, 5077, 4612, 4612, 4612, 5078, 4612, 4612,
2391  4612, 5079, 4612, 4612, 4612, 5080, 4612, 4612, 4612, 4612,
2392  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2393 
2394  5081, 4612, 5082, 4612, 5083, 5084, 5084, 5085, 5085, 4612,
2395  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5086, 4612,
2396  4612, 4612, 5087, 4612, 4612, 5088, 5089, 4612, 4612, 5090,
2397  5091, 4612, 4612, 4612, 4612, 5092, 4612, 5092, 5093, 5093,
2398  5094, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2399  5093, 4612, 4612, 4612, 4612, 4612, 4612, 5095, 5093, 4612,
2400  4612, 4612, 4612, 4612, 5096, 4612, 4612, 5097, 4612, 5096,
2401  4612, 4612, 4612, 5098, 5099, 5100, 4612, 4612, 4612, 4612,
2402  4612, 5101, 5101, 4612, 4612, 5102, 4612, 5103, 5104, 5105,
2403  5104, 4612, 5106, 5107, 5108, 5109, 5110, 4612, 4612, 4612,
2404 
2405  4612, 4612, 5111, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2406  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2407  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2408  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2409  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2410  4612, 4612, 4612, 4612, 4612, 5112, 5112, 4612, 5113, 5114,
2411  5114, 5115, 4612, 4612, 5116, 5116, 4612, 5117, 5114, 5118,
2412  4612, 4612, 4612, 4612, 4612, 5119, 4612, 4612, 4612, 4612,
2413  4612, 5120, 4612, 4612, 5121, 5122, 5123, 5123, 5123, 5123,
2414  5123, 5123, 5123, 5123, 5124, 5124, 5124, 5124, 5124, 5124,
2415 
2416  5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124,
2417  5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124,
2418  5124, 5124, 5124, 5124, 5124, 5124, 4612, 5124, 5124, 5124,
2419  5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124, 5124,
2420  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2421  4612, 4612, 4612, 4612, 4612, 5125, 5125, 5125, 4612, 5125,
2422  5125, 5125, 5125, 5125, 4612, 4612, 5125, 4612, 4612, 5126,
2423  4612, 5127, 4612, 5128, 5129, 4612, 4612, 4612, 5130, 5131,
2424  5131, 4612, 5132, 4612, 4612, 4612, 4612, 4612, 4612, 5133,
2425  5133, 4612, 5134, 5134, 5134, 5135, 5136, 4612, 4612, 4612,
2426 
2427  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2428  4612, 4612, 4612, 4612, 4612, 5137, 5138, 5138, 5138, 5138,
2429  5138, 5138, 4612, 4612, 4612, 4612, 4612, 5139, 4612, 4612,
2430  5140, 4612, 4612, 4612, 5141, 4612, 5142, 4612, 4612, 4612,
2431  4612, 4612, 5143, 5144, 5145, 4612, 4612, 5146, 4612, 4612,
2432  5147, 4612, 4612, 5148, 4612, 4612, 5149, 4612, 4612, 5150,
2433  4612, 4612, 4612, 4612, 4612, 5151, 4612, 4612, 4612, 4612,
2434  4612, 4612, 4612, 5152, 5152, 5153, 5153, 4612, 4612, 4612,
2435  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5154, 4612, 4612,
2436  4612, 4612, 4612, 5155, 5156, 5156, 4612, 4612, 2798, 4612,
2437 
2438  5157, 4612, 4612, 4612, 4612, 4612, 5156, 4612, 4612, 4612,
2439  5156, 4612, 4612, 4612, 4612, 5158, 4612, 4612, 4612, 5158,
2440  4612, 4612, 5159, 5159, 5160, 5161, 5161, 5162, 4612, 5163,
2441  5163, 5164, 5165, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2442  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2443  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2444  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2445  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2446  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2447  4612, 4612, 5166, 4612, 5167, 4612, 5168, 4612, 5169, 4612,
2448 
2449  5170, 5170, 5171, 4612, 5172, 4612, 4612, 5173, 5174, 5174,
2450  5174, 5174, 5174, 5174, 5174, 5174, 5175, 5175, 5175, 5175,
2451  5175, 5175, 5175, 5175, 5175, 5175, 4612, 4612, 4612, 4612,
2452  5175, 4612, 4612, 5175, 5175, 5175, 5175, 5175, 5175, 5175,
2453  5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175,
2454  5175, 5175, 5175, 4612, 4612, 5175, 5175, 5175, 5175, 5175,
2455  5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175, 4612,
2456  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2457  5176, 5176, 5176, 5176, 5176, 5176, 5176, 5176, 5176, 4612,
2458  4612, 4612, 4612, 5177, 4612, 5178, 4612, 4612, 4612, 4612,
2459 
2460  5179, 5179, 4612, 4612, 4612, 4612, 4612, 5180, 5180, 4612,
2461  5181, 5181, 5181, 5181, 4612, 4612, 4612, 4612, 4612, 4612,
2462  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5182, 5182, 5182,
2463  4612, 4612, 4612, 4612, 4612, 4612, 5183, 4612, 5184, 4612,
2464  4612, 4612, 5185, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2465  4612, 5186, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2466  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2467  5187, 5187, 5188, 5188, 4612, 4612, 4612, 4612, 4612, 4612,
2468  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5189,
2469  4612, 5190, 5190, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2470 
2471  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2472  5191, 5191, 5192, 5193, 5194, 4612, 4612, 4612, 4612, 4612,
2473  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2474  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2475  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2476  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2477  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5195, 5195,
2478  5196, 4612, 4612, 4612, 5197, 5197, 5197, 5197, 5197, 5197,
2479  5197, 5197, 5197, 5198, 5198, 5198, 5198, 5198, 4612, 4612,
2480  5198, 4612, 5198, 5198, 5198, 4612, 4612, 4612, 5198, 5198,
2481 
2482  5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198,
2483  5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 4612,
2484  4612, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198,
2485  4612, 4612, 4612, 4612, 5198, 5198, 5198, 4612, 4612, 4612,
2486  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5199, 4612, 4612,
2487  5199, 5199, 5199, 5199, 4612, 4612, 5199, 5199, 4612, 5200,
2488  4612, 4612, 5201, 5201, 4612, 4612, 5202, 5203, 5203, 5203,
2489  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2490  4612, 4612, 5204, 5204, 4612, 5205, 4612, 5206, 4612, 5207,
2491  5208, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2492 
2493  4612, 4612, 4612, 4612, 4612, 5209, 5209, 5210, 5210, 4612,
2494  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2495  4612, 4612, 4612, 4612, 4612, 4612, 5190, 4612, 4612, 4612,
2496  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2497  4612, 5191, 4612, 4612, 4612, 5194, 4612, 4612, 4612, 4612,
2498  4612, 3121, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2499  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2500  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2501  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2502  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2503 
2504  4612, 4612, 5197, 5197, 5197, 5197, 5197, 5197, 5197, 5197,
2505  5198, 5198, 5198, 5198, 5198, 5198, 4612, 4612, 5198, 4612,
2506  4612, 5198, 4612, 4612, 5198, 5198, 4612, 4612, 4612, 5198,
2507  5198, 5198, 4612, 5198, 5198, 4612, 4612, 5198, 5198, 4612,
2508  5198, 5198, 5198, 5198, 5198, 4612, 4612, 5198, 5198, 5198,
2509  4612, 4612, 3431, 5198, 5198, 5198, 4612, 4612, 4612, 5198,
2510  5198, 5198, 4612, 4612, 5198, 5198, 5198, 4612, 4612, 4612,
2511  4612, 4612, 4612, 4612, 4612, 4612, 5199, 5199, 5199, 4612,
2512  4612, 4612, 4612, 5199, 4612, 5200, 4612, 4612, 5201, 5201,
2513  4612, 5202, 5203, 5203, 5203, 4612, 4612, 5211, 4612, 4612,
2514 
2515  4612, 5212, 4612, 5204, 5204, 4612, 5205, 5213, 4612, 5214,
2516  4612, 5215, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2517  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5216, 5216, 5217,
2518  5217, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2519  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2520  4612, 4612, 4612, 5218, 4612, 4612, 4612, 4612, 4612, 5194,
2521  4612, 4612, 4612, 4612, 3121, 4612, 4612, 4612, 4612, 4612,
2522  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2523  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2524  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2525 
2526  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2527  4612, 4612, 4612, 5197, 5197, 5197, 5197, 5197, 5197, 4612,
2528  5197, 5198, 5198, 5198, 5198, 5198, 4612, 4612, 5198, 4612,
2529  4612, 5198, 4612, 4612, 5198, 5198, 4612, 4612, 4612, 4612,
2530  4612, 4612, 5198, 5198, 5198, 5198, 4612, 4612, 4612, 4612,
2531  5198, 4612, 4612, 5198, 5198, 5198, 5198, 5198, 4612, 5198,
2532  5198, 5198, 4612, 4612, 5198, 4612, 4612, 4612, 5198, 4612,
2533  5198, 4612, 4612, 5198, 4612, 5198, 4612, 4612, 4612, 4612,
2534  4612, 4612, 5199, 5199, 5199, 5199, 4612, 5200, 4612, 4612,
2535  5201, 5201, 4612, 5203, 5203, 5203, 4612, 4612, 5211, 5219,
2536 
2537  4612, 4612, 4612, 5212, 5220, 4612, 4612, 5213, 4612, 5221,
2538  4612, 5222, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2539  4612, 4612, 4612, 5223, 5223, 5224, 5224, 4612, 4612, 4612,
2540  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2541  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5194,
2542  4612, 4612, 3121, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2543  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2544  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2545  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2546  4612, 4612, 4612, 4612, 4612, 4612, 5197, 5197, 5197, 4612,
2547 
2548  5197, 5197, 5197, 5198, 5198, 4612, 5198, 5198, 4612, 4612,
2549  5198, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5198, 4612,
2550  5198, 4612, 4612, 5198, 4612, 5198, 5198, 5198, 4612, 5198,
2551  5198, 5198, 5198, 4612, 4612, 5198, 4612, 5198, 4612, 4612,
2552  4612, 4612, 4612, 5198, 4612, 4612, 4612, 4612, 4612, 4612,
2553  4612, 4612, 4612, 4612, 5200, 4612, 4612, 5201, 4612, 4612,
2554  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2555  4612, 4612, 5203, 4612, 4612, 4612, 4612, 5219, 4612, 4612,
2556  5220, 4612, 4612, 4612, 5225, 4612, 5226, 4612, 4612, 4612,
2557  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5227, 5227, 5228,
2558 
2559  5228, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2560  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5194, 4612,
2561  3121, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2562  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5229, 4612,
2563  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2564  5197, 5197, 4612, 5197, 4612, 4612, 5198, 5198, 4612, 5198,
2565  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5198,
2566  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5198, 5198, 5198,
2567  5198, 4612, 4612, 5198, 5198, 5198, 5198, 4612, 4612, 4612,
2568  4612, 5198, 4612, 4612, 4612, 4612, 4612, 5200, 4612, 4612,
2569 
2570  4612, 4612, 4612, 4612, 4612, 4612, 5203, 4612, 4612, 4612,
2571  4612, 4612, 4612, 5230, 4612, 5231, 4612, 4612, 4612, 4612,
2572  4612, 4612, 4612, 4612, 4612, 4612, 5232, 5232, 5233, 5233,
2573  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2574  4612, 5194, 3121, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2575  4612, 4612, 4612, 4612, 4612, 5229, 4612, 4612, 4612, 4612,
2576  4612, 4612, 4612, 4612, 4612, 4612, 4612, 5197, 4612, 4612,
2577  5198, 4612, 4612, 4612, 4612, 5198, 4612, 4612, 5234, 5235,
2578  5235, 5198, 5198, 4612, 4612, 4612, 5198, 5198, 5198, 5198,
2579  4612, 4612, 5198, 4612, 4612, 4612, 4612, 5200, 4612, 5203,
2580 
2581  4612, 4612, 4612, 4612, 4612, 4612, 5236, 5237, 5238, 4612,
2582  5239, 5240, 4612, 4612, 4612, 4612, 5241, 5241, 5242, 5242,
2583  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 3121, 4612,
2584  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2585  4612, 5197, 5198, 4612, 4612, 4612, 4612, 4612, 5235, 4612,
2586  5198, 5198, 4612, 5198, 5198, 5198, 4612, 4612, 4612, 4612,
2587  4612, 4612, 4612, 5200, 4612, 4612, 4612, 4612, 5236, 5243,
2588  5237, 5244, 5245, 5239, 5246, 5239, 4612, 5247, 5248, 4612,
2589  4612, 5249, 5249, 5250, 5250, 4612, 4612, 4612, 4612, 3121,
2590  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 5197,
2591 
2592  4612, 4612, 4612, 5198, 4612, 4612, 5198, 5198, 4612, 4612,
2593  4612, 4612, 5200, 4612, 4612, 4612, 4612, 5243, 5244, 5251,
2594  5246, 5246, 5252, 4612, 5239, 5239, 4612, 4612, 5253, 5247,
2595  5254, 4612, 5255, 5255, 5256, 5256, 4612, 4612, 3121, 4612,
2596  4612, 4612, 4612, 4612, 4612, 4612, 5197, 4612, 4612, 4612,
2597  5198, 5198, 4612, 5200, 4612, 4612, 5257, 4612, 5252, 5239,
2598  4612, 4612, 5253, 5258, 5253, 4612, 5259, 5260, 4612, 5261,
2599  5261, 5262, 5262, 4612, 4612, 3121, 4612, 4612, 4612, 4612,
2600  5197, 4612, 4612, 5198, 4612, 4612, 4612, 5200, 4612, 4612,
2601  5263, 5258, 5258, 5264, 4612, 5253, 5253, 4612, 5259, 5265,
2602 
2603  5266, 5266, 5267, 5267, 3121, 4612, 4612, 4612, 4612, 4612,
2604  4612, 4612, 4612, 4612, 4612, 4612, 5200, 4612, 4612, 5268,
2605  4612, 5264, 5253, 5269, 5270, 5270, 5271, 5271, 3121, 4612,
2606  4612, 4612, 4612, 4612, 4612, 5200, 4612, 4612, 5272, 5273,
2607  4612, 4612, 4612, 4612, 3121, 4612, 4612, 4612, 4612, 5200,
2608  4612, 4612, 4612, 4612, 4612, 3121, 4612, 4612, 5200, 4612,
2609  3121, 4612, 4612, 5200, 4612, 3121, 4612, 4612, 4612, 4612,
2610  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2611  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2612  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2613 
2614  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2615  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2616  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2617  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2618  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2619  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2620  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2621  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2622  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2623  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2624 
2625  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2626  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2627  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2628  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2629  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2630  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2631  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2632  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2633  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2634  5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612,
2635 
2636  3121, 4612, 5200, 4612, 3121, 4612, 5200, 4612, 3121, 4612,
2637  5200, 0, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2638  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2639  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2640  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2641  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2642  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2643  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2644  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2645  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2646 
2647  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2648  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2649  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2650  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2651  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2652  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2653  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2654  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2655  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2656  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2657 
2658  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2659  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2660  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2661  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2662  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2663  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2664  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2665  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2666  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2667  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2668 
2669  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2670  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2671  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2672  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2673  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2674  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2675  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2676  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2677  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2678  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2679 
2680  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2681  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2682  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2683  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2684  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2685  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2686  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2687  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2688  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2689  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2690 
2691  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2692  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2693  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2694  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2695  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2696  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2697  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2698  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2699  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2700  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2701 
2702  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2703  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2704  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2705  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2706  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2707  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2708  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
2709  4612, 4612, 4612
2710  } ;
2711 
2712 static yyconst flex_int16_t yy_nxt[36507] =
2713  { 0,
2714  4612, 4612, 287, 4612, 287, 4612, 288, 289, 288, 289,
2715  4612, 290, 4612, 290, 1277, 1277, 1277, 1277, 294, 291,
2716  294, 291, 295, 296, 295, 296, 1270, 297, 298, 297,
2717  298, 1271, 1278, 2326, 301, 299, 1270, 299, 302, 303,
2718  4612, 1271, 1270, 304, 305, 306, 1432, 1271, 2327, 1279,
2719  1432, 307, 301, 292, 1280, 292, 302, 303, 1281, 1282,
2720  1324, 304, 305, 306, 1306, 1325, 1724, 1306, 1725, 307,
2721  286, 286, 287, 286, 286, 286, 288, 289, 308, 286,
2722  286, 290, 286, 286, 286, 286, 286, 286, 286, 291,
2723  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
2724 
2725  286, 286, 286, 309, 309, 309, 309, 309, 309, 309,
2726  309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
2727  309, 309, 309, 286, 286, 286, 286, 309, 286, 309,
2728  309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
2729  309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
2730  309, 309, 309, 286, 286, 286, 286, 309, 311, 312,
2731  311, 311, 1334, 313, 314, 1604, 1605, 1335, 315, 311,
2732  312, 311, 311, 287, 313, 314, 316, 364, 365, 315,
2733  1270, 2795, 366, 367, 368, 1271, 1354, 316, 2815, 1354,
2734  369, 287, 1430, 287, 1431, 428, 429, 364, 365, 370,
2735 
2736  430, 371, 366, 367, 368, 431, 1274, 2795, 432, 1274,
2737  369, 317, 1323, 1323, 1323, 1323, 433, 1275, 1724, 370,
2738  1725, 371, 317, 286, 318, 319, 320, 318, 321, 288,
2739  289, 322, 286, 286, 290, 286, 286, 286, 286, 286,
2740  286, 323, 291, 286, 286, 286, 286, 286, 286, 324,
2741  325, 286, 286, 286, 286, 286, 326, 326, 326, 326,
2742  326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
2743  326, 326, 326, 326, 326, 326, 286, 286, 286, 286,
2744  326, 286, 326, 326, 326, 326, 326, 326, 326, 326,
2745  326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
2746 
2747  326, 326, 326, 326, 326, 326, 327, 286, 286, 328,
2748  326, 286, 329, 330, 331, 329, 332, 288, 289, 333,
2749  286, 334, 290, 335, 286, 334, 336, 337, 336, 286,
2750  338, 286, 286, 286, 286, 286, 286, 339, 334, 340,
2751  334, 286, 286, 341, 342, 342, 342, 342, 342, 342,
2752  342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
2753  342, 342, 342, 342, 335, 286, 286, 286, 342, 286,
2754  343, 342, 342, 342, 342, 342, 342, 342, 342, 342,
2755  342, 342, 342, 342, 342, 342, 342, 344, 342, 342,
2756  342, 342, 342, 342, 327, 286, 286, 332, 342, 345,
2757 
2758  345, 346, 345, 345, 345, 347, 348, 349, 345, 345,
2759  350, 345, 345, 345, 345, 345, 345, 345, 351, 345,
2760  345, 345, 345, 345, 345, 352, 353, 345, 345, 345,
2761  345, 345, 354, 354, 354, 354, 354, 354, 354, 354,
2762  354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
2763  354, 354, 345, 345, 345, 345, 354, 345, 354, 354,
2764  354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
2765  354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
2766  354, 354, 345, 345, 345, 345, 354, 345, 345, 346,
2767  345, 345, 345, 347, 348, 355, 345, 345, 350, 345,
2768 
2769  345, 345, 345, 345, 345, 345, 351, 345, 345, 345,
2770  345, 345, 345, 345, 353, 345, 345, 345, 345, 345,
2771  356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
2772  356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
2773  345, 345, 345, 345, 356, 345, 356, 356, 356, 356,
2774  356, 356, 356, 356, 356, 356, 356, 356, 356, 356,
2775  356, 356, 356, 356, 356, 356, 356, 357, 356, 356,
2776  358, 345, 345, 345, 356, 287, 1542, 287, 1270, 288,
2777  289, 288, 289, 1271, 290, 1543, 290, 1284, 1284, 1284,
2778  1284, 287, 291, 487, 291, 428, 429, 488, 489, 1679,
2779 
2780  430, 1338, 490, 1680, 1285, 431, 1270, 1339, 432, 1270,
2781  491, 1271, 1286, 1444, 1271, 1383, 433, 1341, 1383, 492,
2782  1288, 1288, 1288, 1288, 2819, 1445, 359, 1289, 359, 286,
2783  286, 287, 286, 286, 286, 288, 289, 360, 286, 286,
2784  290, 286, 361, 286, 286, 286, 286, 286, 291, 286,
2785  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
2786  286, 286, 362, 362, 362, 362, 362, 362, 362, 362,
2787  362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
2788  362, 362, 286, 286, 286, 286, 362, 286, 362, 362,
2789  362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
2790 
2791  362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
2792  362, 362, 286, 286, 286, 286, 362, 372, 373, 374,
2793  372, 373, 372, 375, 376, 377, 372, 372, 378, 372,
2794  372, 372, 372, 372, 372, 372, 379, 372, 372, 372,
2795  372, 372, 372, 372, 380, 372, 372, 372, 372, 372,
2796  381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
2797  381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
2798  382, 372, 372, 372, 381, 372, 381, 381, 381, 381,
2799  381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
2800  381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
2801 
2802  383, 372, 372, 372, 381, 287, 1547, 287, 1270, 385,
2803  386, 385, 386, 1271, 387, 1548, 387, 1314, 1314, 1315,
2804  1314, 487, 388, 1270, 388, 488, 489, 2821, 1271, 1717,
2805  490, 501, 500, 501, 501, 287, 288, 289, 491, 528,
2806  529, 290, 1316, 1718, 530, 531, 532, 492, 1385, 511,
2807  1270, 1386, 533, 1561, 1439, 1271, 1561, 2822, 389, 1440,
2808  389, 390, 390, 391, 390, 390, 390, 392, 393, 394,
2809  390, 390, 395, 390, 390, 390, 390, 390, 390, 390,
2810  396, 390, 390, 390, 390, 390, 390, 390, 390, 390,
2811  390, 390, 390, 390, 397, 397, 397, 397, 397, 397,
2812 
2813  397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
2814  397, 397, 397, 397, 390, 390, 390, 390, 397, 390,
2815  397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
2816  397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
2817  397, 397, 397, 397, 398, 390, 390, 390, 397, 286,
2818  399, 400, 401, 399, 286, 288, 289, 402, 286, 286,
2819  290, 286, 286, 286, 336, 403, 336, 286, 338, 286,
2820  286, 286, 286, 286, 286, 404, 405, 406, 286, 407,
2821  286, 341, 408, 408, 408, 408, 408, 408, 408, 408,
2822  408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2823 
2824  408, 408, 286, 409, 286, 286, 408, 286, 408, 408,
2825  408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2826  408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
2827  408, 408, 410, 286, 286, 286, 408, 412, 413, 412,
2828  412, 1493, 414, 415, 2487, 1495, 1494, 416, 412, 413,
2829  412, 412, 1513, 414, 415, 417, 1279, 1514, 416, 287,
2830  1270, 1280, 1270, 421, 289, 1271, 417, 1271, 422, 423,
2831  1270, 1621, 1622, 424, 1533, 1271, 291, 287, 1338, 1534,
2832  1270, 421, 289, 1338, 425, 1271, 422, 423, 1533, 1339,
2833  1496, 424, 1270, 1534, 291, 1591, 435, 1271, 1591, 1341,
2834 
2835  436, 437, 425, 418, 1632, 438, 1567, 287, 2020, 419,
2836  439, 288, 289, 440, 418, 420, 290, 2020, 435, 2542,
2837  419, 441, 436, 437, 291, 2543, 420, 438, 501, 500,
2838  501, 501, 439, 288, 289, 440, 1423, 1342, 290, 1423,
2839  426, 1591, 1564, 441, 1591, 2831, 511, 1565, 1270, 518,
2840  519, 518, 518, 1271, 520, 521, 1633, 1594, 426, 522,
2841  523, 524, 1595, 1569, 525, 1623, 1624, 526, 518, 519,
2842  518, 518, 1696, 520, 521, 1696, 1377, 442, 522, 523,
2843  524, 1590, 1600, 525, 1590, 1600, 526, 1559, 1601, 2834,
2844  639, 1307, 1307, 1307, 1307, 2835, 1424, 1425, 1308, 442,
2845 
2846  286, 443, 444, 445, 443, 446, 288, 447, 448, 449,
2847  450, 290, 451, 286, 450, 452, 453, 452, 454, 455,
2848  456, 456, 456, 456, 456, 456, 457, 458, 459, 460,
2849  286, 461, 462, 463, 463, 463, 463, 463, 463, 463,
2850  463, 463, 463, 463, 463, 463, 464, 463, 463, 463,
2851  463, 463, 463, 465, 286, 286, 466, 467, 286, 468,
2852  463, 469, 470, 471, 472, 473, 463, 474, 475, 476,
2853  477, 478, 463, 479, 463, 480, 481, 482, 483, 484,
2854  463, 463, 463, 485, 286, 286, 446, 463, 286, 493,
2855  494, 493, 493, 495, 288, 289, 496, 286, 286, 290,
2856 
2857  286, 286, 286, 286, 286, 286, 286, 291, 286, 286,
2858  286, 286, 286, 286, 497, 286, 286, 286, 286, 286,
2859  286, 498, 498, 498, 498, 498, 498, 498, 498, 498,
2860  498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
2861  498, 286, 286, 286, 286, 498, 286, 498, 498, 498,
2862  498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
2863  498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
2864  498, 286, 286, 286, 495, 498, 286, 499, 500, 501,
2865  499, 286, 288, 502, 503, 286, 286, 290, 504, 286,
2866  286, 286, 505, 286, 286, 506, 286, 286, 286, 286,
2867 
2868  286, 286, 286, 507, 286, 508, 286, 286, 286, 509,
2869  509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
2870  509, 509, 509, 509, 509, 509, 509, 509, 509, 510,
2871  286, 286, 286, 509, 286, 509, 509, 509, 509, 509,
2872  509, 509, 509, 509, 509, 509, 509, 509, 509, 509,
2873  509, 509, 509, 509, 509, 509, 509, 509, 509, 286,
2874  286, 286, 286, 509, 287, 2836, 287, 1602, 288, 512,
2875  288, 512, 1603, 290, 513, 290, 513, 1960, 514, 1511,
2876  514, 291, 1511, 291, 1438, 1438, 1438, 1438, 515, 516,
2877  515, 516, 287, 1609, 2436, 535, 528, 529, 1610, 536,
2878 
2879  537, 530, 531, 532, 538, 1724, 535, 1725, 1594, 533,
2880  536, 537, 539, 1613, 1617, 538, 1724, 571, 1725, 1618,
2881  540, 572, 573, 539, 287, 1270, 574, 575, 580, 581,
2882  1271, 540, 1632, 582, 576, 1284, 1284, 1284, 1284, 1424,
2883  1425, 583, 577, 578, 571, 514, 608, 514, 572, 573,
2884  609, 610, 1285, 574, 575, 611, 1277, 1277, 1277, 1277,
2885  1286, 576, 1726, 612, 2034, 1317, 1317, 1317, 1317, 577,
2886  578, 613, 1318, 2035, 1278, 584, 541, 585, 1420, 1420,
2887  1420, 1420, 2837, 1709, 1633, 1421, 1709, 541, 517, 542,
2888  543, 542, 542, 517, 520, 521, 544, 517, 517, 522,
2889 
2890  517, 517, 517, 517, 545, 546, 517, 547, 517, 517,
2891  517, 517, 517, 517, 545, 545, 517, 548, 517, 517,
2892  517, 549, 549, 549, 549, 549, 549, 549, 549, 549,
2893  549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
2894  549, 517, 517, 517, 517, 549, 517, 550, 549, 551,
2895  549, 549, 552, 549, 549, 549, 549, 549, 549, 553,
2896  554, 549, 549, 555, 556, 557, 549, 558, 549, 549,
2897  549, 545, 517, 517, 517, 549, 560, 561, 560, 560,
2898  287, 562, 563, 1629, 580, 581, 564, 2838, 1630, 582,
2899  560, 561, 560, 560, 565, 562, 563, 583, 1270, 2020,
2900 
2901  564, 1639, 566, 1271, 567, 1632, 1640, 2066, 565, 587,
2902  588, 589, 587, 2020, 590, 591, 566, 608, 567, 592,
2903  287, 609, 610, 1632, 288, 289, 611, 593, 1864, 290,
2904  1724, 584, 1725, 585, 612, 1626, 594, 291, 1626, 568,
2905  595, 1642, 613, 1636, 1865, 614, 1643, 569, 1627, 587,
2906  588, 589, 587, 568, 590, 591, 2841, 1633, 566, 592,
2907  1658, 569, 1659, 587, 588, 589, 587, 593, 590, 591,
2908  1728, 1729, 566, 592, 1270, 1633, 594, 2842, 1660, 1271,
2909  595, 593, 587, 588, 589, 587, 1721, 590, 591, 1721,
2910  594, 596, 592, 597, 595, 1633, 587, 588, 589, 587,
2911 
2912  593, 590, 591, 1270, 2845, 1270, 592, 1270, 1271, 594,
2913  1271, 1960, 1271, 595, 593, 1300, 1300, 1300, 1300, 587,
2914  588, 589, 587, 594, 590, 591, 1301, 599, 2438, 592,
2915  1302, 596, 1285, 597, 287, 1662, 2310, 593, 288, 289,
2916  1286, 1304, 1305, 290, 641, 596, 594, 598, 642, 643,
2917  599, 291, 1656, 644, 2311, 1270, 645, 1657, 287, 614,
2918  1271, 646, 288, 289, 596, 287, 598, 290, 1270, 288,
2919  289, 1662, 1685, 1271, 290, 291, 1270, 1685, 596, 2846,
2920  600, 1271, 291, 1688, 673, 287, 1693, 673, 1689, 674,
2921  675, 1694, 2847, 1700, 676, 1710, 647, 677, 1701, 2850,
2922 
2923  1711, 596, 678, 600, 286, 286, 287, 286, 286, 286,
2924  288, 289, 601, 286, 286, 290, 286, 286, 286, 286,
2925  286, 286, 286, 291, 286, 286, 286, 286, 286, 286,
2926  286, 602, 286, 603, 286, 286, 286, 604, 604, 604,
2927  604, 604, 604, 604, 604, 604, 604, 604, 604, 604,
2928  604, 604, 604, 604, 604, 604, 604, 286, 286, 286,
2929  286, 604, 286, 604, 604, 604, 604, 604, 604, 604,
2930  604, 604, 604, 604, 604, 605, 606, 604, 604, 604,
2931  604, 604, 604, 604, 604, 604, 604, 286, 286, 286,
2932  286, 604, 286, 615, 616, 615, 615, 617, 288, 289,
2933 
2934  618, 286, 286, 290, 286, 286, 286, 286, 286, 286,
2935  286, 291, 286, 286, 286, 286, 286, 286, 619, 286,
2936  286, 286, 286, 286, 286, 620, 620, 620, 620, 620,
2937  620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
2938  620, 620, 620, 620, 620, 286, 286, 286, 286, 620,
2939  286, 620, 620, 620, 620, 620, 620, 620, 620, 620,
2940  620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
2941  620, 620, 620, 620, 620, 286, 286, 286, 617, 620,
2942  622, 623, 1724, 622, 1725, 624, 625, 1753, 1632, 1804,
2943  626, 633, 623, 2043, 633, 2416, 624, 634, 627, 287,
2944 
2945  1634, 626, 2044, 288, 289, 1635, 2417, 628, 290, 627,
2946  1751, 629, 1802, 2086, 622, 635, 291, 622, 628, 636,
2947  625, 2087, 629, 2088, 626, 622, 635, 1730, 622, 1745,
2948  636, 625, 637, 630, 1746, 626, 1311, 1311, 1311, 1311,
2949  1633, 628, 641, 637, 630, 629, 642, 643, 1880, 1881,
2950  2544, 644, 628, 1724, 645, 1725, 629, 2004, 2005, 646,
2951  1763, 1312, 631, 1763, 632, 1764, 2545, 638, 1328, 1328,
2952  1328, 1328, 641, 631, 1806, 632, 648, 643, 638, 1329,
2953  1533, 649, 639, 641, 645, 1534, 1270, 648, 643, 646,
2954  1860, 1271, 649, 1312, 647, 645, 630, 1805, 630, 1727,
2955 
2956  646, 1390, 1390, 1390, 1390, 673, 287, 630, 673, 630,
2957  674, 675, 1270, 1859, 2851, 676, 287, 1271, 677, 1391,
2958  288, 289, 2520, 678, 647, 290, 688, 689, 1518, 1518,
2959  1518, 1518, 2521, 291, 2852, 647, 630, 630, 623, 630,
2960  630, 630, 650, 651, 652, 630, 630, 626, 653, 630,
2961  630, 630, 630, 630, 630, 654, 630, 630, 630, 630,
2962  630, 630, 630, 655, 630, 630, 630, 630, 629, 656,
2963  656, 656, 656, 656, 656, 656, 656, 656, 656, 656,
2964  656, 656, 656, 656, 656, 656, 656, 656, 656, 630,
2965  630, 630, 630, 656, 630, 656, 656, 656, 656, 656,
2966 
2967  656, 656, 656, 656, 656, 656, 656, 656, 656, 656,
2968  656, 656, 656, 656, 656, 656, 656, 656, 656, 657,
2969  630, 630, 630, 656, 623, 1270, 2853, 623, 650, 658,
2970  1271, 650, 658, 659, 653, 1800, 659, 653, 623, 1960,
2971  1801, 660, 650, 658, 660, 1270, 1814, 659, 653, 623,
2972  1271, 1815, 1818, 650, 658, 660, 2438, 1819, 659, 653,
2973  665, 666, 1604, 1605, 667, 668, 660, 665, 666, 669,
2974  680, 667, 668, 2207, 681, 682, 669, 670, 1724, 683,
2975  1725, 680, 2208, 1824, 670, 681, 682, 684, 1825, 1270,
2976  683, 663, 287, 1662, 1271, 1270, 288, 289, 684, 1270,
2977 
2978  1271, 290, 663, 1836, 1271, 661, 1836, 662, 661, 291,
2979  662, 287, 671, 1270, 1866, 288, 289, 1866, 1271, 671,
2980  290, 287, 685, 2439, 1731, 288, 289, 1867, 291, 1662,
2981  290, 688, 689, 685, 691, 692, 691, 691, 291, 693,
2982  694, 710, 1270, 1270, 695, 711, 712, 1271, 1271, 2099,
2983  713, 2439, 696, 2108, 691, 692, 691, 691, 714, 693,
2984  694, 697, 287, 698, 695, 287, 703, 704, 2211, 703,
2985  704, 705, 696, 686, 705, 687, 2854, 2212, 2215, 706,
2986  287, 697, 706, 698, 699, 289, 2855, 2216, 1270, 290,
2987  700, 701, 686, 1271, 687, 287, 1270, 291, 1855, 699,
2988 
2989  289, 1271, 2215, 1856, 290, 700, 701, 1392, 1392, 1392,
2990  1392, 2216, 291, 707, 1270, 708, 707, 710, 708, 1271,
2991  1954, 711, 712, 1954, 1632, 1393, 713, 716, 717, 716,
2992  716, 789, 718, 719, 714, 790, 791, 720, 721, 1955,
2993  792, 716, 717, 716, 716, 722, 718, 719, 793, 1270,
2994  1968, 720, 721, 1968, 1863, 724, 725, 724, 724, 722,
2995  726, 727, 1870, 1270, 2043, 728, 729, 1871, 1271, 724,
2996  725, 724, 724, 730, 726, 727, 1633, 1969, 2043, 728,
2997  729, 1558, 1558, 1558, 1558, 1621, 1622, 730, 286, 286,
2998  287, 286, 286, 286, 288, 289, 731, 286, 286, 290,
2999 
3000  286, 286, 286, 286, 286, 286, 286, 291, 286, 286,
3001  286, 286, 286, 286, 286, 732, 286, 286, 286, 286,
3002  286, 733, 733, 733, 733, 733, 733, 733, 733, 733,
3003  733, 733, 733, 733, 733, 733, 733, 733, 733, 733,
3004  733, 286, 286, 286, 286, 733, 286, 733, 733, 734,
3005  733, 733, 733, 733, 733, 733, 733, 733, 733, 733,
3006  733, 733, 733, 733, 733, 733, 733, 735, 733, 733,
3007  733, 286, 286, 286, 286, 733, 737, 2092, 737, 1270,
3008  738, 739, 738, 739, 1271, 740, 2093, 740, 1516, 1516,
3009  1516, 1516, 2094, 741, 2856, 741, 744, 745, 744, 744,
3010 
3011  1270, 746, 747, 1517, 2857, 1271, 748, 744, 745, 744,
3012  744, 1897, 746, 747, 749, 1960, 1898, 748, 752, 753,
3013  752, 752, 1902, 754, 755, 749, 1662, 1903, 756, 1270,
3014  1837, 757, 2794, 1837, 1271, 758, 759, 752, 753, 752,
3015  752, 1838, 754, 755, 1623, 1624, 1270, 756, 1270, 760,
3016  757, 1271, 2858, 1271, 758, 759, 750, 742, 1270, 742,
3017  287, 1270, 1662, 1271, 288, 289, 1271, 750, 760, 290,
3018  789, 760, 1432, 1270, 790, 791, 1432, 291, 1271, 792,
3019  1270, 1499, 1499, 1499, 1499, 1271, 787, 793, 1500, 2859,
3020  760, 286, 286, 287, 286, 286, 286, 288, 289, 761,
3021 
3022  286, 286, 290, 286, 286, 286, 286, 286, 286, 286,
3023  291, 286, 286, 286, 286, 286, 286, 286, 762, 286,
3024  286, 286, 286, 286, 763, 763, 763, 763, 763, 763,
3025  763, 763, 763, 763, 763, 763, 763, 763, 763, 763,
3026  763, 763, 763, 763, 286, 286, 286, 286, 763, 286,
3027  763, 763, 763, 763, 763, 763, 763, 763, 763, 763,
3028  763, 763, 763, 763, 763, 763, 763, 763, 763, 763,
3029  763, 763, 763, 763, 764, 286, 286, 286, 763, 286,
3030  286, 287, 286, 286, 286, 288, 289, 765, 286, 286,
3031  290, 286, 286, 286, 286, 286, 286, 286, 291, 286,
3032 
3033  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
3034  286, 286, 766, 766, 766, 766, 766, 766, 766, 766,
3035  766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
3036  766, 766, 286, 286, 286, 286, 766, 286, 766, 766,
3037  766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
3038  766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
3039  766, 766, 286, 286, 286, 286, 766, 286, 286, 287,
3040  286, 286, 286, 288, 289, 767, 286, 286, 290, 286,
3041  286, 286, 286, 768, 286, 286, 291, 286, 286, 286,
3042  286, 286, 286, 286, 768, 286, 286, 286, 286, 286,
3043 
3044  769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
3045  769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
3046  286, 286, 286, 286, 769, 286, 769, 769, 769, 769,
3047  769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
3048  769, 769, 769, 769, 769, 769, 769, 769, 769, 769,
3049  286, 286, 286, 286, 769, 286, 770, 771, 770, 770,
3050  286, 288, 289, 772, 286, 286, 290, 286, 286, 286,
3051  286, 768, 286, 286, 291, 286, 286, 286, 286, 286,
3052  286, 286, 768, 286, 286, 286, 286, 286, 773, 773,
3053  773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
3054 
3055  773, 773, 773, 773, 773, 773, 773, 773, 286, 286,
3056  286, 286, 773, 286, 773, 773, 773, 773, 773, 773,
3057  773, 773, 773, 773, 773, 773, 773, 773, 773, 773,
3058  773, 773, 773, 773, 773, 773, 773, 773, 286, 286,
3059  286, 286, 773, 775, 1970, 1972, 1972, 776, 777, 1971,
3060  1973, 1996, 778, 1636, 1374, 1374, 1374, 1374, 775, 1960,
3061  779, 287, 776, 777, 287, 288, 289, 778, 797, 798,
3062  290, 1965, 2860, 799, 1963, 779, 1966, 1963, 291, 287,
3063  2575, 800, 2576, 797, 798, 1974, 814, 787, 799, 801,
3064  815, 816, 1964, 814, 2001, 817, 800, 815, 816, 2002,
3065 
3066  780, 1975, 817, 818, 801, 1633, 781, 2861, 1274, 1274,
3067  818, 1274, 1274, 1974, 782, 780, 783, 784, 287, 1275,
3068  1275, 781, 288, 289, 785, 2018, 786, 290, 905, 782,
3069  2019, 783, 784, 2061, 1306, 291, 1375, 1306, 2062, 785,
3070  2862, 786, 286, 286, 287, 286, 286, 286, 288, 289,
3071  794, 286, 286, 290, 286, 286, 286, 286, 286, 286,
3072  286, 291, 286, 286, 286, 286, 286, 286, 286, 286,
3073  286, 286, 286, 286, 286, 795, 795, 795, 795, 795,
3074  795, 795, 795, 795, 795, 795, 795, 795, 795, 795,
3075  795, 795, 795, 795, 795, 286, 286, 286, 286, 795,
3076 
3077  286, 795, 795, 795, 795, 795, 795, 795, 795, 795,
3078  795, 795, 795, 795, 795, 795, 795, 795, 795, 795,
3079  795, 795, 795, 795, 795, 286, 286, 286, 286, 795,
3080  802, 803, 500, 803, 803, 802, 804, 805, 806, 802,
3081  802, 807, 802, 802, 802, 802, 808, 802, 802, 809,
3082  802, 802, 802, 802, 802, 802, 802, 810, 802, 802,
3083  802, 802, 802, 811, 811, 811, 811, 811, 811, 811,
3084  811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
3085  811, 811, 811, 802, 802, 802, 802, 811, 802, 811,
3086  811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
3087 
3088  811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
3089  811, 811, 811, 812, 802, 802, 802, 811, 286, 286,
3090  287, 286, 286, 286, 288, 289, 819, 286, 286, 290,
3091  820, 286, 286, 286, 286, 286, 286, 291, 286, 286,
3092  286, 286, 286, 286, 821, 822, 286, 286, 286, 286,
3093  286, 823, 823, 823, 823, 823, 823, 823, 823, 823,
3094  823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
3095  823, 286, 286, 286, 286, 823, 286, 823, 823, 823,
3096  823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
3097  823, 823, 823, 823, 823, 823, 823, 823, 823, 823,
3098 
3099  823, 824, 286, 286, 286, 823, 826, 2069, 2863, 826,
3100  827, 828, 2070, 827, 828, 829, 1306, 830, 829, 1306,
3101  830, 1354, 1383, 831, 1354, 1383, 831, 286, 286, 287,
3102  286, 286, 286, 288, 289, 832, 286, 286, 290, 833,
3103  286, 286, 286, 834, 286, 286, 291, 286, 286, 286,
3104  286, 286, 286, 835, 822, 286, 286, 286, 286, 286,
3105  836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
3106  836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
3107  286, 286, 286, 286, 836, 286, 836, 836, 836, 836,
3108  836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
3109 
3110  836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
3111  824, 286, 286, 286, 836, 838, 2071, 2864, 838, 839,
3112  840, 2072, 839, 840, 841, 842, 843, 841, 842, 843,
3113  2865, 1383, 844, 287, 1383, 844, 287, 288, 289, 287,
3114  288, 289, 290, 288, 289, 290, 1274, 2813, 290, 1274,
3115  291, 1961, 1960, 291, 1961, 2083, 291, 1275, 2084, 845,
3116  2866, 287, 845, 287, 855, 288, 289, 288, 289, 1962,
3117  290, 2867, 290, 2036, 846, 2813, 2036, 2037, 291, 287,
3118  291, 1338, 2096, 288, 289, 2097, 855, 1339, 290, 287,
3119  867, 2038, 1591, 288, 289, 1591, 291, 1341, 290, 287,
3120 
3121  867, 1338, 1591, 1129, 1130, 1591, 291, 1339, 1131, 897,
3122  898, 897, 897, 868, 288, 289, 1132, 1341, 1626, 290,
3123  847, 1626, 848, 868, 869, 870, 849, 291, 871, 2099,
3124  2868, 1627, 850, 2100, 869, 870, 851, 852, 871, 853,
3125  287, 854, 287, 2101, 288, 289, 288, 289, 2525, 290,
3126  905, 290, 1423, 846, 2361, 1423, 2869, 291, 287, 291,
3127  2526, 287, 288, 289, 2527, 288, 289, 290, 2361, 906,
3128  290, 2257, 906, 899, 2266, 291, 2258, 287, 291, 2267,
3129  2269, 288, 289, 287, 899, 2270, 290, 288, 289, 2020,
3130  2076, 917, 290, 900, 291, 2077, 2078, 917, 2079, 847,
3131 
3132  291, 848, 918, 2020, 1590, 849, 2104, 1590, 918, 2870,
3133  1559, 850, 1424, 1425, 2105, 851, 852, 2871, 853, 2106,
3134  854, 286, 856, 287, 286, 856, 286, 288, 289, 857,
3135  286, 286, 290, 858, 286, 286, 286, 286, 286, 286,
3136  291, 286, 286, 286, 286, 286, 286, 286, 286, 286,
3137  286, 286, 286, 286, 859, 859, 859, 859, 859, 859,
3138  859, 859, 859, 859, 859, 859, 859, 859, 859, 859,
3139  859, 859, 859, 859, 286, 286, 286, 286, 859, 286,
3140  859, 859, 860, 859, 859, 859, 859, 859, 859, 859,
3141  861, 859, 859, 859, 859, 859, 859, 862, 859, 863,
3142 
3143  864, 859, 859, 859, 286, 286, 286, 286, 859, 286,
3144  286, 287, 286, 286, 286, 288, 289, 865, 286, 286,
3145  290, 286, 286, 286, 286, 286, 286, 286, 291, 286,
3146  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
3147  286, 286, 866, 866, 866, 866, 866, 866, 866, 866,
3148  866, 866, 866, 866, 866, 866, 866, 866, 866, 866,
3149  866, 866, 286, 286, 286, 286, 866, 286, 866, 866,
3150  866, 866, 866, 866, 866, 866, 866, 866, 866, 866,
3151  866, 866, 866, 866, 866, 866, 866, 866, 866, 866,
3152  866, 866, 286, 286, 286, 286, 866, 286, 286, 287,
3153 
3154  286, 286, 286, 288, 289, 872, 286, 286, 290, 286,
3155  286, 286, 286, 286, 286, 286, 291, 286, 286, 286,
3156  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
3157  873, 873, 873, 873, 873, 873, 873, 873, 873, 873,
3158  873, 873, 873, 873, 873, 873, 873, 873, 873, 873,
3159  286, 286, 286, 286, 873, 286, 873, 873, 873, 873,
3160  873, 873, 873, 873, 873, 873, 873, 873, 873, 873,
3161  873, 873, 873, 873, 873, 873, 873, 873, 873, 873,
3162  286, 286, 286, 286, 873, 286, 286, 287, 286, 286,
3163  286, 288, 289, 874, 286, 286, 290, 286, 286, 286,
3164 
3165  286, 286, 286, 286, 291, 286, 286, 286, 286, 286,
3166  286, 286, 286, 286, 286, 286, 286, 286, 875, 875,
3167  875, 875, 875, 875, 875, 875, 875, 875, 875, 875,
3168  875, 875, 875, 875, 875, 875, 875, 875, 286, 286,
3169  286, 286, 875, 286, 875, 875, 875, 875, 875, 875,
3170  875, 875, 875, 875, 875, 875, 875, 875, 875, 875,
3171  875, 875, 875, 875, 875, 875, 875, 875, 286, 286,
3172  286, 286, 875, 877, 878, 877, 877, 940, 879, 880,
3173  2872, 941, 942, 881, 882, 883, 943, 944, 884, 885,
3174  2217, 886, 1662, 2217, 945, 1310, 1311, 1311, 1310, 887,
3175 
3176  888, 940, 889, 890, 891, 941, 942, 2575, 2271, 2582,
3177  943, 944, 287, 1632, 892, 2300, 1066, 1067, 945, 893,
3178  1312, 1068, 892, 1069, 2301, 894, 2873, 883, 1662, 1070,
3179  897, 898, 897, 897, 1000, 288, 289, 1139, 1001, 1002,
3180  290, 1140, 1141, 1003, 1004, 1005, 1142, 2293, 291, 2876,
3181  895, 1006, 2294, 1696, 1143, 896, 1696, 883, 877, 878,
3182  877, 877, 968, 879, 880, 1633, 969, 970, 881, 882,
3183  883, 971, 1600, 884, 885, 1600, 886, 1287, 1601, 972,
3184  1390, 1390, 1390, 1390, 887, 888, 973, 889, 890, 891,
3185  1709, 287, 1685, 1709, 899, 920, 921, 1685, 1391, 892,
3186 
3187  922, 923, 924, 1721, 893, 899, 1721, 892, 925, 2877,
3188  894, 287, 883, 1685, 900, 920, 921, 926, 1685, 927,
3189  922, 923, 924, 1392, 1392, 1392, 1392, 2878, 925, 2359,
3190  1557, 1558, 1558, 1557, 2360, 895, 1559, 926, 2879, 927,
3191  896, 1393, 883, 286, 901, 902, 901, 901, 286, 288,
3192  289, 903, 286, 286, 290, 286, 286, 286, 286, 286,
3193  286, 286, 291, 286, 286, 286, 286, 286, 286, 286,
3194  286, 286, 286, 286, 286, 286, 904, 904, 904, 904,
3195  904, 904, 904, 904, 904, 904, 904, 904, 904, 904,
3196  904, 904, 904, 904, 904, 904, 286, 286, 286, 286,
3197 
3198  904, 286, 904, 904, 904, 904, 904, 904, 904, 904,
3199  904, 904, 904, 904, 904, 904, 904, 904, 904, 904,
3200  904, 904, 904, 904, 904, 904, 286, 286, 286, 286,
3201  904, 286, 907, 908, 907, 907, 286, 288, 289, 909,
3202  286, 910, 290, 911, 286, 910, 286, 912, 286, 286,
3203  913, 286, 286, 286, 286, 286, 286, 286, 914, 286,
3204  915, 286, 286, 286, 916, 916, 916, 916, 916, 916,
3205  916, 916, 916, 916, 916, 916, 916, 916, 916, 916,
3206  916, 916, 916, 916, 286, 286, 286, 286, 916, 286,
3207  916, 916, 916, 916, 916, 916, 916, 916, 916, 916,
3208 
3209  916, 916, 916, 916, 916, 916, 916, 916, 916, 916,
3210  916, 916, 916, 916, 286, 286, 286, 286, 916, 928,
3211  929, 930, 929, 929, 931, 932, 933, 934, 928, 928,
3212  935, 928, 928, 928, 928, 928, 928, 928, 936, 928,
3213  928, 928, 928, 928, 928, 937, 928, 928, 928, 928,
3214  928, 928, 938, 938, 938, 938, 938, 938, 938, 938,
3215  938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
3216  938, 938, 928, 928, 928, 928, 938, 928, 938, 938,
3217  938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
3218  938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
3219 
3220  938, 938, 928, 928, 928, 931, 938, 287, 2510, 2511,
3221  287, 288, 289, 2361, 288, 289, 290, 946, 947, 290,
3222  946, 947, 2362, 1632, 291, 968, 1447, 291, 1000, 969,
3223  970, 980, 1001, 1002, 971, 981, 982, 1003, 1004, 1005,
3224  983, 1970, 972, 984, 1338, 1006, 1971, 1992, 985, 973,
3225  1339, 2880, 1971, 1283, 1284, 1284, 1283, 1724, 948, 1725,
3226  1341, 948, 950, 951, 950, 950, 2881, 952, 953, 1724,
3227  1285, 1725, 954, 955, 956, 1633, 2882, 980, 1286, 1449,
3228  957, 981, 982, 986, 2217, 1450, 983, 2217, 2218, 984,
3229  1451, 1452, 980, 1453, 985, 2049, 987, 982, 1724, 2506,
3230 
3231  1725, 988, 2219, 958, 984, 2883, 2401, 2323, 959, 985,
3232  980, 958, 2324, 2506, 987, 982, 990, 2884, 2885, 988,
3233  991, 992, 984, 1935, 2886, 993, 1935, 985, 994, 986,
3234  1936, 2272, 1937, 995, 2272, 1287, 1937, 2322, 2020, 960,
3235  950, 951, 950, 950, 986, 952, 953, 2020, 2814, 2273,
3236  954, 955, 956, 2401, 2432, 990, 2887, 2432, 957, 991,
3237  992, 990, 986, 2507, 993, 997, 992, 994, 996, 2888,
3238  998, 1511, 995, 994, 1511, 990, 2814, 2507, 995, 997,
3239  992, 958, 1837, 2401, 998, 1837, 959, 994, 1724, 958,
3240  1725, 1008, 995, 1838, 1008, 1009, 1010, 2537, 1009, 1010,
3241 
3242  1011, 2889, 2538, 1011, 1724, 1016, 1725, 996, 1012, 1017,
3243  1018, 1012, 2891, 996, 1019, 1020, 1021, 960, 950, 951,
3244  950, 950, 1022, 952, 953, 2892, 2485, 996, 954, 955,
3245  2506, 1424, 1425, 1016, 2321, 2484, 957, 1017, 1018, 2506,
3246  2893, 2654, 1019, 1020, 1021, 962, 2655, 963, 1024, 2319,
3247  1022, 1083, 1025, 1026, 2507, 1084, 1085, 1027, 1511, 964,
3248  1086, 1511, 1028, 2507, 965, 1029, 2217, 964, 1087, 2217,
3249  2218, 2900, 1013, 2848, 1014, 1013, 1024, 1014, 2849, 2383,
3250  1025, 1032, 2383, 287, 2219, 1027, 1763, 1066, 1067, 1763,
3251  1028, 1764, 1068, 1029, 1069, 966, 950, 951, 950, 950,
3252 
3253  1070, 952, 953, 1088, 2384, 1954, 954, 955, 1954, 2513,
3254  1034, 1035, 2514, 1034, 957, 1036, 1037, 2682, 1424, 1425,
3255  1038, 1039, 1040, 962, 1955, 963, 2682, 1866, 1041, 1030,
3256  1866, 1031, 2682, 1351, 1351, 1351, 1351, 964, 1034, 1035,
3257  1867, 1034, 965, 1036, 1037, 964, 2682, 2571, 1038, 1039,
3258  1040, 1390, 1390, 1390, 1390, 2904, 1041, 1030, 1352, 1031,
3259  2906, 2686, 1353, 1558, 1558, 1558, 1558, 2907, 2432, 1391,
3260  2686, 2432, 2970, 966, 286, 286, 287, 286, 286, 286,
3261  288, 289, 974, 286, 286, 290, 286, 286, 286, 286,
3262  286, 286, 286, 291, 286, 286, 286, 286, 286, 286,
3263 
3264  286, 286, 286, 286, 286, 286, 286, 975, 975, 975,
3265  975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
3266  975, 975, 975, 975, 975, 975, 975, 286, 286, 286,
3267  286, 975, 286, 975, 975, 975, 975, 975, 975, 975,
3268  975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
3269  975, 975, 975, 975, 975, 975, 975, 286, 286, 286,
3270  286, 975, 286, 286, 287, 286, 286, 286, 288, 289,
3271  976, 286, 286, 290, 286, 286, 286, 286, 286, 286,
3272  286, 291, 286, 286, 286, 286, 286, 286, 286, 977,
3273  286, 286, 286, 286, 286, 978, 978, 978, 978, 978,
3274 
3275  978, 978, 978, 978, 978, 978, 978, 978, 978, 978,
3276  978, 978, 978, 978, 978, 286, 286, 286, 286, 978,
3277  286, 978, 978, 978, 978, 978, 978, 978, 978, 978,
3278  978, 978, 978, 978, 978, 978, 978, 978, 978, 978,
3279  978, 978, 978, 978, 978, 286, 286, 286, 286, 978,
3280  1043, 1044, 1043, 1043, 287, 1045, 1046, 2971, 1228, 1229,
3281  1047, 1048, 1049, 1230, 1043, 1044, 1043, 1043, 1050, 1045,
3282  1046, 1231, 1974, 2972, 1047, 1048, 1049, 1051, 1954, 1052,
3283  1963, 1954, 1050, 1963, 518, 519, 518, 518, 1975, 520,
3284  521, 1051, 2687, 1052, 522, 1063, 1064, 1955, 1964, 525,
3285 
3286  1974, 2687, 526, 518, 519, 518, 518, 2217, 520, 521,
3287  2217, 2302, 2874, 522, 1063, 1064, 2875, 1963, 525, 1147,
3288  1963, 526, 2973, 1148, 1149, 2303, 1053, 2528, 1150, 2529,
3289  1151, 1568, 1568, 1568, 1568, 1964, 1152, 2530, 2974, 2975,
3290  1053, 1054, 1054, 1055, 1054, 1054, 1054, 1056, 1057, 1058,
3291  1054, 1054, 1059, 1054, 1054, 1054, 1054, 1054, 1054, 1054,
3292  1060, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1061, 1054,
3293  1054, 1054, 1054, 1054, 1062, 1062, 1062, 1062, 1062, 1062,
3294  1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
3295  1062, 1062, 1062, 1062, 1054, 1054, 1054, 1054, 1062, 1054,
3296 
3297  1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
3298  1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062,
3299  1062, 1062, 1062, 1062, 1061, 1054, 1054, 1054, 1062, 1072,
3300  1073, 1072, 1072, 2125, 1074, 1075, 2125, 2126, 2394, 1076,
3301  1077, 1078, 2976, 1724, 1079, 1725, 2127, 1080, 1072, 1073,
3302  1072, 1072, 287, 1074, 1075, 2977, 580, 581, 1076, 1077,
3303  1078, 582, 2978, 1079, 2128, 1968, 1080, 287, 1968, 583,
3304  1083, 580, 581, 1083, 1084, 1085, 582, 1089, 1085, 1086,
3305  2979, 2980, 1090, 2394, 583, 2981, 2128, 1087, 2320, 1083,
3306  1087, 1083, 1969, 1089, 1085, 952, 1092, 2982, 1090, 2464,
3307 
3308  954, 1093, 1094, 584, 2983, 1081, 1087, 1103, 1095, 2984,
3309  2985, 1104, 1105, 2394, 2986, 1724, 1106, 1725, 584, 1107,
3310  1081, 2686, 1088, 1083, 1108, 1088, 2129, 952, 1092, 2129,
3311  2130, 1096, 954, 1093, 1094, 2686, 1097, 1109, 1083, 1096,
3312  1095, 1088, 952, 953, 2131, 1147, 2464, 954, 1099, 1148,
3313  1149, 1724, 2740, 1725, 1150, 1095, 1151, 2132, 2687, 1109,
3314  2720, 2740, 1152, 1096, 1100, 1083, 1101, 1098, 1097, 952,
3315  953, 1096, 2687, 2445, 954, 1099, 2464, 2036, 964, 2132,
3316  2036, 2987, 1095, 965, 1110, 1103, 964, 1110, 2988, 1104,
3317  1105, 1100, 2580, 1101, 1106, 2478, 2989, 1111, 2457, 1098,
3318 
3319  2719, 2457, 1108, 1113, 2990, 964, 2644, 1114, 1115, 2991,
3320  965, 2458, 1116, 964, 966, 1109, 2671, 1113, 2445, 1103,
3321  1117, 1114, 1115, 1120, 1121, 1724, 1116, 1725, 1122, 1376,
3322  1376, 1376, 1376, 1118, 1117, 1103, 1123, 1109, 2242, 1120,
3323  1121, 966, 1961, 1960, 1122, 1961, 1377, 1118, 2445, 1124,
3324  2999, 3003, 1123, 1154, 1379, 1118, 2262, 1155, 1156, 2740,
3325  1962, 3006, 1157, 1154, 1158, 1124, 3007, 1155, 1156, 1118,
3326  1159, 1124, 1157, 2740, 1158, 2717, 1581, 1581, 1581, 1581,
3327  1159, 2553, 1380, 1582, 2553, 2215, 2890, 1124, 286, 286,
3328  287, 286, 286, 286, 288, 289, 1125, 286, 286, 1126,
3329 
3330  286, 286, 286, 286, 286, 286, 286, 291, 286, 286,
3331  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
3332  286, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
3333  1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
3334  1127, 286, 286, 286, 286, 1127, 286, 1127, 1127, 1127,
3335  1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
3336  1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
3337  1127, 286, 286, 286, 286, 1127, 1128, 1128, 287, 1128,
3338  1128, 1128, 1129, 1130, 1133, 1128, 1128, 1131, 1128, 1128,
3339  1128, 1128, 1128, 1128, 1128, 1132, 1128, 1128, 1128, 1128,
3340 
3341  1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1134,
3342  1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
3343  1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1128,
3344  1128, 1128, 1128, 1134, 1128, 1134, 1134, 1134, 1134, 1134,
3345  1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
3346  1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1128,
3347  1128, 1128, 1128, 1134, 286, 286, 287, 286, 286, 286,
3348  288, 289, 1135, 286, 286, 1136, 286, 286, 286, 286,
3349  286, 286, 286, 291, 286, 286, 286, 286, 286, 286,
3350  286, 286, 286, 286, 286, 286, 286, 1137, 1137, 1137,
3351 
3352  1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
3353  1137, 1137, 1137, 1137, 1137, 1137, 1137, 286, 286, 286,
3354  286, 1137, 286, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
3355  1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
3356  1137, 1137, 1137, 1137, 1137, 1137, 1137, 286, 286, 286,
3357  286, 1137, 1138, 1138, 1139, 1138, 1138, 1138, 1140, 1141,
3358  1144, 1138, 1138, 1142, 1138, 1138, 1138, 1138, 1138, 1138,
3359  1138, 1143, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
3360  1138, 1138, 1138, 1138, 1138, 1145, 1145, 1145, 1145, 1145,
3361  1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
3362 
3363  1145, 1145, 1145, 1145, 1145, 1138, 1138, 1138, 1138, 1145,
3364  1138, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
3365  1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
3366  1145, 1145, 1145, 1145, 1145, 1138, 1138, 1138, 1138, 1145,
3367  287, 2575, 287, 2576, 1161, 1162, 1191, 1192, 2793, 1163,
3368  2125, 1193, 1194, 2125, 2201, 2742, 287, 1164, 3008, 1195,
3369  1191, 1192, 2793, 2202, 2741, 1193, 1194, 1346, 1346, 1346,
3370  1346, 3009, 3010, 1195, 1211, 287, 3011, 1211, 287, 1212,
3371  1213, 2128, 1222, 1223, 1214, 1338, 1724, 1224, 1725, 1225,
3372  3014, 1339, 1215, 1165, 1347, 1226, 3012, 1166, 1167, 1168,
3373 
3374  287, 1341, 1216, 2128, 1228, 1229, 3015, 1662, 1169, 1230,
3375  1170, 1171, 1196, 1172, 3013, 1173, 287, 1231, 287, 2722,
3376  1161, 1162, 1222, 1223, 3016, 1163, 1196, 1224, 2575, 1225,
3377  2582, 3017, 3018, 1164, 1217, 1226, 1233, 1234, 1724, 1233,
3378  1725, 1235, 1236, 1662, 1935, 2461, 1237, 1935, 2488, 1348,
3379  1218, 2034, 1219, 1937, 1238, 2462, 1220, 1937, 1233, 1234,
3380  2035, 1233, 3019, 1235, 1236, 3020, 3021, 2217, 1237, 1165,
3381  2217, 2461, 3024, 1166, 1167, 1168, 1238, 2718, 1553, 1553,
3382  1553, 1553, 3025, 2462, 1169, 2271, 1170, 1171, 3026, 1172,
3383  1554, 1173, 1174, 1175, 1176, 1175, 1175, 1174, 1177, 1178,
3384 
3385  1179, 1174, 1174, 1180, 1174, 1174, 1174, 1174, 1174, 1174,
3386  1174, 1181, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1182,
3387  1174, 1174, 1174, 1174, 1174, 1183, 1183, 1183, 1183, 1183,
3388  1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
3389  1183, 1183, 1183, 1183, 1183, 1184, 1174, 1174, 1174, 1183,
3390  1174, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
3391  1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
3392  1183, 1183, 1183, 1183, 1183, 1174, 1174, 1174, 1174, 1183,
3393  286, 1185, 1186, 1185, 1185, 286, 288, 289, 1187, 286,
3394  286, 290, 1188, 286, 286, 286, 286, 286, 286, 291,
3395 
3396  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
3397  286, 286, 286, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
3398  1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
3399  1189, 1189, 1189, 286, 286, 286, 286, 1189, 286, 1189,
3400  1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
3401  1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189,
3402  1189, 1189, 1189, 286, 286, 286, 286, 1189, 1197, 1198,
3403  1199, 1198, 1198, 1200, 1201, 1202, 1203, 1197, 1197, 1204,
3404  1205, 1206, 1197, 1197, 1197, 1197, 1197, 1207, 1197, 1197,
3405  1197, 1197, 1197, 1197, 1208, 1197, 1197, 1197, 1197, 1197,
3406 
3407  1197, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
3408  1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
3409  1209, 1197, 1197, 1197, 1197, 1209, 1197, 1209, 1209, 1209,
3410  1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
3411  1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
3412  1209, 1197, 1197, 1197, 1200, 1209, 1211, 287, 3027, 1211,
3413  2272, 1212, 1213, 2272, 3031, 3032, 1214, 1240, 1241, 1724,
3414  1240, 1725, 1242, 1243, 1215, 3022, 3033, 1244, 2273, 2215,
3415  1245, 3034, 2331, 3023, 1216, 1246, 1251, 1241, 2216, 1251,
3416  2674, 1242, 1243, 2674, 1247, 2996, 1244, 1257, 1248, 1252,
3417 
3418  2341, 1258, 1259, 1260, 1253, 2125, 1261, 3039, 2125, 1262,
3419  2721, 2356, 1950, 1247, 1263, 1950, 1217, 1248, 3042, 1724,
3420  1249, 1725, 2457, 1264, 2215, 2457, 2364, 1265, 1614, 1614,
3421  1614, 1614, 1218, 2216, 1219, 2458, 2128, 2367, 1220, 1249,
3422  1951, 2371, 2375, 1254, 1291, 1291, 1291, 1291, 1292, 1265,
3423  1260, 1293, 1250, 1295, 1295, 1295, 1295, 1724, 2128, 1725,
3424  1296, 1311, 1311, 1311, 1311, 1320, 2379, 3053, 1321, 1286,
3425  1285, 1255, 1952, 1328, 1328, 1328, 1328, 1637, 1637, 1637,
3426  1637, 1260, 1266, 1257, 1329, 1266, 1312, 1258, 1259, 1260,
3427  1953, 2387, 1261, 2383, 3028, 1267, 2383, 3056, 1312, 3057,
3428 
3429  1263, 1328, 1328, 1328, 1328, 1392, 1392, 1392, 1392, 1264,
3430  1616, 2766, 1329, 1265, 1359, 1360, 1360, 1359, 2384, 3059,
3431  4612, 1361, 3060, 1393, 2334, 3061, 1312, 2334, 2335, 1292,
3432  3062, 3063, 1331, 3072, 3072, 1265, 1260, 2335, 1298, 1268,
3433  3074, 1362, 1390, 1390, 1390, 1390, 1320, 1392, 1392, 1392,
3434  1392, 1454, 1454, 1454, 1454, 2336, 1497, 1497, 1497, 1497,
3435  1391, 3074, 3075, 1332, 2820, 1393, 3076, 1269, 1497, 1497,
3436  1497, 1497, 1277, 1277, 1277, 1277, 1397, 2336, 1456, 3077,
3437  1364, 1498, 1637, 1637, 1637, 1637, 1644, 1644, 1644, 1644,
3438  1278, 3078, 4612, 1498, 3079, 3083, 1365, 1313, 1366, 1366,
3439 
3440  1367, 1366, 1313, 1313, 1313, 1368, 1313, 1313, 1313, 1313,
3441  1313, 1313, 1313, 3084, 1313, 1313, 1313, 1313, 1313, 1313,
3442  1313, 1313, 1313, 1313, 1313, 1369, 1313, 1313, 1313, 1313,
3443  1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3444  1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3445  1313, 1313, 1313, 1313, 1370, 1313, 1370, 1370, 1370, 1370,
3446  1370, 1370, 1370, 1370, 1371, 1370, 1370, 1370, 1370, 1370,
3447  1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3448  3085, 1313, 1313, 1313, 1370, 1360, 1360, 1360, 1360, 1724,
3449  3086, 1725, 1361, 1277, 1277, 1277, 1277, 1395, 1395, 1395,
3450 
3451  1395, 1426, 1426, 1426, 1426, 1427, 3087, 1985, 1428, 3088,
3452  1985, 1278, 1362, 3080, 3089, 3081, 1395, 1395, 1395, 1395,
3453  1986, 3092, 1397, 3082, 1935, 1987, 1397, 1935, 3093, 1433,
3454  1433, 1433, 1433, 1937, 1969, 2801, 1434, 1937, 1435, 3095,
3455  2718, 1397, 1435, 1509, 1277, 1277, 1509, 2006, 3096, 1510,
3456  2006, 1364, 2457, 3097, 1436, 2457, 3098, 3099, 1404, 3100,
3457  2007, 1278, 2811, 1417, 1988, 2458, 2812, 4612, 1394, 1395,
3458  1395, 1394, 1418, 3110, 1396, 1419, 2821, 1404, 1390, 1390,
3459  1390, 1390, 1417, 1724, 1435, 1725, 1427, 1392, 1392, 1392,
3460  1392, 1418, 1989, 1397, 1419, 3116, 1391, 3117, 3118, 1398,
3461 
3462  1454, 1454, 1454, 1454, 2008, 1393, 1454, 1454, 1454, 1454,
3463  1724, 4612, 1725, 1399, 1454, 1454, 1454, 1454, 2757, 3119,
3464  1400, 2757, 3029, 3052, 1401, 1397, 1402, 1456, 1403, 1404,
3465  1405, 1397, 2009, 1456, 1406, 1407, 1408, 1409, 1410, 1397,
3466  1411, 1456, 1412, 1413, 1414, 1415, 1416, 1454, 1454, 1454,
3467  1454, 1454, 1454, 1454, 1454, 2820, 1457, 1454, 1454, 1454,
3468  1454, 2718, 1460, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3469  1454, 2034, 1397, 1461, 1456, 3120, 1397, 2066, 1456, 2455,
3470  2035, 1724, 1397, 1725, 1456, 2066, 3123, 3124, 1397, 3125,
3471  1456, 3126, 1397, 3101, 1456, 1454, 1454, 1454, 1454, 1454,
3472 
3473  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1989, 3127, 1454,
3474  1454, 1454, 1454, 1464, 3128, 1462, 3102, 1465, 1463, 3101,
3475  1397, 3129, 1456, 1466, 1397, 3130, 1456, 3131, 1397, 1471,
3476  1456, 1470, 3030, 1467, 1397, 3132, 1456, 1454, 1454, 1454,
3477  1454, 1468, 3102, 1469, 3133, 1454, 1454, 1454, 1454, 1454,
3478  1454, 1454, 1454, 2125, 3134, 1473, 2125, 1338, 1454, 1454,
3479  1454, 1454, 1397, 1339, 1456, 1472, 3135, 1417, 3137, 1474,
3480  1397, 1475, 1456, 1341, 1397, 3138, 1456, 3139, 2454, 3140,
3481  1476, 2454, 3141, 1397, 2128, 1456, 1477, 1454, 1454, 1454,
3482  1454, 1454, 1454, 1454, 1454, 1478, 1454, 1454, 1454, 1454,
3483 
3484  1497, 1497, 1497, 1497, 1502, 3142, 2128, 1503, 2825, 3143,
3485  3144, 1481, 1397, 3145, 1456, 3146, 1397, 3147, 1456, 1479,
3486  1482, 1397, 1480, 1456, 1483, 1498, 1506, 1506, 1506, 1506,
3487  1516, 1516, 1516, 1516, 1484, 2455, 1535, 1535, 1535, 1535,
3488  3148, 1550, 1550, 1550, 1550, 1517, 3149, 3090, 3091, 1485,
3489  3090, 1498, 3150, 1508, 1489, 1536, 1550, 1550, 1550, 1550,
3490  3151, 1487, 1490, 1989, 3152, 2794, 1488, 1491, 1486, 1521,
3491  3153, 1535, 1535, 1535, 1535, 1571, 1571, 1571, 1571, 3154,
3492  1577, 1577, 1577, 1577, 1521, 1502, 1519, 1519, 1519, 1519,
3493  1536, 3155, 1572, 1571, 1571, 1571, 1571, 1537, 1578, 3156,
3494 
3495  1574, 2954, 1520, 3157, 1524, 1571, 1571, 1571, 1571, 3158,
3496  1572, 3159, 1526, 3161, 1521, 1338, 2955, 3162, 1574, 1524,
3497  3160, 1339, 1572, 1579, 1579, 1579, 1579, 1526, 3163, 3164,
3498  1574, 1341, 1537, 1579, 1579, 1579, 1579, 3165, 1579, 1579,
3499  1579, 1579, 1584, 3166, 1522, 1585, 1523, 3167, 1580, 1524,
3500  3168, 1575, 1598, 1598, 1598, 1598, 1525, 1526, 1580, 3170,
3501  1527, 1528, 1529, 1580, 1530, 1579, 1579, 1579, 1579, 3172,
3502  1599, 1606, 1606, 1606, 1606, 2904, 3173, 1576, 1644, 1644,
3503  1644, 1644, 1645, 1645, 1645, 1645, 3174, 2075, 2148, 1607,
3504  1580, 1645, 1645, 1645, 1645, 1650, 1650, 1650, 1650, 1650,
3505 
3506  1650, 1650, 1650, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
3507  1654, 1665, 1665, 1665, 1665, 1669, 1669, 1669, 1669, 1672,
3508  1672, 1672, 1672, 1584, 1672, 1672, 1672, 1672, 1666, 1277,
3509  1277, 1277, 1277, 1390, 1390, 1390, 1390, 3220, 1392, 1392,
3510  1392, 1392, 1697, 1697, 1697, 1697, 3221, 1278, 3238, 2129,
3511  3239, 1391, 2129, 2203, 2808, 1651, 1393, 2808, 3240, 1651,
3512  3241, 1703, 1703, 1703, 1703, 3242, 3243, 2204, 1671, 1705,
3513  1705, 1705, 1705, 1277, 1277, 1277, 1277, 1673, 1704, 3244,
3514  2132, 3245, 1673, 1277, 1277, 1277, 1277, 1390, 1390, 1390,
3515  1390, 1278, 3246, 3247, 1707, 1392, 1392, 1392, 1392, 3248,
3516 
3517  2573, 1278, 2132, 2573, 3251, 1391, 1754, 1754, 1754, 1754,
3518  3252, 2455, 3253, 1393, 1754, 1754, 1754, 1754, 1757, 1757,
3519  1757, 1757, 3254, 3258, 3259, 1758, 1757, 1757, 1757, 1757,
3520  2242, 2574, 2242, 1758, 4612, 4612, 4612, 4612, 3262, 1989,
3521  2262, 4612, 1760, 1760, 1760, 1760, 2262, 1765, 1765, 1765,
3522  1765, 3265, 3268, 2574, 1766, 1761, 1767, 3269, 3270, 3271,
3523  1767, 3272, 1765, 1765, 1765, 1765, 3273, 3274, 3275, 1766,
3524  1755, 1767, 3276, 3277, 2465, 1767, 3278, 2465, 1755, 3279,
3525  3280, 1755, 3281, 4612, 4612, 4612, 4612, 2007, 2816, 1755,
3526  4612, 2816, 4612, 3282, 3285, 3287, 4612, 1765, 1765, 1765,
3527 
3528  1765, 2007, 3286, 2331, 1766, 3286, 1767, 2331, 2341, 3289,
3529  1767, 1390, 1390, 1390, 1390, 1392, 1392, 1392, 1392, 1769,
3530  1769, 1769, 1769, 1773, 1773, 1773, 1773, 2356, 1724, 1391,
3531  1725, 2008, 2356, 1393, 1774, 1776, 1776, 1776, 1776, 1776,
3532  1776, 1776, 1776, 1778, 1778, 1778, 1778, 2364, 1775, 2367,
3533  1779, 2367, 1353, 2371, 1776, 1776, 1776, 1776, 1781, 2009,
3534  1777, 1782, 2371, 2375, 1777, 1776, 1776, 1776, 1776, 3284,
3535  2375, 1771, 1786, 1786, 1786, 1786, 1724, 2379, 1725, 1777,
3536  1788, 1788, 1788, 1788, 1787, 1795, 1795, 1795, 1795, 2379,
3537  1777, 1789, 1795, 1795, 1795, 1795, 1798, 1798, 1798, 1798,
3538 
3539  1839, 1839, 1839, 1839, 3292, 2387, 1790, 1839, 1839, 1839,
3540  1839, 2387, 2718, 3293, 1799, 1847, 1847, 1847, 1847, 1851,
3541  1851, 1851, 1851, 3293, 3294, 3295, 1848, 1851, 1851, 1851,
3542  1851, 1724, 1791, 1725, 1852, 1853, 1853, 1853, 1853, 1781,
3543  3296, 1849, 1852, 1868, 1868, 1868, 1868, 3297, 3298, 3299,
3544  1872, 1873, 3300, 1874, 3301, 1875, 1867, 3302, 1876, 1877,
3545  3303, 1862, 1912, 1912, 1912, 1912, 3304, 1850, 1878, 1913,
3546  1879, 1912, 1912, 1912, 1912, 3305, 3283, 3307, 1913, 1917,
3547  1917, 1917, 1917, 3307, 3309, 1923, 1923, 1923, 1923, 3309,
3548  3310, 1918, 1924, 3311, 1919, 3315, 1925, 1849, 1923, 1923,
3549 
3550  1923, 1923, 3316, 3317, 3318, 1924, 3319, 3320, 3321, 1925,
3551  1928, 1928, 1928, 1928, 1915, 3322, 3326, 1929, 1931, 1931,
3552  1931, 1931, 3327, 1915, 1940, 1940, 1940, 1940, 3328, 1932,
3553  1940, 1940, 1940, 1940, 1942, 1942, 1942, 1942, 3329, 1976,
3554  3323, 1943, 3330, 3323, 1934, 1940, 1940, 1940, 1940, 1941,
3555  1940, 1940, 1940, 1940, 1945, 1941, 1963, 1946, 3331, 1963,
3556  1277, 1277, 1277, 1277, 2024, 2024, 2024, 2024, 1977, 1978,
3557  1941, 1979, 3332, 1980, 1964, 1941, 1981, 1982, 1278, 3100,
3558  3324, 1285, 1976, 3324, 3090, 3091, 1983, 3090, 1984, 1977,
3559  1978, 3325, 1979, 3334, 1980, 3335, 3336, 1981, 1982, 1284,
3560 
3561  1284, 1284, 1284, 1288, 1288, 1288, 1288, 1983, 3337, 1984,
3562  1289, 4612, 4612, 4612, 4612, 3338, 1285, 3339, 4612, 1288,
3563  1288, 1288, 1288, 3340, 1286, 3341, 1289, 2026, 2026, 2026,
3564  2026, 3110, 3347, 3348, 2027, 1945, 1990, 1991, 1990, 1990,
3565  1991, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1990,
3566  1992, 1990, 1990, 1990, 1990, 1971, 1993, 1993, 1993, 1993,
3567  1993, 1993, 1990, 1990, 1990, 1990, 1990, 1990, 1990, 1993,
3568  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3569  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1990,
3570  1990, 1990, 1990, 1993, 1994, 1993, 1993, 1993, 1993, 1993,
3571 
3572  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3573  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1990,
3574  1990, 1990, 1995, 1990, 2010, 2011, 2011, 2010, 3349, 3312,
3575  2337, 2012, 3313, 2337, 2338, 2013, 3351, 2007, 1283, 1284,
3576  1284, 1283, 2000, 1295, 1295, 1295, 1295, 3354, 2338, 3314,
3577  1296, 2021, 2021, 2021, 2021, 1285, 1323, 1323, 1323, 1323,
3578  1285, 2339, 1301, 1286, 3355, 3333, 1302, 1291, 1291, 1291,
3579  1291, 1300, 1300, 1300, 1300, 3356, 1950, 1304, 1305, 1950,
3580  3357, 2015, 1301, 2339, 2577, 3358, 1302, 2577, 1285, 3360,
3581  2129, 3333, 1286, 2129, 3359, 3361, 1286, 1304, 1305, 1295,
3582 
3583  1295, 1295, 1295, 3362, 1951, 3363, 1296, 3364, 2271, 2009,
3584  4612, 4612, 4612, 4612, 3366, 2132, 1285, 4612, 3370, 3371,
3585  1287, 2132, 2029, 2029, 2029, 2029, 1292, 4612, 1298, 1293,
3586  3372, 1300, 1300, 1300, 1300, 3373, 1952, 2132, 1300, 1300,
3587  1300, 1300, 1301, 2132, 3374, 3375, 1302, 1286, 1285, 1301,
3588  3377, 3378, 3376, 1302, 1953, 1285, 1286, 1304, 1305, 1307,
3589  1307, 1307, 1307, 1286, 1304, 1305, 1308, 4612, 4612, 4612,
3590  4612, 3379, 3380, 3381, 4612, 2021, 2021, 2021, 2021, 1310,
3591  1311, 1311, 1310, 3382, 1298, 3383, 1301, 3384, 3385, 3388,
3592  1302, 1311, 1311, 1311, 1311, 4612, 1314, 1314, 1315, 1314,
3593 
3594  3389, 1304, 1305, 3386, 1312, 3390, 3391, 1292, 1314, 1314,
3595  1315, 1314, 1317, 1317, 1317, 1317, 1312, 3392, 3387, 1318,
3596  3393, 1316, 4612, 4612, 4612, 4612, 3394, 3398, 3399, 4612,
3597  3396, 3400, 3397, 1316, 2031, 2031, 2031, 2031, 1425, 1317,
3598  1317, 1317, 1317, 3401, 3172, 1329, 1318, 1328, 1328, 1328,
3599  1328, 3402, 2039, 2039, 2039, 2039, 1320, 3423, 1329, 1321,
3600  3424, 1287, 1328, 1328, 1328, 1328, 3451, 1328, 1328, 1328,
3601  1328, 3452, 1312, 1329, 3468, 3469, 3470, 1312, 1329, 1328,
3602  1328, 1328, 1328, 1328, 1328, 1328, 1328, 1312, 3471, 3472,
3603  1329, 3474, 1312, 3475, 1329, 1346, 1346, 1346, 1346, 1351,
3604 
3605  1351, 1351, 1351, 3397, 1312, 3476, 3477, 3478, 1312, 1359,
3606  1360, 1360, 1359, 3479, 3484, 3485, 1361, 3488, 1360, 1360,
3607  1360, 1360, 1347, 3491, 1352, 1361, 4612, 4612, 4612, 4612,
3608  3492, 1935, 3493, 4612, 1935, 3494, 1362, 1320, 1936, 3495,
3609  1937, 2042, 3496, 3497, 1937, 1362, 1376, 1376, 1376, 1376,
3610  3498, 3499, 3500, 4612, 2041, 1376, 1376, 1376, 1376, 4612,
3611  4612, 4612, 4612, 1377, 3501, 3502, 4612, 2053, 2053, 2053,
3612  2053, 1379, 1377, 3503, 2054, 1364, 3506, 1348, 3509, 2341,
3613  1379, 1724, 3511, 1725, 1364, 2364, 4612, 1376, 1376, 1376,
3614  1376, 1365, 1376, 1376, 1376, 1376, 2068, 2068, 2068, 2068,
3615 
3616  4612, 3064, 3065, 3513, 1377, 3514, 3066, 3516, 4612, 3067,
3617  3068, 3517, 1379, 1420, 1420, 1420, 1420, 1379, 3504, 3069,
3618  1421, 3070, 3518, 3519, 2052, 1313, 1366, 1366, 1367, 1366,
3619  1313, 1313, 1313, 1368, 1313, 1313, 1313, 1313, 1313, 1313,
3620  1313, 4612, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
3621  1313, 1313, 1313, 1369, 1313, 1313, 1313, 1313, 1370, 1370,
3622  1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3623  1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1313, 1313,
3624  1313, 1313, 1370, 1313, 1370, 1370, 1370, 1370, 1370, 1370,
3625  1370, 1370, 1371, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
3626 
3627  1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 3520, 1313,
3628  1313, 1313, 1370, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
3629  1376, 1374, 1374, 1374, 1374, 3521, 1376, 1376, 1376, 1376,
3630  1377, 3523, 3522, 3286, 1377, 1724, 3286, 1725, 1379, 3524,
3631  3507, 3525, 1379, 1377, 1390, 1390, 1390, 1390, 2401, 2334,
3632  3526, 1379, 2334, 1392, 1392, 1392, 1392, 3527, 2074, 2074,
3633  2074, 2074, 1391, 3529, 3529, 4612, 4612, 4612, 4612, 3531,
3634  1380, 1393, 4612, 2110, 2110, 2110, 2110, 3531, 3505, 1380,
3635  2336, 3532, 2052, 1397, 1426, 1426, 1426, 1426, 1438, 1438,
3636  1438, 1438, 1423, 3533, 3534, 1423, 2152, 2152, 2152, 2152,
3637 
3638  1456, 3535, 2336, 1375, 2073, 2074, 2074, 2073, 3536, 1397,
3639  1396, 2112, 2112, 2112, 2112, 2112, 2112, 3537, 3538, 1404,
3640  1420, 1420, 1420, 1420, 1417, 3539, 3540, 1421, 2807, 1397,
3641  3541, 2807, 3542, 1418, 3543, 1398, 1419, 2137, 2137, 2137,
3642  2137, 1986, 1454, 1454, 1454, 1454, 1987, 3515, 2138, 1399,
3643  3515, 3544, 1424, 1425, 2139, 1969, 1400, 3545, 2153, 3546,
3644  1401, 3547, 1402, 3548, 1403, 1404, 1405, 1397, 3549, 1456,
3645  1406, 1407, 1408, 1409, 1410, 3550, 1411, 3551, 1412, 1413,
3646  1414, 1415, 1416, 1433, 1433, 1433, 1433, 3552, 3323, 3553,
3647  1434, 3323, 1435, 3555, 3556, 3557, 1435, 4612, 4612, 4612,
3648 
3649  4612, 3558, 3559, 1326, 4612, 3554, 4612, 3561, 1436, 3563,
3650  4612, 3567, 2116, 2116, 2116, 2116, 2119, 2119, 2119, 2119,
3651  3568, 1435, 4612, 2117, 3324, 1435, 3569, 3324, 2120, 2121,
3652  2134, 2134, 2134, 2134, 1427, 3325, 3570, 1428, 1435, 3571,
3653  3572, 2123, 3573, 2124, 3574, 2137, 2137, 2137, 2137, 3575,
3654  3576, 3577, 4612, 3578, 3579, 1397, 2138, 2137, 2137, 2137,
3655  2137, 3580, 2139, 1454, 1454, 1454, 1454, 1435, 2138, 2137,
3656  2137, 2137, 2137, 3581, 2139, 3583, 2137, 2137, 2137, 2137,
3657  2138, 2137, 2137, 2137, 2137, 3585, 2139, 2138, 1397, 3586,
3658  1456, 3589, 2138, 2139, 1454, 1454, 1454, 1454, 2139, 1497,
3659 
3660  1497, 1497, 1497, 3590, 1454, 1454, 1454, 1454, 1454, 1454,
3661  1454, 1454, 3592, 2141, 3593, 1427, 3594, 3595, 3596, 1397,
3662  3601, 1456, 3602, 3603, 1498, 3604, 2142, 2143, 3607, 1397,
3663  3608, 1456, 3609, 1397, 3463, 1456, 1454, 1454, 1454, 1454,
3664  3610, 2144, 3611, 2147, 3612, 3613, 2083, 2149, 2150, 3464,
3665  2145, 2151, 3628, 2146, 1454, 1454, 1454, 1454, 3633, 3634,
3666  3637, 1397, 3663, 1456, 1454, 1454, 1454, 1454, 1454, 1454,
3667  1454, 1454, 1454, 1454, 1454, 1454, 3664, 3665, 3672, 1397,
3668  2154, 1456, 3673, 1454, 1454, 1454, 1454, 3678, 3679, 1397,
3669  3680, 1456, 3681, 1397, 3683, 1456, 3684, 1397, 3685, 1456,
3670 
3671  1454, 1454, 1454, 1454, 1518, 1518, 1518, 1518, 1397, 3686,
3672  1456, 2155, 2156, 1454, 1454, 1454, 1454, 3687, 1454, 1454,
3673  1454, 1454, 3690, 3693, 2157, 1397, 3008, 1456, 3694, 3695,
3674  3696, 2159, 2337, 3697, 2158, 2337, 3698, 3699, 1397, 3701,
3675  1456, 3702, 3703, 1397, 3704, 1456, 3706, 2160, 2161, 1454,
3676  1454, 1454, 1454, 3707, 1454, 1454, 1454, 1454, 3709, 1454,
3677  1454, 1454, 1454, 2339, 1454, 1454, 1454, 1454, 1454, 1454,
3678  1454, 1454, 2341, 3711, 1397, 2163, 1456, 2162, 2164, 1397,
3679  1724, 1456, 1725, 2364, 1397, 2339, 1456, 3714, 3715, 1397,
3680  2165, 1456, 3716, 1397, 2166, 1456, 1518, 1518, 1518, 1518,
3681 
3682  2766, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3683  1454, 1454, 1454, 3717, 3713, 2167, 2718, 3713, 2816, 2169,
3684  2766, 2816, 2401, 2174, 2168, 2170, 1397, 2171, 1456, 2173,
3685  1397, 2007, 1456, 3718, 1397, 2172, 1456, 1454, 1454, 1454,
3686  1454, 3719, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3687  3720, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 3721,
3688  3515, 3722, 1397, 3515, 1456, 3723, 2176, 1397, 3725, 1456,
3689  1724, 1397, 1725, 1456, 3725, 2008, 1397, 2175, 1456, 3727,
3690  1397, 3727, 1456, 3728, 3729, 2177, 2214, 2214, 2214, 2214,
3691  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3692 
3693  1454, 1454, 3730, 2009, 3731, 2181, 2178, 2718, 2179, 1454,
3694  1454, 1454, 1454, 2180, 2182, 1397, 3732, 1456, 3733, 1397,
3695  3734, 1456, 3735, 1397, 2183, 1456, 3736, 3737, 3738, 2184,
3696  1454, 1454, 1454, 1454, 1397, 3739, 1456, 1454, 1454, 1454,
3697  1454, 3740, 3741, 2801, 1454, 1454, 1454, 1454, 1454, 1454,
3698  1454, 1454, 2187, 3742, 2185, 1397, 4612, 1456, 2801, 4612,
3699  2186, 3554, 1397, 4612, 1456, 3743, 3745, 2189, 2188, 1397,
3700  3746, 1456, 3747, 1397, 3748, 1456, 3749, 1454, 1454, 1454,
3701  1454, 2190, 1499, 1499, 1499, 1499, 3752, 3755, 3756, 1500,
3702  4612, 4612, 4612, 4612, 3757, 3758, 2191, 4612, 2198, 2198,
3703 
3704  2198, 2198, 1397, 2192, 1456, 3759, 1499, 1499, 1499, 1499,
3705  3760, 3762, 2193, 1500, 1506, 1506, 1506, 1506, 2220, 2220,
3706  2220, 2220, 2194, 3763, 3764, 1508, 2200, 2200, 2200, 2200,
3707  1502, 3765, 3767, 1503, 1506, 1506, 1506, 1506, 3768, 1498,
3708  3769, 1508, 3770, 3771, 3772, 2195, 1506, 1506, 1506, 1506,
3709  3776, 1498, 1509, 1277, 1277, 1509, 3783, 3781, 1510, 1498,
3710  3784, 1508, 1516, 1516, 1516, 1516, 1535, 1535, 1535, 1535,
3711  1278, 1498, 3782, 1508, 3785, 3786, 3790, 1517, 1535, 1535,
3712  1535, 1535, 3792, 3793, 3795, 1536, 3796, 1446, 1550, 1550,
3713  1550, 1550, 1553, 1553, 1553, 1553, 2545, 1536, 2235, 2235,
3714 
3715  2235, 2235, 3809, 3810, 1554, 2239, 2239, 2239, 2239, 2236,
3716  3815, 1502, 1519, 1519, 1519, 1519, 1521, 2238, 2239, 2239,
3717  2238, 3816, 3817, 1559, 3818, 2237, 1561, 1537, 1520, 1561,
3718  2244, 2244, 2244, 2244, 2245, 2246, 2247, 2245, 3834, 1537,
3719  1521, 1568, 1568, 1568, 1568, 2240, 2240, 2240, 2240, 2240,
3720  2240, 1524, 1571, 1571, 1571, 1571, 3835, 3842, 3843, 1526,
3721  1577, 1577, 1577, 1577, 1571, 1571, 1571, 1571, 3846, 1572,
3722  1522, 3813, 1523, 3847, 3848, 1524, 3857, 1574, 1578, 3873,
3723  3814, 1572, 1525, 1526, 3011, 3877, 1527, 1528, 1529, 1574,
3724  1530, 2252, 2252, 2252, 2252, 4612, 3879, 3880, 2253, 1571,
3725 
3726  1571, 1571, 1571, 1571, 1571, 1571, 1571, 4612, 1571, 1571,
3727  1571, 1571, 1579, 1579, 1579, 1579, 1572, 2250, 3882, 3883,
3728  1572, 3884, 2341, 3886, 1574, 1572, 2364, 2766, 1574, 1581,
3729  1581, 1581, 1581, 1574, 3891, 2766, 1582, 1580, 4612, 4612,
3730  4612, 4612, 3892, 3893, 3894, 4612, 1581, 1581, 1581, 1581,
3731  3895, 3896, 3897, 1582, 1579, 1579, 1579, 1579, 1579, 1579,
3732  1579, 1579, 2254, 3899, 2260, 2260, 2260, 2260, 1584, 3899,
3733  2256, 1585, 2255, 1591, 3901, 3901, 1591, 3902, 3903, 1580,
3734  3904, 3905, 3906, 1580, 2264, 2264, 2264, 2264, 3907, 1580,
3735  3908, 2801, 2112, 2112, 2112, 2112, 2112, 2112, 1598, 1598,
3736 
3737  1598, 1598, 1606, 1606, 1606, 1606, 1614, 1614, 1614, 1614,
3738  1614, 1614, 1614, 1614, 3911, 3912, 1599, 3911, 2801, 3913,
3739  1607, 1614, 1614, 1614, 1614, 1637, 1637, 1637, 1637, 1644,
3740  1644, 1644, 1644, 1645, 1645, 1645, 1645, 1650, 1650, 1650,
3741  1650, 1654, 1654, 1654, 1654, 1665, 1665, 1665, 1665, 1584,
3742  1665, 1665, 1665, 1665, 3914, 3915, 2283, 2283, 2283, 2283,
3743  3916, 3917, 1666, 2284, 3918, 3923, 3924, 1666, 3925, 2285,
3744  1665, 1665, 1665, 1665, 1669, 1669, 1669, 1669, 1669, 1669,
3745  1669, 1669, 1669, 1669, 1669, 1669, 3927, 1666, 1616, 3928,
3746  3929, 3603, 1616, 2288, 2288, 2288, 2288, 1651, 3930, 3932,
3747 
3748  2289, 3933, 3936, 1616, 1672, 1672, 1672, 1672, 2298, 2298,
3749  2298, 2298, 1697, 1697, 1697, 1697, 1705, 1705, 1705, 1705,
3750  3939, 3909, 3940, 2299, 3909, 3941, 3942, 1671, 3944, 3945,
3751  3946, 1671, 3910, 3947, 3948, 1671, 2287, 1703, 1703, 1703,
3752  1703, 1707, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
3753  2333, 2333, 2333, 2333, 1704, 1754, 1754, 1754, 1754, 3950,
3754  3950, 3961, 1673, 1757, 1757, 1757, 1757, 3962, 3966, 3967,
3755  1758, 1707, 4612, 4612, 4612, 4612, 3968, 3969, 3991, 4612,
3756  1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
3757  1760, 1760, 3713, 1761, 2304, 3713, 2083, 1761, 2106, 3994,
3758 
3759  3995, 1761, 1765, 1765, 1765, 1765, 3996, 3997, 4002, 1766,
3760  4003, 1767, 3888, 3889, 4003, 1767, 4004, 4004, 4003, 1755,
3761  4612, 4612, 4612, 4612, 4002, 4002, 4003, 4612, 4003, 4612,
3762  1755, 4003, 4007, 4612, 1765, 1765, 1765, 1765, 4003, 2125,
3763  4008, 1766, 2125, 1767, 4003, 4005, 4002, 1767, 1769, 1769,
3764  1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769, 1769,
3765  1773, 1773, 1773, 1773, 4009, 2346, 2346, 2346, 2346, 4010,
3766  2128, 1774, 2347, 1776, 1776, 1776, 1776, 4011, 2348, 1778,
3767  1778, 1778, 1778, 4002, 4006, 1775, 1779, 4612, 4612, 4612,
3768  4612, 4012, 2128, 4002, 4612, 4013, 2341, 4015, 1777, 2364,
3769 
3770  1771, 2766, 4017, 4018, 1771, 4017, 4021, 4022, 1771, 1778,
3771  1778, 1778, 1778, 4023, 4024, 4025, 1779, 1776, 1776, 1776,
3772  1776, 2352, 2352, 2352, 2352, 1781, 4026, 4028, 1782, 1776,
3773  1776, 1776, 1776, 1786, 1786, 1786, 1786, 2353, 2353, 2353,
3774  2353, 4028, 1777, 4030, 4030, 1787, 1777, 4031, 2354, 1788,
3775  1788, 1788, 1788, 4032, 1777, 1795, 1795, 1795, 1795, 4033,
3776  1789, 2358, 2358, 2358, 2358, 1798, 1798, 1798, 1798, 2369,
3777  2369, 2369, 2369, 2801, 4036, 1790, 2373, 2373, 2373, 2373,
3778  4037, 4038, 4039, 1799, 2377, 2377, 2377, 2377, 2381, 2381,
3779  2381, 2381, 1836, 4040, 4041, 1836, 1839, 1839, 1839, 1839,
3780 
3781  4045, 1791, 2389, 2389, 2389, 2389, 1781, 1847, 1847, 1847,
3782  1847, 2382, 2382, 2382, 2382, 2382, 2382, 4046, 1848, 1851,
3783  1851, 1851, 1851, 1853, 1853, 1853, 1853, 1853, 1853, 1853,
3784  1853, 4048, 4051, 1849, 1852, 1868, 1868, 1868, 1868, 1868,
3785  1868, 1868, 1868, 1912, 1912, 1912, 1912, 4057, 1867, 4058,
3786  1913, 4612, 4612, 4612, 4612, 4059, 4064, 4065, 4612, 1850,
3787  1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
3788  1917, 1917, 1918, 3961, 3911, 1919, 1918, 3911, 3813, 1919,
3789  1918, 4073, 4074, 1919, 2420, 2420, 2420, 2420, 4075, 1849,
3790  1917, 1917, 1917, 1917, 2075, 1915, 2421, 2421, 2421, 2421,
3791 
3792  2148, 4094, 1918, 4612, 4095, 1919, 1923, 1923, 1923, 1923,
3793  4096, 4019, 4020, 1924, 4019, 4097, 4003, 1925, 4612, 4612,
3794  4612, 4612, 4003, 3909, 4034, 4612, 3909, 4034, 4100, 4612,
3795  1928, 1928, 1928, 1928, 3910, 4101, 4035, 1929, 2422, 2422,
3796  2422, 2422, 1931, 1931, 1931, 1931, 4102, 1928, 1928, 1928,
3797  1928, 4106, 2341, 1932, 1929, 4612, 4612, 4612, 4612, 2364,
3798  4113, 4114, 4612, 2424, 2424, 2424, 2424, 4115, 1934, 1931,
3799  1931, 1931, 1931, 2401, 4116, 2425, 1931, 1931, 1931, 1931,
3800  1932, 1940, 1940, 1940, 1940, 4107, 2401, 1932, 4107, 1942,
3801  1942, 1942, 1942, 4118, 4118, 1934, 1943, 4612, 4612, 4612,
3802 
3803  4612, 4120, 1934, 4120, 4612, 4121, 1941, 1942, 1942, 1942,
3804  1942, 4122, 4123, 4124, 1943, 1940, 1940, 1940, 1940, 2431,
3805  2431, 2431, 2431, 1945, 4125, 4126, 1946, 1940, 1940, 1940,
3806  1940, 4108, 2451, 3554, 4108, 2451, 2011, 2011, 2011, 2011,
3807  1941, 4127, 3554, 4131, 1941, 1986, 3590, 4134, 4135, 2467,
3808  1987, 4138, 1941, 2021, 2021, 2021, 2021, 4139, 4140, 1969,
3809  2021, 2021, 2021, 2021, 1301, 4141, 4017, 4018, 1302, 4017,
3810  4144, 1301, 4145, 4019, 4020, 1302, 4019, 4144, 4146, 1304,
3811  1305, 2473, 2473, 2473, 2473, 4147, 1304, 1305, 4159, 1988,
3812  4034, 4162, 1301, 4034, 4163, 3694, 1302, 2024, 2024, 2024,
3813 
3814  2024, 4166, 4035, 4167, 1945, 4168, 1286, 1304, 1305, 2026,
3815  2026, 2026, 2026, 2341, 1285, 2364, 2027, 1989, 1990, 1991,
3816  1990, 1990, 1991, 1990, 1990, 1990, 1990, 1990, 1990, 1990,
3817  1990, 1990, 2452, 1990, 1990, 1990, 1990, 4180, 1993, 1993,
3818  1993, 1993, 1993, 1993, 1990, 1990, 1990, 1990, 1990, 1990,
3819  1990, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3820  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3821  1993, 1990, 1990, 1990, 1990, 1993, 1994, 1993, 1993, 1993,
3822  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3823  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3824 
3825  1993, 1990, 1990, 1990, 1995, 1990, 2010, 2011, 2011, 2010,
3826  2401, 4107, 4181, 2012, 4107, 2401, 4183, 2013, 4169, 2007,
3827  2466, 2011, 2011, 2466, 4612, 4612, 4612, 4612, 4183, 4108,
3828  4185, 4612, 4108, 2467, 4185, 4612, 4171, 4612, 2024, 2024,
3829  2024, 2024, 4612, 4612, 4612, 4612, 4186, 4187, 4188, 4612,
3830  2029, 2029, 2029, 2029, 1292, 1285, 3554, 1293, 2021, 2021,
3831  2021, 2021, 4189, 2015, 3554, 2031, 2031, 2031, 2031, 1301,
3832  4192, 4193, 4194, 1302, 4195, 1286, 1329, 2015, 4196, 4197,
3833  4144, 4612, 4202, 4203, 1304, 1305, 2031, 2031, 2031, 2031,
3834  3795, 2009, 1328, 1328, 1328, 1328, 4212, 1329, 4215, 1328,
3835 
3836  1328, 1328, 1328, 1329, 4216, 2009, 4217, 2341, 4226, 4612,
3837  1329, 2039, 2039, 2039, 2039, 1320, 2364, 1312, 1321, 1328,
3838  1328, 1328, 1328, 4232, 1312, 2489, 2489, 2489, 2489, 2490,
3839  1329, 2401, 2491, 4234, 4234, 1292, 1312, 1376, 1376, 1376,
3840  1376, 4236, 2579, 4236, 1312, 2579, 1376, 1376, 1376, 1376,
3841  2492, 4237, 4238, 3554, 1377, 2580, 4241, 2053, 2053, 2053,
3842  2053, 4242, 1379, 1377, 2054, 4612, 4612, 4612, 4612, 4245,
3843  4246, 1379, 4612, 2581, 4141, 2482, 1376, 1376, 1376, 1376,
3844  2504, 2497, 2497, 2497, 2497, 4248, 4249, 2483, 2054, 2505,
3845  2505, 2505, 2505, 4253, 4256, 2581, 1320, 2110, 2110, 2110,
3846 
3847  2110, 1379, 2341, 2364, 4269, 2134, 2134, 2134, 2134, 1427,
3848  2490, 4271, 1428, 4271, 2110, 2110, 2110, 2110, 2494, 2508,
3849  2509, 2509, 2508, 4273, 1456, 1396, 2214, 2214, 2214, 2214,
3850  1397, 4273, 2553, 4274, 4275, 2553, 4278, 2509, 2509, 2509,
3851  2509, 1456, 4194, 4279, 1397, 2119, 2119, 2119, 2119, 4280,
3852  1398, 2112, 2112, 2112, 2112, 2112, 2112, 2120, 2121, 4282,
3853  4283, 4287, 1397, 4290, 1399, 2116, 2116, 2116, 2116, 2341,
3854  2123, 1400, 4297, 2364, 1435, 1401, 2117, 1402, 1435, 1403,
3855  1404, 1405, 2401, 4302, 4302, 1406, 1407, 1408, 1409, 1410,
3856  1427, 1411, 4304, 1412, 1413, 1414, 1415, 1416, 1404, 2563,
3857 
3858  2563, 2563, 2563, 1417, 2556, 2556, 2556, 2556, 4304, 3554,
3859  2564, 2557, 1418, 1435, 4307, 1419, 4308, 1435, 4314, 4316,
3860  1435, 2560, 2560, 2560, 2560, 4319, 2341, 2364, 2561, 2558,
3861  2565, 2565, 2565, 2565, 4326, 4326, 4328, 2566, 2119, 2119,
3862  2119, 2119, 2567, 4328, 4280, 2577, 1436, 4338, 2577, 2341,
3863  2120, 2121, 2364, 2134, 2134, 2134, 2134, 1427, 4342, 1435,
3864  1428, 4342, 4344, 2123, 4344, 2124, 2137, 2137, 2137, 2137,
3865  2137, 2137, 2137, 2137, 2341, 2364, 2132, 2138, 1397, 4354,
3866  4354, 2138, 2137, 2137, 2137, 2137, 4355, 2139, 4355, 2137,
3867  2137, 2137, 2137, 2138, 2137, 2137, 2137, 2137, 2132, 2139,
3868 
3869  2138, 2137, 2137, 2137, 2137, 2138, 2139, 2152, 2152, 2152,
3870  2152, 2139, 2138, 2137, 2137, 2137, 2137, 4349, 2139, 1454,
3871  1454, 1454, 1454, 4358, 2138, 2341, 2137, 2137, 2137, 2137,
3872  2139, 2137, 2137, 2137, 2137, 2364, 4363, 2138, 1427, 2812,
3873  2587, 1273, 2138, 2139, 1397, 2811, 1456, 2458, 2139, 2809,
3874  1273, 2456, 2595, 1454, 1454, 1454, 1454, 2220, 2220, 2220,
3875  2220, 2588, 1454, 1454, 1454, 1454, 1333, 1337, 2806, 2153,
3876  2589, 1454, 1454, 1454, 1454, 1333, 1337, 2590, 1397, 2591,
3877  1456, 1336, 2805, 2804, 2592, 2593, 1345, 1397, 1336, 1456,
3878  1454, 1454, 1454, 1454, 1355, 1345, 1397, 1336, 1456, 2596,
3879 
3880  2803, 2597, 2802, 1355, 2594, 1454, 1454, 1454, 1454, 1454,
3881  1454, 1454, 1454, 2801, 2800, 1397, 2796, 1456, 1454, 1454,
3882  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3883  1397, 2792, 1456, 1357, 1397, 1372, 1456, 1454, 1454, 1454,
3884  1454, 1512, 1357, 1397, 1372, 1456, 2791, 1397, 2598, 1456,
3885  1512, 1397, 2790, 1456, 1454, 1454, 1454, 1454, 1454, 1454,
3886  1454, 1454, 1397, 2789, 1456, 2788, 2599, 1454, 1454, 1454,
3887  1454, 2428, 1454, 1454, 1454, 1454, 2786, 2601, 2785, 1397,
3888  2600, 1456, 2784, 1397, 4612, 1456, 1531, 4612, 2603, 2783,
3889  2782, 4612, 1397, 2602, 1456, 1531, 2781, 1397, 2604, 1456,
3890 
3891  1454, 1454, 1454, 1454, 2659, 2659, 2659, 2659, 2605, 1454,
3892  1454, 1454, 1454, 1570, 1454, 1454, 1454, 1454, 1454, 1454,
3893  1454, 1454, 1570, 2606, 2780, 1397, 2779, 1456, 2607, 2608,
3894  1454, 1454, 1454, 1454, 1397, 4612, 1456, 1612, 4612, 1397,
3895  2609, 1456, 4612, 1397, 2778, 1456, 1612, 1454, 1454, 1454,
3896  1454, 2673, 2673, 2673, 2673, 1397, 2777, 1456, 1454, 1454,
3897  1454, 1454, 2610, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3898  1454, 2611, 1397, 2777, 1456, 1349, 2612, 1454, 1454, 1454,
3899  1454, 2775, 1349, 1397, 1646, 1456, 2613, 1382, 1397, 1356,
3900  1456, 1349, 1397, 1646, 1456, 2775, 1356, 1454, 1454, 1454,
3901 
3902  1454, 2404, 1397, 1382, 1456, 1356, 2614, 1454, 1454, 1454,
3903  1454, 2402, 1382, 2615, 2665, 2665, 2665, 2665, 2577, 2772,
3904  2616, 2577, 1397, 2617, 1456, 1454, 1454, 1454, 1454, 2771,
3905  2770, 1661, 1397, 2769, 1456, 1454, 1454, 1454, 1454, 2666,
3906  1661, 2618, 2619, 1454, 1454, 1454, 1454, 1442, 2807, 2132,
3907  1397, 2807, 1456, 1454, 1454, 1454, 1454, 1358, 1664, 2768,
3908  1397, 1986, 1456, 1442, 1358, 2621, 1987, 1664, 1397, 1515,
3909  1456, 2132, 1442, 1358, 2620, 1969, 1515, 1668, 1397, 1674,
3910  1456, 1454, 1454, 1454, 2627, 1515, 1668, 2622, 1674, 1454,
3911  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3912 
3913  1454, 1454, 1454, 1454, 1454, 1988, 1397, 2767, 1456, 1454,
3914  1454, 1454, 1454, 2623, 1397, 2624, 1456, 2766, 1397, 2625,
3915  1456, 2626, 1397, 2765, 1456, 2764, 1397, 2763, 1456, 1454,
3916  1454, 1454, 1454, 1989, 1397, 1538, 1456, 1454, 1454, 1454,
3917  1454, 2387, 1538, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
3918  1454, 1538, 1684, 2387, 1397, 2759, 1456, 1454, 1454, 1454,
3919  1454, 1684, 1397, 2758, 1456, 2631, 2628, 2630, 1397, 2379,
3920  1456, 2629, 1397, 2379, 1456, 1454, 1454, 1454, 1454, 2375,
3921  2375, 2371, 1397, 1448, 1456, 2632, 1454, 1454, 1454, 1454,
3922  1454, 1454, 1454, 1454, 2198, 2198, 2198, 2198, 2371, 1448,
3923 
3924  1397, 2367, 1456, 1687, 2367, 2635, 2633, 2125, 1448, 2634,
3925  2125, 1397, 1687, 1456, 2744, 1397, 2573, 1456, 2636, 2573,
3926  2364, 1508, 2198, 2198, 2198, 2198, 1647, 2637, 2200, 2200,
3927  2200, 2200, 1502, 1647, 2472, 1503, 2577, 2579, 2128, 2577,
3928  2579, 2741, 1647, 2643, 2356, 2356, 1771, 2574, 2640, 1508,
3929  2580, 2344, 2638, 1498, 2235, 2235, 2235, 2235, 2341, 2582,
3930  2128, 2576, 2639, 2472, 2644, 2236, 2331, 2132, 2581, 2574,
3931  2672, 2673, 2673, 2672, 2674, 2676, 1559, 2674, 2331, 1695,
3932  2727, 2237, 1702, 1722, 2677, 2677, 2677, 2677, 1695, 2132,
3933  2581, 1702, 1722, 2240, 2240, 2240, 2240, 2240, 2240, 2245,
3934 
3935  2246, 2247, 2245, 2247, 2246, 2247, 2247, 2252, 2252, 2252,
3936  2252, 1732, 1738, 1502, 2253, 4612, 4612, 4612, 4612, 2726,
3937  1732, 1738, 4612, 1571, 1571, 1571, 1571, 1571, 1571, 1571,
3938  1571, 2725, 1571, 1571, 1571, 1571, 1665, 1665, 1665, 1665,
3939  1572, 1740, 1808, 2724, 1572, 1810, 1843, 1882, 1574, 1572,
3940  1740, 1808, 1574, 1666, 1810, 1843, 1882, 1574, 2260, 2260,
3941  2260, 2260, 1584, 2684, 2723, 1585, 2699, 2699, 2699, 2699,
3942  1724, 2318, 2685, 2685, 2685, 2685, 1886, 1675, 2254, 2283,
3943  2283, 2283, 2283, 1580, 1675, 1886, 2284, 2716, 2715, 2680,
3944  2714, 2713, 2285, 1675, 2712, 1576, 4612, 4612, 4612, 4612,
3945 
3946  1690, 2711, 2710, 4612, 2709, 1888, 2681, 1690, 1698, 4612,
3947  2288, 2288, 2288, 2288, 1888, 1698, 1690, 2289, 4612, 4612,
3948  4612, 4612, 2708, 2707, 1698, 4612, 2298, 2298, 2298, 2298,
3949  2704, 2704, 2704, 2704, 2334, 2729, 2337, 2334, 2706, 2337,
3950  2705, 2299, 2472, 1584, 2730, 2730, 2730, 2730, 2732, 2732,
3951  2732, 2732, 2643, 2346, 2346, 2346, 2346, 1733, 2472, 2703,
3952  2347, 2472, 2702, 2472, 1733, 2336, 2348, 2339, 4612, 4612,
3953  4612, 4612, 1884, 1733, 2701, 4612, 2700, 2733, 2733, 2733,
3954  2733, 4612, 2734, 2734, 2734, 2734, 2698, 2336, 1884, 2339,
3955  2348, 2352, 2352, 2352, 2352, 1781, 1892, 1884, 1782, 2353,
3956 
3957  2353, 2353, 2353, 2738, 2695, 1892, 2694, 2736, 2746, 2693,
3958  2354, 2692, 2739, 2739, 2739, 2739, 1777, 2747, 2747, 2747,
3959  2747, 2749, 2691, 2757, 2690, 2752, 2757, 2274, 2689, 2755,
3960  2750, 2750, 2750, 2750, 2753, 2753, 2753, 2753, 2756, 2756,
3961  2756, 2756, 2382, 2382, 2382, 2382, 2382, 2382, 2761, 1917,
3962  1917, 1917, 1917, 2420, 2420, 2420, 2420, 2762, 2762, 2762,
3963  2762, 1918, 2688, 2268, 1919, 2421, 2421, 2421, 2421, 2422,
3964  2422, 2422, 2422, 2262, 2262, 2679, 1781, 2422, 2422, 2422,
3965  2422, 2424, 2424, 2424, 2424, 2787, 2787, 2787, 2787, 2424,
3966  2424, 2424, 2424, 2425, 2678, 2431, 2431, 2431, 2431, 1945,
3967 
3968  1890, 2425, 1946, 2818, 2818, 2818, 2818, 2473, 2473, 2473,
3969  2473, 2242, 2473, 2473, 2473, 2473, 1890, 1916, 1301, 2242,
3970  1941, 2671, 1302, 1301, 2669, 1890, 1916, 1302, 2826, 2826,
3971  2826, 2826, 1286, 1304, 1305, 2827, 2668, 1286, 1304, 1305,
3972  1328, 1328, 1328, 1328, 2829, 2829, 2829, 2829, 2667, 2664,
3973  2663, 1329, 1376, 1376, 1376, 1376, 2497, 2497, 2497, 2497,
3974  1739, 2066, 2662, 2054, 2661, 1312, 1927, 1739, 2660, 2492,
3975  2840, 2840, 2840, 2840, 2658, 1927, 1739, 1379, 2657, 2656,
3976  1945, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
3977  2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
3978 
3979  2797, 2798, 2798, 2798, 2798, 2798, 2798, 2797, 2797, 2797,
3980  2797, 2797, 2797, 2797, 2798, 2798, 2798, 2798, 2798, 2798,
3981  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
3982  2798, 2798, 2798, 2798, 2797, 2797, 2797, 2797, 2798, 2797,
3983  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
3984  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
3985  2798, 2798, 2798, 2798, 2797, 2797, 2797, 2797, 2799, 1990,
3986  1991, 1990, 1990, 1991, 1990, 1990, 1990, 1990, 1990, 1990,
3987  1990, 1990, 1990, 2452, 1990, 1990, 1990, 1990, 2580, 1993,
3988  1993, 1993, 1993, 1993, 1993, 1990, 1990, 1990, 1990, 1990,
3989 
3990  1990, 1990, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3991  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3992  1993, 1993, 1990, 1990, 1990, 1990, 1993, 1994, 1993, 1993,
3993  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3994  1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993,
3995  1993, 1993, 1990, 1990, 1990, 1995, 1990, 2817, 2011, 2011,
3996  2817, 1328, 1328, 1328, 1328, 1328, 1328, 1328, 1328, 2653,
3997  2467, 1337, 1329, 2023, 2033, 2652, 1329, 2489, 2489, 2489,
3998  2489, 2490, 2023, 2033, 2491, 2651, 1312, 1337, 1429, 2650,
3999  1312, 2829, 2829, 2829, 2829, 2490, 1337, 1429, 2830, 2649,
4000 
4001  2648, 2048, 2492, 1376, 1376, 1376, 1376, 2844, 2844, 2844,
4002  2844, 2647, 2646, 2645, 2015, 2642, 2492, 2048, 1741, 2641,
4003  1377, 2894, 2894, 2894, 2894, 1741, 2048, 2824, 1379, 2086,
4004  2585, 2584, 1397, 2583, 1741, 2823, 2556, 2556, 2556, 2556,
4005  1809, 2571, 2009, 2557, 2057, 1435, 2896, 1809, 2897, 1435,
4006  4612, 4612, 4612, 4612, 2569, 2555, 1809, 4612, 2554, 4612,
4007  2057, 2558, 2490, 4612, 2659, 2659, 2659, 2659, 1404, 2057,
4008  2552, 2833, 2543, 1417, 1846, 4612, 2490, 2843, 2844, 2844,
4009  2843, 1846, 1418, 1396, 2551, 1419, 2560, 2560, 2560, 2560,
4010  1846, 1435, 2550, 2561, 4612, 4612, 4612, 4612, 2549, 2548,
4011 
4012  2547, 4612, 1397, 2546, 2541, 4612, 2540, 1382, 1398, 2898,
4013  2898, 2898, 2898, 2563, 2563, 2563, 2563, 2665, 2665, 2665,
4014  2665, 2120, 1399, 1382, 2564, 2659, 2659, 2659, 2659, 1400,
4015  2539, 1442, 1382, 1401, 2123, 1402, 2124, 1403, 1404, 1405,
4016  1442, 1448, 2666, 1406, 1407, 1408, 1409, 1410, 2536, 1411,
4017  1448, 1412, 1413, 1414, 1415, 1416, 2565, 2565, 2565, 2565,
4018  2535, 1504, 2534, 2566, 4612, 4612, 4612, 4612, 2567, 2566,
4019  1504, 4612, 2533, 2532, 2567, 2531, 4612, 2665, 2665, 2665,
4020  2665, 2901, 2901, 2901, 2901, 2901, 2901, 2556, 2556, 2556,
4021  2556, 2524, 2523, 2522, 2561, 2519, 1435, 2518, 2517, 2282,
4022 
4023  1435, 2898, 2898, 2898, 2898, 2137, 2137, 2137, 2137, 2516,
4024  2515, 2512, 2558, 2120, 1586, 2282, 2138, 2137, 2137, 2137,
4025  2137, 2066, 2139, 1586, 2282, 2066, 2123, 2502, 2138, 2137,
4026  2137, 2137, 2137, 2501, 2139, 1783, 2137, 2137, 2137, 2137,
4027  2138, 2500, 1435, 1884, 1783, 1890, 2139, 2138, 2137, 2137,
4028  2137, 2137, 1884, 2139, 1890, 2137, 2137, 2137, 2137, 2138,
4029  2137, 2137, 2137, 2137, 2499, 2139, 2138, 2137, 2137, 2137,
4030  2137, 2138, 2139, 2995, 2995, 2995, 2995, 2139, 2138, 2137,
4031  2137, 2137, 2137, 2498, 2139, 1454, 1454, 1454, 1454, 1380,
4032  2138, 1377, 2909, 2487, 2484, 2481, 2139, 2910, 2911, 1454,
4033 
4034  1454, 1454, 1454, 1454, 1454, 1454, 1454, 2480, 1938, 2472,
4035  1397, 2471, 1456, 2470, 2912, 1811, 1811, 1938, 1454, 1454,
4036  1454, 1454, 1811, 1947, 1397, 2917, 1456, 2469, 1397, 2017,
4037  1456, 1811, 1947, 2913, 2016, 2915, 2914, 1454, 1454, 1454,
4038  1454, 2919, 2918, 1397, 2463, 1456, 1454, 1454, 1454, 1454,
4039  2460, 1454, 1454, 1454, 1454, 2459, 2916, 1454, 1454, 1454,
4040  1454, 1998, 1397, 1885, 1456, 1454, 1454, 1454, 1454, 2456,
4041  1885, 1397, 1337, 1456, 2048, 1998, 1397, 2920, 1456, 1885,
4042  2057, 1337, 1397, 2048, 1456, 1454, 1454, 1454, 1454, 2057,
4043  1397, 1997, 1456, 2932, 2932, 2932, 2932, 1454, 1454, 1454,
4044 
4045  1454, 1887, 1454, 1454, 1454, 1454, 2453, 2450, 1887, 2923,
4046  1397, 2921, 1456, 1454, 1454, 1454, 1454, 1887, 1397, 2282,
4047  1456, 2922, 1397, 1891, 1456, 2442, 2449, 1397, 2282, 1456,
4048  1891, 2448, 2447, 2924, 2442, 2925, 2586, 1722, 1397, 1891,
4049  1456, 2994, 2995, 2995, 2994, 2586, 1722, 1559, 2446, 2444,
4050  2443, 2926, 2927, 2928, 2928, 2928, 2928, 2927, 2927, 2927,
4051  2927, 2927, 2927, 2927, 2927, 2927, 2927, 2927, 2927, 2927,
4052  2927, 2927, 2441, 2934, 2935, 2933, 1810, 2440, 2929, 2936,
4053  2930, 2927, 2927, 2927, 2927, 1810, 1454, 1454, 1454, 1454,
4054  1960, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4055 
4056  1454, 1454, 1454, 2493, 2437, 2927, 2927, 2927, 2927, 1960,
4057  2927, 1397, 2493, 1456, 4080, 2435, 1397, 2434, 1456, 2433,
4058  1397, 1958, 1456, 4080, 1397, 1956, 1456, 1454, 1454, 1454,
4059  1454, 1454, 1454, 1454, 1454, 2927, 2927, 2927, 2927, 2931,
4060  1454, 1454, 1454, 1454, 1948, 1454, 1454, 1454, 1454, 2429,
4061  1893, 2428, 1397, 1922, 1456, 1336, 1397, 1893, 1456, 1922,
4062  2937, 2938, 1336, 2418, 2415, 1397, 1893, 1456, 2414, 2939,
4063  1397, 1336, 1456, 2413, 2412, 2411, 2940, 1454, 1454, 1454,
4064  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 2410,
4065  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 2941, 2409,
4066 
4067  2409, 2942, 1397, 2407, 1456, 2407, 1397, 2404, 1456, 2402,
4068  1397, 1349, 1456, 2400, 2943, 1397, 2944, 1456, 1349, 1397,
4069  2399, 1456, 2398, 1454, 1454, 1454, 1454, 1349, 2397, 1454,
4070  1454, 1454, 1454, 2396, 2395, 2945, 1454, 1454, 1454, 1454,
4071  1454, 1454, 1454, 1454, 2992, 2992, 2992, 2992, 1397, 2948,
4072  1456, 2393, 2946, 2947, 1397, 2993, 1456, 1454, 1454, 1454,
4073  1454, 1397, 2392, 1456, 2442, 1397, 2391, 1456, 2390, 2949,
4074  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1859, 1803,
4075  2442, 2950, 1397, 2387, 1456, 1454, 1454, 1454, 1454, 2442,
4076  2385, 2951, 1835, 1356, 2379, 1397, 2375, 1456, 2952, 1397,
4077 
4078  1356, 1456, 1454, 1454, 1454, 1454, 2953, 2371, 2367, 1356,
4079  1397, 2365, 1456, 1665, 1665, 1665, 1665, 2954, 1812, 1454,
4080  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1397, 1812, 1456,
4081  1666, 1358, 2955, 1805, 1803, 1802, 2956, 2364, 1358, 1803,
4082  2957, 2356, 1793, 2958, 1397, 1784, 1456, 1358, 1397, 2350,
4083  1456, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4084  1454, 1454, 1454, 1454, 1454, 1454, 1454, 2345, 2344, 2342,
4085  2959, 1454, 1454, 1454, 1454, 1756, 1397, 1751, 1456, 2341,
4086  1397, 1752, 1456, 2961, 1397, 2960, 1456, 2331, 1397, 2329,
4087  1456, 2328, 1571, 1571, 1571, 1571, 1397, 2325, 1456, 1454,
4088 
4089  1454, 1454, 1454, 1454, 1454, 1454, 1454, 2318, 2316, 1572,
4090  2315, 2242, 2699, 2699, 2699, 2699, 2963, 1574, 2314, 2962,
4091  2998, 2998, 2998, 2998, 1397, 2964, 1456, 2966, 1397, 2965,
4092  1456, 2262, 2133, 2967, 1571, 1571, 1571, 1571, 2313, 2133,
4093  3005, 3005, 3005, 3005, 2704, 2704, 2704, 2704, 2133, 2312,
4094  1515, 1572, 2331, 2732, 2732, 2732, 2732, 1515, 2309, 1574,
4095  2308, 3036, 3036, 3036, 3036, 2307, 1515, 3001, 2733, 2733,
4096  2733, 2733, 2734, 2734, 2734, 2734, 2968, 2356, 2306, 2969,
4097  2305, 2348, 2734, 2734, 2734, 2734, 3041, 3041, 3041, 3041,
4098  2367, 1683, 3002, 2297, 2371, 2296, 2295, 2736, 2292, 3045,
4099 
4100  3045, 3045, 3045, 3047, 3047, 3047, 3047, 2736, 2375, 2291,
4101  2290, 2281, 2379, 2787, 2787, 2787, 2787, 3049, 3049, 3049,
4102  3049, 3051, 3051, 3051, 3051, 2387, 2280, 3038, 2818, 2818,
4103  2818, 2818, 2279, 2278, 3055, 3055, 3055, 3055, 2797, 2797,
4104  2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797,
4105  2797, 2797, 2797, 2797, 2797, 2797, 2797, 2797, 2798, 2798,
4106  2798, 2798, 2798, 2798, 2797, 2797, 2797, 2797, 2797, 2797,
4107  2797, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
4108  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
4109  2798, 2797, 2797, 2797, 2797, 2798, 2797, 2798, 2798, 2798,
4110 
4111  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
4112  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
4113  2798, 2797, 2797, 2797, 2797, 2799, 3103, 3104, 2277, 1652,
4114  2276, 3105, 2275, 1628, 3106, 3107, 2011, 2011, 2011, 2011,
4115  1328, 1328, 1328, 1328, 3108, 2586, 3109, 2274, 1620, 2467,
4116  1620, 1329, 1328, 1328, 1328, 1328, 2215, 2826, 2826, 2826,
4117  2826, 2586, 2268, 1329, 2827, 1312, 4612, 4612, 4612, 4612,
4118  2586, 2265, 2262, 4612, 1587, 1572, 2251, 1312, 2829, 2829,
4119  2829, 2829, 3114, 3114, 3114, 3114, 2490, 2249, 2242, 2830,
4120  1722, 2234, 2233, 2015, 2829, 2829, 2829, 2829, 3111, 1376,
4121 
4122  1376, 1376, 1376, 2492, 2232, 2231, 1722, 2492, 3136, 3136,
4123  3136, 3136, 2230, 3112, 2229, 1722, 1377, 2228, 2227, 2492,
4124  2226, 2009, 2225, 2224, 1379, 3122, 3122, 3122, 3122, 3169,
4125  3169, 3169, 3169, 2223, 2222, 1810, 2557, 2894, 2894, 2894,
4126  2894, 2898, 2898, 2898, 2898, 3249, 3249, 3249, 3249, 2221,
4127  1397, 1810, 2213, 2120, 2558, 2894, 2894, 2894, 2894, 2210,
4128  1810, 3115, 2896, 2209, 1552, 1551, 2123, 2490, 3121, 3122,
4129  3122, 3121, 2059, 3700, 1396, 3250, 3250, 3250, 3250, 2059,
4130  2896, 2059, 2897, 2206, 2205, 1538, 1404, 1532, 2059, 3700,
4131  2933, 1417, 1538, 1397, 2898, 2898, 2898, 2898, 3700, 1398,
4132 
4133  1418, 1538, 1505, 1419, 2197, 2196, 2120, 3250, 3250, 3250,
4134  3250, 2259, 1459, 1399, 2137, 2137, 2137, 2137, 2259, 2123,
4135  1400, 2124, 2148, 2136, 1401, 2138, 1402, 2259, 1403, 1404,
4136  1405, 2139, 2135, 2118, 1406, 1407, 1408, 1409, 1410, 2114,
4137  1411, 2113, 1412, 1413, 1414, 1415, 1416, 2566, 3261, 3261,
4138  3261, 3261, 2567, 2566, 1454, 1454, 1454, 1454, 2567, 2901,
4139  2901, 2901, 2901, 2901, 2901, 2901, 2901, 2901, 2901, 2901,
4140  2901, 2137, 2137, 2137, 2137, 2137, 2137, 2137, 2137, 1397,
4141  2109, 1456, 2138, 2107, 2103, 2102, 2138, 2098, 2139, 2095,
4142  3184, 2091, 2139, 2137, 2137, 2137, 2137, 2137, 2137, 2137,
4143 
4144  2137, 2090, 2089, 3508, 2138, 2085, 2082, 2081, 2138, 3508,
4145  2139, 1459, 2080, 2075, 2139, 2137, 2137, 2137, 2137, 2137,
4146  2137, 2137, 2137, 2066, 2064, 3508, 2138, 2063, 2060, 4170,
4147  2138, 3705, 2139, 1380, 3508, 4170, 2139, 3176, 2137, 2137,
4148  2137, 2137, 2137, 2137, 2137, 2137, 3175, 3705, 4612, 2138,
4149  1647, 4170, 1381, 2138, 2058, 2139, 3705, 1647, 2056, 2139,
4150  4170, 1454, 1454, 1454, 1454, 2050, 1647, 3177, 3178, 1454,
4151  1454, 1454, 1454, 3179, 1454, 1454, 1454, 1454, 1344, 2047,
4152  2046, 3180, 1454, 1454, 1454, 1454, 1397, 2045, 1456, 2040,
4153  3181, 1326, 1326, 1299, 1397, 1281, 1456, 2017, 2016, 1397,
4154 
4155  2003, 1456, 2000, 1998, 3182, 3185, 1997, 1397, 3183, 1456,
4156  1960, 3186, 3189, 3189, 3189, 3189, 1454, 1454, 1454, 1454,
4157  3192, 3192, 3192, 3192, 1454, 1454, 1454, 1454, 1454, 1454,
4158  1454, 1454, 1454, 1454, 1454, 1454, 1960, 1397, 1960, 1456,
4159  3188, 1397, 3187, 1456, 1960, 1397, 1958, 1456, 1957, 1397,
4160  1956, 1456, 1948, 1397, 1939, 1456, 1922, 1397, 1911, 1456,
4161  1454, 1454, 1454, 1454, 1910, 2932, 2932, 2932, 2932, 1909,
4162  3198, 3198, 3198, 3198, 1454, 1454, 1454, 1454, 3193, 1454,
4163  1454, 1454, 1454, 1908, 1907, 1397, 3194, 1456, 1906, 1675,
4164  1397, 3191, 1456, 1905, 3190, 1397, 1675, 1456, 3195, 1397,
4165 
4166  1904, 1456, 1901, 1896, 1397, 1675, 1456, 1454, 1454, 1454,
4167  1454, 1454, 1454, 1454, 1454, 1889, 1454, 1454, 1454, 1454,
4168  1454, 1454, 1454, 1454, 1883, 3196, 1454, 1454, 1454, 1454,
4169  1690, 1862, 1397, 1803, 1456, 1859, 1397, 1690, 1456, 3200,
4170  3197, 1397, 1845, 1456, 1842, 1397, 1690, 1456, 1841, 1840,
4171  3199, 1397, 1835, 1456, 1571, 1571, 1571, 1571, 1454, 1454,
4172  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4173  1834, 1572, 3202, 1454, 1454, 1454, 1454, 3201, 1831, 1574,
4174  1828, 3204, 3203, 1397, 1823, 1456, 1817, 1397, 1813, 1456,
4175  1812, 1397, 1807, 1456, 1803, 1805, 3205, 1803, 1397, 1802,
4176 
4177  1456, 1454, 1454, 1454, 1454, 1797, 1454, 1454, 1454, 1454,
4178  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1793, 1784,
4179  3206, 1454, 1454, 1454, 1454, 3207, 1397, 1772, 1456, 1756,
4180  3264, 1397, 3208, 1456, 1752, 1397, 1751, 1456, 3209, 1397,
4181  1750, 1456, 1454, 1454, 1454, 1454, 1397, 3210, 1456, 1454,
4182  1454, 1454, 1454, 1749, 1454, 1454, 1454, 1454, 1454, 1454,
4183  1454, 1454, 3211, 1454, 1454, 1454, 1454, 1397, 3212, 1456,
4184  3266, 3266, 3266, 3266, 1397, 1698, 1456, 1748, 3213, 1397,
4185  1733, 1456, 1698, 1397, 1747, 1456, 3214, 1733, 1397, 1744,
4186  1456, 1698, 1454, 1454, 1454, 1454, 1733, 3215, 1743, 1454,
4187 
4188  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1737, 1736, 3217,
4189  1454, 1454, 1454, 1454, 3218, 1739, 3216, 1397, 1741, 1456,
4190  2351, 1735, 1739, 3223, 1397, 1741, 1456, 2351, 1397, 3219,
4191  1456, 1739, 3222, 1734, 1741, 1397, 2351, 1456, 1720, 1454,
4192  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1719, 1454, 1454,
4193  1454, 1454, 3231, 3231, 3231, 3231, 3233, 3233, 3233, 3233,
4194  3224, 3225, 1809, 3226, 1397, 1716, 1456, 1715, 1397, 1809,
4195  1456, 1714, 1713, 1397, 1712, 1456, 1692, 1397, 1809, 1456,
4196  1683, 1397, 1681, 1456, 1678, 1677, 3227, 1454, 1454, 1454,
4197  3234, 1454, 1454, 1454, 1454, 1676, 1655, 3228, 1454, 1454,
4198 
4199  1454, 1454, 1652, 1649, 1648, 3229, 3230, 1628, 3255, 3255,
4200  3255, 3255, 1397, 1620, 1456, 1619, 1397, 1608, 1456, 3256,
4201  1597, 1596, 1593, 1397, 1587, 1456, 2992, 2992, 2992, 2992,
4202  3260, 3261, 3261, 3260, 3232, 1567, 1559, 2993, 1566, 1563,
4203  1571, 1571, 1571, 1571, 4612, 4612, 4612, 4612, 1555, 3236,
4204  1552, 1551, 1549, 2346, 2346, 2346, 2346, 1572, 1546, 1545,
4205  2347, 1544, 1541, 3235, 3237, 1574, 2348, 1328, 1328, 1328,
4206  1328, 3343, 3343, 3343, 3343, 1540, 1539, 1532, 1329, 1505,
4207  1459, 1446, 1329, 3257, 3114, 3114, 3114, 3114, 2490, 4172,
4208  1443, 2830, 1312, 1441, 1389, 4172, 3344, 1376, 1376, 1376,
4209 
4210  1376, 3350, 3350, 3350, 3350, 3365, 3365, 3365, 3365, 2492,
4211  3267, 4172, 3263, 1387, 1377, 1384, 3353, 3353, 3353, 3353,
4212  4172, 1381, 1379, 3367, 3367, 3367, 3367, 3342, 3136, 3136,
4213  3136, 3136, 3369, 3369, 3369, 3369, 3395, 3395, 3395, 3395,
4214  1373, 1397, 3169, 3169, 3169, 3169, 1350, 1344, 1327, 2557,
4215  1326, 1299, 1272, 3345, 2556, 2556, 2556, 2556, 1811, 1811,
4216  4612, 2557, 4612, 1435, 4612, 1811, 3346, 1435, 4612, 2490,
4217  3352, 3353, 3353, 3352, 1811, 4612, 1396, 1404, 4612, 2558,
4218  4612, 3368, 1417, 2894, 2894, 2894, 2894, 3190, 3196, 4612,
4219  4612, 1418, 4612, 4612, 1419, 1397, 2137, 2137, 2137, 2137,
4220 
4221  4612, 1398, 4612, 3197, 1846, 1885, 4612, 2138, 2896, 1435,
4222  2403, 1846, 1885, 2139, 4612, 1399, 4612, 2403, 3232, 4612,
4223  1846, 1885, 1400, 4612, 2403, 4612, 1401, 1887, 1402, 4612,
4224  1403, 1404, 1405, 2403, 1887, 4612, 1406, 1407, 1408, 1409,
4225  1410, 4612, 1411, 1887, 1412, 1413, 1414, 1415, 1416, 2137,
4226  2137, 2137, 2137, 2137, 2137, 2137, 2137, 4612, 4612, 4612,
4227  2138, 4612, 4612, 4612, 2138, 4612, 2139, 4612, 4612, 4612,
4228  2139, 2137, 2137, 2137, 2137, 2137, 2137, 2137, 2137, 4612,
4229  4612, 4612, 2138, 4612, 4612, 4612, 2138, 4612, 2139, 4612,
4230  4612, 4612, 2139, 2137, 2137, 2137, 2137, 2137, 2137, 2137,
4231 
4232  2137, 4612, 4612, 4612, 2138, 4612, 4612, 4612, 2138, 4612,
4233  2139, 4612, 4612, 4612, 2139, 4612, 3404, 4612, 3403, 2137,
4234  2137, 2137, 2137, 2137, 2137, 2137, 2137, 4612, 4612, 4612,
4235  2138, 4612, 4612, 4612, 2138, 4612, 2139, 4612, 4612, 4612,
4236  2139, 3405, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4237  4612, 3406, 4612, 3407, 4612, 4612, 4612, 3408, 1454, 1454,
4238  1454, 1454, 1454, 1454, 1454, 1454, 4612, 1397, 1891, 1456,
4239  1893, 1397, 4612, 1456, 4612, 1891, 3411, 1893, 4612, 3409,
4240  4612, 4612, 3412, 1397, 1891, 1456, 1893, 1397, 4612, 1456,
4241  3413, 1454, 1454, 1454, 1454, 4612, 4612, 3410, 3189, 3189,
4242 
4243  3189, 3189, 1454, 1454, 1454, 1454, 3192, 3192, 3192, 3192,
4244  1454, 1454, 1454, 1454, 4612, 4612, 1397, 4612, 1456, 3420,
4245  3420, 3420, 3420, 1397, 4612, 1456, 4612, 1397, 3414, 1456,
4246  3421, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 1454, 1454,
4247  1454, 1454, 4612, 4612, 1397, 4612, 1456, 3198, 3198, 3198,
4248  3198, 3415, 3249, 3249, 3249, 3249, 4612, 4612, 1400, 1454,
4249  1454, 1454, 1454, 1397, 2405, 1456, 3417, 4612, 2153, 2427,
4250  2427, 2405, 1397, 4612, 1456, 4612, 2427, 3416, 2405, 4612,
4251  3419, 3418, 4612, 1415, 1397, 2427, 1456, 2405, 1454, 1454,
4252  1454, 1454, 3427, 3427, 3427, 3427, 4612, 3428, 4612, 3429,
4253 
4254  3429, 3429, 3429, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4255  1454, 2430, 4612, 1397, 3422, 1456, 4612, 1397, 2430, 1456,
4256  1454, 1454, 1454, 1454, 1397, 3425, 1456, 2430, 1397, 4612,
4257  1456, 4612, 1397, 4612, 1456, 3433, 3433, 3433, 3433, 1454,
4258  1454, 1454, 1454, 4612, 4612, 1397, 4612, 1456, 1454, 1454,
4259  1454, 1454, 2468, 4612, 3426, 3436, 3436, 3436, 3436, 2468,
4260  1397, 4612, 1456, 3430, 1397, 2475, 1456, 4612, 2468, 3431,
4261  4612, 4612, 2475, 1397, 4612, 1456, 1454, 1454, 1454, 1454,
4262  3437, 2475, 1456, 1454, 1454, 1454, 1454, 4612, 3432, 3440,
4263  3440, 3440, 3440, 1454, 1454, 1454, 1454, 3434, 4612, 4612,
4264 
4265  4612, 1397, 4612, 1456, 4612, 4612, 3435, 4612, 1397, 4612,
4266  1456, 4612, 4612, 4612, 1397, 4612, 1456, 4612, 1397, 4612,
4267  1456, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4268  1454, 1454, 1454, 4612, 1454, 1454, 1454, 1454, 3446, 3446,
4269  3446, 3446, 1454, 1454, 1454, 1454, 1397, 4612, 1456, 4612,
4270  1397, 4612, 1456, 4612, 1397, 3441, 1456, 3438, 3439, 1397,
4271  4612, 1456, 4612, 3447, 4612, 1456, 4612, 1397, 4612, 1456,
4272  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 4612, 3442,
4273  4612, 4612, 4612, 3448, 4612, 4612, 4612, 3443, 4612, 1454,
4274  1454, 1454, 1454, 2486, 2496, 1397, 2496, 1456, 2486, 1397,
4275 
4276  2486, 1456, 4612, 2496, 4612, 3444, 4612, 3450, 4612, 2486,
4277  3445, 4612, 2496, 3449, 1397, 4612, 1456, 1454, 1454, 1454,
4278  1454, 3457, 3457, 3457, 3457, 3458, 3458, 3458, 3458, 4612,
4279  4612, 4612, 3453, 4612, 4612, 4612, 3454, 4612, 1454, 1454,
4280  1454, 1454, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 4612,
4281  1397, 4612, 1456, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4282  1454, 4612, 4612, 1397, 3455, 1456, 4612, 3231, 3231, 3231,
4283  3231, 3233, 3233, 3233, 3233, 4612, 4612, 4612, 1397, 4612,
4284  1456, 4612, 1397, 4612, 1456, 1454, 1454, 1454, 1454, 4612,
4285  2059, 4612, 1397, 3456, 1456, 4612, 1397, 2059, 1456, 2059,
4286 
4287  1454, 1454, 1454, 1454, 4612, 4612, 2059, 3459, 4612, 4612,
4288  1397, 4612, 1456, 4612, 3460, 4612, 3461, 1454, 1454, 1454,
4289  1454, 1454, 1454, 1454, 1454, 1397, 3462, 1456, 3255, 3255,
4290  3255, 3255, 3249, 3249, 3249, 3249, 4612, 4612, 4612, 3256,
4291  4612, 4612, 1397, 4612, 1456, 3463, 1397, 4612, 1456, 3250,
4292  3250, 3250, 3250, 3480, 3480, 3480, 3480, 4612, 4612, 4612,
4293  3464, 4612, 4612, 4612, 3481, 3482, 3482, 3482, 3482, 3255,
4294  3255, 3255, 3255, 3483, 3483, 3483, 3483, 4612, 4612, 2133,
4295  3256, 3465, 4612, 4612, 4612, 3466, 2133, 4612, 4612, 3467,
4296  3486, 3487, 3487, 3486, 4612, 2133, 1559, 3487, 3487, 3487,
4297 
4298  3487, 4612, 4612, 3473, 1571, 1571, 1571, 1571, 1571, 1571,
4299  1571, 1571, 1328, 1328, 1328, 1328, 3343, 3343, 3343, 3343,
4300  4612, 1572, 4612, 1329, 1538, 1572, 4612, 1329, 4612, 1574,
4301  4612, 1538, 4612, 1574, 4612, 4612, 4612, 1312, 4612, 4612,
4302  1538, 3344, 1376, 1376, 1376, 1376, 3562, 3562, 3562, 3562,
4303  3350, 3350, 3350, 3350, 3564, 3564, 3564, 3564, 4612, 1377,
4304  4612, 4612, 3489, 3565, 3566, 3566, 3565, 1379, 3566, 3566,
4305  3566, 3566, 3365, 3365, 3365, 3365, 4612, 4612, 4612, 3490,
4306  3367, 3367, 3367, 3367, 3369, 3369, 3369, 3369, 3112, 3582,
4307  3582, 3582, 3582, 1397, 3584, 3584, 3584, 3584, 3345, 3587,
4308 
4309  3587, 3587, 3587, 4612, 3560, 3591, 3591, 3591, 3591, 4612,
4310  4612, 3597, 3597, 3597, 3597, 3605, 3605, 3605, 3605, 3606,
4311  3606, 3606, 3606, 2259, 3588, 3395, 3395, 3395, 3395, 1404,
4312  2259, 4612, 1400, 4612, 1417, 4612, 3598, 4612, 4612, 2259,
4313  3417, 4612, 2153, 1418, 4612, 4612, 1419, 2137, 2137, 2137,
4314  2137, 3677, 3677, 3677, 3677, 3418, 3599, 1415, 2138, 2137,
4315  2137, 2137, 2137, 4612, 2139, 4612, 2137, 2137, 2137, 2137,
4316  2138, 2137, 2137, 2137, 2137, 4612, 2139, 2138, 2137, 2137,
4317  2137, 2137, 2138, 2139, 4612, 4612, 3600, 4612, 2139, 2138,
4318  4612, 2137, 2137, 2137, 2137, 2139, 3620, 3620, 3620, 3620,
4319 
4320  4612, 3459, 2138, 2137, 2137, 2137, 2137, 2138, 2139, 3614,
4321  4612, 4612, 4612, 2139, 2138, 4612, 4612, 3615, 4612, 4612,
4322  2139, 4612, 4612, 4612, 3616, 1454, 1454, 1454, 1454, 3480,
4323  3480, 3480, 3480, 3617, 1454, 1454, 1454, 1454, 4612, 4612,
4324  3481, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 4612,
4325  1397, 4612, 1456, 1647, 3618, 3482, 3482, 3482, 3482, 1397,
4326  1647, 1456, 3619, 4612, 4612, 3621, 1397, 4612, 1456, 1647,
4327  1397, 4612, 1456, 3622, 1454, 1454, 1454, 1454, 4612, 4612,
4328  3623, 4612, 3624, 3627, 3627, 3627, 3627, 1454, 1454, 1454,
4329  1454, 3420, 3420, 3420, 3420, 3630, 3630, 3630, 3630, 1397,
4330 
4331  3631, 1456, 3421, 4612, 4612, 3631, 4612, 4612, 1397, 4612,
4332  1456, 4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 4612,
4333  3625, 1454, 1454, 1454, 1454, 4612, 1454, 1454, 1454, 1454,
4334  1454, 1454, 1454, 1454, 3427, 3427, 3427, 3427, 2351, 3428,
4335  3429, 3429, 3429, 3429, 4612, 2351, 1397, 4612, 1456, 4612,
4336  3626, 1397, 4612, 1456, 2351, 1397, 4612, 1456, 4612, 1397,
4337  4612, 1456, 4612, 3629, 4612, 1397, 2430, 1456, 3641, 3641,
4338  3641, 3641, 4612, 2430, 1454, 1454, 1454, 1454, 3433, 3433,
4339  3433, 3433, 2430, 3632, 4612, 1454, 1454, 1454, 1454, 1454,
4340  1454, 1454, 1454, 1397, 4612, 3642, 4612, 3635, 4612, 1397,
4341 
4342  3638, 1456, 4612, 1397, 4612, 1456, 3636, 4612, 4612, 4612,
4343  1397, 4612, 1456, 4612, 1397, 3639, 1456, 3640, 2927, 2928,
4344  2928, 2928, 2928, 2927, 2927, 2927, 2927, 2927, 2927, 2927,
4345  2927, 2927, 2927, 2927, 2927, 2927, 2927, 2927, 3436, 3436,
4346  3436, 3436, 4612, 4612, 2929, 3645, 2930, 2927, 2927, 2927,
4347  2927, 3483, 3483, 3483, 3483, 3644, 4612, 3646, 3647, 3647,
4348  3647, 3647, 4612, 3437, 4612, 1456, 3648, 3648, 3648, 3648,
4349  4612, 2927, 2927, 2927, 2927, 3643, 2927, 3682, 3682, 3682,
4350  3682, 4612, 2468, 2075, 3649, 3649, 3649, 3649, 4612, 2468,
4351  4612, 1397, 2475, 1456, 3440, 3440, 3440, 3440, 2468, 2475,
4352 
4353  1538, 2927, 2927, 2927, 2927, 2931, 4612, 1538, 2475, 3447,
4354  4612, 1456, 3650, 3650, 3650, 3650, 1538, 4612, 4612, 1397,
4355  4612, 1456, 1454, 1454, 1454, 1454, 3652, 3652, 3652, 3652,
4356  1454, 1454, 1454, 1454, 4612, 4612, 2496, 1397, 2496, 1456,
4357  1454, 1454, 1454, 1454, 4612, 2496, 4612, 1397, 4612, 1456,
4358  4612, 3653, 4612, 1456, 2496, 1397, 4612, 1456, 3446, 3446,
4359  3446, 3446, 4612, 4612, 4612, 1397, 4612, 1456, 4612, 4612,
4360  4612, 3654, 3659, 3659, 3659, 3659, 3482, 3482, 3482, 3482,
4361  4612, 4612, 3651, 3447, 4612, 1456, 4612, 1454, 1454, 1454,
4362  1454, 1454, 1454, 1454, 1454, 4612, 3656, 2075, 4612, 4612,
4363 
4364  4612, 3655, 3658, 3599, 1454, 1454, 1454, 1454, 4612, 4612,
4365  4612, 3657, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 3666,
4366  3666, 3666, 3666, 3667, 3667, 3667, 3667, 4612, 4612, 1397,
4367  4612, 1456, 4612, 3600, 4612, 1454, 1454, 1454, 1454, 3483,
4368  3483, 3483, 3483, 3660, 1397, 4612, 1456, 4612, 3668, 4612,
4369  1456, 3457, 3457, 3457, 3457, 3458, 3458, 3458, 3458, 3661,
4370  1397, 4612, 1456, 4612, 4612, 4612, 3662, 1454, 1454, 1454,
4371  1454, 3670, 3670, 3670, 3670, 4612, 1397, 4612, 1456, 4612,
4372  1397, 4612, 1456, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4373  1454, 4612, 1397, 4612, 1456, 4612, 1397, 1647, 1456, 3675,
4374 
4375  3675, 3675, 3675, 4612, 1647, 4612, 3669, 4612, 1397, 4612,
4376  1456, 4612, 1397, 1647, 1456, 1454, 1454, 1454, 1454, 3480,
4377  3480, 3480, 3480, 4612, 1397, 4612, 1456, 4612, 3113, 3430,
4378  3481, 3688, 3689, 3689, 3688, 3113, 4612, 1559, 4612, 4612,
4379  1397, 4612, 1456, 4612, 3113, 3671, 3689, 3689, 3689, 3689,
4380  1571, 1571, 1571, 1571, 1571, 1571, 1571, 1571, 1538, 3674,
4381  4612, 1376, 1376, 1376, 1376, 1538, 4612, 1572, 4612, 2427,
4382  2427, 1572, 4612, 4612, 1538, 1574, 2427, 3676, 1377, 1574,
4383  3751, 3751, 3751, 3751, 4612, 2427, 1379, 3562, 3562, 3562,
4384  3562, 3564, 3564, 3564, 3564, 3753, 3754, 3754, 3753, 3754,
4385 
4386  3754, 3754, 3754, 3761, 3761, 3761, 3761, 4612, 4612, 4612,
4387  3691, 3766, 3766, 3766, 3766, 3582, 3582, 3582, 3582, 3584,
4388  3584, 3584, 3584, 4612, 1397, 4612, 4612, 4612, 3692, 4612,
4389  4612, 3750, 3587, 3587, 3587, 3587, 3647, 3647, 3647, 3647,
4390  3773, 3773, 3773, 3773, 3774, 3774, 3774, 3774, 3591, 3591,
4391  3591, 3591, 3775, 3775, 3775, 3775, 4612, 3588, 4612, 3113,
4392  1404, 3777, 3777, 3777, 3777, 1417, 3113, 4612, 4612, 3598,
4393  3597, 3597, 3597, 3597, 1418, 3113, 4612, 1419, 3659, 3659,
4394  3659, 3659, 3787, 3787, 3787, 3787, 3778, 3788, 3788, 3788,
4395  3788, 3605, 3605, 3605, 3605, 3598, 3606, 3606, 3606, 3606,
4396 
4397  3791, 3791, 3791, 3791, 4612, 4612, 3779, 3794, 3794, 3794,
4398  3794, 4612, 3789, 4612, 4612, 3599, 2137, 2137, 2137, 2137,
4399  2137, 2137, 2137, 2137, 4612, 4612, 4612, 2138, 1538, 4612,
4400  4612, 2138, 4612, 2139, 4612, 1538, 3780, 2139, 2137, 2137,
4401  2137, 2137, 4612, 4612, 1538, 3600, 4612, 4612, 4612, 2138,
4402  3800, 3800, 3800, 3800, 4612, 2139, 4612, 2137, 2137, 2137,
4403  2137, 2138, 2137, 2137, 2137, 2137, 4612, 2139, 2138, 1454,
4404  1454, 1454, 1454, 2138, 2139, 1454, 1454, 1454, 1454, 2139,
4405  3798, 3620, 3620, 3620, 3620, 4612, 3797, 2137, 2137, 2137,
4406  2137, 4612, 2138, 4612, 1397, 4612, 1456, 4612, 2138, 4612,
4407 
4408  1397, 4612, 1456, 4612, 2139, 4612, 3799, 1454, 1454, 1454,
4409  1454, 1454, 1454, 1454, 1454, 3806, 3806, 3806, 3806, 3801,
4410  4612, 1647, 4612, 3804, 3627, 3627, 3627, 3627, 1647, 4612,
4411  3802, 4612, 1397, 4612, 1456, 4612, 1397, 1647, 1456, 4612,
4412  1397, 4612, 1456, 1454, 1454, 1454, 1454, 4612, 3803, 1397,
4413  4612, 1456, 2403, 4612, 3455, 3630, 3630, 3630, 3630, 2403,
4414  3631, 1454, 1454, 1454, 1454, 3631, 2403, 4612, 1397, 4612,
4415  1456, 1454, 1454, 1454, 1454, 2403, 3805, 3812, 3812, 3812,
4416  3812, 3641, 3641, 3641, 3641, 4612, 1397, 3708, 1456, 1454,
4417  1454, 1454, 1454, 4612, 3708, 4612, 1397, 4612, 1456, 4612,
4418 
4419  4612, 4612, 1397, 3708, 1456, 4612, 1397, 4612, 3642, 3820,
4420  3820, 3820, 3820, 4612, 1397, 4612, 1456, 4612, 3807, 1454,
4421  1454, 1454, 1454, 3822, 3822, 3822, 3822, 3647, 3647, 3647,
4422  3647, 4612, 4612, 4612, 1397, 3808, 1456, 3648, 3648, 3648,
4423  3648, 3811, 4612, 4612, 1397, 4612, 1456, 4612, 3823, 4612,
4424  1456, 3649, 3649, 3649, 3649, 3650, 3650, 3650, 3650, 4612,
4425  3819, 4612, 1397, 4612, 1456, 1454, 1454, 1454, 1454, 3652,
4426  3652, 3652, 3652, 4612, 4612, 4612, 3447, 4612, 1456, 4612,
4427  1397, 3821, 1456, 3825, 3825, 3825, 3825, 4612, 4612, 4612,
4428  1397, 4612, 1456, 4612, 3653, 4612, 1456, 1454, 1454, 1454,
4429 
4430  1454, 1454, 1454, 1454, 1454, 4612, 4612, 4612, 2075, 1454,
4431  1454, 1454, 1454, 4612, 3779, 3829, 3829, 3829, 3829, 4612,
4432  4612, 4612, 1397, 4612, 1456, 4612, 1397, 3824, 1456, 1454,
4433  1454, 1454, 1454, 4612, 1397, 4612, 1456, 4612, 4612, 4612,
4434  1397, 4612, 1456, 4612, 3780, 3659, 3659, 3659, 3659, 1454,
4435  1454, 1454, 1454, 3826, 1397, 4612, 1456, 1454, 1454, 1454,
4436  1454, 1454, 1454, 1454, 1454, 3677, 3677, 3677, 3677, 3827,
4437  4612, 3828, 4612, 4612, 1397, 4612, 1456, 1454, 1454, 1454,
4438  1454, 4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 4612,
4439  3830, 3666, 3666, 3666, 3666, 4612, 3831, 4612, 3667, 3667,
4440 
4441  3667, 3667, 1397, 4612, 1456, 3837, 3837, 3837, 3837, 1454,
4442  1454, 1454, 1454, 3878, 4612, 4612, 1397, 4612, 1456, 2486,
4443  3878, 4612, 3833, 3668, 2486, 1456, 2486, 4612, 3832, 3878,
4444  2075, 4612, 4612, 3845, 1397, 2486, 1456, 3670, 3670, 3670,
4445  3670, 3841, 3841, 3841, 3841, 4612, 4612, 4612, 3836, 1454,
4446  1454, 1454, 1454, 3675, 3675, 3675, 3675, 3192, 3192, 3192,
4447  3192, 4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 3849,
4448  3849, 3849, 3849, 4612, 1397, 4612, 1456, 4612, 1397, 3838,
4449  1456, 4612, 1397, 4612, 1456, 3682, 3682, 3682, 3682, 1400,
4450  3850, 3850, 3850, 3850, 3881, 4612, 4612, 3839, 4612, 2153,
4451 
4452  4612, 3881, 3851, 3851, 3851, 3851, 3853, 3853, 3853, 3853,
4453  3881, 3844, 3418, 3852, 1415, 3840, 3854, 3854, 3854, 3854,
4454  3853, 3853, 3853, 3853, 3855, 3856, 3856, 3855, 4612, 4612,
4455  1559, 3856, 3856, 3856, 3856, 1571, 1571, 1571, 1571, 3890,
4456  3890, 3890, 3890, 4612, 3874, 3874, 3874, 3874, 1376, 1376,
4457  1376, 1376, 1572, 3751, 3751, 3751, 3751, 4612, 4612, 4612,
4458  1574, 3920, 3920, 3920, 3920, 1377, 3921, 3922, 3922, 3921,
4459  4612, 4612, 4612, 1379, 3926, 3926, 3926, 3926, 4612, 3922,
4460  3922, 3922, 3922, 3761, 3761, 3761, 3761, 3931, 3931, 3931,
4461  3931, 3766, 3766, 3766, 3766, 4612, 4612, 3858, 3859, 1571,
4462 
4463  1571, 3859, 3860, 4612, 1397, 4612, 3861, 3862, 3875, 4612,
4464  4612, 3863, 3864, 4612, 3865, 1572, 3866, 4612, 4612, 3876,
4465  4612, 4612, 4612, 1574, 3919, 3867, 3868, 3869, 3934, 3934,
4466  3934, 3934, 3935, 3935, 3935, 3935, 3937, 3937, 3937, 3937,
4467  1404, 3773, 3773, 3773, 3773, 1417, 3774, 3774, 3774, 3774,
4468  4612, 4612, 4612, 3870, 1418, 4612, 4612, 1419, 4612, 4612,
4469  4612, 3938, 3775, 3775, 3775, 3775, 3777, 3777, 3777, 3777,
4470  4612, 3598, 3825, 3825, 3825, 3825, 3943, 3943, 3943, 3943,
4471  4612, 3871, 4612, 3872, 3787, 3787, 3787, 3787, 4612, 4612,
4472  4612, 3778, 3788, 3788, 3788, 3788, 3837, 3837, 3837, 3837,
4473 
4474  3791, 3791, 3791, 3791, 3949, 3949, 3949, 3949, 4612, 4612,
4475  4612, 3779, 3794, 3794, 3794, 3794, 4612, 3789, 3367, 3367,
4476  3367, 3367, 2137, 2137, 2137, 2137, 2137, 2137, 2137, 2137,
4477  4612, 4612, 4612, 2138, 4612, 4612, 4612, 2138, 4612, 2139,
4478  4612, 3780, 4612, 2139, 3953, 3953, 3953, 3953, 3800, 3800,
4479  3800, 3800, 1400, 4612, 4612, 2138, 4612, 4612, 4612, 2138,
4480  3839, 2139, 2153, 2137, 2137, 2137, 2137, 4612, 3955, 3955,
4481  3955, 3955, 4612, 4612, 2138, 3418, 4612, 1415, 3840, 2138,
4482  2139, 3825, 3825, 3825, 3825, 2139, 4612, 4612, 3952, 3956,
4483  3956, 3956, 3956, 1454, 1454, 1454, 1454, 4612, 3951, 4612,
4484 
4485  2138, 1454, 1454, 1454, 1454, 4612, 2139, 3806, 3806, 3806,
4486  3806, 3959, 3959, 3959, 3959, 4218, 4612, 4612, 1397, 4612,
4487  1456, 4612, 4218, 4612, 3954, 4612, 1397, 4612, 1456, 4612,
4488  4612, 4218, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 1454,
4489  1454, 1454, 1454, 4612, 3957, 3963, 3963, 3963, 3963, 3812,
4490  3812, 3812, 3812, 3964, 3964, 3964, 3964, 1454, 1454, 1454,
4491  1454, 4219, 4612, 3958, 1397, 4612, 1456, 4612, 4219, 4612,
4492  1397, 4612, 1456, 4612, 1397, 4612, 1456, 4219, 3820, 3820,
4493  3820, 3820, 1397, 4612, 1456, 3971, 3971, 3971, 3972, 3822,
4494  3822, 3822, 3822, 3973, 3973, 3973, 3973, 4612, 1454, 1454,
4495 
4496  1454, 1454, 3960, 1397, 4612, 1456, 3989, 3989, 3989, 3989,
4497  1397, 4612, 1456, 4612, 3823, 4612, 1456, 4612, 2075, 3837,
4498  3837, 3837, 3837, 1397, 4612, 1456, 4612, 3970, 4612, 4612,
4499  4612, 1454, 1454, 1454, 1454, 3965, 3974, 3975, 3975, 3975,
4500  3975, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974,
4501  3974, 3974, 3974, 3974, 3974, 3974, 1397, 4612, 1456, 4612,
4502  4612, 4612, 3976, 3974, 3977, 3974, 3974, 3974, 3974, 3980,
4503  1454, 1454, 1454, 1454, 3829, 3829, 3829, 3829, 3979, 3982,
4504  3982, 3982, 3982, 4612, 1454, 1454, 1454, 1454, 3990, 3974,
4505  3974, 3974, 3974, 2405, 3974, 1397, 4612, 1456, 4612, 1397,
4506 
4507  2405, 1456, 4612, 4612, 3983, 4612, 1456, 2405, 4612, 1397,
4508  4612, 1456, 1454, 1454, 1454, 1454, 2405, 4612, 4612, 3974,
4509  3974, 3974, 3974, 3978, 3984, 3986, 3988, 3988, 3988, 3988,
4510  1454, 1454, 1454, 1454, 4612, 4612, 4612, 1397, 4612, 1456,
4511  3993, 3993, 3993, 3993, 4612, 3981, 3841, 3841, 3841, 3841,
4512  4612, 1397, 4612, 1456, 3985, 1397, 4612, 1456, 3971, 3971,
4513  3971, 3971, 4612, 4612, 4612, 1397, 4612, 1456, 4612, 4612,
4514  4612, 1397, 4612, 1456, 3850, 3850, 3850, 3850, 3851, 3851,
4515  3851, 3851, 4612, 1397, 4612, 1456, 4612, 4612, 3987, 3852,
4516  3854, 3854, 3854, 3854, 3849, 3849, 3849, 3849, 4612, 4612,
4517 
4518  3992, 3850, 3850, 3850, 3850, 3851, 3851, 3851, 3851, 3853,
4519  3853, 3853, 3853, 4612, 4612, 4612, 3852, 3854, 3854, 3854,
4520  3854, 3998, 3999, 3999, 3998, 4612, 4612, 1559, 3999, 3999,
4521  3999, 3999, 4000, 4000, 4000, 4000, 4001, 4001, 4001, 4001,
4522  3874, 3874, 3874, 3874, 3890, 3890, 3890, 3890, 3920, 3920,
4523  3920, 3920, 4612, 1572, 4612, 4612, 1376, 1376, 1376, 1376,
4524  4612, 1574, 3859, 1571, 1571, 3859, 3860, 4612, 4612, 4612,
4525  3861, 3862, 4612, 1377, 4612, 3863, 3864, 4612, 3865, 1572,
4526  3866, 1379, 4043, 4044, 4044, 4043, 4612, 1574, 4612, 3867,
4527  3868, 3869, 4612, 4044, 4044, 4044, 4044, 4047, 4047, 4047,
4528 
4529  4047, 4612, 4612, 4612, 3875, 3926, 3926, 3926, 3926, 4049,
4530  4049, 4049, 4049, 4612, 4612, 3876, 4612, 3870, 1397, 4050,
4531  4050, 4050, 4050, 3931, 3931, 3931, 3931, 4052, 4052, 4052,
4532  4052, 4042, 4053, 4053, 4053, 4053, 3934, 3934, 3934, 3934,
4533  3935, 3935, 3935, 3935, 4612, 3871, 4612, 3872, 4054, 4054,
4534  4054, 4055, 4612, 4612, 1404, 3937, 3937, 3937, 3937, 1417,
4535  3973, 3973, 3973, 3973, 4056, 4056, 4056, 4056, 1418, 4612,
4536  4612, 1419, 3943, 3943, 3943, 3943, 4060, 4060, 4060, 4060,
4537  3938, 4066, 4066, 4066, 4066, 4067, 4067, 4067, 4067, 3949,
4538  3949, 3949, 3949, 4054, 4054, 4054, 4054, 2137, 2137, 2137,
4539 
4540  2137, 4061, 4069, 4069, 4069, 4069, 4612, 4612, 2138, 3953,
4541  3953, 3953, 3953, 2138, 2139, 4070, 4070, 4070, 4070, 2139,
4542  2138, 4062, 3955, 3955, 3955, 3955, 2138, 3956, 3956, 3956,
4543  3956, 4612, 2139, 2138, 1454, 1454, 1454, 1454, 2138, 1454,
4544  1454, 1454, 1454, 3959, 3959, 3959, 3959, 1454, 1454, 1454,
4545  1454, 4063, 4612, 4612, 4612, 4068, 4612, 4612, 4612, 1397,
4546  4612, 1456, 4612, 4612, 1397, 4612, 1456, 4612, 1397, 4612,
4547  1456, 4612, 1397, 4612, 1456, 4072, 4072, 4072, 4072, 3963,
4548  3963, 3963, 3963, 3964, 3964, 3964, 3964, 1454, 1454, 1454,
4549  1454, 3971, 3971, 3971, 3971, 3971, 3971, 3971, 3971, 4612,
4550 
4551  3439, 4612, 4612, 4612, 1397, 4071, 1456, 3973, 3973, 3973,
4552  3973, 4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 4612,
4553  1397, 4612, 1456, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4554  1454, 4084, 4084, 4084, 4084, 4086, 4086, 4086, 4086, 1454,
4555  1454, 1454, 1454, 3989, 3989, 3989, 3989, 4076, 1397, 4612,
4556  1456, 4612, 1397, 4612, 1456, 4077, 4085, 2933, 1456, 4612,
4557  2075, 4612, 4612, 4612, 1397, 3965, 1456, 4612, 4082, 4612,
4558  4078, 3974, 3975, 3975, 3975, 3975, 3974, 3974, 3974, 4079,
4559  3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974,
4560  3974, 4099, 4099, 4099, 4099, 4087, 4612, 3976, 3974, 3977,
4561 
4562  3974, 3974, 3974, 3974, 4080, 4080, 4080, 4080, 4080, 4080,
4563  4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080,
4564  4080, 4080, 4080, 4080, 3974, 3974, 3974, 3974, 4080, 3974,
4565  4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080,
4566  4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080,
4567  4080, 4080, 4080, 4080, 3974, 3974, 3974, 3974, 4081, 1454,
4568  1454, 1454, 1454, 3982, 3982, 3982, 3982, 4612, 1454, 1454,
4569  1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454,
4570  3988, 3988, 3988, 3988, 1397, 4612, 1456, 4612, 3983, 4612,
4571  1456, 4612, 4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456,
4572 
4573  4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 4062, 4091,
4574  4091, 4091, 4091, 4612, 4612, 4089, 1454, 1454, 1454, 1454,
4575  3993, 3993, 3993, 3993, 4098, 4099, 4099, 4098, 4612, 4612,
4576  1559, 4000, 4000, 4000, 4000, 4083, 4088, 4612, 4063, 4612,
4577  4612, 1397, 4612, 1456, 4612, 1397, 4612, 1456, 4612, 4612,
4578  4612, 4090, 4001, 4001, 4001, 4001, 4103, 4103, 4103, 4103,
4579  4110, 4110, 4110, 4110, 4128, 4128, 4128, 4128, 4612, 1572,
4580  4612, 4111, 4129, 4130, 4130, 4129, 4093, 1574, 4612, 4612,
4581  4612, 1377, 4130, 4130, 4130, 4130, 4612, 4612, 4612, 1379,
4582  4612, 4092, 4132, 4132, 4132, 4132, 4047, 4047, 4047, 4047,
4583 
4584  4133, 4133, 4133, 4133, 4612, 4612, 4612, 1397, 4049, 4049,
4585  4049, 4049, 4050, 4050, 4050, 4050, 4052, 4052, 4052, 4052,
4586  4104, 4053, 4053, 4053, 4053, 4054, 4054, 4054, 4054, 4612,
4587  4612, 4105, 4054, 4054, 4054, 4054, 4056, 4056, 4056, 4056,
4588  4612, 4612, 4612, 1404, 4136, 4136, 4136, 4136, 1417, 4060,
4589  4060, 4060, 4060, 4086, 4086, 4086, 4086, 1418, 4612, 4612,
4590  1419, 4066, 4066, 4066, 4066, 4067, 4067, 4067, 4067, 4137,
4591  2137, 2137, 2137, 2137, 4061, 4069, 4069, 4069, 4069, 4612,
4592  4612, 2138, 4070, 4070, 4070, 4070, 2138, 2139, 1454, 1454,
4593  1454, 1454, 4077, 2138, 4062, 4072, 4072, 4072, 4072, 4612,
4594 
4595  1454, 1454, 1454, 1454, 4612, 4612, 4612, 4078, 4148, 4148,
4596  4148, 4148, 4612, 1397, 4612, 1456, 4148, 4148, 4148, 4148,
4597  1454, 1454, 1454, 1454, 4063, 1397, 4612, 1456, 1454, 1454,
4598  1454, 1454, 4084, 4084, 4084, 4084, 4150, 4612, 4612, 4153,
4599  4153, 4153, 4153, 4612, 4150, 1397, 4142, 1456, 4143, 4086,
4600  4086, 4086, 4086, 1397, 4612, 1456, 4612, 4085, 4612, 1456,
4601  4612, 4612, 2605, 4151, 2075, 1454, 1454, 1454, 1454, 1454,
4602  1454, 1454, 1454, 1454, 1454, 1454, 1454, 4157, 4157, 4157,
4603  4157, 4091, 4091, 4091, 4091, 4612, 1454, 1454, 1454, 1454,
4604  1397, 4612, 1456, 4612, 1397, 4612, 1456, 4612, 1397, 4612,
4605 
4606  1456, 4612, 4158, 4152, 1456, 4160, 4160, 4160, 4160, 4612,
4607  4612, 1397, 4154, 1456, 4164, 4165, 4165, 4164, 4612, 4612,
4608  1559, 4156, 4165, 4165, 4165, 4165, 4103, 4103, 4103, 4103,
4609  4110, 4110, 4110, 4110, 4612, 4174, 4174, 4174, 4174, 4175,
4610  4155, 4111, 4176, 4128, 4128, 4128, 4128, 4612, 2605, 4190,
4611  4191, 4191, 4190, 4191, 4191, 4191, 4191, 4612, 4612, 4612,
4612  4177, 4132, 4132, 4132, 4132, 4612, 4612, 4612, 1379, 4133,
4613  4133, 4133, 4133, 4136, 4136, 4136, 4136, 4612, 1397, 4153,
4614  4153, 4153, 4153, 4198, 4198, 4198, 4198, 4161, 4612, 4612,
4615  4104, 4612, 2137, 2137, 2137, 2137, 4612, 4612, 4137, 4612,
4616 
4617  4612, 4105, 4612, 2138, 4201, 4201, 4201, 4201, 4199, 2139,
4618  1454, 1454, 1454, 1454, 1404, 4148, 4148, 4148, 4148, 1417,
4619  4175, 4148, 4148, 4148, 4148, 4612, 4612, 4612, 1418, 4612,
4620  4612, 1419, 4612, 4612, 4612, 1397, 4612, 1456, 1454, 1454,
4621  1454, 1454, 4612, 4150, 4205, 4205, 4205, 4205, 4612, 4150,
4622  4153, 4153, 4153, 4153, 1454, 1454, 1454, 1454, 4200, 4160,
4623  4160, 4160, 4160, 1397, 4612, 1456, 4612, 4612, 4612, 4206,
4624  4612, 1456, 3844, 1454, 1454, 1454, 1454, 4612, 4612, 1397,
4625  4612, 1456, 1454, 1454, 1454, 1454, 4204, 4157, 4157, 4157,
4626  4157, 4209, 4209, 4209, 4209, 4207, 4612, 4612, 1397, 4612,
4627 
4628  1456, 4210, 4210, 4210, 4210, 4612, 4612, 1397, 4612, 1456,
4629  4612, 4612, 4158, 4612, 1456, 4612, 2075, 4213, 4214, 4214,
4630  4213, 4612, 4612, 1559, 4214, 4214, 4214, 4214, 4612, 4090,
4631  4174, 4174, 4174, 4174, 4175, 4612, 4612, 4176, 4221, 4221,
4632  4221, 4221, 4612, 4612, 4612, 4222, 4612, 4612, 4612, 4208,
4633  4224, 4224, 4224, 4224, 4175, 4177, 4612, 4225, 4612, 4227,
4634  4227, 4227, 4227, 4239, 4240, 4240, 4239, 4240, 4240, 4240,
4635  4240, 4228, 4612, 4612, 4229, 4177, 4243, 4243, 4243, 4243,
4636  4612, 4612, 4612, 4211, 4177, 4198, 4198, 4198, 4198, 4612,
4637  4612, 4612, 1397, 4209, 4209, 4209, 4209, 2137, 2137, 2137,
4638 
4639  2137, 4244, 4201, 4201, 4201, 4201, 4612, 4612, 2138, 4612,
4640  4199, 4612, 4612, 4612, 2139, 4175, 1454, 1454, 1454, 1454,
4641  4612, 4205, 4205, 4205, 4205, 4612, 4612, 4612, 1404, 4250,
4642  4250, 4250, 4250, 1417, 4612, 4175, 4612, 1454, 1454, 1454,
4643  1454, 1397, 1418, 1456, 4612, 1419, 4206, 4612, 1456, 1454,
4644  1454, 1454, 1454, 4612, 2075, 4209, 4209, 4209, 4209, 4612,
4645  4612, 4612, 1397, 4152, 1456, 4612, 4612, 4612, 4247, 4210,
4646  4210, 4210, 4210, 4612, 1397, 4612, 1456, 4612, 4612, 4612,
4647  4251, 4254, 4255, 4255, 4254, 4612, 4612, 1559, 4255, 4255,
4648  4255, 4255, 4221, 4221, 4221, 4221, 4612, 4612, 4612, 4222,
4649 
4650  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4258, 4258,
4651  4258, 4258, 4224, 4224, 4224, 4224, 4276, 4277, 4277, 4276,
4652  4228, 4612, 4612, 4229, 4252, 4612, 4612, 4612, 4612, 4612,
4653  4612, 4612, 4612, 4261, 4261, 4261, 4261, 4177, 4260, 4260,
4654  4260, 4260, 4175, 4612, 4612, 4225, 4227, 4227, 4227, 4227,
4655  4612, 4612, 4612, 4263, 4263, 4263, 4263, 4264, 4228, 4262,
4656  4265, 4229, 4612, 4177, 4227, 4227, 4227, 4227, 4612, 4612,
4657  4612, 4177, 4243, 4243, 4243, 4243, 4228, 4612, 4266, 4229,
4658  4277, 4277, 4277, 4277, 4250, 4250, 4250, 4250, 4612, 4177,
4659  2137, 2137, 2137, 2137, 4612, 4612, 4612, 4244, 4612, 4612,
4660 
4661  4612, 2138, 4612, 4612, 4612, 1397, 4612, 2139, 4612, 4612,
4662  4612, 4250, 4250, 4250, 4250, 1454, 1454, 1454, 1454, 4289,
4663  4289, 4289, 4289, 4175, 4285, 4285, 4285, 4285, 4288, 4289,
4664  4289, 4288, 4612, 4612, 1559, 4612, 4612, 4612, 4264, 4612,
4665  1397, 1404, 1456, 4612, 4612, 4612, 1417, 4612, 4612, 4286,
4666  4612, 1456, 4612, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4667  4281, 4612, 4612, 4284, 4258, 4258, 4258, 4258, 4258, 4258,
4668  4258, 4258, 4261, 4261, 4261, 4261, 4228, 4612, 4612, 4229,
4669  4228, 4612, 4612, 4229, 4260, 4260, 4260, 4260, 4175, 4612,
4670  4612, 4225, 4263, 4263, 4263, 4263, 4264, 4612, 4262, 4265,
4671 
4672  4292, 4292, 4292, 4292, 4612, 4612, 4612, 4293, 4612, 4177,
4673  4612, 4295, 4295, 4295, 4295, 4264, 4612, 4266, 4296, 4298,
4674  4298, 4298, 4298, 4305, 4306, 4306, 4305, 4306, 4306, 4306,
4675  4306, 4228, 4612, 4612, 4229, 4612, 4266, 4309, 4309, 4309,
4676  4309, 4612, 4612, 4612, 4266, 4612, 4311, 4311, 4311, 4311,
4677  4612, 4612, 1397, 4312, 4312, 4312, 4312, 2138, 4285, 4285,
4678  4285, 4285, 4310, 2139, 1454, 1454, 1454, 1454, 4612, 4175,
4679  4315, 4315, 4315, 4315, 4612, 4612, 4612, 4264, 4317, 4318,
4680  4318, 4317, 4612, 4286, 1559, 1456, 4612, 4612, 1404, 1397,
4681  4612, 1456, 4612, 1417, 4612, 2075, 4264, 4318, 4318, 4318,
4682 
4683  4318, 4612, 1418, 4612, 4612, 1419, 4292, 4292, 4292, 4292,
4684  4612, 4252, 4612, 4293, 4612, 4612, 4612, 4612, 4612, 4612,
4685  4612, 4612, 4321, 4321, 4321, 4321, 4295, 4295, 4295, 4295,
4686  4329, 4330, 4330, 4329, 4228, 4313, 4612, 4229, 4612, 4612,
4687  4612, 4612, 4612, 4612, 4612, 4612, 4323, 4323, 4323, 4323,
4688  4264, 4266, 4612, 4296, 4298, 4298, 4298, 4298, 4298, 4298,
4689  4298, 4298, 4612, 4612, 4612, 4612, 4228, 4612, 4612, 4229,
4690  4228, 4266, 4612, 4229, 4330, 4330, 4330, 4330, 4612, 4266,
4691  4612, 4612, 4612, 4266, 4331, 4331, 4331, 4331, 4309, 4309,
4692  4309, 4309, 4315, 4315, 4315, 4315, 4612, 4612, 4612, 1397,
4693 
4694  4311, 4311, 4311, 4311, 4312, 4312, 4312, 4312, 4612, 4612,
4695  4612, 2138, 4612, 4310, 4332, 4332, 4332, 4332, 4315, 4315,
4696  4315, 4315, 4612, 4612, 4612, 4334, 4334, 4334, 4334, 4612,
4697  4612, 4264, 4612, 4612, 4612, 1404, 4336, 4337, 4337, 4336,
4698  1417, 4612, 1559, 4337, 4337, 4337, 4337, 4612, 4612, 1418,
4699  4612, 4612, 1419, 4335, 4321, 4321, 4321, 4321, 4321, 4321,
4700  4321, 4321, 4345, 4346, 4346, 4345, 4228, 4612, 4612, 4229,
4701  4228, 4612, 4612, 4229, 4323, 4323, 4323, 4323, 4264, 4612,
4702  4612, 4296, 4346, 4346, 4346, 4346, 4331, 4331, 4331, 4331,
4703  4332, 4332, 4332, 4332, 4612, 4612, 4333, 4612, 4612, 4266,
4704 
4705  4334, 4334, 4334, 4334, 4612, 4612, 4612, 1397, 4347, 4347,
4706  4347, 4347, 4612, 4348, 4350, 4351, 4351, 4350, 4348, 4612,
4707  1559, 4351, 4351, 4351, 4351, 4612, 4612, 4612, 4335, 4356,
4708  4357, 4357, 4356, 4357, 4357, 4357, 4357, 4347, 4347, 4347,
4709  4347, 4612, 4348, 1404, 4612, 4612, 4612, 4348, 1417, 4359,
4710  4360, 4360, 4359, 4612, 4612, 1559, 4612, 1418, 1397, 4264,
4711  1419, 4360, 4360, 4360, 4360, 4361, 4362, 4362, 4361, 4612,
4712  4362, 4362, 4362, 4362, 4612, 4364, 4365, 4365, 4364, 4612,
4713  4349, 1559, 4365, 4365, 4365, 4365, 4366, 4367, 4367, 4366,
4714  4367, 4367, 4367, 4367, 1404, 1397, 4612, 4612, 4612, 1417,
4715 
4716  4368, 4368, 4368, 4368, 4612, 4369, 4612, 4612, 1418, 4349,
4717  4369, 1419, 4612, 4612, 4612, 1397, 4371, 4372, 4372, 4371,
4718  4612, 4612, 1559, 4372, 4372, 4372, 4372, 4612, 4612, 4370,
4719  4612, 1404, 4373, 4374, 4374, 4373, 1417, 4374, 4374, 4374,
4720  4374, 4368, 4368, 4368, 4368, 1418, 4612, 4612, 1419, 4612,
4721  4612, 1404, 4368, 4368, 4368, 4368, 1417, 4375, 4376, 4376,
4722  4375, 4612, 1397, 1559, 4612, 1418, 4612, 4612, 1419, 4612,
4723  4370, 4376, 4376, 4376, 4376, 4377, 4378, 4378, 4377, 4612,
4724  4612, 4370, 4378, 4378, 4378, 4378, 4379, 4380, 4380, 4379,
4725  4612, 4612, 1559, 4380, 4380, 4380, 4380, 4612, 1404, 4381,
4726 
4727  4382, 4382, 4381, 1417, 4612, 4612, 4612, 1397, 4382, 4382,
4728  4382, 4382, 1418, 4612, 4612, 1419, 4383, 4384, 4384, 4383,
4729  4612, 4612, 1559, 4384, 4384, 4384, 4384, 4385, 4386, 4386,
4730  4385, 4612, 4612, 1397, 4386, 4386, 4386, 4386, 4387, 4388,
4731  4388, 4387, 4612, 1404, 1559, 4612, 4612, 4612, 1417, 4388,
4732  4388, 4388, 4388, 4389, 4390, 4390, 4389, 1418, 4612, 1397,
4733  1419, 4612, 4390, 4390, 4390, 4390, 4612, 4612, 4612, 1404,
4734  4391, 4392, 4392, 4391, 1417, 4612, 1559, 4392, 4392, 4392,
4735  4392, 4612, 4612, 1418, 4612, 4612, 1419, 1397, 4393, 4394,
4736  4394, 4393, 4612, 4612, 4612, 1404, 4394, 4394, 4394, 4394,
4737 
4738  1417, 4395, 4396, 4396, 4395, 4612, 4612, 1559, 4612, 1418,
4739  4612, 4612, 1419, 4396, 4396, 4396, 4396, 4397, 4398, 4398,
4740  4397, 1397, 4612, 1404, 4398, 4398, 4398, 4398, 1417, 4399,
4741  4400, 4400, 4399, 4612, 4612, 1559, 4612, 1418, 4612, 4612,
4742  1419, 4400, 4400, 4400, 4400, 4401, 4402, 4402, 4401, 1397,
4743  4402, 4402, 4402, 4402, 4612, 4612, 4612, 1404, 4403, 4404,
4744  4404, 4403, 1417, 4612, 1559, 4404, 4404, 4404, 4404, 4612,
4745  4612, 1418, 4612, 4612, 1419, 1397, 4405, 4406, 4406, 4405,
4746  4406, 4406, 4406, 4406, 4612, 1404, 4407, 4408, 4408, 4407,
4747  1417, 4612, 1559, 4408, 4408, 4408, 4408, 4612, 4612, 1418,
4748 
4749  4612, 4612, 1419, 4612, 4612, 1397, 4409, 4410, 4410, 4409,
4750  4612, 1404, 4410, 4410, 4410, 4410, 1417, 4411, 4412, 4412,
4751  4411, 4612, 4612, 1559, 4612, 1418, 4612, 4612, 1419, 4412,
4752  4412, 4412, 4412, 4413, 4414, 4414, 4413, 1397, 4612, 4612,
4753  4612, 1404, 4414, 4414, 4414, 4414, 1417, 4415, 4416, 4416,
4754  4415, 4612, 4612, 1559, 4612, 1418, 4612, 4612, 1419, 4416,
4755  4416, 4416, 4416, 4417, 4418, 4418, 4417, 1397, 4418, 4418,
4756  4418, 4418, 4612, 1404, 4419, 4420, 4420, 4419, 1417, 4612,
4757  1559, 4420, 4420, 4420, 4420, 4612, 4612, 1418, 4612, 4612,
4758  1419, 4612, 4612, 1397, 4421, 4422, 4422, 4421, 4422, 4422,
4759 
4760  4422, 4422, 4612, 1404, 4423, 4424, 4424, 4423, 1417, 4612,
4761  1559, 4424, 4424, 4424, 4424, 4612, 4612, 1418, 4612, 4612,
4762  1419, 4612, 4612, 1397, 4425, 4426, 4426, 4425, 4612, 1404,
4763  4426, 4426, 4426, 4426, 1417, 4427, 4428, 4428, 4427, 4612,
4764  4612, 1559, 4612, 1418, 4612, 4612, 1419, 4428, 4428, 4428,
4765  4428, 4429, 4430, 4430, 4429, 1397, 4612, 4612, 4612, 1404,
4766  4430, 4430, 4430, 4430, 1417, 4431, 4432, 4432, 4431, 4612,
4767  4612, 1559, 4612, 1418, 4612, 4612, 1419, 4432, 4432, 4432,
4768  4432, 4433, 4434, 4434, 4433, 1397, 4434, 4434, 4434, 4434,
4769  4612, 1404, 4435, 4436, 4436, 4435, 1417, 4612, 1559, 4436,
4770 
4771  4436, 4436, 4436, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4772  4612, 1397, 4437, 4438, 4438, 4437, 4438, 4438, 4438, 4438,
4773  4612, 1404, 4439, 4440, 4440, 4439, 1417, 4612, 1559, 4440,
4774  4440, 4440, 4440, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4775  4612, 1397, 4441, 4442, 4442, 4441, 4612, 1404, 4442, 4442,
4776  4442, 4442, 1417, 4443, 4444, 4444, 4443, 4612, 4612, 1559,
4777  4612, 1418, 4612, 4612, 1419, 4444, 4444, 4444, 4444, 4445,
4778  4446, 4446, 4445, 1397, 4612, 4612, 4612, 1404, 4446, 4446,
4779  4446, 4446, 1417, 4447, 4448, 4448, 4447, 4612, 4612, 1559,
4780  4612, 1418, 4612, 4612, 1419, 4448, 4448, 4448, 4448, 4449,
4781 
4782  4450, 4450, 4449, 1397, 4450, 4450, 4450, 4450, 4612, 1404,
4783  4451, 4452, 4452, 4451, 1417, 4612, 1559, 4452, 4452, 4452,
4784  4452, 4612, 4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397,
4785  4453, 4454, 4454, 4453, 4454, 4454, 4454, 4454, 4612, 1404,
4786  4455, 4456, 4456, 4455, 1417, 4612, 1559, 4456, 4456, 4456,
4787  4456, 4612, 4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397,
4788  4457, 4458, 4458, 4457, 4612, 1404, 4458, 4458, 4458, 4458,
4789  1417, 4459, 4460, 4460, 4459, 4612, 4612, 1559, 4612, 1418,
4790  4612, 4612, 1419, 4460, 4460, 4460, 4460, 4461, 4462, 4462,
4791  4461, 1397, 4612, 4612, 4612, 1404, 4462, 4462, 4462, 4462,
4792 
4793  1417, 4463, 4464, 4464, 4463, 4612, 4612, 1559, 4612, 1418,
4794  4612, 4612, 1419, 4464, 4464, 4464, 4464, 4465, 4466, 4466,
4795  4465, 1397, 4466, 4466, 4466, 4466, 4612, 1404, 4467, 4468,
4796  4468, 4467, 1417, 4612, 1559, 4468, 4468, 4468, 4468, 4612,
4797  4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397, 4469, 4470,
4798  4470, 4469, 4470, 4470, 4470, 4470, 4612, 1404, 4471, 4472,
4799  4472, 4471, 1417, 4612, 1559, 4472, 4472, 4472, 4472, 4612,
4800  4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397, 4473, 4474,
4801  4474, 4473, 4612, 1404, 4474, 4474, 4474, 4474, 1417, 4475,
4802  4476, 4476, 4475, 4612, 4612, 1559, 4612, 1418, 4612, 4612,
4803 
4804  1419, 4476, 4476, 4476, 4476, 4477, 4478, 4478, 4477, 1397,
4805  4612, 4612, 4612, 1404, 4478, 4478, 4478, 4478, 1417, 4479,
4806  4480, 4480, 4479, 4612, 4612, 1559, 4612, 1418, 4612, 4612,
4807  1419, 4480, 4480, 4480, 4480, 4481, 4482, 4482, 4481, 1397,
4808  4482, 4482, 4482, 4482, 4612, 1404, 4483, 4484, 4484, 4483,
4809  1417, 4612, 1559, 4484, 4484, 4484, 4484, 4612, 4612, 1418,
4810  4612, 4612, 1419, 4612, 4612, 1397, 4485, 4486, 4486, 4485,
4811  4486, 4486, 4486, 4486, 4612, 1404, 4487, 4488, 4488, 4487,
4812  1417, 4612, 1559, 4488, 4488, 4488, 4488, 4612, 4612, 1418,
4813  4612, 4612, 1419, 4612, 4612, 1397, 4489, 4490, 4490, 4489,
4814 
4815  4612, 1404, 4490, 4490, 4490, 4490, 1417, 4491, 4492, 4492,
4816  4491, 4612, 4612, 1559, 4612, 1418, 4612, 4612, 1419, 4492,
4817  4492, 4492, 4492, 4493, 4494, 4494, 4493, 1397, 4612, 4612,
4818  4612, 1404, 4494, 4494, 4494, 4494, 1417, 4495, 4496, 4496,
4819  4495, 4612, 4612, 1559, 4612, 1418, 4612, 4612, 1419, 4496,
4820  4496, 4496, 4496, 4497, 4498, 4498, 4497, 1397, 4498, 4498,
4821  4498, 4498, 4612, 1404, 4499, 4500, 4500, 4499, 1417, 4612,
4822  1559, 4500, 4500, 4500, 4500, 4612, 4612, 1418, 4612, 4612,
4823  1419, 4612, 4612, 1397, 4501, 4502, 4502, 4501, 4502, 4502,
4824  4502, 4502, 4612, 1404, 4503, 4504, 4504, 4503, 1417, 4612,
4825 
4826  1559, 4504, 4504, 4504, 4504, 4612, 4612, 1418, 4612, 4612,
4827  1419, 4612, 4612, 1397, 4505, 4506, 4506, 4505, 4612, 1404,
4828  4506, 4506, 4506, 4506, 1417, 4507, 4508, 4508, 4507, 4612,
4829  4612, 1559, 4612, 1418, 4612, 4612, 1419, 4508, 4508, 4508,
4830  4508, 4509, 4510, 4510, 4509, 1397, 4612, 4612, 4612, 1404,
4831  4510, 4510, 4510, 4510, 1417, 4511, 4512, 4512, 4511, 4612,
4832  4612, 1559, 4612, 1418, 4612, 4612, 1419, 4512, 4512, 4512,
4833  4512, 4513, 4514, 4514, 4513, 1397, 4514, 4514, 4514, 4514,
4834  4612, 1404, 4515, 4516, 4516, 4515, 1417, 4612, 1559, 4516,
4835  4516, 4516, 4516, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4836 
4837  4612, 1397, 4517, 4518, 4518, 4517, 4518, 4518, 4518, 4518,
4838  4612, 1404, 4519, 4520, 4520, 4519, 1417, 4612, 1559, 4520,
4839  4520, 4520, 4520, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4840  4612, 1397, 4521, 4522, 4522, 4521, 4612, 1404, 4522, 4522,
4841  4522, 4522, 1417, 4523, 4524, 4524, 4523, 4612, 4612, 1559,
4842  4612, 1418, 4612, 4612, 1419, 4524, 4524, 4524, 4524, 4525,
4843  4526, 4526, 4525, 1397, 4612, 4612, 4612, 1404, 4526, 4526,
4844  4526, 4526, 1417, 4527, 4528, 4528, 4527, 4612, 4612, 1559,
4845  4612, 1418, 4612, 4612, 1419, 4528, 4528, 4528, 4528, 4529,
4846  4530, 4530, 4529, 1397, 4530, 4530, 4530, 4530, 4612, 1404,
4847 
4848  4531, 4532, 4532, 4531, 1417, 4612, 1559, 4532, 4532, 4532,
4849  4532, 4612, 4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397,
4850  4533, 4534, 4534, 4533, 4534, 4534, 4534, 4534, 4612, 1404,
4851  4535, 4536, 4536, 4535, 1417, 4612, 1559, 4536, 4536, 4536,
4852  4536, 4612, 4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397,
4853  4537, 4538, 4538, 4537, 4612, 1404, 4538, 4538, 4538, 4538,
4854  1417, 4539, 4540, 4540, 4539, 4612, 4612, 1559, 4612, 1418,
4855  4612, 4612, 1419, 4540, 4540, 4540, 4540, 4541, 4542, 4542,
4856  4541, 1397, 4612, 4612, 4612, 1404, 4542, 4542, 4542, 4542,
4857  1417, 4543, 4544, 4544, 4543, 4612, 4612, 1559, 4612, 1418,
4858 
4859  4612, 4612, 1419, 4544, 4544, 4544, 4544, 4545, 4546, 4546,
4860  4545, 1397, 4546, 4546, 4546, 4546, 4612, 1404, 4547, 4548,
4861  4548, 4547, 1417, 4612, 1559, 4548, 4548, 4548, 4548, 4612,
4862  4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397, 4549, 4550,
4863  4550, 4549, 4550, 4550, 4550, 4550, 4612, 1404, 4551, 4552,
4864  4552, 4551, 1417, 4612, 1559, 4552, 4552, 4552, 4552, 4612,
4865  4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397, 4553, 4554,
4866  4554, 4553, 4612, 1404, 4554, 4554, 4554, 4554, 1417, 4555,
4867  4556, 4556, 4555, 4612, 4612, 1559, 4612, 1418, 4612, 4612,
4868  1419, 4556, 4556, 4556, 4556, 4557, 4558, 4558, 4557, 1397,
4869 
4870  4612, 4612, 4612, 1404, 4558, 4558, 4558, 4558, 1417, 4559,
4871  4560, 4560, 4559, 4612, 4612, 1559, 4612, 1418, 4612, 4612,
4872  1419, 4560, 4560, 4560, 4560, 4561, 4562, 4562, 4561, 1397,
4873  4562, 4562, 4562, 4562, 4612, 1404, 4563, 4564, 4564, 4563,
4874  1417, 4612, 1559, 4564, 4564, 4564, 4564, 4612, 4612, 1418,
4875  4612, 4612, 1419, 4612, 4612, 1397, 4565, 4566, 4566, 4565,
4876  4566, 4566, 4566, 4566, 4612, 1404, 4567, 4568, 4568, 4567,
4877  1417, 4612, 1559, 4568, 4568, 4568, 4568, 4612, 4612, 1418,
4878  4612, 4612, 1419, 4612, 4612, 1397, 4569, 4570, 4570, 4569,
4879  4612, 1404, 4570, 4570, 4570, 4570, 1417, 4571, 4572, 4572,
4880 
4881  4571, 4612, 4612, 1559, 4612, 1418, 4612, 4612, 1419, 4572,
4882  4572, 4572, 4572, 4573, 4574, 4574, 4573, 1397, 4612, 4612,
4883  4612, 1404, 4574, 4574, 4574, 4574, 1417, 4575, 4576, 4576,
4884  4575, 4612, 4612, 1559, 4612, 1418, 4612, 4612, 1419, 4576,
4885  4576, 4576, 4576, 4577, 4578, 4578, 4577, 1397, 4578, 4578,
4886  4578, 4578, 4612, 1404, 4579, 4580, 4580, 4579, 1417, 4612,
4887  1559, 4580, 4580, 4580, 4580, 4612, 4612, 1418, 4612, 4612,
4888  1419, 4612, 4612, 1397, 4581, 4582, 4582, 4581, 4582, 4582,
4889  4582, 4582, 4612, 1404, 4583, 4584, 4584, 4583, 1417, 4612,
4890  1559, 4584, 4584, 4584, 4584, 4612, 4612, 1418, 4612, 4612,
4891 
4892  1419, 4612, 4612, 1397, 4585, 4586, 4586, 4585, 4612, 1404,
4893  4586, 4586, 4586, 4586, 1417, 4587, 4588, 4588, 4587, 4612,
4894  4612, 1559, 4612, 1418, 4612, 4612, 1419, 4588, 4588, 4588,
4895  4588, 4589, 4590, 4590, 4589, 1397, 4612, 4612, 4612, 1404,
4896  4590, 4590, 4590, 4590, 1417, 4591, 4592, 4592, 4591, 4612,
4897  4612, 1559, 4612, 1418, 4612, 4612, 1419, 4592, 4592, 4592,
4898  4592, 4593, 4594, 4594, 4593, 1397, 4594, 4594, 4594, 4594,
4899  4612, 1404, 4595, 4596, 4596, 4595, 1417, 4612, 1559, 4596,
4900  4596, 4596, 4596, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4901  4612, 1397, 4597, 4598, 4598, 4597, 4598, 4598, 4598, 4598,
4902 
4903  4612, 1404, 4599, 4600, 4600, 4599, 1417, 4612, 1559, 4600,
4904  4600, 4600, 4600, 4612, 4612, 1418, 4612, 4612, 1419, 4612,
4905  4612, 1397, 4601, 4602, 4602, 4601, 4612, 1404, 4602, 4602,
4906  4602, 4602, 1417, 4603, 4604, 4604, 4603, 4612, 4612, 1559,
4907  4612, 1418, 4612, 4612, 1419, 4604, 4604, 4604, 4604, 4605,
4908  4606, 4606, 4605, 1397, 4612, 4612, 4612, 1404, 4606, 4606,
4909  4606, 4606, 1417, 4607, 4608, 4608, 4607, 4612, 4612, 1559,
4910  4612, 1418, 4612, 4612, 1419, 4608, 4608, 4608, 4608, 4609,
4911  4610, 4610, 4609, 1397, 4610, 4610, 4610, 4610, 4612, 1404,
4912  4611, 4612, 4612, 4611, 1417, 4612, 1559, 4609, 4610, 4610,
4913 
4914  4609, 4612, 4612, 1418, 4612, 4612, 1419, 4612, 4612, 1397,
4915  4610, 4610, 4610, 4610, 4611, 4612, 4612, 4611, 4612, 1404,
4916  1559, 4612, 4612, 4612, 1417, 4612, 4612, 4612, 4612, 4612,
4917  4612, 4612, 4612, 1418, 4612, 1397, 1419, 4612, 4612, 4612,
4918  4612, 4612, 4612, 4612, 4612, 1404, 4612, 4612, 4612, 4612,
4919  1417, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1418,
4920  4612, 4612, 1419, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
4921  4612, 1404, 4612, 4612, 4612, 4612, 1417, 4612, 4612, 4612,
4922  4612, 4612, 4612, 4612, 4612, 1418, 4612, 4612, 1419, 286,
4923  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
4924 
4925  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
4926  286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
4927  286, 286, 293, 293, 293, 293, 293, 293, 293, 293,
4928  293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
4929  293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
4930  293, 293, 293, 293, 293, 300, 300, 300, 300, 300,
4931  300, 300, 300, 300, 300, 300, 300, 300, 300, 300,
4932  300, 300, 300, 300, 300, 300, 300, 300, 300, 300,
4933  300, 300, 300, 300, 300, 300, 300, 300, 310, 310,
4934  310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
4935 
4936  310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
4937  310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
4938  310, 363, 363, 363, 363, 363, 363, 363, 363, 363,
4939  363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
4940  363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
4941  363, 363, 363, 363, 384, 384, 384, 384, 384, 384,
4942  384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
4943  384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
4944  384, 384, 384, 384, 384, 384, 384, 411, 411, 411,
4945  411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
4946 
4947  411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
4948  411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
4949  427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
4950  427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
4951  427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
4952  427, 427, 427, 434, 434, 434, 434, 434, 434, 434,
4953  434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
4954  434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
4955  434, 434, 434, 434, 434, 434, 486, 486, 486, 486,
4956  486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
4957 
4958  486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
4959  486, 486, 486, 486, 486, 486, 486, 486, 486, 517,
4960  517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
4961  517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
4962  517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
4963  517, 517, 527, 527, 527, 527, 527, 527, 527, 527,
4964  527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
4965  527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
4966  527, 527, 527, 527, 527, 534, 534, 534, 534, 534,
4967  534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
4968 
4969  534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
4970  534, 534, 534, 534, 534, 534, 534, 534, 559, 559,
4971  559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
4972  559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
4973  559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
4974  559, 570, 570, 570, 570, 570, 570, 570, 570, 570,
4975  570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
4976  570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
4977  570, 570, 570, 570, 579, 579, 579, 579, 579, 579,
4978  579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
4979 
4980  579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
4981  579, 579, 579, 579, 579, 579, 579, 586, 586, 586,
4982  586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
4983  586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
4984  586, 586, 586, 586, 586, 586, 586, 586, 586, 586,
4985  607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
4986  607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
4987  607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
4988  607, 607, 607, 621, 621, 621, 621, 621, 621, 621,
4989  621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
4990 
4991  621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
4992  621, 621, 621, 621, 621, 621, 640, 640, 640, 640,
4993  640, 640, 640, 640, 640, 640, 640, 640, 640, 640,
4994  640, 640, 640, 640, 640, 640, 640, 640, 640, 640,
4995  640, 640, 640, 640, 640, 640, 640, 640, 640, 630,
4996  630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
4997  630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
4998  630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
4999  630, 630, 664, 664, 664, 664, 664, 664, 664, 664,
5000  664, 664, 664, 664, 664, 664, 664, 664, 664, 664,
5001 
5002  664, 664, 664, 664, 664, 664, 664, 664, 664, 664,
5003  664, 664, 664, 664, 664, 672, 672, 672, 672, 672,
5004  672, 672, 672, 672, 672, 672, 672, 672, 672, 672,
5005  672, 672, 672, 672, 672, 672, 672, 672, 672, 672,
5006  672, 672, 672, 672, 672, 672, 672, 672, 679, 679,
5007  679, 679, 679, 679, 679, 679, 679, 679, 679, 679,
5008  679, 679, 679, 679, 679, 679, 679, 679, 679, 679,
5009  679, 679, 679, 679, 679, 679, 679, 679, 679, 679,
5010  679, 690, 690, 690, 690, 690, 690, 690, 690, 690,
5011  690, 690, 690, 690, 690, 690, 690, 690, 690, 690,
5012 
5013  690, 690, 690, 690, 690, 690, 690, 690, 690, 690,
5014  690, 690, 690, 690, 702, 702, 702, 702, 702, 702,
5015  702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
5016  702, 702, 702, 702, 702, 702, 702, 702, 702, 702,
5017  702, 702, 702, 702, 702, 702, 702, 709, 709, 709,
5018  709, 709, 709, 709, 709, 709, 709, 709, 709, 709,
5019  709, 709, 709, 709, 709, 709, 709, 709, 709, 709,
5020  709, 709, 709, 709, 709, 709, 709, 709, 709, 709,
5021  715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
5022  715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
5023 
5024  715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
5025  715, 715, 715, 723, 723, 723, 723, 723, 723, 723,
5026  723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
5027  723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
5028  723, 723, 723, 723, 723, 723, 736, 736, 736, 736,
5029  736, 736, 736, 736, 736, 736, 736, 736, 736, 736,
5030  736, 736, 736, 736, 736, 736, 736, 736, 736, 736,
5031  736, 736, 736, 736, 736, 736, 736, 736, 736, 743,
5032  743, 743, 743, 743, 743, 743, 743, 743, 743, 743,
5033  743, 743, 743, 743, 743, 743, 743, 743, 743, 743,
5034 
5035  743, 743, 743, 743, 743, 743, 743, 743, 743, 743,
5036  743, 743, 751, 751, 751, 751, 751, 751, 751, 751,
5037  751, 751, 751, 751, 751, 751, 751, 751, 751, 751,
5038  751, 751, 751, 751, 751, 751, 751, 751, 751, 751,
5039  751, 751, 751, 751, 751, 774, 774, 774, 774, 774,
5040  774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
5041  774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
5042  774, 774, 774, 774, 774, 774, 774, 774, 788, 788,
5043  788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
5044  788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
5045 
5046  788, 788, 788, 788, 788, 788, 788, 788, 788, 788,
5047  788, 796, 796, 796, 796, 796, 796, 796, 796, 796,
5048  796, 796, 796, 796, 796, 796, 796, 796, 796, 796,
5049  796, 796, 796, 796, 796, 796, 796, 796, 796, 796,
5050  796, 796, 796, 796, 813, 813, 813, 813, 813, 813,
5051  813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
5052  813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
5053  813, 813, 813, 813, 813, 813, 813, 825, 825, 825,
5054  825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
5055  825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
5056 
5057  825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
5058  837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
5059  837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
5060  837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
5061  837, 837, 837, 876, 876, 876, 876, 876, 876, 876,
5062  876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
5063  876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
5064  876, 876, 876, 876, 876, 876, 919, 919, 919, 919,
5065  919, 919, 919, 919, 919, 919, 919, 919, 919, 919,
5066  919, 919, 919, 919, 919, 919, 919, 919, 919, 919,
5067 
5068  919, 919, 919, 919, 919, 919, 919, 919, 919, 939,
5069  939, 939, 939, 939, 939, 939, 939, 939, 939, 939,
5070  939, 939, 939, 939, 939, 939, 939, 939, 939, 939,
5071  939, 939, 939, 939, 939, 939, 939, 939, 939, 939,
5072  939, 939, 949, 949, 949, 949, 949, 949, 949, 949,
5073  949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
5074  949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
5075  949, 949, 949, 949, 949, 961, 961, 961, 961, 961,
5076  961, 961, 961, 961, 961, 961, 961, 961, 961, 961,
5077  961, 961, 961, 961, 961, 961, 961, 961, 961, 961,
5078 
5079  961, 961, 961, 961, 961, 961, 961, 961, 967, 967,
5080  967, 967, 967, 967, 967, 967, 967, 967, 967, 967,
5081  967, 967, 967, 967, 967, 967, 967, 967, 967, 967,
5082  967, 967, 967, 967, 967, 967, 967, 967, 967, 967,
5083  967, 979, 979, 979, 979, 979, 979, 979, 979, 979,
5084  979, 979, 979, 979, 979, 979, 979, 979, 979, 979,
5085  979, 979, 979, 979, 979, 979, 979, 979, 979, 979,
5086  979, 979, 979, 979, 989, 989, 989, 989, 989, 989,
5087  989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
5088  989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
5089 
5090  989, 989, 989, 989, 989, 989, 989, 999, 999, 999,
5091  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
5092  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
5093  999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
5094  1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
5095  1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
5096  1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
5097  1007, 1007, 1007, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
5098  1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
5099  1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015,
5100 
5101  1015, 1015, 1015, 1015, 1015, 1015, 1023, 1023, 1023, 1023,
5102  1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
5103  1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
5104  1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1033,
5105  1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
5106  1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
5107  1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
5108  1033, 1033, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
5109  1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
5110  1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
5111 
5112  1042, 1042, 1042, 1042, 1042, 517, 517, 517, 517, 517,
5113  517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
5114  517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
5115  517, 517, 517, 517, 517, 517, 517, 517, 1065, 1065,
5116  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
5117  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
5118  1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
5119  1065, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071,
5120  1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071,
5121  1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071,
5122 
5123  1071, 1071, 1071, 1071, 579, 579, 579, 579, 579, 579,
5124  579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
5125  579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
5126  579, 579, 579, 579, 579, 579, 579, 1082, 1082, 1082,
5127  1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
5128  1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
5129  1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082,
5130  1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
5131  1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
5132  1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
5133 
5134  1091, 1091, 1091, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
5135  1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
5136  1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102,
5137  1102, 1102, 1102, 1102, 1102, 1102, 1112, 1112, 1112, 1112,
5138  1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
5139  1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
5140  1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1119,
5141  1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
5142  1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
5143  1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
5144 
5145  1119, 1119, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
5146  1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
5147  1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
5148  1128, 1128, 1128, 1128, 1128, 1138, 1138, 1138, 1138, 1138,
5149  1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
5150  1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
5151  1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1146, 1146,
5152  1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
5153  1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
5154  1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
5155 
5156  1146, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
5157  1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
5158  1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,
5159  1153, 1153, 1153, 1153, 1160, 1160, 1160, 1160, 1160, 1160,
5160  1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
5161  1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
5162  1160, 1160, 1160, 1160, 1160, 1160, 1160, 1190, 1190, 1190,
5163  1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
5164  1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
5165  1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
5166 
5167  1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
5168  1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
5169  1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
5170  1210, 1210, 1210, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
5171  1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
5172  1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
5173  1221, 1221, 1221, 1221, 1221, 1221, 1227, 1227, 1227, 1227,
5174  1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
5175  1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227,
5176  1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1232,
5177 
5178  1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
5179  1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
5180  1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
5181  1232, 1232, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
5182  1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
5183  1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
5184  1239, 1239, 1239, 1239, 1239, 1256, 1256, 1256, 1256, 1256,
5185  1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
5186  1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
5187  1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1276, 4612,
5188 
5189  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1276, 4612, 4612,
5190  4612, 4612, 4612, 1276, 4612, 4612, 4612, 4612, 4612, 4612,
5191  1276, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1276,
5192  1290, 1290, 1290, 4612, 4612, 4612, 1290, 4612, 4612, 4612,
5193  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5194  4612, 4612, 1290, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5195  4612, 1290, 1294, 1294, 1294, 1294, 4612, 4612, 1294, 4612,
5196  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1294, 4612,
5197  4612, 4612, 4612, 4612, 1294, 4612, 4612, 4612, 4612, 4612,
5198  4612, 4612, 1294, 1294, 1297, 1297, 1297, 4612, 4612, 4612,
5199 
5200  1297, 4612, 4612, 4612, 4612, 4612, 4612, 1297, 4612, 4612,
5201  4612, 4612, 4612, 4612, 4612, 4612, 1297, 4612, 4612, 4612,
5202  4612, 4612, 4612, 4612, 1297, 1297, 1303, 1303, 1303, 4612,
5203  4612, 4612, 4612, 4612, 4612, 1303, 4612, 4612, 1303, 1303,
5204  4612, 1303, 1303, 1303, 1303, 4612, 4612, 4612, 1303, 4612,
5205  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1303, 1309, 1309,
5206  1309, 4612, 4612, 4612, 1309, 4612, 4612, 4612, 4612, 4612,
5207  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5208  1309, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1309,
5209  1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
5210 
5211  1313, 1313, 1313, 4612, 1313, 1313, 1313, 1313, 1313, 1313,
5212  1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 4612,
5213  1313, 1313, 1313, 1319, 1319, 1319, 4612, 4612, 4612, 1319,
5214  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5215  4612, 4612, 4612, 4612, 4612, 1319, 4612, 4612, 4612, 4612,
5216  4612, 4612, 4612, 4612, 1319, 1322, 1322, 1322, 1322, 4612,
5217  4612, 1322, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5218  4612, 1322, 4612, 4612, 4612, 4612, 4612, 1322, 4612, 4612,
5219  4612, 4612, 4612, 4612, 4612, 1322, 1322, 1330, 1330, 1330,
5220  4612, 4612, 4612, 4612, 4612, 4612, 1330, 4612, 4612, 4612,
5221 
5222  4612, 4612, 1330, 1330, 4612, 4612, 4612, 4612, 4612, 1330,
5223  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1330, 1340,
5224  4612, 4612, 4612, 1340, 4612, 1340, 4612, 4612, 1340, 4612,
5225  4612, 4612, 1340, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5226  4612, 1340, 1343, 1343, 4612, 1343, 1343, 1343, 1343, 1343,
5227  1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
5228  1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
5229  1343, 1343, 1343, 1343, 1343, 1363, 1363, 1363, 4612, 4612,
5230  4612, 1363, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5231  4612, 4612, 4612, 1363, 4612, 4612, 4612, 1363, 4612, 4612,
5232 
5233  4612, 4612, 4612, 1363, 4612, 4612, 1363, 1378, 1378, 1378,
5234  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5235  1378, 4612, 1378, 1378, 4612, 4612, 4612, 4612, 4612, 1378,
5236  4612, 1378, 4612, 4612, 4612, 4612, 4612, 4612, 1378, 1388,
5237  1388, 4612, 1388, 1388, 1388, 1388, 1388, 1388, 4612, 1388,
5238  1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388,
5239  1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388,
5240  1388, 1388, 1422, 1422, 1422, 4612, 4612, 4612, 1422, 4612,
5241  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5242  4612, 4612, 4612, 4612, 1422, 4612, 4612, 4612, 4612, 4612,
5243 
5244  4612, 4612, 4612, 1422, 1429, 1429, 1429, 1429, 4612, 4612,
5245  1429, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5246  1429, 4612, 4612, 4612, 4612, 4612, 1429, 4612, 4612, 4612,
5247  4612, 4612, 4612, 4612, 1429, 1429, 1437, 1437, 1437, 4612,
5248  4612, 4612, 1437, 1437, 4612, 4612, 4612, 1437, 4612, 4612,
5249  4612, 4612, 1437, 4612, 4612, 4612, 4612, 4612, 1437, 4612,
5250  4612, 4612, 1437, 4612, 4612, 4612, 4612, 1437, 1455, 1455,
5251  1455, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5252  4612, 4612, 4612, 1455, 1455, 4612, 1455, 4612, 4612, 4612,
5253  1455, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1455,
5254 
5255  1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
5256  1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
5257  1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
5258  1458, 1458, 1458, 1492, 1492, 4612, 1492, 1492, 1492, 1492,
5259  1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5260  1492, 1492, 4612, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5261  1492, 1492, 1492, 1492, 1492, 1492, 1501, 1501, 1501, 4612,
5262  4612, 4612, 1501, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5263  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1501, 4612,
5264  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1501, 1504, 1504,
5265 
5266  1504, 1504, 4612, 4612, 1504, 4612, 4612, 4612, 4612, 4612,
5267  4612, 4612, 4612, 4612, 1504, 4612, 4612, 4612, 4612, 4612,
5268  1504, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1504, 1504,
5269  1507, 1507, 1507, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5270  4612, 4612, 4612, 4612, 4612, 1507, 1507, 4612, 1507, 4612,
5271  4612, 4612, 1507, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5272  4612, 1507, 1556, 1556, 4612, 4612, 1556, 4612, 4612, 1556,
5273  1556, 4612, 1556, 1556, 1556, 1556, 1556, 4612, 1556, 1556,
5274  1556, 4612, 1556, 1556, 4612, 1556, 1556, 1556, 1556, 1556,
5275  1556, 4612, 4612, 1556, 1556, 1560, 1560, 4612, 1560, 1560,
5276 
5277  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
5278  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
5279  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1562, 1562,
5280  4612, 1562, 1562, 1562, 1562, 1562, 1562, 4612, 1562, 1562,
5281  1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
5282  1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
5283  1562, 1573, 1573, 1573, 4612, 4612, 4612, 4612, 4612, 4612,
5284  4612, 4612, 4612, 4612, 1573, 4612, 1573, 1573, 4612, 4612,
5285  4612, 4612, 4612, 1573, 4612, 4612, 4612, 4612, 4612, 4612,
5286  4612, 4612, 1573, 1583, 1583, 1583, 4612, 4612, 4612, 1583,
5287 
5288  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5289  4612, 4612, 4612, 4612, 4612, 1583, 4612, 4612, 4612, 4612,
5290  4612, 4612, 4612, 4612, 1583, 1586, 1586, 1586, 1586, 4612,
5291  4612, 1586, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5292  4612, 1586, 4612, 4612, 4612, 4612, 4612, 1586, 4612, 4612,
5293  4612, 4612, 4612, 4612, 4612, 1586, 1586, 1588, 1588, 1588,
5294  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5295  4612, 4612, 1588, 1588, 4612, 4612, 4612, 4612, 4612, 1588,
5296  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1588, 1589,
5297  1589, 4612, 1589, 1589, 4612, 4612, 1589, 1589, 4612, 1589,
5298 
5299  1589, 1589, 1589, 1589, 4612, 1589, 1589, 1589, 4612, 1589,
5300  1589, 4612, 1589, 1589, 4612, 1589, 1589, 1589, 4612, 4612,
5301  1589, 1589, 1592, 1592, 4612, 1592, 1592, 1592, 1592, 1592,
5302  1592, 4612, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592,
5303  1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592,
5304  1592, 1592, 1592, 1592, 1592, 1611, 1611, 4612, 1611, 1611,
5305  1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611,
5306  1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611,
5307  1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1615, 1615,
5308  1615, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5309 
5310  4612, 4612, 4612, 1615, 4612, 4612, 4612, 4612, 4612, 4612,
5311  1615, 4612, 4612, 4612, 4612, 4612, 1615, 4612, 4612, 1615,
5312  1625, 1625, 4612, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
5313  1625, 1625, 4612, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
5314  1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
5315  1625, 1625, 1625, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
5316  1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
5317  1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
5318  1631, 1631, 1631, 1631, 1631, 1631, 1638, 1638, 4612, 1638,
5319  1638, 4612, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
5320 
5321  1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
5322  4612, 1638, 4612, 1638, 1638, 1638, 1638, 1638, 1638, 1641,
5323  1641, 4612, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
5324  1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
5325  1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
5326  1641, 1641, 1653, 4612, 4612, 4612, 1653, 1653, 1653, 1653,
5327  1653, 1653, 1653, 1653, 4612, 1653, 4612, 4612, 1653, 1653,
5328  1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
5329  1653, 1653, 1653, 1653, 1653, 1663, 4612, 1663, 4612, 4612,
5330  4612, 4612, 4612, 4612, 1663, 4612, 1663, 4612, 4612, 4612,
5331 
5332  4612, 4612, 4612, 1663, 1667, 1667, 1667, 4612, 4612, 4612,
5333  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1667, 4612, 1667,
5334  4612, 4612, 4612, 4612, 4612, 4612, 1667, 4612, 4612, 4612,
5335  4612, 4612, 4612, 4612, 4612, 1667, 1670, 1670, 1670, 4612,
5336  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5337  4612, 1670, 4612, 4612, 4612, 4612, 4612, 4612, 1670, 4612,
5338  1670, 4612, 4612, 4612, 4612, 4612, 4612, 1670, 1682, 1682,
5339  4612, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
5340  1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
5341  1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
5342 
5343  1682, 1686, 4612, 4612, 4612, 1686, 4612, 4612, 4612, 4612,
5344  4612, 4612, 1686, 4612, 4612, 4612, 4612, 4612, 4612, 1686,
5345  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1686, 1691,
5346  1691, 4612, 1691, 1691, 4612, 1691, 1691, 1691, 1691, 1691,
5347  1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
5348  1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
5349  1691, 1691, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
5350  1699, 1699, 1699, 4612, 1699, 1699, 1699, 1699, 1699, 1699,
5351  1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
5352  1699, 1699, 1699, 1699, 1699, 1706, 1706, 1706, 4612, 4612,
5353 
5354  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5355  1706, 1706, 4612, 4612, 4612, 4612, 4612, 1706, 4612, 4612,
5356  4612, 4612, 4612, 4612, 4612, 4612, 1706, 1708, 1708, 1708,
5357  1708, 1708, 1708, 1708, 1708, 1708, 1708, 4612, 4612, 1708,
5358  1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
5359  1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
5360  1723, 1723, 4612, 1723, 4612, 4612, 4612, 1723, 4612, 4612,
5361  4612, 4612, 4612, 4612, 4612, 4612, 1723, 1742, 1742, 4612,
5362  1742, 1742, 1742, 1742, 1742, 1742, 4612, 1742, 1742, 1742,
5363  1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5364 
5365  1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
5366  1759, 1759, 1759, 4612, 4612, 4612, 1759, 4612, 4612, 4612,
5367  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5368  4612, 4612, 1759, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5369  4612, 1759, 1762, 1762, 1762, 4612, 4612, 4612, 4612, 4612,
5370  4612, 4612, 4612, 1762, 4612, 4612, 4612, 1762, 4612, 4612,
5371  4612, 4612, 4612, 4612, 1762, 4612, 4612, 4612, 4612, 4612,
5372  4612, 4612, 4612, 1762, 1768, 1768, 1768, 4612, 4612, 4612,
5373  1768, 1768, 4612, 4612, 4612, 1768, 4612, 4612, 4612, 4612,
5374  4612, 4612, 4612, 4612, 4612, 4612, 1768, 4612, 4612, 4612,
5375 
5376  4612, 4612, 4612, 4612, 4612, 1768, 1770, 1770, 1770, 4612,
5377  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5378  4612, 1770, 4612, 4612, 4612, 4612, 4612, 4612, 1770, 1770,
5379  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1770, 1780, 1780,
5380  1780, 4612, 4612, 4612, 1780, 4612, 4612, 4612, 4612, 4612,
5381  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5382  1780, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1780,
5383  1783, 1783, 1783, 1783, 4612, 4612, 1783, 4612, 4612, 4612,
5384  4612, 4612, 4612, 4612, 4612, 4612, 1783, 4612, 4612, 4612,
5385  4612, 4612, 1783, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5386 
5387  1783, 1783, 1785, 1785, 1785, 4612, 4612, 4612, 4612, 4612,
5388  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1785, 1785, 4612,
5389  4612, 4612, 4612, 4612, 1785, 4612, 4612, 4612, 4612, 4612,
5390  4612, 4612, 4612, 1785, 1792, 1792, 4612, 1792, 1792, 1792,
5391  1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
5392  1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
5393  1792, 1792, 1792, 1792, 1792, 1792, 1792, 1794, 4612, 4612,
5394  4612, 1794, 4612, 4612, 1794, 1794, 4612, 4612, 4612, 1794,
5395  1794, 1794, 4612, 1794, 1794, 1794, 1794, 1794, 1794, 1794,
5396  1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794,
5397 
5398  1796, 1796, 4612, 1796, 1796, 1796, 1796, 1796, 1796, 4612,
5399  1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
5400  1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796, 1796,
5401  1796, 1796, 1796, 1816, 1816, 4612, 1816, 1816, 1816, 1816,
5402  1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
5403  1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816, 1816,
5404  1816, 1816, 1816, 1816, 1816, 1816, 1820, 1820, 4612, 1820,
5405  1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
5406  1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
5407  1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1821,
5408 
5409  1821, 4612, 1821, 1821, 4612, 1821, 1821, 1821, 4612, 4612,
5410  4612, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
5411  1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
5412  1821, 1821, 1822, 1822, 4612, 1822, 1822, 1822, 1822, 1822,
5413  1822, 4612, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
5414  1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
5415  1822, 1822, 1822, 1822, 1822, 1826, 1826, 4612, 1826, 1826,
5416  4612, 1826, 1826, 1826, 4612, 1826, 1826, 1826, 1826, 1826,
5417  4612, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
5418  1826, 1826, 1826, 1826, 4612, 4612, 1826, 1826, 1827, 1827,
5419 
5420  4612, 1827, 1827, 1827, 1827, 1827, 1827, 4612, 1827, 1827,
5421  1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5422  1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827, 1827,
5423  1827, 1829, 1829, 4612, 1829, 1829, 4612, 1829, 1829, 1829,
5424  4612, 4612, 4612, 1829, 1829, 1829, 4612, 1829, 1829, 1829,
5425  1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
5426  1829, 1829, 1829, 1829, 1830, 1830, 4612, 1830, 1830, 1830,
5427  1830, 1830, 1830, 4612, 1830, 1830, 1830, 1830, 1830, 1830,
5428  1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830,
5429  1830, 1830, 1830, 1830, 1830, 1830, 1830, 1832, 1832, 4612,
5430 
5431  1832, 1832, 4612, 1832, 1832, 1832, 4612, 1832, 1832, 1832,
5432  4612, 1832, 4612, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
5433  1832, 1832, 1832, 1832, 1832, 1832, 4612, 4612, 1832, 1832,
5434  1833, 1833, 4612, 1833, 1833, 1833, 1833, 1833, 1833, 4612,
5435  1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833,
5436  1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833, 1833,
5437  1833, 1833, 1833, 1844, 1844, 4612, 1844, 1844, 1844, 1844,
5438  1844, 1844, 4612, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
5439  1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
5440  1844, 1844, 1844, 1844, 1844, 1844, 1854, 1854, 4612, 1854,
5441 
5442  1854, 4612, 1854, 1854, 1854, 4612, 1854, 1854, 1854, 1854,
5443  1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854,
5444  1854, 4612, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1857,
5445  1857, 4612, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
5446  1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
5447  1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
5448  1857, 1857, 1858, 1858, 4612, 1858, 1858, 4612, 1858, 1858,
5449  1858, 4612, 4612, 4612, 1858, 1858, 1858, 4612, 1858, 1858,
5450  1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858,
5451  1858, 1858, 1858, 1858, 1858, 1861, 1861, 4612, 1861, 1861,
5452 
5453  1861, 1861, 1861, 1861, 1861, 1861, 1861, 4612, 1861, 1861,
5454  1861, 1861, 1861, 1861, 1861, 1861, 1861, 4612, 1861, 1861,
5455  4612, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1869, 1869,
5456  4612, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869,
5457  1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869,
5458  4612, 1869, 1869, 4612, 1869, 1869, 1869, 1869, 1869, 1869,
5459  1869, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
5460  1894, 1894, 4612, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
5461  1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
5462  1894, 1894, 1894, 1894, 1895, 4612, 1895, 1895, 1895, 1895,
5463 
5464  1895, 1895, 1895, 1895, 4612, 4612, 1895, 1895, 1895, 1895,
5465  1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 1895, 4612,
5466  1895, 1895, 1895, 1895, 1895, 1895, 1895, 1899, 1899, 4612,
5467  1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 4612, 1899,
5468  1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
5469  1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
5470  1900, 4612, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900,
5471  4612, 4612, 1900, 1900, 1900, 1900, 1900, 1900, 1900, 1900,
5472  1900, 1900, 1900, 1900, 1900, 4612, 1900, 1900, 1900, 1900,
5473  1900, 1900, 1900, 1914, 1914, 1914, 4612, 4612, 4612, 1914,
5474 
5475  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5476  4612, 4612, 4612, 4612, 4612, 1914, 1914, 4612, 4612, 4612,
5477  4612, 4612, 4612, 4612, 1914, 1920, 1920, 1920, 4612, 4612,
5478  4612, 4612, 4612, 4612, 4612, 1920, 4612, 1920, 4612, 4612,
5479  1920, 4612, 4612, 4612, 4612, 4612, 4612, 1920, 4612, 4612,
5480  4612, 4612, 4612, 4612, 4612, 4612, 1920, 1921, 1921, 1921,
5481  1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
5482  1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
5483  1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
5484  1926, 1926, 1926, 4612, 4612, 4612, 1926, 4612, 4612, 1926,
5485 
5486  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5487  4612, 4612, 1926, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5488  4612, 1926, 1930, 1930, 1930, 4612, 4612, 4612, 1930, 4612,
5489  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5490  4612, 4612, 4612, 4612, 1930, 4612, 4612, 4612, 4612, 4612,
5491  4612, 4612, 4612, 1930, 1933, 1933, 1933, 4612, 4612, 4612,
5492  4612, 4612, 4612, 1933, 4612, 4612, 4612, 4612, 4612, 1933,
5493  4612, 1933, 4612, 4612, 4612, 4612, 1933, 4612, 4612, 4612,
5494  4612, 4612, 4612, 4612, 4612, 1933, 1938, 4612, 4612, 4612,
5495  4612, 4612, 1938, 1938, 4612, 4612, 4612, 1938, 4612, 4612,
5496 
5497  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1938, 4612,
5498  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1938, 1944, 1944,
5499  1944, 4612, 4612, 4612, 1944, 4612, 4612, 4612, 4612, 4612,
5500  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5501  1944, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1944,
5502  1947, 1947, 1947, 1947, 4612, 4612, 1947, 4612, 4612, 4612,
5503  4612, 4612, 4612, 4612, 4612, 4612, 1947, 4612, 4612, 4612,
5504  4612, 4612, 1947, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5505  1947, 1947, 1949, 1949, 1949, 4612, 4612, 4612, 4612, 4612,
5506  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1949, 1949, 4612,
5507 
5508  4612, 4612, 4612, 4612, 1949, 4612, 4612, 4612, 4612, 4612,
5509  4612, 4612, 4612, 1949, 1959, 1959, 1959, 1959, 1959, 1959,
5510  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
5511  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
5512  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1967, 1967, 4612,
5513  1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 4612,
5514  1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967, 1967, 4612,
5515  1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967, 4612, 1967,
5516  1999, 1999, 4612, 1999, 1999, 1999, 1999, 4612, 1999, 1999,
5517  1999, 1999, 4612, 1999, 1999, 4612, 1999, 1999, 1999, 4612,
5518 
5519  1999, 1999, 4612, 1999, 1999, 4612, 4612, 1999, 1999, 1999,
5520  1999, 4612, 1999, 2014, 2014, 2014, 4612, 4612, 4612, 2014,
5521  4612, 4612, 2014, 4612, 2014, 4612, 4612, 2014, 4612, 4612,
5522  4612, 4612, 4612, 4612, 4612, 2014, 4612, 4612, 4612, 4612,
5523  2014, 4612, 4612, 2014, 2014, 1276, 4612, 4612, 4612, 4612,
5524  4612, 4612, 4612, 4612, 1276, 4612, 4612, 4612, 4612, 4612,
5525  1276, 4612, 4612, 4612, 4612, 4612, 4612, 1276, 4612, 4612,
5526  4612, 4612, 4612, 4612, 4612, 4612, 1276, 1297, 1297, 1297,
5527  4612, 4612, 4612, 1297, 4612, 4612, 4612, 4612, 4612, 4612,
5528  1297, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1297,
5529 
5530  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1297, 1297, 1290,
5531  1290, 1290, 4612, 4612, 4612, 1290, 4612, 4612, 4612, 4612,
5532  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5533  4612, 1290, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5534  1290, 2022, 2022, 2022, 4612, 4612, 4612, 4612, 4612, 4612,
5535  2022, 4612, 4612, 2022, 4612, 4612, 2022, 4612, 2022, 2022,
5536  4612, 4612, 4612, 2022, 4612, 4612, 4612, 4612, 4612, 4612,
5537  4612, 4612, 2022, 1303, 1303, 1303, 4612, 4612, 4612, 4612,
5538  4612, 4612, 1303, 4612, 4612, 1303, 1303, 4612, 1303, 1303,
5539  1303, 1303, 4612, 4612, 4612, 1303, 4612, 4612, 4612, 4612,
5540 
5541  4612, 4612, 4612, 4612, 1303, 2025, 2025, 2025, 4612, 4612,
5542  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2025, 4612,
5543  2025, 4612, 4612, 4612, 4612, 4612, 4612, 2025, 4612, 4612,
5544  4612, 4612, 4612, 4612, 4612, 4612, 2025, 2028, 2028, 2028,
5545  4612, 4612, 4612, 2028, 4612, 4612, 4612, 4612, 4612, 4612,
5546  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2028,
5547  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2028, 1309,
5548  1309, 1309, 4612, 4612, 4612, 1309, 4612, 4612, 4612, 4612,
5549  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5550  4612, 1309, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5551 
5552  1309, 2030, 2030, 2030, 4612, 4612, 4612, 4612, 4612, 4612,
5553  2030, 4612, 4612, 2030, 4612, 4612, 2030, 4612, 2030, 2030,
5554  4612, 4612, 4612, 2030, 4612, 4612, 4612, 4612, 4612, 4612,
5555  4612, 4612, 2030, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
5556  1313, 1313, 1313, 1313, 1313, 1313, 4612, 1313, 1313, 1313,
5557  1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
5558  1313, 1313, 4612, 1313, 1313, 1313, 1319, 1319, 1319, 4612,
5559  4612, 4612, 1319, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5560  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1319, 4612,
5561  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1319, 2032, 2032,
5562 
5563  2032, 4612, 4612, 4612, 4612, 4612, 4612, 2032, 4612, 4612,
5564  4612, 4612, 4612, 2032, 4612, 4612, 4612, 4612, 4612, 4612,
5565  2032, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2032,
5566  1330, 1330, 1330, 4612, 4612, 4612, 4612, 4612, 4612, 1330,
5567  4612, 4612, 4612, 4612, 4612, 1330, 1330, 4612, 4612, 4612,
5568  4612, 4612, 1330, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5569  4612, 1330, 1340, 4612, 4612, 4612, 1340, 4612, 1340, 4612,
5570  4612, 1340, 4612, 4612, 4612, 1340, 4612, 4612, 4612, 4612,
5571  4612, 4612, 4612, 4612, 1340, 1343, 1343, 4612, 1343, 1343,
5572  1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
5573 
5574  1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
5575  1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1363, 1363,
5576  1363, 4612, 4612, 4612, 1363, 4612, 4612, 4612, 4612, 4612,
5577  4612, 4612, 4612, 4612, 4612, 4612, 1363, 4612, 4612, 4612,
5578  1363, 4612, 4612, 4612, 4612, 4612, 1363, 4612, 4612, 1363,
5579  2051, 2051, 2051, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5580  4612, 4612, 4612, 2051, 4612, 2051, 2051, 4612, 4612, 4612,
5581  4612, 4612, 2051, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5582  4612, 2051, 1378, 1378, 1378, 4612, 4612, 4612, 4612, 4612,
5583  4612, 4612, 4612, 4612, 4612, 1378, 4612, 1378, 1378, 4612,
5584 
5585  4612, 4612, 4612, 4612, 1378, 4612, 1378, 4612, 4612, 4612,
5586  4612, 4612, 4612, 1378, 2055, 2055, 2055, 4612, 4612, 4612,
5587  2055, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5588  4612, 4612, 4612, 4612, 4612, 4612, 2055, 4612, 4612, 4612,
5589  4612, 4612, 4612, 4612, 4612, 2055, 2065, 2065, 4612, 2065,
5590  2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065,
5591  2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2065,
5592  2065, 4612, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2067,
5593  2067, 4612, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
5594  2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
5595 
5596  2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
5597  2067, 2067, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
5598  1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
5599  1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
5600  1458, 1458, 1458, 1458, 1458, 1422, 1422, 1422, 4612, 4612,
5601  4612, 1422, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5602  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1422, 4612, 4612,
5603  4612, 4612, 4612, 4612, 4612, 4612, 1422, 2111, 2111, 2111,
5604  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5605  4612, 4612, 2111, 4612, 4612, 2111, 4612, 4612, 4612, 2111,
5606 
5607  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2111, 1455,
5608  1455, 1455, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5609  4612, 4612, 4612, 4612, 1455, 1455, 4612, 1455, 4612, 4612,
5610  4612, 1455, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5611  1455, 2115, 2115, 4612, 2115, 2115, 2115, 2115, 2115, 2115,
5612  2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115,
5613  2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115,
5614  2115, 2115, 2115, 2115, 1437, 1437, 1437, 4612, 4612, 4612,
5615  1437, 1437, 4612, 4612, 4612, 1437, 4612, 4612, 4612, 4612,
5616  1437, 4612, 4612, 4612, 4612, 4612, 1437, 4612, 4612, 4612,
5617 
5618  1437, 4612, 4612, 4612, 4612, 1437, 2122, 2122, 2122, 4612,
5619  4612, 4612, 4612, 4612, 4612, 4612, 2122, 2122, 4612, 4612,
5620  4612, 2122, 2122, 4612, 2122, 4612, 4612, 4612, 2122, 4612,
5621  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2122, 2140, 2140,
5622  2140, 4612, 4612, 4612, 4612, 4612, 4612, 2140, 4612, 4612,
5623  4612, 2140, 4612, 2140, 4612, 4612, 4612, 4612, 4612, 4612,
5624  2140, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2140,
5625  1492, 1492, 4612, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5626  1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 4612,
5627  1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492,
5628 
5629  1492, 1492, 1492, 1501, 1501, 1501, 4612, 4612, 4612, 1501,
5630  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5631  4612, 4612, 4612, 4612, 4612, 1501, 4612, 4612, 4612, 4612,
5632  4612, 4612, 4612, 4612, 1501, 2199, 2199, 2199, 4612, 4612,
5633  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5634  2199, 4612, 4612, 2199, 4612, 4612, 4612, 2199, 4612, 4612,
5635  4612, 4612, 4612, 4612, 4612, 4612, 2199, 1507, 1507, 1507,
5636  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5637  4612, 4612, 1507, 1507, 4612, 1507, 4612, 4612, 4612, 1507,
5638  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1507, 1556,
5639 
5640  1556, 4612, 4612, 1556, 4612, 4612, 1556, 1556, 4612, 1556,
5641  1556, 1556, 1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556,
5642  1556, 4612, 1556, 1556, 1556, 1556, 1556, 1556, 4612, 4612,
5643  1556, 1556, 1560, 1560, 4612, 1560, 1560, 1560, 1560, 1560,
5644  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
5645  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
5646  1560, 1560, 1560, 1560, 1560, 2241, 2241, 4612, 2241, 2241,
5647  2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241,
5648  2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241,
5649  4612, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2243, 2243,
5650 
5651  4612, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
5652  2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
5653  2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243,
5654  2243, 2248, 2248, 4612, 2248, 2248, 2248, 2248, 2248, 2248,
5655  2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
5656  2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
5657  2248, 2248, 2248, 2248, 1573, 1573, 1573, 4612, 4612, 4612,
5658  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1573, 4612, 1573,
5659  1573, 4612, 4612, 4612, 4612, 4612, 1573, 4612, 4612, 4612,
5660  4612, 4612, 4612, 4612, 4612, 1573, 1570, 1570, 1570, 4612,
5661 
5662  4612, 4612, 1570, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5663  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1570, 4612,
5664  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1570, 1583, 1583,
5665  1583, 4612, 4612, 4612, 1583, 4612, 4612, 4612, 4612, 4612,
5666  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5667  1583, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1583,
5668  1588, 1588, 1588, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5669  4612, 4612, 4612, 4612, 4612, 1588, 1588, 4612, 4612, 4612,
5670  4612, 4612, 1588, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5671  4612, 1588, 1589, 1589, 4612, 1589, 1589, 4612, 4612, 1589,
5672 
5673  1589, 4612, 1589, 1589, 1589, 1589, 1589, 4612, 1589, 1589,
5674  1589, 4612, 1589, 1589, 4612, 1589, 1589, 4612, 1589, 1589,
5675  1589, 4612, 4612, 1589, 1589, 2261, 2261, 4612, 2261, 2261,
5676  2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
5677  2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261,
5678  4612, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2263, 2263,
5679  4612, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
5680  2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
5681  2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
5682  2263, 1615, 1615, 1615, 4612, 4612, 4612, 4612, 4612, 4612,
5683 
5684  4612, 4612, 4612, 4612, 4612, 4612, 1615, 4612, 4612, 4612,
5685  4612, 4612, 4612, 1615, 4612, 4612, 4612, 4612, 4612, 1615,
5686  4612, 4612, 1615, 1625, 1625, 4612, 1625, 1625, 1625, 1625,
5687  1625, 1625, 1625, 1625, 1625, 4612, 1625, 1625, 1625, 1625,
5688  1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625, 1625,
5689  1625, 1625, 1625, 1625, 1625, 1625, 1631, 1631, 1631, 1631,
5690  1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
5691  1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
5692  1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1638,
5693  1638, 4612, 1638, 1638, 4612, 1638, 1638, 1638, 1638, 1638,
5694 
5695  1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
5696  1638, 1638, 1638, 4612, 1638, 4612, 1638, 1638, 1638, 1638,
5697  1638, 1638, 1641, 1641, 4612, 1641, 1641, 1641, 1641, 1641,
5698  1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
5699  1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641, 1641,
5700  1641, 1641, 1641, 1641, 1641, 1653, 4612, 4612, 4612, 1653,
5701  1653, 1653, 1653, 1653, 1653, 1653, 1653, 4612, 1653, 4612,
5702  4612, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
5703  1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1663, 4612,
5704  1663, 4612, 4612, 4612, 4612, 4612, 4612, 1663, 4612, 1663,
5705 
5706  4612, 4612, 4612, 4612, 4612, 4612, 1663, 1667, 1667, 1667,
5707  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5708  1667, 4612, 1667, 4612, 4612, 4612, 4612, 4612, 4612, 1667,
5709  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1667, 2286,
5710  2286, 2286, 4612, 4612, 4612, 2286, 4612, 4612, 4612, 4612,
5711  2286, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5712  4612, 2286, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5713  2286, 1670, 1670, 1670, 4612, 4612, 4612, 4612, 4612, 4612,
5714  4612, 4612, 4612, 4612, 4612, 4612, 1670, 4612, 4612, 4612,
5715  4612, 4612, 4612, 1670, 4612, 1670, 4612, 4612, 4612, 4612,
5716 
5717  4612, 4612, 1670, 1668, 1668, 1668, 4612, 4612, 4612, 1668,
5718  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5719  4612, 4612, 4612, 4612, 4612, 1668, 4612, 4612, 4612, 4612,
5720  4612, 4612, 4612, 4612, 1668, 1682, 1682, 4612, 1682, 1682,
5721  1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
5722  1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682,
5723  1682, 1682, 1682, 1682, 1682, 1682, 1682, 1682, 1686, 4612,
5724  4612, 4612, 1686, 4612, 4612, 4612, 4612, 4612, 4612, 1686,
5725  4612, 4612, 4612, 4612, 4612, 4612, 1686, 4612, 4612, 4612,
5726  4612, 4612, 4612, 4612, 4612, 1686, 1691, 1691, 4612, 1691,
5727 
5728  1691, 4612, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
5729  1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
5730  1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1699,
5731  1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
5732  4612, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
5733  1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699, 1699,
5734  1699, 1699, 1706, 1706, 1706, 4612, 4612, 4612, 4612, 4612,
5735  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1706, 1706, 4612,
5736  4612, 4612, 4612, 4612, 1706, 4612, 4612, 4612, 4612, 4612,
5737  4612, 4612, 4612, 1706, 1708, 1708, 1708, 1708, 1708, 1708,
5738 
5739  1708, 1708, 1708, 1708, 4612, 4612, 1708, 1708, 1708, 1708,
5740  1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708, 1708,
5741  1708, 1708, 1708, 1708, 1708, 1708, 1708, 1723, 1723, 4612,
5742  1723, 4612, 4612, 4612, 1723, 4612, 4612, 4612, 4612, 4612,
5743  4612, 4612, 4612, 1723, 2317, 4612, 4612, 4612, 4612, 4612,
5744  4612, 2317, 4612, 4612, 4612, 2317, 2317, 4612, 4612, 2317,
5745  2317, 4612, 4612, 4612, 2317, 4612, 2317, 2330, 2330, 4612,
5746  2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
5747  2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
5748  2330, 2330, 4612, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
5749 
5750  2332, 2332, 4612, 2332, 2332, 2332, 2332, 2332, 2332, 2332,
5751  2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332,
5752  2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332,
5753  2332, 2332, 2332, 2340, 4612, 2340, 2340, 2340, 2340, 2340,
5754  2340, 2340, 2340, 2340, 4612, 2340, 2340, 2340, 2340, 2340,
5755  2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 4612, 2340,
5756  2340, 2340, 2340, 2340, 2340, 2340, 1759, 1759, 1759, 4612,
5757  4612, 4612, 1759, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5758  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1759, 4612,
5759  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1759, 1762, 1762,
5760 
5761  1762, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1762,
5762  4612, 4612, 4612, 1762, 4612, 4612, 4612, 4612, 4612, 4612,
5763  1762, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1762,
5764  1768, 1768, 1768, 4612, 4612, 4612, 1768, 1768, 4612, 4612,
5765  4612, 1768, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5766  4612, 4612, 1768, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5767  4612, 1768, 1770, 1770, 1770, 4612, 4612, 4612, 4612, 4612,
5768  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1770, 4612, 4612,
5769  4612, 4612, 4612, 4612, 1770, 1770, 4612, 4612, 4612, 4612,
5770  4612, 4612, 4612, 1770, 2343, 2343, 4612, 2343, 2343, 2343,
5771 
5772  2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343,
5773  2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343,
5774  2343, 2343, 2343, 2343, 2343, 2343, 2343, 2349, 2349, 2349,
5775  4612, 4612, 4612, 2349, 4612, 4612, 4612, 4612, 2349, 4612,
5776  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2349,
5777  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2349, 1780,
5778  1780, 1780, 4612, 4612, 4612, 1780, 4612, 4612, 4612, 4612,
5779  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5780  4612, 1780, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5781  1780, 1785, 1785, 1785, 4612, 4612, 4612, 4612, 4612, 4612,
5782 
5783  4612, 4612, 4612, 4612, 4612, 4612, 1785, 1785, 4612, 4612,
5784  4612, 4612, 4612, 1785, 4612, 4612, 4612, 4612, 4612, 4612,
5785  4612, 4612, 1785, 1792, 1792, 4612, 1792, 1792, 1792, 1792,
5786  1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
5787  1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
5788  1792, 1792, 1792, 1792, 1792, 1792, 1794, 4612, 4612, 4612,
5789  1794, 4612, 4612, 1794, 1794, 4612, 4612, 4612, 1794, 1794,
5790  1794, 4612, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794,
5791  1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 1794, 2355,
5792  2355, 4612, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
5793 
5794  2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
5795  2355, 2355, 2355, 2355, 4612, 2355, 2355, 2355, 2355, 2355,
5796  2355, 2355, 2357, 2357, 4612, 2357, 2357, 2357, 2357, 2357,
5797  2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357,
5798  2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357,
5799  2357, 2357, 2357, 2357, 2357, 2363, 4612, 2363, 2363, 2363,
5800  2363, 2363, 2363, 2363, 2363, 2363, 4612, 2363, 2363, 2363,
5801  2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
5802  4612, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 1821, 1821,
5803  4612, 1821, 1821, 4612, 1821, 1821, 1821, 4612, 4612, 4612,
5804 
5805  1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
5806  1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821, 1821,
5807  1821, 2366, 2366, 4612, 2366, 2366, 2366, 2366, 2366, 2366,
5808  2366, 2366, 2366, 2366, 2366, 2366, 2366, 2366, 2366, 2366,
5809  2366, 2366, 2366, 2366, 2366, 2366, 4612, 2366, 2366, 2366,
5810  2366, 2366, 2366, 2366, 2368, 2368, 4612, 2368, 2368, 2368,
5811  2368, 2368, 2368, 2368, 2368, 2368, 2368, 2368, 2368, 2368,
5812  2368, 2368, 2368, 2368, 2368, 2368, 2368, 2368, 2368, 2368,
5813  2368, 2368, 2368, 2368, 2368, 2368, 2368, 1826, 1826, 4612,
5814  1826, 1826, 4612, 1826, 1826, 1826, 4612, 1826, 1826, 1826,
5815 
5816  1826, 1826, 4612, 1826, 1826, 1826, 1826, 1826, 1826, 1826,
5817  1826, 1826, 1826, 1826, 1826, 1826, 4612, 4612, 1826, 1826,
5818  2370, 2370, 4612, 2370, 2370, 2370, 2370, 2370, 2370, 2370,
5819  2370, 2370, 2370, 2370, 2370, 2370, 2370, 2370, 2370, 2370,
5820  2370, 2370, 2370, 2370, 2370, 4612, 2370, 2370, 2370, 2370,
5821  2370, 2370, 2370, 2372, 2372, 4612, 2372, 2372, 2372, 2372,
5822  2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372,
5823  2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372, 2372,
5824  2372, 2372, 2372, 2372, 2372, 2372, 1829, 1829, 4612, 1829,
5825  1829, 4612, 1829, 1829, 1829, 4612, 4612, 4612, 1829, 1829,
5826 
5827  1829, 4612, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829,
5828  1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 1829, 2374,
5829  2374, 4612, 2374, 2374, 2374, 2374, 2374, 2374, 2374, 2374,
5830  2374, 2374, 2374, 2374, 2374, 2374, 2374, 2374, 2374, 2374,
5831  2374, 2374, 2374, 2374, 4612, 2374, 2374, 2374, 2374, 2374,
5832  2374, 2374, 2376, 2376, 4612, 2376, 2376, 2376, 2376, 2376,
5833  2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376,
5834  2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376,
5835  2376, 2376, 2376, 2376, 2376, 1832, 1832, 4612, 1832, 1832,
5836  4612, 1832, 1832, 1832, 4612, 1832, 1832, 1832, 4612, 1832,
5837 
5838  4612, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
5839  1832, 1832, 1832, 1832, 4612, 4612, 1832, 1832, 2378, 2378,
5840  4612, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378,
5841  2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378,
5842  2378, 2378, 2378, 4612, 2378, 2378, 2378, 2378, 2378, 2378,
5843  2378, 2380, 2380, 4612, 2380, 2380, 2380, 2380, 2380, 2380,
5844  2380, 2380, 2380, 2380, 2380, 2380, 2380, 2380, 2380, 2380,
5845  2380, 2380, 2380, 2380, 2380, 2380, 2380, 2380, 2380, 2380,
5846  2380, 2380, 2380, 2380, 2386, 2386, 4612, 2386, 2386, 2386,
5847  2386, 2386, 2386, 2386, 2386, 2386, 2386, 2386, 2386, 2386,
5848 
5849  2386, 2386, 2386, 2386, 2386, 2386, 2386, 2386, 2386, 4612,
5850  2386, 2386, 2386, 2386, 2386, 2386, 2386, 2388, 2388, 4612,
5851  2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388,
5852  2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388,
5853  2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388,
5854  1854, 1854, 4612, 1854, 1854, 4612, 1854, 1854, 1854, 4612,
5855  1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854,
5856  1854, 1854, 1854, 1854, 1854, 4612, 1854, 1854, 1854, 1854,
5857  1854, 1854, 1854, 1858, 1858, 4612, 1858, 1858, 4612, 1858,
5858  1858, 1858, 4612, 4612, 4612, 1858, 1858, 1858, 4612, 1858,
5859 
5860  1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858,
5861  1858, 1858, 1858, 1858, 1858, 1858, 1861, 1861, 4612, 1861,
5862  1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 4612, 1861,
5863  1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 4612, 1861,
5864  1861, 4612, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1869,
5865  1869, 4612, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869,
5866  1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869, 1869,
5867  1869, 4612, 1869, 1869, 4612, 1869, 1869, 1869, 1869, 1869,
5868  1869, 1869, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
5869  1894, 1894, 1894, 4612, 1894, 1894, 1894, 1894, 1894, 1894,
5870 
5871  1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
5872  1894, 1894, 1894, 1894, 1894, 2406, 4612, 2406, 2406, 2406,
5873  2406, 2406, 2406, 2406, 2406, 4612, 4612, 2406, 2406, 2406,
5874  2406, 2406, 2406, 2406, 2406, 2406, 2406, 2406, 2406, 2406,
5875  4612, 2406, 2406, 2406, 2406, 2406, 2406, 2406, 1899, 1899,
5876  4612, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 4612,
5877  1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
5878  1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
5879  1899, 2408, 4612, 2408, 2408, 2408, 2408, 2408, 2408, 2408,
5880  2408, 4612, 4612, 2408, 2408, 2408, 2408, 2408, 2408, 2408,
5881 
5882  2408, 2408, 2408, 2408, 2408, 2408, 4612, 2408, 2408, 2408,
5883  2408, 2408, 2408, 2408, 1914, 1914, 1914, 4612, 4612, 4612,
5884  1914, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5885  4612, 4612, 4612, 4612, 4612, 4612, 1914, 1914, 4612, 4612,
5886  4612, 4612, 4612, 4612, 4612, 1914, 2419, 2419, 2419, 4612,
5887  4612, 4612, 4612, 4612, 4612, 4612, 2419, 4612, 2419, 4612,
5888  4612, 2419, 4612, 4612, 4612, 4612, 4612, 4612, 2419, 4612,
5889  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2419, 1921, 1921,
5890  1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
5891  1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
5892 
5893  1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
5894  1921, 1920, 1920, 1920, 4612, 4612, 4612, 4612, 4612, 4612,
5895  4612, 1920, 4612, 1920, 4612, 4612, 1920, 4612, 4612, 4612,
5896  4612, 4612, 4612, 1920, 4612, 4612, 4612, 4612, 4612, 4612,
5897  4612, 4612, 1920, 1926, 1926, 1926, 4612, 4612, 4612, 1926,
5898  4612, 4612, 1926, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5899  4612, 4612, 4612, 4612, 4612, 1926, 4612, 4612, 4612, 4612,
5900  4612, 4612, 4612, 4612, 1926, 1930, 1930, 1930, 4612, 4612,
5901  4612, 1930, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5902  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1930, 4612, 4612,
5903 
5904  4612, 4612, 4612, 4612, 4612, 4612, 1930, 2423, 2423, 2423,
5905  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5906  4612, 4612, 2423, 4612, 4612, 4612, 4612, 4612, 4612, 2423,
5907  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2423, 1933,
5908  1933, 1933, 4612, 4612, 4612, 4612, 4612, 4612, 1933, 4612,
5909  4612, 4612, 4612, 4612, 1933, 4612, 1933, 4612, 4612, 4612,
5910  4612, 1933, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5911  1933, 2426, 2426, 2426, 4612, 4612, 4612, 4612, 4612, 4612,
5912  4612, 2426, 4612, 4612, 4612, 4612, 2426, 4612, 4612, 4612,
5913  4612, 4612, 4612, 2426, 4612, 4612, 4612, 4612, 4612, 4612,
5914 
5915  4612, 4612, 2426, 1944, 1944, 1944, 4612, 4612, 4612, 1944,
5916  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5917  4612, 4612, 4612, 4612, 4612, 1944, 4612, 4612, 4612, 4612,
5918  4612, 4612, 4612, 4612, 1944, 1949, 1949, 1949, 4612, 4612,
5919  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5920  1949, 1949, 4612, 4612, 4612, 4612, 4612, 1949, 4612, 4612,
5921  4612, 4612, 4612, 4612, 4612, 4612, 1949, 1959, 1959, 1959,
5922  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
5923  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
5924  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
5925 
5926  1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
5927  1967, 1967, 4612, 1967, 1967, 4612, 1967, 1967, 1967, 1967,
5928  1967, 1967, 4612, 1967, 1967, 4612, 1967, 1967, 1967, 1967,
5929  1967, 4612, 1967, 1999, 1999, 4612, 1999, 1999, 1999, 1999,
5930  4612, 1999, 1999, 1999, 1999, 4612, 1999, 1999, 4612, 1999,
5931  1999, 1999, 4612, 1999, 1999, 4612, 1999, 1999, 4612, 4612,
5932  1999, 1999, 1999, 1999, 4612, 1999, 2014, 2014, 2014, 4612,
5933  4612, 4612, 2014, 4612, 4612, 2014, 4612, 2014, 4612, 4612,
5934  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2014, 4612,
5935  4612, 4612, 4612, 2014, 4612, 4612, 2014, 2014, 2022, 2022,
5936 
5937  2022, 4612, 4612, 4612, 4612, 4612, 4612, 2022, 4612, 4612,
5938  2022, 4612, 4612, 2022, 4612, 2022, 2022, 4612, 4612, 4612,
5939  2022, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2022,
5940  2474, 2474, 2474, 4612, 4612, 4612, 4612, 4612, 4612, 2474,
5941  4612, 4612, 2474, 4612, 4612, 2474, 2474, 2474, 2474, 4612,
5942  4612, 4612, 2474, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5943  4612, 2474, 2025, 2025, 2025, 4612, 4612, 4612, 4612, 4612,
5944  4612, 4612, 4612, 4612, 4612, 2025, 4612, 2025, 4612, 4612,
5945  4612, 4612, 4612, 4612, 2025, 4612, 4612, 4612, 4612, 4612,
5946  4612, 4612, 4612, 2025, 2028, 2028, 2028, 4612, 4612, 4612,
5947 
5948  2028, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5949  4612, 4612, 4612, 4612, 4612, 4612, 2028, 4612, 4612, 4612,
5950  4612, 4612, 4612, 4612, 4612, 2028, 2023, 2023, 2023, 2023,
5951  4612, 4612, 2023, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5952  4612, 4612, 2023, 4612, 4612, 4612, 4612, 4612, 2023, 4612,
5953  4612, 4612, 4612, 4612, 4612, 4612, 2023, 2023, 2030, 2030,
5954  2030, 4612, 4612, 4612, 4612, 4612, 4612, 2030, 4612, 4612,
5955  2030, 4612, 4612, 2030, 4612, 2030, 2030, 4612, 4612, 4612,
5956  2030, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2030,
5957  2032, 2032, 2032, 4612, 4612, 4612, 4612, 4612, 4612, 2032,
5958 
5959  4612, 4612, 4612, 4612, 4612, 2032, 4612, 4612, 4612, 4612,
5960  4612, 4612, 2032, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5961  4612, 2032, 2476, 2476, 2476, 4612, 4612, 4612, 4612, 4612,
5962  4612, 2476, 4612, 4612, 4612, 4612, 4612, 2476, 2476, 4612,
5963  4612, 4612, 4612, 4612, 2476, 4612, 4612, 4612, 4612, 4612,
5964  4612, 4612, 4612, 2476, 2477, 2477, 2477, 2477, 2477, 2477,
5965  2477, 2477, 2477, 2477, 2477, 2477, 4612, 2477, 2477, 4612,
5966  2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477, 2477,
5967  2477, 2477, 2477, 2477, 2477, 2477, 2477, 2479, 2479, 2479,
5968  2479, 2479, 2479, 2479, 2479, 2479, 2479, 2479, 2479, 2479,
5969 
5970  2479, 2479, 4612, 2479, 2479, 2479, 2479, 2479, 2479, 2479,
5971  2479, 2479, 2479, 2479, 2479, 2479, 2479, 2479, 2479, 2479,
5972  2033, 2033, 2033, 2033, 4612, 4612, 2033, 4612, 4612, 4612,
5973  4612, 4612, 4612, 4612, 4612, 4612, 2033, 4612, 4612, 4612,
5974  4612, 4612, 2033, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5975  2033, 2033, 1330, 1330, 1330, 4612, 4612, 4612, 4612, 4612,
5976  4612, 1330, 4612, 4612, 4612, 4612, 4612, 1330, 1330, 4612,
5977  4612, 4612, 4612, 4612, 1330, 4612, 4612, 4612, 4612, 4612,
5978  4612, 4612, 4612, 1330, 1340, 4612, 4612, 4612, 1340, 4612,
5979  1340, 4612, 4612, 1340, 4612, 4612, 4612, 1340, 4612, 4612,
5980 
5981  4612, 4612, 4612, 4612, 4612, 4612, 1340, 2493, 2493, 2493,
5982  2493, 4612, 4612, 2493, 4612, 4612, 4612, 4612, 4612, 4612,
5983  4612, 4612, 4612, 2493, 4612, 4612, 4612, 4612, 4612, 2493,
5984  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2493, 2493, 2051,
5985  2051, 2051, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5986  4612, 4612, 2051, 4612, 2051, 2051, 4612, 4612, 4612, 4612,
5987  4612, 2051, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5988  2051, 2055, 2055, 2055, 4612, 4612, 4612, 2055, 4612, 4612,
5989  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
5990  4612, 4612, 4612, 2055, 4612, 4612, 4612, 4612, 4612, 4612,
5991 
5992  4612, 4612, 2055, 2495, 2495, 2495, 4612, 4612, 4612, 4612,
5993  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2495, 2495,
5994  4612, 4612, 4612, 4612, 4612, 2495, 4612, 4612, 4612, 4612,
5995  4612, 4612, 4612, 4612, 2495, 2503, 2503, 4612, 2503, 2503,
5996  2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
5997  2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
5998  4612, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 1429, 1429,
5999  1429, 1429, 4612, 4612, 1429, 4612, 4612, 4612, 4612, 4612,
6000  4612, 4612, 4612, 4612, 1429, 4612, 4612, 4612, 4612, 4612,
6001  1429, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1429, 1429,
6002 
6003  2111, 2111, 2111, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6004  4612, 4612, 4612, 4612, 4612, 2111, 4612, 4612, 2111, 4612,
6005  4612, 4612, 2111, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6006  4612, 2111, 2115, 2115, 4612, 2115, 2115, 2115, 2115, 2115,
6007  2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115,
6008  2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115, 2115,
6009  2115, 2115, 2115, 2115, 2115, 2559, 2559, 2559, 4612, 4612,
6010  4612, 2559, 2559, 4612, 4612, 4612, 2559, 4612, 4612, 4612,
6011  4612, 2559, 4612, 4612, 4612, 4612, 4612, 2559, 4612, 4612,
6012  4612, 2559, 4612, 4612, 4612, 4612, 2559, 2562, 2562, 2562,
6013 
6014  4612, 4612, 4612, 2562, 4612, 4612, 4612, 4612, 4612, 4612,
6015  4612, 4612, 4612, 2562, 4612, 4612, 4612, 4612, 4612, 2562,
6016  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2562, 2568,
6017  2568, 2568, 4612, 4612, 4612, 2568, 4612, 4612, 4612, 2568,
6018  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6019  4612, 2568, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6020  2568, 2122, 2122, 2122, 4612, 4612, 4612, 4612, 4612, 4612,
6021  4612, 2122, 2122, 4612, 4612, 4612, 2122, 2122, 4612, 2122,
6022  4612, 4612, 4612, 2122, 4612, 4612, 4612, 4612, 4612, 4612,
6023  4612, 4612, 2122, 2570, 4612, 4612, 4612, 4612, 4612, 4612,
6024 
6025  2570, 4612, 4612, 4612, 2570, 2570, 4612, 4612, 2570, 2570,
6026  4612, 4612, 4612, 2570, 4612, 2570, 2572, 2572, 2572, 2572,
6027  2572, 2572, 2572, 2572, 2572, 2572, 2572, 2572, 4612, 2572,
6028  2572, 4612, 2572, 2572, 2572, 2572, 2572, 2572, 2572, 2572,
6029  2572, 2572, 2572, 2572, 2572, 2572, 2572, 2572, 2572, 2578,
6030  2578, 2578, 2578, 2578, 2578, 2578, 2578, 2578, 2578, 2578,
6031  2578, 2578, 2578, 2578, 4612, 2578, 2578, 2578, 2578, 2578,
6032  2578, 2578, 2578, 2578, 2578, 2578, 2578, 2578, 2578, 2578,
6033  2578, 2578, 2140, 2140, 2140, 4612, 4612, 4612, 4612, 4612,
6034  4612, 2140, 4612, 4612, 4612, 2140, 4612, 2140, 4612, 4612,
6035 
6036  4612, 4612, 4612, 4612, 2140, 4612, 4612, 4612, 4612, 4612,
6037  4612, 4612, 4612, 2140, 1455, 1455, 1455, 4612, 4612, 4612,
6038  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1455,
6039  1455, 4612, 1455, 4612, 4612, 4612, 1455, 4612, 4612, 4612,
6040  4612, 4612, 4612, 4612, 4612, 1455, 2199, 2199, 2199, 4612,
6041  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6042  4612, 2199, 4612, 4612, 2199, 4612, 4612, 4612, 2199, 4612,
6043  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2199, 1504, 1504,
6044  1504, 1504, 4612, 4612, 1504, 4612, 4612, 4612, 4612, 4612,
6045  4612, 4612, 4612, 4612, 1504, 4612, 4612, 4612, 4612, 4612,
6046 
6047  1504, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1504, 1504,
6048  2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670,
6049  2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670,
6050  2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670,
6051  2670, 2670, 2670, 1556, 1556, 1556, 1556, 1556, 4612, 1556,
6052  1556, 1556, 4612, 1556, 1556, 1556, 1556, 1556, 4612, 1556,
6053  1556, 1556, 4612, 1556, 1556, 4612, 1556, 1556, 1556, 1556,
6054  1556, 1556, 4612, 4612, 1556, 1556, 1560, 1560, 4612, 1560,
6055  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
6056  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
6057 
6058  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 2675,
6059  2675, 4612, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675,
6060  2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675, 2675,
6061  2675, 2675, 2675, 2675, 4612, 2675, 2675, 2675, 2675, 2675,
6062  2675, 2675, 2248, 2248, 4612, 2248, 2248, 2248, 2248, 2248,
6063  2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
6064  2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248, 2248,
6065  2248, 2248, 2248, 2248, 2248, 1570, 1570, 1570, 4612, 4612,
6066  4612, 1570, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6067  4612, 4612, 4612, 4612, 4612, 4612, 4612, 1570, 4612, 4612,
6068 
6069  4612, 4612, 4612, 4612, 4612, 4612, 1570, 1573, 1573, 1573,
6070  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6071  1573, 4612, 1573, 1573, 4612, 4612, 4612, 4612, 4612, 1573,
6072  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1573, 1586,
6073  1586, 1586, 1586, 4612, 4612, 1586, 4612, 4612, 4612, 4612,
6074  4612, 4612, 4612, 4612, 4612, 1586, 4612, 4612, 4612, 4612,
6075  4612, 1586, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1586,
6076  1586, 2683, 2683, 4612, 2683, 2683, 2683, 2683, 2683, 2683,
6077  2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683,
6078  2683, 2683, 2683, 2683, 2683, 2683, 4612, 2683, 2683, 2683,
6079 
6080  2683, 2683, 2683, 2683, 1653, 4612, 4612, 4612, 1653, 1653,
6081  1653, 1653, 1653, 1653, 1653, 1653, 4612, 1653, 4612, 4612,
6082  1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
6083  1653, 1653, 1653, 1653, 1653, 1653, 1653, 2696, 4612, 2696,
6084  4612, 4612, 4612, 4612, 4612, 4612, 2696, 4612, 2696, 4612,
6085  4612, 4612, 4612, 4612, 4612, 2696, 2286, 2286, 2286, 4612,
6086  4612, 4612, 2286, 4612, 4612, 4612, 4612, 2286, 4612, 4612,
6087  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2286, 4612,
6088  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2286, 2697, 2697,
6089  2697, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6090 
6091  4612, 2697, 4612, 2697, 4612, 4612, 4612, 4612, 4612, 4612,
6092  2697, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2697,
6093  1668, 1668, 1668, 4612, 4612, 4612, 1668, 4612, 4612, 4612,
6094  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6095  4612, 4612, 1668, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6096  4612, 1668, 2317, 4612, 4612, 4612, 4612, 4612, 4612, 2317,
6097  4612, 4612, 4612, 2317, 2317, 4612, 4612, 2317, 2317, 4612,
6098  4612, 4612, 2317, 4612, 2317, 1723, 1723, 4612, 1723, 4612,
6099  4612, 4612, 1723, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6100  4612, 1723, 2728, 2728, 4612, 2728, 2728, 2728, 2728, 2728,
6101 
6102  2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728,
6103  2728, 2728, 2728, 2728, 2728, 2728, 2728, 4612, 2728, 2728,
6104  2728, 2728, 2728, 2728, 2728, 2731, 4612, 2731, 2731, 2731,
6105  2731, 2731, 2731, 2731, 2731, 2731, 4612, 2731, 2731, 2731,
6106  2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
6107  4612, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2343, 2343,
6108  4612, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343,
6109  2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343,
6110  2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343,
6111  2343, 2349, 2349, 2349, 4612, 4612, 4612, 2349, 4612, 4612,
6112 
6113  4612, 4612, 2349, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6114  4612, 4612, 4612, 2349, 4612, 4612, 4612, 4612, 4612, 4612,
6115  4612, 4612, 2349, 2735, 2735, 2735, 4612, 4612, 4612, 4612,
6116  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2735, 2735,
6117  4612, 4612, 4612, 4612, 4612, 2735, 4612, 4612, 4612, 4612,
6118  4612, 4612, 4612, 4612, 2735, 1783, 1783, 1783, 1783, 4612,
6119  4612, 1783, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6120  4612, 1783, 4612, 4612, 4612, 4612, 4612, 1783, 4612, 4612,
6121  4612, 4612, 4612, 4612, 4612, 1783, 1783, 2737, 2737, 4612,
6122  2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737,
6123 
6124  2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737, 2737,
6125  2737, 2737, 4612, 2737, 2737, 2737, 2737, 2737, 2737, 2737,
6126  2743, 4612, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743,
6127  2743, 4612, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743,
6128  2743, 2743, 2743, 2743, 2743, 4612, 2743, 2743, 2743, 2743,
6129  2743, 2743, 2743, 2745, 2745, 4612, 2745, 2745, 2745, 2745,
6130  2745, 2745, 2745, 2745, 2745, 2745, 2745, 2745, 2745, 2745,
6131  2745, 2745, 2745, 2745, 2745, 2745, 2745, 2745, 4612, 2745,
6132  2745, 2745, 2745, 2745, 2745, 2745, 2748, 2748, 4612, 2748,
6133  2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748,
6134 
6135  2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748,
6136  2748, 4612, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2751,
6137  2751, 4612, 2751, 2751, 2751, 2751, 2751, 2751, 2751, 2751,
6138  2751, 2751, 2751, 2751, 2751, 2751, 2751, 2751, 2751, 2751,
6139  2751, 2751, 2751, 2751, 4612, 2751, 2751, 2751, 2751, 2751,
6140  2751, 2751, 2754, 2754, 4612, 2754, 2754, 2754, 2754, 2754,
6141  2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754,
6142  2754, 2754, 2754, 2754, 2754, 2754, 2754, 4612, 2754, 2754,
6143  2754, 2754, 2754, 2754, 2754, 1832, 1832, 4612, 1832, 1832,
6144  4612, 1832, 1832, 1832, 4612, 1832, 1832, 1832, 4612, 1832,
6145 
6146  4612, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
6147  1832, 1832, 1832, 1832, 4612, 4612, 1832, 1832, 2760, 2760,
6148  4612, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
6149  2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760, 2760,
6150  2760, 2760, 2760, 4612, 2760, 2760, 2760, 2760, 2760, 2760,
6151  2760, 2773, 2773, 2773, 2773, 2773, 2773, 2773, 2773, 2773,
6152  2773, 2773, 2773, 2773, 2773, 2773, 2773, 4612, 2773, 2773,
6153  2773, 2773, 2773, 2773, 4612, 2773, 2773, 2773, 2773, 2773,
6154  2773, 2773, 2773, 2773, 2774, 4612, 2774, 2774, 2774, 2774,
6155  2774, 2774, 2774, 2774, 4612, 4612, 2774, 2774, 2774, 2774,
6156 
6157  2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 4612,
6158  2774, 2774, 2774, 2774, 2774, 2774, 2774, 2776, 4612, 2776,
6159  2776, 2776, 2776, 2776, 2776, 2776, 2776, 4612, 4612, 2776,
6160  2776, 2776, 2776, 2776, 2776, 2776, 2776, 2776, 2776, 2776,
6161  2776, 2776, 4612, 2776, 2776, 2776, 2776, 2776, 2776, 2776,
6162  2419, 2419, 2419, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6163  2419, 4612, 2419, 4612, 4612, 2419, 4612, 4612, 4612, 4612,
6164  4612, 4612, 2419, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6165  4612, 2419, 2423, 2423, 2423, 4612, 4612, 4612, 4612, 4612,
6166  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2423, 4612, 4612,
6167 
6168  4612, 4612, 4612, 4612, 2423, 4612, 4612, 4612, 4612, 4612,
6169  4612, 4612, 4612, 2423, 2426, 2426, 2426, 4612, 4612, 4612,
6170  4612, 4612, 4612, 4612, 2426, 4612, 4612, 4612, 4612, 2426,
6171  4612, 4612, 4612, 4612, 4612, 4612, 2426, 4612, 4612, 4612,
6172  4612, 4612, 4612, 4612, 4612, 2426, 1947, 1947, 1947, 1947,
6173  4612, 4612, 1947, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6174  4612, 4612, 1947, 4612, 4612, 4612, 4612, 4612, 1947, 4612,
6175  4612, 4612, 4612, 4612, 4612, 4612, 1947, 1947, 1959, 1959,
6176  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6177  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6178 
6179  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6180  1959, 1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967, 1967,
6181  1967, 1967, 1967, 4612, 1967, 1967, 4612, 1967, 1967, 1967,
6182  1967, 1967, 1967, 4612, 1967, 1967, 4612, 1967, 1967, 1967,
6183  1967, 1967, 4612, 1967, 2810, 2810, 2810, 2810, 2810, 2810,
6184  2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 4612,
6185  4612, 2810, 2810, 2810, 2810, 2810, 2810, 4612, 2810, 2810,
6186  2810, 2810, 2810, 2810, 2810, 2810, 2810, 1999, 1999, 4612,
6187  1999, 1999, 1999, 1999, 4612, 1999, 1999, 1999, 1999, 1999,
6188  1999, 1999, 4612, 1999, 1999, 1999, 4612, 1999, 1999, 4612,
6189 
6190  1999, 1999, 4612, 4612, 1999, 1999, 1999, 1999, 1999, 1999,
6191  2474, 2474, 2474, 4612, 4612, 4612, 4612, 4612, 4612, 2474,
6192  4612, 4612, 2474, 4612, 4612, 2474, 2474, 2474, 2474, 4612,
6193  4612, 4612, 2474, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6194  4612, 2474, 2476, 2476, 2476, 4612, 4612, 4612, 4612, 4612,
6195  4612, 2476, 4612, 4612, 4612, 4612, 4612, 2476, 2476, 4612,
6196  4612, 4612, 4612, 4612, 2476, 4612, 4612, 4612, 4612, 4612,
6197  4612, 4612, 4612, 2476, 1330, 1330, 1330, 4612, 4612, 4612,
6198  4612, 4612, 4612, 1330, 4612, 4612, 4612, 4612, 4612, 1330,
6199  1330, 4612, 4612, 4612, 4612, 4612, 1330, 4612, 4612, 4612,
6200 
6201  4612, 4612, 4612, 4612, 4612, 1330, 1340, 4612, 4612, 4612,
6202  1340, 4612, 1340, 4612, 4612, 1340, 4612, 4612, 4612, 1340,
6203  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1340, 2493,
6204  2493, 2493, 2493, 4612, 4612, 2493, 4612, 4612, 4612, 4612,
6205  4612, 4612, 4612, 4612, 4612, 2493, 4612, 4612, 4612, 4612,
6206  4612, 2493, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2493,
6207  2493, 2828, 2828, 2828, 4612, 4612, 4612, 2828, 4612, 4612,
6208  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6209  4612, 4612, 4612, 2828, 4612, 4612, 4612, 4612, 4612, 4612,
6210  4612, 4612, 2828, 2832, 2832, 2832, 4612, 4612, 4612, 4612,
6211 
6212  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2832, 2832,
6213  4612, 4612, 4612, 4612, 4612, 2832, 4612, 4612, 4612, 4612,
6214  4612, 4612, 4612, 4612, 2832, 2051, 2051, 2051, 4612, 4612,
6215  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2051, 4612,
6216  2051, 2051, 4612, 4612, 4612, 4612, 4612, 2051, 4612, 4612,
6217  4612, 4612, 4612, 4612, 4612, 4612, 2051, 2495, 2495, 2495,
6218  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6219  4612, 4612, 2495, 2495, 4612, 4612, 4612, 4612, 4612, 2495,
6220  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2495, 2055,
6221  2055, 2055, 4612, 4612, 4612, 2055, 4612, 4612, 4612, 4612,
6222 
6223  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6224  4612, 2055, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6225  2055, 2839, 2839, 4612, 2839, 2839, 2839, 2839, 2839, 2839,
6226  2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839,
6227  2839, 2839, 2839, 2839, 2839, 2839, 4612, 2839, 2839, 2839,
6228  2839, 2839, 2839, 2839, 2559, 2559, 2559, 4612, 4612, 4612,
6229  2559, 2559, 4612, 4612, 4612, 2559, 4612, 4612, 4612, 4612,
6230  2559, 4612, 4612, 4612, 4612, 4612, 2559, 4612, 4612, 4612,
6231  2559, 4612, 4612, 4612, 4612, 2559, 2895, 2895, 2895, 4612,
6232  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6233 
6234  4612, 2895, 2895, 4612, 2895, 4612, 4612, 4612, 2895, 4612,
6235  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2895, 2562, 2562,
6236  2562, 4612, 4612, 4612, 2562, 4612, 4612, 4612, 4612, 4612,
6237  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6238  2562, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2562,
6239  2899, 2899, 2899, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6240  2899, 4612, 4612, 4612, 4612, 2899, 2899, 4612, 2899, 4612,
6241  4612, 4612, 2899, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6242  4612, 2899, 2568, 2568, 2568, 4612, 4612, 4612, 2568, 4612,
6243  4612, 4612, 2568, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6244 
6245  4612, 4612, 4612, 4612, 2568, 4612, 4612, 4612, 4612, 4612,
6246  4612, 4612, 4612, 2568, 2902, 4612, 4612, 4612, 2902, 4612,
6247  4612, 4612, 4612, 2902, 4612, 4612, 4612, 4612, 4612, 4612,
6248  2902, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2902,
6249  2570, 4612, 4612, 4612, 4612, 4612, 4612, 2570, 4612, 4612,
6250  4612, 2570, 2570, 4612, 4612, 2570, 2570, 4612, 4612, 4612,
6251  2570, 4612, 2570, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
6252  2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
6253  2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
6254  2903, 2903, 2903, 2903, 2903, 2903, 2905, 2905, 4612, 2905,
6255 
6256  2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905,
6257  2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905,
6258  2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2908,
6259  2908, 2908, 4612, 4612, 4612, 4612, 4612, 4612, 2908, 4612,
6260  4612, 4612, 2908, 4612, 2908, 4612, 4612, 4612, 4612, 4612,
6261  4612, 2908, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6262  2908, 2140, 2140, 2140, 4612, 4612, 4612, 4612, 4612, 4612,
6263  2140, 4612, 4612, 4612, 2140, 4612, 2140, 4612, 4612, 4612,
6264  4612, 4612, 4612, 2140, 4612, 4612, 4612, 4612, 4612, 4612,
6265  4612, 4612, 2140, 1455, 1455, 1455, 4612, 4612, 4612, 4612,
6266 
6267  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1455, 1455,
6268  4612, 1455, 4612, 4612, 4612, 1455, 4612, 4612, 4612, 4612,
6269  4612, 4612, 4612, 4612, 1455, 2670, 2670, 2670, 2670, 2670,
6270  2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670,
6271  2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670,
6272  2670, 2670, 2670, 2670, 2670, 2670, 2670, 2670, 1556, 1556,
6273  1556, 1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556, 1556,
6274  1556, 1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556, 1556,
6275  4612, 1556, 1556, 1556, 1556, 1556, 1556, 4612, 4612, 1556,
6276  1556, 1560, 1560, 4612, 1560, 1560, 1560, 1560, 1560, 1560,
6277 
6278  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
6279  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
6280  1560, 1560, 1560, 1560, 2997, 2997, 4612, 2997, 2997, 2997,
6281  2997, 2997, 2997, 2997, 2997, 2997, 2997, 2997, 2997, 2997,
6282  2997, 2997, 2997, 2997, 2997, 2997, 2997, 2997, 2997, 4612,
6283  2997, 2997, 2997, 2997, 2997, 2997, 2997, 3000, 3000, 3000,
6284  3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000,
6285  3000, 3000, 3000, 4612, 3000, 3000, 3000, 3000, 3000, 3000,
6286  4612, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000, 3000,
6287  1573, 1573, 1573, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6288 
6289  4612, 4612, 4612, 1573, 4612, 1573, 1573, 4612, 4612, 4612,
6290  4612, 4612, 1573, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6291  4612, 1573, 3004, 3004, 4612, 3004, 3004, 3004, 3004, 3004,
6292  3004, 3004, 3004, 3004, 3004, 3004, 3004, 3004, 3004, 3004,
6293  3004, 3004, 3004, 3004, 3004, 3004, 3004, 4612, 3004, 3004,
6294  3004, 3004, 3004, 3004, 3004, 1653, 4612, 4612, 4612, 1653,
6295  1653, 1653, 1653, 1653, 1653, 1653, 1653, 4612, 1653, 4612,
6296  4612, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
6297  1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 2696, 4612,
6298  2696, 4612, 4612, 4612, 4612, 4612, 4612, 2696, 4612, 2696,
6299 
6300  4612, 4612, 4612, 4612, 4612, 4612, 2696, 2697, 2697, 2697,
6301  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6302  2697, 4612, 2697, 4612, 4612, 4612, 4612, 4612, 4612, 2697,
6303  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2697, 1723,
6304  1723, 4612, 1723, 4612, 4612, 4612, 1723, 4612, 4612, 4612,
6305  4612, 4612, 4612, 4612, 4612, 1723, 3035, 3035, 4612, 3035,
6306  3035, 3035, 3035, 3035, 3035, 3035, 3035, 3035, 3035, 3035,
6307  3035, 3035, 3035, 3035, 3035, 3035, 3035, 3035, 3035, 3035,
6308  3035, 4612, 3035, 3035, 3035, 3035, 3035, 3035, 3035, 3037,
6309  4612, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
6310 
6311  4612, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
6312  3037, 3037, 3037, 3037, 4612, 3037, 3037, 3037, 3037, 3037,
6313  3037, 3037, 2735, 2735, 2735, 4612, 4612, 4612, 4612, 4612,
6314  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2735, 2735, 4612,
6315  4612, 4612, 4612, 4612, 2735, 4612, 4612, 4612, 4612, 4612,
6316  4612, 4612, 4612, 2735, 3040, 3040, 4612, 3040, 3040, 3040,
6317  3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040,
6318  3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 3040, 4612,
6319  3040, 3040, 3040, 3040, 3040, 3040, 3040, 3043, 4612, 3043,
6320  3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 4612, 3043,
6321 
6322  3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043,
6323  3043, 3043, 4612, 3043, 3043, 3043, 3043, 3043, 3043, 3043,
6324  3044, 3044, 4612, 3044, 3044, 3044, 3044, 3044, 3044, 3044,
6325  3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044,
6326  3044, 3044, 3044, 3044, 3044, 4612, 3044, 3044, 3044, 3044,
6327  3044, 3044, 3044, 3046, 3046, 4612, 3046, 3046, 3046, 3046,
6328  3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
6329  3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 4612, 3046,
6330  3046, 3046, 3046, 3046, 3046, 3046, 3048, 3048, 4612, 3048,
6331  3048, 3048, 3048, 3048, 3048, 3048, 3048, 3048, 3048, 3048,
6332 
6333  3048, 3048, 3048, 3048, 3048, 3048, 3048, 3048, 3048, 3048,
6334  3048, 4612, 3048, 3048, 3048, 3048, 3048, 3048, 3048, 3050,
6335  3050, 4612, 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050,
6336  3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050,
6337  3050, 3050, 3050, 3050, 4612, 3050, 3050, 3050, 3050, 3050,
6338  3050, 3050, 1832, 1832, 4612, 1832, 1832, 1832, 1832, 1832,
6339  1832, 4612, 1832, 1832, 1832, 4612, 1832, 4612, 1832, 1832,
6340  1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
6341  1832, 4612, 4612, 1832, 1832, 3054, 3054, 4612, 3054, 3054,
6342  3054, 3054, 3054, 3054, 3054, 3054, 3054, 3054, 3054, 3054,
6343 
6344  3054, 3054, 3054, 3054, 3054, 3054, 3054, 3054, 3054, 3054,
6345  4612, 3054, 3054, 3054, 3054, 3054, 3054, 3054, 3058, 3058,
6346  3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
6347  3058, 3058, 3058, 3058, 4612, 3058, 3058, 3058, 3058, 3058,
6348  3058, 4612, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
6349  3058, 3071, 4612, 3071, 3071, 3071, 3071, 3071, 3071, 3071,
6350  3071, 4612, 4612, 3071, 3071, 3071, 3071, 3071, 3071, 3071,
6351  3071, 3071, 3071, 3071, 3071, 3071, 4612, 3071, 3071, 3071,
6352  3071, 3071, 3071, 3071, 3073, 4612, 3073, 3073, 3073, 3073,
6353  3073, 3073, 3073, 3073, 4612, 4612, 3073, 3073, 3073, 3073,
6354 
6355  3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 3073, 4612,
6356  3073, 3073, 3073, 3073, 3073, 3073, 3073, 1938, 4612, 4612,
6357  4612, 4612, 4612, 1938, 1938, 4612, 4612, 4612, 1938, 4612,
6358  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1938,
6359  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1938, 1959,
6360  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6361  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6362  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6363  1959, 1959, 1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967,
6364  1967, 1967, 1967, 1967, 4612, 1967, 1967, 4612, 1967, 1967,
6365 
6366  1967, 1967, 1967, 1967, 4612, 1967, 1967, 4612, 1967, 1967,
6367  1967, 1967, 1967, 4612, 1967, 3094, 3094, 3094, 3094, 3094,
6368  3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094,
6369  3094, 4612, 3094, 3094, 3094, 3094, 3094, 3094, 4612, 3094,
6370  3094, 3094, 3094, 3094, 3094, 3094, 3094, 3094, 1999, 1999,
6371  4612, 1999, 1999, 1999, 1999, 4612, 1999, 1999, 1999, 1999,
6372  1999, 1999, 1999, 4612, 1999, 1999, 1999, 4612, 1999, 1999,
6373  4612, 1999, 1999, 4612, 4612, 1999, 1999, 1999, 1999, 4612,
6374  1999, 1330, 1330, 1330, 4612, 4612, 4612, 4612, 4612, 4612,
6375  1330, 4612, 4612, 4612, 4612, 4612, 1330, 1330, 4612, 4612,
6376 
6377  4612, 4612, 4612, 1330, 4612, 4612, 4612, 4612, 4612, 4612,
6378  4612, 4612, 1330, 1340, 4612, 4612, 4612, 1340, 4612, 1340,
6379  4612, 4612, 1340, 4612, 4612, 4612, 1340, 4612, 4612, 4612,
6380  4612, 4612, 4612, 4612, 4612, 1340, 2828, 2828, 2828, 4612,
6381  4612, 4612, 2828, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6382  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2828, 4612,
6383  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2828, 2832, 2832,
6384  2832, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6385  4612, 4612, 4612, 2832, 2832, 4612, 4612, 4612, 4612, 4612,
6386  2832, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2832,
6387 
6388  2051, 2051, 2051, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6389  4612, 4612, 4612, 2051, 4612, 2051, 2051, 4612, 4612, 4612,
6390  4612, 4612, 2051, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6391  4612, 2051, 2559, 2559, 2559, 4612, 4612, 4612, 2559, 4612,
6392  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2559, 4612,
6393  4612, 4612, 4612, 4612, 2559, 4612, 4612, 4612, 4612, 4612,
6394  4612, 4612, 4612, 2559, 2895, 2895, 2895, 4612, 4612, 4612,
6395  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2895,
6396  2895, 4612, 2895, 4612, 4612, 4612, 2895, 4612, 4612, 4612,
6397  4612, 4612, 4612, 4612, 4612, 2895, 3171, 4612, 4612, 4612,
6398 
6399  4612, 4612, 4612, 3171, 4612, 4612, 4612, 3171, 3171, 4612,
6400  4612, 3171, 3171, 4612, 4612, 4612, 3171, 4612, 3171, 2899,
6401  2899, 2899, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2899,
6402  4612, 4612, 4612, 4612, 2899, 2899, 4612, 2899, 4612, 4612,
6403  4612, 2899, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6404  2899, 2902, 4612, 4612, 4612, 2902, 4612, 4612, 4612, 4612,
6405  2902, 4612, 4612, 4612, 4612, 4612, 4612, 2902, 4612, 4612,
6406  4612, 4612, 4612, 4612, 4612, 4612, 2902, 2903, 2903, 2903,
6407  2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
6408  2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
6409 
6410  2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
6411  2905, 2905, 4612, 2905, 2905, 2905, 2905, 2905, 2905, 2905,
6412  2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905,
6413  2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905, 2905,
6414  2905, 2905, 2905, 2908, 2908, 2908, 4612, 4612, 4612, 4612,
6415  4612, 4612, 2908, 4612, 4612, 4612, 2908, 4612, 2908, 4612,
6416  4612, 4612, 4612, 4612, 4612, 2908, 4612, 4612, 4612, 4612,
6417  4612, 4612, 4612, 4612, 2908, 2140, 2140, 2140, 4612, 4612,
6418  4612, 4612, 4612, 4612, 2140, 4612, 4612, 4612, 2140, 4612,
6419  2140, 4612, 4612, 4612, 4612, 4612, 4612, 2140, 4612, 4612,
6420 
6421  4612, 4612, 4612, 4612, 4612, 4612, 2140, 1455, 1455, 1455,
6422  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6423  4612, 4612, 1455, 1455, 4612, 1455, 4612, 4612, 4612, 1455,
6424  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1455, 1556,
6425  1556, 1556, 1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556,
6426  1556, 1556, 1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556,
6427  1556, 4612, 1556, 1556, 1556, 1556, 1556, 1556, 4612, 4612,
6428  1556, 1556, 1560, 1560, 4612, 1560, 1560, 1560, 1560, 1560,
6429  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
6430  1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560, 1560,
6431 
6432  1560, 1560, 1560, 1560, 1560, 1573, 1573, 1573, 4612, 4612,
6433  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1573, 4612,
6434  1573, 1573, 4612, 4612, 4612, 4612, 4612, 1573, 4612, 4612,
6435  4612, 4612, 4612, 4612, 4612, 4612, 1573, 1647, 1647, 1647,
6436  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6437  4612, 4612, 1647, 4612, 4612, 4612, 4612, 4612, 4612, 1647,
6438  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1647, 1653,
6439  4612, 4612, 4612, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
6440  1653, 4612, 1653, 4612, 4612, 1653, 1653, 1653, 1653, 1653,
6441  1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
6442 
6443  1653, 1653, 1723, 1723, 4612, 1723, 4612, 4612, 4612, 1723,
6444  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 1723, 3288,
6445  4612, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
6446  4612, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
6447  3288, 3288, 3288, 3288, 4612, 3288, 3288, 3288, 3288, 3288,
6448  3288, 3288, 2349, 2349, 2349, 4612, 4612, 4612, 2349, 4612,
6449  4612, 4612, 4612, 2349, 4612, 4612, 4612, 4612, 4612, 4612,
6450  4612, 4612, 4612, 4612, 2349, 4612, 4612, 4612, 4612, 4612,
6451  4612, 4612, 4612, 2349, 3290, 4612, 3290, 3290, 3290, 3290,
6452  3290, 3290, 3290, 3290, 3290, 4612, 3290, 3290, 3290, 3290,
6453 
6454  3290, 3290, 3290, 3290, 3290, 3290, 3290, 3290, 3290, 4612,
6455  3290, 3290, 3290, 3290, 3290, 3290, 3290, 3291, 3291, 4612,
6456  3291, 3291, 4612, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
6457  3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
6458  3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
6459  3306, 4612, 3306, 3306, 3306, 3306, 3306, 3306, 3306, 3306,
6460  4612, 4612, 3306, 3306, 3306, 3306, 3306, 3306, 3306, 3306,
6461  3306, 3306, 3306, 3306, 3306, 4612, 3306, 3306, 3306, 3306,
6462  3306, 3306, 3306, 3308, 4612, 3308, 3308, 3308, 3308, 3308,
6463  3308, 3308, 3308, 4612, 4612, 3308, 3308, 3308, 3308, 3308,
6464 
6465  3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 4612, 3308,
6466  3308, 3308, 3308, 3308, 3308, 3308, 1959, 1959, 1959, 1959,
6467  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6468  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959,
6469  1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1959, 1967,
6470  1967, 4612, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
6471  1967, 4612, 1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967,
6472  1967, 4612, 1967, 1967, 4612, 1967, 1967, 1967, 1967, 1967,
6473  4612, 1967, 1330, 1330, 1330, 4612, 4612, 4612, 4612, 4612,
6474  4612, 1330, 4612, 4612, 4612, 4612, 4612, 1330, 1330, 4612,
6475 
6476  4612, 4612, 4612, 4612, 1330, 4612, 4612, 4612, 4612, 4612,
6477  4612, 4612, 4612, 1330, 2493, 2493, 2493, 2493, 4612, 4612,
6478  2493, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6479  2493, 4612, 4612, 4612, 4612, 4612, 2493, 4612, 4612, 4612,
6480  4612, 4612, 4612, 4612, 2493, 2493, 2051, 2051, 2051, 4612,
6481  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2051,
6482  4612, 2051, 2051, 4612, 4612, 4612, 4612, 4612, 2051, 4612,
6483  4612, 4612, 4612, 4612, 4612, 4612, 4612, 2051, 2559, 2559,
6484  2559, 4612, 4612, 4612, 2559, 4612, 4612, 4612, 4612, 4612,
6485  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6486 
6487  2559, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 2559,
6488  3171, 4612, 4612, 4612, 4612, 4612, 4612, 3171, 4612, 4612,
6489  4612, 3171, 3171, 4612, 4612, 3171, 3171, 4612, 4612, 4612,
6490  3171, 4612, 3171, 2140, 2140, 2140, 4612, 4612, 4612, 4612,
6491  4612, 4612, 2140, 4612, 4612, 4612, 2140, 4612, 2140, 4612,
6492  4612, 4612, 4612, 4612, 4612, 2140, 4612, 4612, 4612, 4612,
6493  4612, 4612, 4612, 4612, 2140, 1455, 1455, 1455, 4612, 4612,
6494  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6495  1455, 1455, 4612, 1455, 4612, 4612, 4612, 1455, 4612, 4612,
6496  4612, 4612, 4612, 4612, 4612, 4612, 1455, 1556, 1556, 1556,
6497 
6498  1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556, 1556, 1556,
6499  1556, 1556, 4612, 1556, 1556, 1556, 4612, 1556, 1556, 4612,
6500  1556, 1556, 1556, 1556, 1556, 1556, 4612, 4612, 1556, 1556,
6501  1573, 1573, 1573, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6502  4612, 4612, 4612, 1573, 4612, 1573, 1573, 4612, 4612, 4612,
6503  4612, 4612, 1573, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6504  4612, 1573, 1653, 4612, 4612, 4612, 1653, 1653, 1653, 1653,
6505  1653, 1653, 1653, 1653, 4612, 1653, 4612, 4612, 1653, 1653,
6506  1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
6507  1653, 1653, 1653, 1653, 1653, 1723, 1723, 4612, 1723, 4612,
6508 
6509  4612, 4612, 1723, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6510  4612, 1723, 3510, 4612, 3510, 3510, 3510, 3510, 3510, 3510,
6511  3510, 3510, 3510, 4612, 3510, 3510, 3510, 3510, 3510, 3510,
6512  3510, 3510, 3510, 3510, 3510, 3510, 3510, 4612, 3510, 3510,
6513  3510, 3510, 3510, 3510, 3510, 3512, 4612, 3512, 3512, 3512,
6514  3512, 3512, 3512, 3512, 3512, 3512, 4612, 3512, 3512, 3512,
6515  3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
6516  4612, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3291, 3291,
6517  4612, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
6518  3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
6519 
6520  3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
6521  3291, 3528, 4612, 3528, 3528, 3528, 3528, 3528, 3528, 3528,
6522  3528, 4612, 4612, 3528, 3528, 3528, 3528, 3528, 3528, 3528,
6523  3528, 3528, 3528, 3528, 3528, 3528, 4612, 3528, 3528, 3528,
6524  3528, 3528, 3528, 3528, 3530, 4612, 3530, 3530, 3530, 3530,
6525  3530, 3530, 3530, 3530, 4612, 4612, 3530, 3530, 3530, 3530,
6526  3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 4612,
6527  3530, 3530, 3530, 3530, 3530, 3530, 3530, 3710, 4612, 3710,
6528  3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 4612, 3710,
6529  3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710,
6530 
6531  3710, 3710, 4612, 3710, 3710, 3710, 3710, 3710, 3710, 3710,
6532  3712, 4612, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712,
6533  3712, 4612, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712,
6534  3712, 3712, 3712, 3712, 3712, 4612, 3712, 3712, 3712, 3712,
6535  3712, 3712, 3712, 3724, 4612, 3724, 3724, 3724, 3724, 3724,
6536  3724, 3724, 3724, 4612, 4612, 3724, 3724, 3724, 3724, 3724,
6537  3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 4612, 3724,
6538  3724, 3724, 3724, 3724, 3724, 3724, 3726, 4612, 3726, 3726,
6539  3726, 3726, 3726, 3726, 3726, 3726, 4612, 4612, 3726, 3726,
6540  3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3726,
6541 
6542  3726, 4612, 3726, 3726, 3726, 3726, 3726, 3726, 3726, 3744,
6543  3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
6544  3744, 3744, 3744, 3744, 3744, 4612, 3744, 3744, 3744, 3744,
6545  3744, 3744, 4612, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
6546  3744, 3744, 3885, 4612, 3885, 3885, 3885, 3885, 3885, 3885,
6547  3885, 3885, 3885, 4612, 3885, 3885, 3885, 3885, 3885, 3885,
6548  3885, 3885, 3885, 3885, 3885, 3885, 3885, 4612, 3885, 3885,
6549  3885, 3885, 3885, 3885, 3885, 3887, 4612, 3887, 3887, 3887,
6550  3887, 3887, 3887, 3887, 3887, 3887, 4612, 3887, 3887, 3887,
6551  3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3887,
6552 
6553  4612, 3887, 3887, 3887, 3887, 3887, 3887, 3887, 3898, 4612,
6554  3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 4612, 4612,
6555  3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898, 3898,
6556  3898, 3898, 3898, 4612, 3898, 3898, 3898, 3898, 3898, 3898,
6557  3898, 3900, 4612, 3900, 3900, 3900, 3900, 3900, 3900, 3900,
6558  3900, 4612, 4612, 3900, 3900, 3900, 3900, 3900, 3900, 3900,
6559  3900, 3900, 3900, 3900, 3900, 3900, 4612, 3900, 3900, 3900,
6560  3900, 3900, 3900, 3900, 4014, 4612, 4014, 4014, 4014, 4014,
6561  4014, 4014, 4014, 4014, 4014, 4612, 4014, 4014, 4014, 4014,
6562  4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4612,
6563 
6564  4014, 4014, 4014, 4014, 4014, 4014, 4014, 4016, 4612, 4016,
6565  4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4612, 4016,
6566  4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016, 4016,
6567  4016, 4016, 4612, 4016, 4016, 4016, 4016, 4016, 4016, 4016,
6568  4027, 4612, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027,
6569  4612, 4612, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027,
6570  4027, 4027, 4027, 4027, 4027, 4612, 4027, 4027, 4027, 4027,
6571  4027, 4027, 4027, 4029, 4612, 4029, 4029, 4029, 4029, 4029,
6572  4029, 4029, 4029, 4612, 4612, 4029, 4029, 4029, 4029, 4029,
6573  4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4612, 4029,
6574 
6575  4029, 4029, 4029, 4029, 4029, 4029, 3974, 3974, 3974, 3974,
6576  3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974,
6577  3974, 3974, 4612, 3974, 3974, 3974, 3974, 3974, 3974, 4612,
6578  3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 4109,
6579  4612, 4109, 4109, 4109, 4109, 4109, 4109, 4109, 4109, 4109,
6580  4612, 4109, 4109, 4109, 4109, 4109, 4109, 4109, 4109, 4109,
6581  4109, 4109, 4109, 4109, 4612, 4109, 4109, 4109, 4109, 4109,
6582  4109, 4109, 4112, 4612, 4112, 4112, 4112, 4112, 4112, 4112,
6583  4112, 4112, 4112, 4612, 4112, 4112, 4112, 4112, 4112, 4112,
6584  4112, 4112, 4112, 4112, 4112, 4112, 4112, 4612, 4112, 4112,
6585 
6586  4112, 4112, 4112, 4112, 4112, 4117, 4612, 4117, 4117, 4117,
6587  4117, 4117, 4117, 4117, 4117, 4612, 4612, 4117, 4117, 4117,
6588  4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4117,
6589  4612, 4117, 4117, 4117, 4117, 4117, 4117, 4117, 4119, 4612,
6590  4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4612, 4612,
6591  4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119,
6592  4119, 4119, 4119, 4612, 4119, 4119, 4119, 4119, 4119, 4119,
6593  4119, 4149, 4149, 4149, 4612, 4612, 4612, 4612, 4612, 4612,
6594  4612, 4612, 4612, 4612, 4612, 4612, 4149, 4612, 4612, 4612,
6595  4149, 4612, 4612, 4149, 4612, 4612, 4612, 4612, 4612, 4612,
6596 
6597  4612, 4612, 4149, 4173, 4612, 4173, 4173, 4173, 4173, 4173,
6598  4173, 4173, 4173, 4173, 4612, 4173, 4173, 4173, 4173, 4173,
6599  4173, 4173, 4173, 4173, 4173, 4173, 4173, 4173, 4612, 4173,
6600  4173, 4173, 4173, 4173, 4173, 4173, 4178, 4178, 4178, 4178,
6601  4612, 4612, 4178, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6602  4612, 4612, 4178, 4612, 4612, 4612, 4612, 4612, 4178, 4612,
6603  4612, 4612, 4612, 4612, 4612, 4612, 4178, 4178, 4179, 4612,
6604  4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4612,
6605  4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179,
6606  4179, 4179, 4179, 4612, 4179, 4179, 4179, 4179, 4179, 4179,
6607 
6608  4179, 4182, 4612, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
6609  4182, 4612, 4612, 4182, 4182, 4182, 4182, 4182, 4182, 4182,
6610  4182, 4182, 4182, 4182, 4182, 4182, 4612, 4182, 4182, 4182,
6611  4182, 4182, 4182, 4182, 4184, 4612, 4184, 4184, 4184, 4184,
6612  4184, 4184, 4184, 4184, 4612, 4612, 4184, 4184, 4184, 4184,
6613  4184, 4184, 4184, 4184, 4184, 4184, 4184, 4184, 4184, 4612,
6614  4184, 4184, 4184, 4184, 4184, 4184, 4184, 4220, 4612, 4220,
6615  4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4612, 4220,
6616  4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220, 4220,
6617  4220, 4220, 4612, 4220, 4220, 4220, 4220, 4220, 4220, 4220,
6618 
6619  4223, 4223, 4223, 4612, 4612, 4612, 4223, 4612, 4612, 4612,
6620  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6621  4612, 4612, 4223, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6622  4612, 4223, 4230, 4230, 4230, 4612, 4612, 4612, 4612, 4612,
6623  4612, 4612, 4230, 4612, 4230, 4612, 4612, 4230, 4230, 4612,
6624  4612, 4612, 4612, 4612, 4230, 4612, 4612, 4612, 4612, 4612,
6625  4612, 4612, 4612, 4230, 4231, 4612, 4231, 4231, 4231, 4231,
6626  4231, 4231, 4231, 4231, 4231, 4612, 4231, 4231, 4231, 4231,
6627  4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4231, 4612,
6628  4231, 4231, 4231, 4231, 4231, 4231, 4231, 4233, 4612, 4233,
6629 
6630  4233, 4233, 4233, 4233, 4233, 4233, 4233, 4612, 4612, 4233,
6631  4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233, 4233,
6632  4233, 4233, 4612, 4233, 4233, 4233, 4233, 4233, 4233, 4233,
6633  4235, 4612, 4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235,
6634  4612, 4612, 4235, 4235, 4235, 4235, 4235, 4235, 4235, 4235,
6635  4235, 4235, 4235, 4235, 4235, 4612, 4235, 4235, 4235, 4235,
6636  4235, 4235, 4235, 4257, 4612, 4257, 4257, 4257, 4257, 4257,
6637  4257, 4257, 4257, 4257, 4612, 4257, 4257, 4257, 4257, 4257,
6638  4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4612, 4257,
6639  4257, 4257, 4257, 4257, 4257, 4257, 4259, 4259, 4259, 4612,
6640 
6641  4612, 4612, 4612, 4612, 4612, 4612, 4259, 4612, 4259, 4612,
6642  4612, 4259, 4612, 4612, 4612, 4612, 4612, 4612, 4259, 4612,
6643  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4259, 4267, 4267,
6644  4267, 4267, 4612, 4612, 4267, 4612, 4612, 4612, 4612, 4612,
6645  4612, 4612, 4612, 4612, 4267, 4612, 4612, 4612, 4612, 4612,
6646  4267, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4267, 4267,
6647  4268, 4612, 4268, 4268, 4268, 4268, 4268, 4268, 4268, 4268,
6648  4268, 4612, 4268, 4268, 4268, 4268, 4268, 4268, 4268, 4268,
6649  4268, 4268, 4268, 4268, 4268, 4612, 4268, 4268, 4268, 4268,
6650  4268, 4268, 4268, 4270, 4612, 4270, 4270, 4270, 4270, 4270,
6651 
6652  4270, 4270, 4270, 4612, 4612, 4270, 4270, 4270, 4270, 4270,
6653  4270, 4270, 4270, 4270, 4270, 4270, 4270, 4270, 4612, 4270,
6654  4270, 4270, 4270, 4270, 4270, 4270, 4272, 4612, 4272, 4272,
6655  4272, 4272, 4272, 4272, 4272, 4272, 4612, 4612, 4272, 4272,
6656  4272, 4272, 4272, 4272, 4272, 4272, 4272, 4272, 4272, 4272,
6657  4272, 4612, 4272, 4272, 4272, 4272, 4272, 4272, 4272, 4291,
6658  4612, 4291, 4291, 4291, 4291, 4291, 4291, 4291, 4291, 4291,
6659  4612, 4291, 4291, 4291, 4291, 4291, 4291, 4291, 4291, 4291,
6660  4291, 4291, 4291, 4291, 4612, 4291, 4291, 4291, 4291, 4291,
6661  4291, 4291, 4294, 4294, 4294, 4612, 4612, 4612, 4294, 4612,
6662 
6663  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6664  4612, 4612, 4612, 4612, 4294, 4612, 4612, 4612, 4612, 4612,
6665  4612, 4612, 4612, 4294, 4299, 4299, 4299, 4612, 4612, 4612,
6666  4612, 4612, 4612, 4612, 4299, 4612, 4299, 4612, 4612, 4299,
6667  4299, 4612, 4612, 4612, 4612, 4612, 4299, 4612, 4612, 4612,
6668  4612, 4612, 4612, 4612, 4612, 4299, 4300, 4612, 4300, 4300,
6669  4300, 4300, 4300, 4300, 4300, 4300, 4300, 4612, 4300, 4300,
6670  4300, 4300, 4300, 4300, 4300, 4300, 4300, 4300, 4300, 4300,
6671  4300, 4612, 4300, 4300, 4300, 4300, 4300, 4300, 4300, 4301,
6672  4612, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4612,
6673 
6674  4612, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301,
6675  4301, 4301, 4301, 4301, 4612, 4301, 4301, 4301, 4301, 4301,
6676  4301, 4301, 4303, 4612, 4303, 4303, 4303, 4303, 4303, 4303,
6677  4303, 4303, 4612, 4612, 4303, 4303, 4303, 4303, 4303, 4303,
6678  4303, 4303, 4303, 4303, 4303, 4303, 4303, 4612, 4303, 4303,
6679  4303, 4303, 4303, 4303, 4303, 4320, 4612, 4320, 4320, 4320,
6680  4320, 4320, 4320, 4320, 4320, 4320, 4612, 4320, 4320, 4320,
6681  4320, 4320, 4320, 4320, 4320, 4320, 4320, 4320, 4320, 4320,
6682  4612, 4320, 4320, 4320, 4320, 4320, 4320, 4320, 4322, 4322,
6683  4322, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4322, 4612,
6684 
6685  4322, 4612, 4612, 4322, 4612, 4612, 4612, 4612, 4612, 4612,
6686  4322, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4322,
6687  4324, 4612, 4324, 4324, 4324, 4324, 4324, 4324, 4324, 4324,
6688  4324, 4612, 4324, 4324, 4324, 4324, 4324, 4324, 4324, 4324,
6689  4324, 4324, 4324, 4324, 4324, 4612, 4324, 4324, 4324, 4324,
6690  4324, 4324, 4324, 4325, 4612, 4325, 4325, 4325, 4325, 4325,
6691  4325, 4325, 4325, 4612, 4612, 4325, 4325, 4325, 4325, 4325,
6692  4325, 4325, 4325, 4325, 4325, 4325, 4325, 4325, 4612, 4325,
6693  4325, 4325, 4325, 4325, 4325, 4325, 4327, 4612, 4327, 4327,
6694  4327, 4327, 4327, 4327, 4327, 4327, 4612, 4612, 4327, 4327,
6695 
6696  4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4327,
6697  4327, 4612, 4327, 4327, 4327, 4327, 4327, 4327, 4327, 4339,
6698  4612, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,
6699  4612, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,
6700  4339, 4339, 4339, 4339, 4612, 4339, 4339, 4339, 4339, 4339,
6701  4339, 4339, 4340, 4612, 4340, 4340, 4340, 4340, 4340, 4340,
6702  4340, 4340, 4340, 4612, 4340, 4340, 4340, 4340, 4340, 4340,
6703  4340, 4340, 4340, 4340, 4340, 4340, 4340, 4612, 4340, 4340,
6704  4340, 4340, 4340, 4340, 4340, 4341, 4612, 4341, 4341, 4341,
6705  4341, 4341, 4341, 4341, 4341, 4612, 4612, 4341, 4341, 4341,
6706 
6707  4341, 4341, 4341, 4341, 4341, 4341, 4341, 4341, 4341, 4341,
6708  4612, 4341, 4341, 4341, 4341, 4341, 4341, 4341, 4343, 4612,
6709  4343, 4343, 4343, 4343, 4343, 4343, 4343, 4343, 4612, 4612,
6710  4343, 4343, 4343, 4343, 4343, 4343, 4343, 4343, 4343, 4343,
6711  4343, 4343, 4343, 4612, 4343, 4343, 4343, 4343, 4343, 4343,
6712  4343, 4352, 4612, 4352, 4352, 4352, 4352, 4352, 4352, 4352,
6713  4352, 4352, 4612, 4352, 4352, 4352, 4352, 4352, 4352, 4352,
6714  4352, 4352, 4352, 4352, 4352, 4352, 4612, 4352, 4352, 4352,
6715  4352, 4352, 4352, 4352, 4353, 4612, 4353, 4353, 4353, 4353,
6716  4353, 4353, 4353, 4353, 4353, 4612, 4353, 4353, 4353, 4353,
6717 
6718  4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4353, 4612,
6719  4353, 4353, 4353, 4353, 4353, 4353, 4353, 285, 4612, 4612,
6720  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6721  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6722  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6723  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6724  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6725  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6726  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6727  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
6728 
6729  4612, 4612, 4612, 4612, 4612, 4612
6730  } ;
6731 
6732 static yyconst flex_int16_t yy_chk[36507] =
6733  { 0,
6734  0, 0, 1, 0, 2, 0, 1, 1, 2, 2,
6735  0, 1, 0, 2, 311, 311, 311, 311, 3, 1,
6736  4, 2, 3, 3, 4, 4, 291, 3, 3, 4,
6737  4, 291, 311, 1735, 5, 3, 299, 4, 5, 5,
6738  0, 299, 307, 5, 5, 5, 450, 307, 1735, 316,
6739  450, 5, 6, 1, 316, 2, 6, 6, 317, 317,
6740  338, 6, 6, 6, 327, 338, 859, 327, 859, 6,
6741  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6742  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6743  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6744 
6745  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6746  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6747  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6748  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6749  7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
6750  7, 7, 7, 7, 7, 7, 7, 7, 9, 9,
6751  9, 9, 351, 9, 9, 638, 638, 351, 9, 10,
6752  10, 10, 10, 23, 10, 10, 9, 23, 23, 10,
6753  369, 2439, 23, 23, 23, 369, 373, 10, 2463, 373,
6754  23, 37, 449, 24, 449, 37, 37, 24, 24, 23,
6755 
6756  37, 23, 24, 24, 24, 37, 309, 2439, 37, 309,
6757  24, 9, 336, 336, 336, 336, 37, 309, 1722, 24,
6758  1722, 24, 10, 11, 11, 11, 11, 11, 11, 11,
6759  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6760  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6761  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6762  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6763  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6764  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6765  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6766 
6767  11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
6768  11, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6769  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6770  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6771  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6772  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6773  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6774  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6775  13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
6776  13, 13, 13, 13, 13, 13, 13, 13, 13, 15,
6777 
6778  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6779  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6780  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6781  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6782  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6783  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6784  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6785  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
6786  15, 15, 15, 15, 15, 15, 15, 17, 17, 17,
6787  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6788 
6789  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6790  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6791  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6792  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6793  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6794  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6795  17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
6796  17, 17, 17, 17, 17, 19, 553, 20, 379, 19,
6797  19, 20, 20, 379, 19, 553, 20, 319, 319, 319,
6798  319, 38, 19, 43, 20, 38, 38, 43, 43, 783,
6799 
6800  38, 356, 43, 783, 319, 38, 388, 356, 38, 396,
6801  43, 388, 319, 459, 396, 410, 38, 356, 410, 43,
6802  321, 321, 321, 321, 2469, 459, 19, 321, 20, 21,
6803  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6804  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6805  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6806  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6807  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6808  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6809  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6810 
6811  21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
6812  21, 21, 21, 21, 21, 21, 21, 25, 25, 25,
6813  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6814  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6815  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6816  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6817  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6818  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6819  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6820  25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
6821 
6822  25, 25, 25, 25, 25, 27, 557, 28, 417, 27,
6823  27, 28, 28, 417, 27, 557, 28, 330, 330, 330,
6824  330, 44, 27, 432, 28, 44, 44, 2471, 432, 852,
6825  44, 49, 49, 49, 49, 55, 49, 49, 44, 55,
6826  55, 49, 330, 852, 55, 55, 55, 44, 419, 49,
6827  440, 419, 55, 591, 455, 440, 591, 2478, 27, 455,
6828  28, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6829  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6830  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6831  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6832 
6833  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6834  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6835  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6836  29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
6837  29, 29, 29, 29, 29, 29, 29, 29, 29, 31,
6838  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6839  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6840  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6841  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6842  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6843 
6844  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6845  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6846  31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
6847  31, 31, 31, 31, 31, 31, 31, 33, 33, 33,
6848  33, 491, 33, 33, 2486, 492, 491, 33, 34, 34,
6849  34, 34, 506, 34, 34, 33, 511, 506, 34, 35,
6850  526, 511, 533, 35, 35, 526, 34, 533, 35, 35,
6851  539, 666, 666, 35, 547, 539, 35, 36, 2487, 547,
6852  565, 36, 36, 357, 35, 565, 36, 36, 576, 357,
6853  492, 36, 583, 576, 36, 625, 39, 583, 625, 357,
6854 
6855  39, 39, 36, 33, 679, 39, 599, 85, 1279, 33,
6856  39, 85, 85, 39, 34, 33, 85, 1279, 40, 2100,
6857  34, 39, 40, 40, 85, 2100, 34, 40, 50, 50,
6858  50, 50, 40, 50, 50, 40, 447, 357, 50, 447,
6859  35, 634, 593, 40, 634, 2492, 50, 593, 612, 53,
6860  53, 53, 53, 612, 53, 53, 679, 627, 36, 53,
6861  53, 53, 627, 599, 53, 671, 671, 53, 54, 54,
6862  54, 54, 821, 54, 54, 821, 2496, 39, 54, 54,
6863  54, 622, 633, 54, 622, 633, 54, 622, 633, 2498,
6864  85, 328, 328, 328, 328, 2499, 447, 447, 328, 40,
6865 
6866  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6867  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6868  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6869  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6870  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6871  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6872  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6873  41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
6874  41, 41, 41, 41, 41, 41, 41, 41, 45, 45,
6875  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6876 
6877  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6878  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6879  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6880  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6881  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6882  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6883  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
6884  45, 45, 45, 45, 45, 45, 47, 47, 47, 47,
6885  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6886  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6887 
6888  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6889  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6890  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6891  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6892  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6893  47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
6894  47, 47, 47, 47, 51, 2500, 52, 637, 51, 51,
6895  52, 52, 637, 51, 51, 52, 52, 1962, 51, 502,
6896  52, 51, 502, 52, 452, 452, 452, 452, 51, 51,
6897  52, 52, 56, 646, 1962, 57, 56, 56, 646, 57,
6898 
6899  57, 56, 56, 56, 57, 1723, 58, 1723, 654, 56,
6900  58, 58, 57, 654, 660, 58, 860, 63, 860, 660,
6901  57, 63, 63, 58, 65, 670, 63, 63, 65, 65,
6902  670, 58, 681, 65, 63, 320, 320, 320, 320, 502,
6903  502, 65, 63, 63, 64, 51, 75, 52, 64, 64,
6904  75, 75, 320, 64, 64, 75, 312, 312, 312, 312,
6905  320, 64, 860, 75, 1324, 332, 332, 332, 332, 64,
6906  64, 75, 332, 1324, 312, 65, 57, 65, 446, 446,
6907  446, 446, 2501, 843, 681, 446, 843, 58, 59, 59,
6908  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6909 
6910  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6911  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6912  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6913  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6914  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6915  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6916  59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
6917  59, 59, 59, 59, 59, 59, 61, 61, 61, 61,
6918  66, 61, 61, 678, 66, 66, 61, 2502, 678, 66,
6919  62, 62, 62, 62, 61, 62, 62, 66, 696, 1280,
6920 
6921  62, 706, 61, 696, 61, 682, 706, 2503, 62, 67,
6922  67, 67, 67, 1280, 67, 67, 62, 76, 62, 67,
6923  77, 76, 76, 683, 77, 77, 76, 67, 1109, 77,
6924  862, 66, 862, 66, 76, 673, 67, 77, 673, 61,
6925  67, 714, 76, 685, 1109, 77, 714, 61, 673, 68,
6926  68, 68, 68, 62, 68, 68, 2506, 682, 61, 68,
6927  760, 62, 760, 69, 69, 69, 69, 68, 69, 69,
6928  862, 862, 62, 69, 722, 683, 68, 2507, 760, 722,
6929  68, 69, 70, 70, 70, 70, 856, 70, 70, 856,
6930  69, 67, 70, 67, 69, 685, 71, 71, 71, 71,
6931 
6932  70, 71, 71, 730, 2510, 741, 71, 749, 730, 70,
6933  741, 1966, 749, 70, 71, 326, 326, 326, 326, 72,
6934  72, 72, 72, 71, 72, 72, 326, 71, 1966, 72,
6935  326, 68, 326, 68, 78, 763, 1716, 72, 78, 78,
6936  326, 326, 326, 78, 87, 69, 72, 69, 87, 87,
6937  72, 78, 759, 87, 1716, 779, 87, 759, 99, 78,
6938  779, 87, 99, 99, 70, 100, 70, 99, 793, 100,
6939  100, 763, 795, 793, 100, 99, 800, 795, 71, 2511,
6940  71, 800, 100, 809, 101, 101, 818, 101, 809, 101,
6941  101, 818, 2512, 831, 101, 844, 87, 101, 831, 2514,
6942 
6943  844, 72, 101, 72, 73, 73, 73, 73, 73, 73,
6944  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6945  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6946  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6947  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6948  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6949  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6950  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6951  73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6952  73, 73, 79, 79, 79, 79, 79, 79, 79, 79,
6953 
6954  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6955  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6956  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6957  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6958  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6959  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6960  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6961  79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
6962  81, 81, 863, 81, 863, 81, 81, 895, 684, 960,
6963  81, 82, 82, 1334, 82, 1910, 82, 82, 81, 86,
6964 
6965  684, 82, 1334, 86, 86, 684, 1910, 81, 86, 82,
6966  895, 81, 960, 1405, 83, 83, 86, 83, 82, 83,
6967  83, 1405, 82, 1405, 83, 84, 84, 863, 84, 886,
6968  84, 84, 83, 81, 886, 84, 331, 331, 331, 331,
6969  684, 83, 88, 84, 82, 83, 88, 88, 1124, 1124,
6970  2101, 88, 84, 861, 88, 861, 84, 1265, 1265, 88,
6971  905, 331, 81, 905, 81, 905, 2101, 83, 342, 342,
6972  342, 342, 89, 82, 966, 82, 89, 89, 84, 342,
6973  913, 89, 86, 90, 89, 913, 925, 90, 90, 89,
6974  1098, 925, 90, 342, 88, 90, 83, 966, 83, 861,
6975 
6976  90, 424, 424, 424, 424, 102, 102, 84, 102, 84,
6977  102, 102, 936, 1098, 2515, 102, 107, 936, 102, 424,
6978  107, 107, 2084, 102, 89, 107, 107, 107, 525, 525,
6979  525, 525, 2084, 107, 2516, 90, 91, 91, 91, 91,
6980  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6981  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6982  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6983  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6984  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6985  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6986 
6987  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6988  91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
6989  91, 91, 91, 91, 93, 945, 2517, 94, 93, 93,
6990  945, 94, 94, 93, 93, 957, 94, 94, 95, 2436,
6991  957, 93, 95, 95, 94, 972, 985, 95, 95, 96,
6992  972, 985, 995, 96, 96, 95, 2436, 995, 96, 96,
6993  97, 97, 1605, 1605, 97, 97, 96, 98, 98, 97,
6994  103, 98, 98, 1525, 103, 103, 98, 97, 864, 103,
6995  864, 104, 1525, 1006, 98, 104, 104, 103, 1006, 1012,
6996  104, 95, 105, 1661, 1012, 1022, 105, 105, 104, 1029,
6997 
6998  1022, 105, 96, 1032, 1029, 93, 1032, 93, 94, 105,
6999  94, 106, 97, 1041, 1110, 106, 106, 1110, 1041, 98,
7000  106, 108, 103, 1974, 864, 108, 108, 1110, 106, 1661,
7001  108, 108, 108, 104, 109, 109, 109, 109, 108, 109,
7002  109, 115, 1050, 1060, 109, 115, 115, 1050, 1060, 1418,
7003  115, 1974, 109, 1418, 110, 110, 110, 110, 115, 110,
7004  110, 109, 113, 109, 110, 114, 113, 113, 1529, 114,
7005  114, 113, 110, 105, 114, 105, 2518, 1529, 1533, 113,
7006  111, 110, 114, 110, 111, 111, 2519, 1533, 1070, 111,
7007  111, 111, 106, 1070, 106, 112, 1080, 111, 1087, 112,
7008 
7009  112, 1080, 1594, 1087, 112, 112, 112, 425, 425, 425,
7010  425, 1594, 112, 113, 1095, 113, 114, 116, 114, 1095,
7011  1216, 116, 116, 1216, 1631, 425, 116, 117, 117, 117,
7012  117, 141, 117, 117, 116, 141, 141, 117, 117, 1216,
7013  141, 118, 118, 118, 118, 117, 118, 118, 141, 1108,
7014  1240, 118, 118, 1240, 1108, 119, 119, 119, 119, 118,
7015  119, 119, 1117, 1123, 1335, 119, 119, 1117, 1123, 120,
7016  120, 120, 120, 119, 120, 120, 1631, 1240, 1335, 120,
7017  120, 588, 588, 588, 588, 1622, 1622, 120, 121, 121,
7018  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7019 
7020  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7021  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7022  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7023  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7024  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7025  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7026  121, 121, 121, 121, 121, 121, 121, 121, 121, 121,
7027  121, 121, 121, 121, 121, 121, 123, 1409, 124, 1132,
7028  123, 123, 124, 124, 1132, 123, 1409, 124, 518, 518,
7029  518, 518, 1409, 123, 2520, 124, 125, 125, 125, 125,
7030 
7031  1143, 125, 125, 518, 2521, 1143, 125, 126, 126, 126,
7032  126, 1152, 126, 126, 125, 2438, 1152, 126, 127, 127,
7033  127, 127, 1159, 127, 127, 126, 1663, 1159, 127, 1164,
7034  1034, 127, 2438, 1034, 1164, 127, 127, 128, 128, 128,
7035  128, 1034, 128, 128, 1624, 1624, 1181, 128, 1195, 127,
7036  128, 1181, 2522, 1195, 128, 128, 125, 123, 1207, 124,
7037  139, 1215, 1663, 1207, 139, 139, 1215, 126, 128, 139,
7038  142, 127, 1432, 1226, 142, 142, 1432, 139, 1226, 142,
7039  1231, 495, 495, 495, 495, 1231, 139, 142, 495, 2523,
7040  128, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7041 
7042  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7043  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7044  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7045  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7046  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7047  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7048  129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
7049  129, 129, 129, 129, 129, 129, 129, 129, 129, 131,
7050  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7051  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7052 
7053  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7054  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7055  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7056  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7057  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7058  131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
7059  131, 131, 131, 131, 131, 131, 131, 133, 133, 133,
7060  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7061  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7062  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7063 
7064  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7065  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7066  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7067  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7068  133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
7069  133, 133, 133, 133, 133, 135, 135, 135, 135, 135,
7070  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7071  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7072  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7073  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7074 
7075  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7076  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7077  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7078  135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
7079  135, 135, 135, 137, 1245, 1246, 1253, 137, 137, 1245,
7080  1246, 1253, 137, 1633, 407, 407, 407, 407, 138, 1238,
7081  137, 140, 138, 138, 145, 140, 140, 138, 145, 145,
7082  140, 1238, 2524, 145, 1234, 138, 1238, 1234, 140, 146,
7083  2128, 145, 2128, 146, 146, 1247, 149, 140, 146, 145,
7084  149, 149, 1234, 150, 1263, 149, 146, 150, 150, 1263,
7085 
7086  137, 1247, 150, 149, 146, 1633, 137, 2525, 1273, 1274,
7087  150, 1273, 1274, 1247, 137, 138, 137, 137, 181, 1273,
7088  1274, 138, 181, 181, 137, 1278, 137, 181, 181, 138,
7089  1278, 138, 138, 1385, 1287, 181, 407, 1287, 1385, 138,
7090  2526, 138, 143, 143, 143, 143, 143, 143, 143, 143,
7091  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7092  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7093  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7094  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7095  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7096 
7097  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7098  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7099  143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
7100  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7101  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7102  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7103  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7104  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7105  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7106  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7107 
7108  147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
7109  147, 147, 147, 147, 147, 147, 147, 147, 151, 151,
7110  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7111  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7112  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7113  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7114  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7115  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7116  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7117  151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
7118 
7119  151, 151, 151, 151, 151, 151, 153, 1391, 2527, 154,
7120  153, 153, 1391, 154, 154, 153, 1306, 153, 154, 1306,
7121  154, 1354, 1365, 153, 1354, 1365, 154, 155, 155, 155,
7122  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7123  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7124  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7125  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7126  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7127  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7128  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7129 
7130  155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
7131  155, 155, 155, 155, 155, 157, 1393, 2528, 158, 157,
7132  157, 1393, 158, 158, 157, 157, 157, 158, 158, 158,
7133  2529, 1383, 157, 159, 1383, 158, 160, 159, 159, 163,
7134  160, 160, 159, 163, 163, 160, 1276, 2461, 163, 1276,
7135  159, 1233, 1233, 160, 1233, 1403, 163, 1276, 1403, 159,
7136  2530, 164, 160, 161, 163, 164, 164, 161, 161, 1233,
7137  164, 2531, 161, 1325, 161, 2461, 1325, 1325, 164, 169,
7138  161, 1337, 1411, 169, 169, 1411, 164, 1337, 169, 170,
7139  169, 1325, 1559, 170, 170, 1559, 169, 1337, 170, 253,
7140 
7141  170, 1340, 1601, 253, 253, 1601, 170, 1340, 253, 177,
7142  177, 177, 177, 169, 177, 177, 253, 1340, 1626, 177,
7143  161, 1626, 161, 170, 169, 169, 161, 177, 169, 1413,
7144  2532, 1626, 161, 1413, 170, 170, 161, 161, 170, 161,
7145  182, 161, 162, 1413, 182, 182, 162, 162, 2088, 182,
7146  182, 162, 1396, 162, 1801, 1396, 2533, 182, 183, 162,
7147  2088, 184, 183, 183, 2088, 184, 184, 183, 1801, 183,
7148  184, 1578, 184, 177, 1599, 183, 1578, 187, 184, 1599,
7149  1607, 187, 187, 188, 177, 1607, 187, 188, 188, 2019,
7150  1398, 187, 188, 177, 187, 1398, 1398, 188, 1398, 162,
7151 
7152  188, 162, 187, 2019, 1590, 162, 1416, 1590, 188, 2534,
7153  1590, 162, 1396, 1396, 1416, 162, 162, 2535, 162, 1416,
7154  162, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7155  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7156  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7157  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7158  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7159  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7160  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7161  165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
7162 
7163  165, 165, 165, 165, 165, 165, 165, 165, 165, 167,
7164  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7165  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7166  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7167  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7168  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7169  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7170  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7171  167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
7172  167, 167, 167, 167, 167, 167, 167, 171, 171, 171,
7173 
7174  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7175  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7176  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7177  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7178  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7179  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7180  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7181  171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
7182  171, 171, 171, 171, 171, 173, 173, 173, 173, 173,
7183  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7184 
7185  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7186  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7187  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7188  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7189  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7190  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7191  173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
7192  173, 173, 173, 175, 175, 175, 175, 193, 175, 175,
7193  2536, 193, 193, 175, 175, 175, 193, 193, 175, 175,
7194  1613, 175, 2282, 1613, 193, 329, 329, 329, 329, 175,
7195 
7196  175, 194, 175, 175, 175, 194, 194, 2132, 1613, 2132,
7197  194, 194, 231, 1634, 175, 1688, 231, 231, 194, 175,
7198  329, 231, 175, 231, 1688, 175, 2537, 175, 2282, 231,
7199  178, 178, 178, 178, 215, 178, 178, 257, 215, 215,
7200  178, 257, 257, 215, 215, 215, 257, 1678, 178, 2539,
7201  175, 215, 1678, 1696, 257, 175, 1696, 175, 176, 176,
7202  176, 176, 201, 176, 176, 1634, 201, 201, 176, 176,
7203  176, 201, 1600, 176, 176, 1600, 176, 329, 1600, 201,
7204  431, 431, 431, 431, 176, 176, 201, 176, 176, 176,
7205  1709, 189, 1684, 1709, 178, 189, 189, 1684, 431, 176,
7206 
7207  189, 189, 189, 1721, 176, 178, 1721, 176, 189, 2540,
7208  176, 190, 176, 1686, 178, 190, 190, 189, 1686, 189,
7209  190, 190, 190, 433, 433, 433, 433, 2541, 190, 1799,
7210  587, 587, 587, 587, 1799, 176, 587, 190, 2542, 190,
7211  176, 433, 176, 179, 179, 179, 179, 179, 179, 179,
7212  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7213  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7214  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7215  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7216  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7217 
7218  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7219  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7220  179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
7221  179, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7222  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7223  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7224  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7225  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7226  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7227  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7228 
7229  185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
7230  185, 185, 185, 185, 185, 185, 185, 185, 185, 191,
7231  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7232  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7233  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7234  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7235  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7236  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7237  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7238  191, 191, 191, 191, 191, 191, 191, 191, 191, 191,
7239 
7240  191, 191, 191, 191, 191, 191, 191, 195, 2076, 2076,
7241  196, 195, 195, 1800, 196, 196, 195, 195, 195, 196,
7242  196, 196, 1800, 1635, 195, 202, 462, 196, 216, 202,
7243  202, 207, 216, 216, 202, 207, 207, 216, 216, 216,
7244  207, 1970, 202, 207, 1342, 216, 1970, 1992, 207, 202,
7245  1342, 2543, 1992, 318, 318, 318, 318, 1730, 195, 1730,
7246  1342, 196, 197, 197, 197, 197, 2544, 197, 197, 1731,
7247  318, 1731, 197, 197, 197, 1635, 2545, 208, 318, 462,
7248  197, 208, 208, 207, 1534, 462, 208, 1534, 1534, 208,
7249  462, 462, 209, 462, 208, 1342, 209, 209, 1729, 2070,
7250 
7251  1729, 209, 1534, 197, 209, 2546, 1881, 1730, 197, 209,
7252  210, 197, 1731, 2070, 210, 210, 211, 2547, 2548, 210,
7253  211, 211, 210, 1194, 2549, 211, 1194, 210, 211, 208,
7254  1194, 1618, 1194, 211, 1618, 318, 1194, 1729, 2018, 197,
7255  198, 198, 198, 198, 209, 198, 198, 2018, 2462, 1618,
7256  198, 198, 198, 1881, 1955, 212, 2550, 1955, 198, 212,
7257  212, 213, 210, 2072, 212, 213, 213, 212, 211, 2551,
7258  213, 1510, 212, 213, 1510, 214, 2462, 2072, 213, 214,
7259  214, 198, 1837, 1881, 214, 1837, 198, 214, 1728, 198,
7260  1728, 217, 214, 1837, 218, 217, 217, 2096, 218, 218,
7261 
7262  217, 2552, 2096, 218, 1726, 219, 1726, 212, 217, 219,
7263  219, 218, 2554, 213, 219, 219, 219, 198, 199, 199,
7264  199, 199, 219, 199, 199, 2555, 2044, 214, 199, 199,
7265  2069, 1510, 1510, 220, 1728, 2044, 199, 220, 220, 2069,
7266  2558, 2221, 220, 220, 220, 199, 2221, 199, 221, 1726,
7267  220, 237, 221, 221, 2071, 237, 237, 221, 1511, 199,
7268  237, 1511, 221, 2071, 199, 221, 1595, 199, 237, 1595,
7269  1595, 2567, 217, 2513, 217, 218, 222, 218, 2513, 1841,
7270  222, 222, 1841, 232, 1595, 222, 1763, 232, 232, 1763,
7271  222, 1763, 232, 222, 232, 199, 200, 200, 200, 200,
7272 
7273  232, 200, 200, 237, 1841, 1951, 200, 200, 1951, 2078,
7274  223, 223, 2078, 223, 200, 223, 223, 2257, 1511, 1511,
7275  223, 223, 223, 200, 1951, 200, 2257, 1866, 223, 221,
7276  1866, 221, 2258, 371, 371, 371, 371, 200, 224, 224,
7277  1866, 224, 200, 224, 224, 200, 2258, 2570, 224, 224,
7278  224, 439, 439, 439, 439, 2576, 224, 222, 371, 222,
7279  2583, 2266, 371, 589, 589, 589, 589, 2584, 2432, 439,
7280  2266, 2432, 2641, 200, 203, 203, 203, 203, 203, 203,
7281  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7282  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7283 
7284  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7285  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7286  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7287  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7288  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7289  203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
7290  203, 203, 205, 205, 205, 205, 205, 205, 205, 205,
7291  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7292  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7293  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7294 
7295  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7296  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7297  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7298  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7299  205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
7300  225, 225, 225, 225, 277, 225, 225, 2642, 277, 277,
7301  225, 225, 225, 277, 226, 226, 226, 226, 225, 226,
7302  226, 277, 1969, 2645, 226, 226, 226, 225, 1954, 225,
7303  1960, 1954, 226, 1960, 229, 229, 229, 229, 1969, 229,
7304  229, 226, 2269, 226, 229, 229, 229, 1954, 1960, 229,
7305 
7306  1969, 2269, 229, 230, 230, 230, 230, 1689, 230, 230,
7307  1689, 1689, 2538, 230, 230, 230, 2538, 1963, 230, 259,
7308  1963, 230, 2646, 259, 259, 1689, 225, 2089, 259, 2089,
7309  259, 597, 597, 597, 597, 1963, 259, 2089, 2648, 2649,
7310  226, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7311  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7312  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7313  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7314  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7315  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7316 
7317  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7318  227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
7319  227, 227, 227, 227, 227, 227, 227, 227, 227, 233,
7320  233, 233, 233, 1439, 233, 233, 1439, 1439, 1874, 233,
7321  233, 233, 2650, 1727, 233, 1727, 1439, 233, 234, 234,
7322  234, 234, 235, 234, 234, 2651, 235, 235, 234, 234,
7323  234, 235, 2653, 234, 1439, 1968, 234, 236, 1968, 235,
7324  238, 236, 236, 239, 238, 238, 236, 239, 239, 238,
7325  2654, 2655, 239, 1874, 236, 2656, 1439, 238, 1727, 240,
7326  239, 241, 1968, 240, 240, 241, 241, 2657, 240, 2005,
7327 
7328  241, 241, 241, 235, 2658, 235, 240, 245, 241, 2660,
7329  2661, 245, 245, 1874, 2662, 2322, 245, 2322, 236, 245,
7330  236, 2267, 238, 242, 245, 239, 1440, 242, 242, 1440,
7331  1440, 241, 242, 242, 242, 2267, 241, 245, 243, 241,
7332  242, 240, 243, 243, 1440, 260, 2005, 243, 243, 260,
7333  260, 2321, 2359, 2321, 260, 243, 260, 1440, 2270, 245,
7334  2322, 2359, 260, 242, 243, 244, 243, 241, 242, 244,
7335  244, 242, 2270, 1979, 244, 244, 2005, 2036, 243, 1440,
7336  2036, 2663, 244, 243, 246, 246, 243, 246, 2664, 246,
7337  246, 244, 2303, 244, 246, 2036, 2667, 246, 1996, 242,
7338 
7339  2321, 1996, 246, 247, 2668, 244, 2303, 247, 247, 2669,
7340  244, 1996, 247, 244, 243, 246, 2670, 248, 1979, 249,
7341  247, 248, 248, 249, 249, 2319, 248, 2319, 249, 408,
7342  408, 408, 408, 247, 248, 250, 249, 246, 2675, 250,
7343  250, 244, 1961, 1961, 250, 1961, 408, 248, 1979, 249,
7344  2678, 2682, 250, 261, 408, 247, 2683, 261, 261, 2360,
7345  1961, 2686, 261, 262, 261, 250, 2687, 262, 262, 248,
7346  261, 249, 262, 2360, 262, 2319, 617, 617, 617, 617,
7347  262, 2553, 408, 617, 2553, 2689, 2553, 250, 251, 251,
7348  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7349 
7350  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7351  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7352  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7353  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7354  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7355  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7356  251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
7357  251, 251, 251, 251, 251, 251, 254, 254, 254, 254,
7358  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7359  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7360 
7361  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7362  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7363  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7364  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7365  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7366  254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
7367  254, 254, 254, 254, 255, 255, 255, 255, 255, 255,
7368  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7369  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7370  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7371 
7372  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7373  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7374  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7375  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7376  255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
7377  255, 255, 258, 258, 258, 258, 258, 258, 258, 258,
7378  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7379  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7380  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7381  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7382 
7383  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7384  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7385  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7386  258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
7387  263, 2574, 269, 2574, 263, 263, 269, 269, 2437, 263,
7388  1513, 269, 269, 1513, 1513, 2362, 270, 263, 2690, 269,
7389  270, 270, 2437, 1513, 2362, 270, 270, 361, 361, 361,
7390  361, 2691, 2692, 270, 273, 273, 2693, 273, 275, 273,
7391  273, 1513, 275, 275, 273, 2049, 2324, 275, 2324, 275,
7392  2695, 2049, 273, 263, 361, 275, 2694, 263, 263, 263,
7393 
7394  278, 2049, 273, 1513, 278, 278, 2700, 2696, 263, 278,
7395  263, 263, 269, 263, 2694, 263, 264, 278, 276, 2324,
7396  264, 264, 276, 276, 2701, 264, 270, 276, 2581, 276,
7397  2581, 2702, 2703, 264, 273, 276, 279, 279, 2320, 279,
7398  2320, 279, 279, 2696, 1935, 2003, 279, 1935, 2049, 361,
7399  273, 2480, 273, 1935, 279, 2003, 273, 1935, 280, 280,
7400  2480, 280, 2706, 280, 280, 2708, 2709, 2217, 280, 264,
7401  2217, 2003, 2711, 264, 264, 264, 280, 2320, 575, 575,
7402  575, 575, 2712, 2003, 264, 2217, 264, 264, 2713, 264,
7403  575, 264, 265, 265, 265, 265, 265, 265, 265, 265,
7404 
7405  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7406  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7407  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7408  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7409  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7410  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7411  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7412  265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
7413  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7414  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7415 
7416  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7417  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7418  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7419  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7420  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7421  267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
7422  267, 267, 267, 267, 267, 267, 267, 267, 271, 271,
7423  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7424  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7425  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7426 
7427  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7428  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7429  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7430  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7431  271, 271, 271, 271, 271, 271, 271, 271, 271, 271,
7432  271, 271, 271, 271, 271, 271, 274, 274, 2714, 274,
7433  2272, 274, 274, 2272, 2723, 2725, 274, 281, 281, 2323,
7434  281, 2323, 281, 281, 274, 2710, 2726, 281, 2272, 2580,
7435  281, 2727, 2728, 2710, 274, 281, 282, 282, 2580, 282,
7436  2674, 282, 282, 2674, 281, 2674, 282, 283, 281, 282,
7437 
7438  2731, 283, 283, 283, 282, 2125, 283, 2736, 2125, 283,
7439  2323, 2737, 1211, 282, 283, 1211, 274, 282, 2740, 2718,
7440  281, 2718, 2453, 283, 2688, 2453, 2743, 283, 656, 656,
7441  656, 656, 274, 2688, 274, 2453, 2125, 2745, 274, 282,
7442  1211, 2748, 2751, 282, 322, 322, 322, 322, 322, 283,
7443  283, 322, 281, 323, 323, 323, 323, 2720, 2125, 2720,
7444  323, 333, 333, 333, 333, 333, 2754, 2759, 333, 322,
7445  323, 282, 1211, 343, 343, 343, 343, 691, 691, 691,
7446  691, 283, 284, 284, 343, 284, 333, 284, 284, 284,
7447  1211, 2760, 284, 2383, 2720, 284, 2383, 2763, 343, 2764,
7448 
7449  284, 344, 344, 344, 344, 441, 441, 441, 441, 284,
7450  656, 2765, 344, 284, 399, 399, 399, 399, 2383, 2767,
7451  2470, 399, 2768, 441, 1745, 2769, 344, 1745, 1745, 322,
7452  2770, 2771, 343, 2774, 2775, 284, 284, 1745, 323, 284,
7453  2776, 399, 453, 453, 453, 453, 333, 458, 458, 458,
7454  458, 463, 463, 463, 463, 1745, 493, 493, 493, 493,
7455  453, 2777, 2778, 344, 2470, 458, 2779, 284, 494, 494,
7456  494, 494, 500, 500, 500, 500, 463, 1745, 463, 2780,
7457  399, 493, 692, 692, 692, 692, 716, 716, 716, 716,
7458  500, 2781, 2470, 494, 2782, 2784, 399, 400, 400, 400,
7459 
7460  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7461  400, 400, 400, 2785, 400, 400, 400, 400, 400, 400,
7462  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7463  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7464  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7465  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7466  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7467  400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
7468  2786, 400, 400, 400, 400, 401, 401, 401, 401, 2717,
7469  2789, 2717, 401, 501, 501, 501, 501, 444, 444, 444,
7470 
7471  444, 448, 448, 448, 448, 448, 2790, 1251, 448, 2791,
7472  1251, 501, 401, 2783, 2792, 2783, 445, 445, 445, 445,
7473  1251, 2795, 444, 2783, 1937, 1251, 448, 1937, 2796, 451,
7474  451, 451, 451, 1937, 1251, 2800, 451, 1937, 451, 2802,
7475  2717, 445, 451, 499, 499, 499, 499, 1266, 2803, 499,
7476  1266, 401, 2457, 2804, 451, 2457, 2805, 2806, 444, 2809,
7477  1266, 499, 2811, 444, 1251, 2457, 2812, 401, 443, 443,
7478  443, 443, 444, 2819, 443, 444, 2821, 445, 505, 505,
7479  505, 505, 445, 2721, 451, 2721, 448, 516, 516, 516,
7480  516, 445, 1251, 443, 445, 2834, 505, 2835, 2836, 443,
7481 
7482  464, 464, 464, 464, 1266, 516, 467, 467, 467, 467,
7483  2719, 2820, 2719, 443, 468, 468, 468, 468, 2757, 2837,
7484  443, 2757, 2721, 2757, 443, 464, 443, 464, 443, 443,
7485  443, 467, 1266, 467, 443, 443, 443, 443, 443, 468,
7486  443, 468, 443, 443, 443, 443, 443, 469, 469, 469,
7487  469, 470, 470, 470, 470, 2820, 464, 472, 472, 472,
7488  472, 2719, 467, 471, 471, 471, 471, 473, 473, 473,
7489  473, 2822, 469, 468, 469, 2838, 470, 2839, 470, 2808,
7490  2822, 2722, 472, 2722, 472, 2840, 2845, 2846, 471, 2847,
7491  471, 2848, 473, 2813, 473, 474, 474, 474, 474, 475,
7492 
7493  475, 475, 475, 476, 476, 476, 476, 2808, 2849, 477,
7494  477, 477, 477, 470, 2850, 469, 2814, 470, 469, 2813,
7495  474, 2851, 474, 471, 475, 2852, 475, 2853, 476, 473,
7496  476, 472, 2722, 471, 477, 2854, 477, 478, 478, 478,
7497  478, 471, 2814, 471, 2855, 479, 479, 479, 479, 480,
7498  480, 480, 480, 2126, 2856, 475, 2126, 2488, 481, 481,
7499  481, 481, 478, 2488, 478, 474, 2857, 2858, 2860, 476,
7500  479, 477, 479, 2488, 480, 2861, 480, 2862, 1991, 2863,
7501  477, 1991, 2864, 481, 2126, 481, 477, 482, 482, 482,
7502  482, 483, 483, 483, 483, 478, 484, 484, 484, 484,
7503 
7504  496, 496, 496, 496, 496, 2865, 2126, 496, 2488, 2866,
7505  2867, 480, 482, 2868, 482, 2869, 483, 2870, 483, 479,
7506  481, 484, 479, 484, 481, 496, 498, 498, 498, 498,
7507  519, 519, 519, 519, 481, 1991, 548, 548, 548, 548,
7508  2871, 560, 560, 560, 560, 519, 2872, 2794, 2794, 482,
7509  2794, 498, 2873, 498, 484, 548, 561, 561, 561, 561,
7510  2874, 483, 484, 1991, 2875, 2794, 483, 484, 482, 560,
7511  2876, 567, 567, 567, 567, 604, 604, 604, 604, 2878,
7512  613, 613, 613, 613, 561, 496, 542, 542, 542, 542,
7513  567, 2879, 604, 605, 605, 605, 605, 548, 613, 2880,
7514 
7515  604, 2877, 542, 2881, 560, 606, 606, 606, 606, 2882,
7516  605, 2883, 560, 2884, 542, 2825, 2877, 2885, 605, 561,
7517  2883, 2825, 606, 615, 615, 615, 615, 561, 2886, 2887,
7518  606, 2825, 567, 616, 616, 616, 616, 2888, 618, 618,
7519  618, 618, 618, 2889, 542, 618, 542, 2891, 615, 542,
7520  2892, 605, 632, 632, 632, 632, 542, 542, 616, 2896,
7521  542, 542, 542, 618, 542, 620, 620, 620, 620, 2897,
7522  632, 639, 639, 639, 639, 2903, 2904, 606, 717, 717,
7523  717, 717, 724, 724, 724, 724, 2906, 2929, 2930, 639,
7524  620, 725, 725, 725, 725, 744, 744, 744, 744, 745,
7525 
7526  745, 745, 745, 752, 752, 752, 752, 753, 753, 753,
7527  753, 766, 766, 766, 766, 769, 769, 769, 769, 770,
7528  770, 770, 770, 618, 771, 771, 771, 771, 766, 803,
7529  803, 803, 803, 808, 808, 808, 808, 2954, 810, 810,
7530  810, 810, 822, 822, 822, 822, 2955, 803, 2971, 1514,
7531  2972, 808, 1514, 1514, 2454, 744, 810, 2454, 2973, 745,
7532  2974, 834, 834, 834, 834, 2975, 2976, 1514, 769, 836,
7533  836, 836, 836, 877, 877, 877, 877, 770, 834, 2977,
7534  1514, 2978, 771, 878, 878, 878, 878, 884, 884, 884,
7535  884, 877, 2979, 2980, 836, 887, 887, 887, 887, 2981,
7536 
7537  2127, 878, 1514, 2127, 2984, 884, 897, 897, 897, 897,
7538  2985, 2454, 2986, 887, 898, 898, 898, 898, 901, 901,
7539  901, 901, 2987, 2989, 2991, 901, 902, 902, 902, 902,
7540  2997, 2127, 2998, 902, 903, 903, 903, 903, 2999, 2454,
7541  3004, 903, 904, 904, 904, 904, 3005, 907, 907, 907,
7542  907, 3006, 3012, 2127, 907, 904, 907, 3013, 3014, 3015,
7543  907, 3016, 908, 908, 908, 908, 3018, 3019, 3020, 908,
7544  897, 908, 3021, 3022, 2006, 908, 3023, 2006, 898, 3024,
7545  3025, 897, 3026, 909, 909, 909, 909, 2006, 2816, 898,
7546  909, 2816, 909, 3027, 3031, 3033, 909, 910, 910, 910,
7547 
7548  910, 2816, 3032, 3035, 910, 3032, 910, 3036, 3037, 3038,
7549  910, 912, 912, 912, 912, 914, 914, 914, 914, 916,
7550  916, 916, 916, 927, 927, 927, 927, 3040, 3030, 912,
7551  3030, 2006, 3041, 914, 927, 929, 929, 929, 929, 930,
7552  930, 930, 930, 931, 931, 931, 931, 3043, 927, 3044,
7553  931, 3045, 927, 3046, 934, 934, 934, 934, 934, 2006,
7554  929, 934, 3047, 3048, 930, 938, 938, 938, 938, 3030,
7555  3049, 916, 944, 944, 944, 944, 3028, 3050, 3028, 934,
7556  947, 947, 947, 947, 944, 950, 950, 950, 950, 3051,
7557  938, 947, 951, 951, 951, 951, 956, 956, 956, 956,
7558 
7559  1043, 1043, 1043, 1043, 3053, 3054, 947, 1044, 1044, 1044,
7560  1044, 3055, 3028, 3056, 956, 1069, 1069, 1069, 1069, 1072,
7561  1072, 1072, 1072, 3057, 3059, 3060, 1069, 1073, 1073, 1073,
7562  1073, 3029, 947, 3029, 1072, 1079, 1079, 1079, 1079, 934,
7563  3061, 1069, 1073, 1111, 1111, 1111, 1111, 3062, 3063, 3064,
7564  1118, 1118, 3065, 1118, 3066, 1118, 1111, 3067, 1118, 1118,
7565  3068, 1111, 1175, 1175, 1175, 1175, 3069, 1069, 1118, 1175,
7566  1118, 1176, 1176, 1176, 1176, 3070, 3029, 3071, 1176, 1183,
7567  1183, 1183, 1183, 3072, 3073, 1185, 1185, 1185, 1185, 3074,
7568  3075, 1183, 1185, 3077, 1183, 3079, 1185, 1069, 1186, 1186,
7569 
7570  1186, 1186, 3080, 3081, 3082, 1186, 3083, 3084, 3085, 1186,
7571  1188, 1188, 1188, 1188, 1175, 3086, 3089, 1188, 1189, 1189,
7572  1189, 1189, 3093, 1176, 1198, 1198, 1198, 1198, 3095, 1189,
7573  1199, 1199, 1199, 1199, 1200, 1200, 1200, 1200, 3096, 1248,
7574  3087, 1200, 3097, 3087, 1189, 1209, 1209, 1209, 1209, 1198,
7575  1203, 1203, 1203, 1203, 1203, 1199, 3091, 1203, 3098, 3091,
7576  1277, 1277, 1277, 1277, 1297, 1297, 1297, 1297, 1248, 1248,
7577  1209, 1248, 3099, 1248, 3091, 1203, 1248, 1248, 1277, 3100,
7578  3088, 1297, 1249, 3088, 3090, 3090, 1248, 3090, 1248, 1249,
7579  1249, 3088, 1249, 3102, 1249, 3103, 3104, 1249, 1249, 1284,
7580 
7581  1284, 1284, 1284, 1288, 1288, 1288, 1288, 1249, 3105, 1249,
7582  1288, 1289, 1289, 1289, 1289, 3106, 1284, 3107, 1289, 1292,
7583  1292, 1292, 1292, 3108, 1284, 3109, 1292, 1298, 1298, 1298,
7584  1298, 3110, 3116, 3117, 1298, 1203, 1252, 1252, 1252, 1252,
7585  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7586  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7587  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7588  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7589  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7590  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7591 
7592  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7593  1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
7594  1252, 1252, 1252, 1252, 1267, 1267, 1267, 1267, 3118, 3078,
7595  1746, 1267, 3078, 1746, 1746, 1267, 3120, 1267, 1283, 1283,
7596  1283, 1283, 1267, 1285, 1285, 1285, 1285, 3123, 1746, 3078,
7597  1285, 1290, 1290, 1290, 1290, 1283, 1323, 1323, 1323, 1323,
7598  1285, 1746, 1290, 1283, 3124, 3101, 1290, 1291, 1291, 1291,
7599  1291, 1294, 1294, 1294, 1294, 3125, 1950, 1290, 1290, 1950,
7600  3126, 1267, 1294, 1746, 2130, 3127, 1294, 2130, 1294, 3128,
7601  2129, 3101, 1291, 2129, 3127, 3129, 1294, 1294, 1294, 1295,
7602 
7603  1295, 1295, 1295, 3130, 1950, 3131, 1295, 3132, 2129, 1267,
7604  1296, 1296, 1296, 1296, 3134, 2130, 1295, 1296, 3138, 3139,
7605  1283, 2129, 1299, 1299, 1299, 1299, 1299, 1296, 1285, 1299,
7606  3140, 1300, 1300, 1300, 1300, 3141, 1950, 2130, 1303, 1303,
7607  1303, 1303, 1300, 2129, 3142, 3143, 1300, 1299, 1300, 1303,
7608  3144, 3145, 3143, 1303, 1950, 1303, 1300, 1300, 1300, 1307,
7609  1307, 1307, 1307, 1303, 1303, 1303, 1307, 1308, 1308, 1308,
7610  1308, 3146, 3147, 3148, 1308, 1309, 1309, 1309, 1309, 1310,
7611  1310, 1310, 1310, 3149, 1295, 3150, 1309, 3151, 3152, 3154,
7612  1309, 1311, 1311, 1311, 1311, 1296, 1314, 1314, 1314, 1314,
7613 
7614  3155, 1309, 1309, 3153, 1310, 3156, 3157, 1299, 1315, 1315,
7615  1315, 1315, 1317, 1317, 1317, 1317, 1311, 3158, 3153, 1317,
7616  3159, 1314, 1318, 1318, 1318, 1318, 3160, 3163, 3164, 1318,
7617  3162, 3165, 3166, 1315, 1319, 1319, 1319, 1319, 3167, 1320,
7618  1320, 1320, 1320, 3168, 3171, 1319, 1320, 1322, 1322, 1322,
7619  1322, 3174, 1326, 1326, 1326, 1326, 1326, 3196, 1322, 1326,
7620  3197, 1310, 1328, 1328, 1328, 1328, 3220, 1330, 1330, 1330,
7621  1330, 3221, 1322, 1328, 3238, 3239, 3241, 1326, 1330, 1331,
7622  1331, 1331, 1331, 1332, 1332, 1332, 1332, 1328, 3242, 3243,
7623  1331, 3245, 1330, 3246, 1332, 1346, 1346, 1346, 1346, 1351,
7624 
7625  1351, 1351, 1351, 3162, 1331, 3247, 3248, 3251, 1332, 1359,
7626  1359, 1359, 1359, 3252, 3258, 3259, 1359, 3262, 1360, 1360,
7627  1360, 1360, 1346, 3265, 1351, 1360, 1361, 1361, 1361, 1361,
7628  3267, 2788, 3268, 1361, 2788, 3269, 1359, 1326, 2788, 3270,
7629  2788, 1332, 3271, 3272, 2788, 1360, 1363, 1363, 1363, 1363,
7630  3275, 3276, 3277, 1361, 1331, 1364, 1364, 1364, 1364, 1368,
7631  1368, 1368, 1368, 1363, 3278, 3280, 1368, 1373, 1373, 1373,
7632  1373, 1363, 1364, 3282, 1373, 1359, 3285, 1346, 3287, 3288,
7633  1364, 3283, 3289, 3283, 1360, 3290, 1368, 1370, 1370, 1370,
7634  1370, 1359, 1376, 1376, 1376, 1376, 1389, 1389, 1389, 1389,
7635 
7636  1360, 2772, 2772, 3291, 1370, 3292, 2772, 3294, 1361, 2772,
7637  2772, 3295, 1370, 1420, 1420, 1420, 1420, 1376, 3283, 2772,
7638  1420, 2772, 3296, 3297, 1364, 1366, 1366, 1366, 1366, 1366,
7639  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7640  1366, 1368, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7641  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7642  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7643  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7644  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7645  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
7646 
7647  1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 3298, 1366,
7648  1366, 1366, 1366, 1371, 1371, 1371, 1371, 1372, 1372, 1372,
7649  1372, 1374, 1374, 1374, 1374, 3299, 1378, 1378, 1378, 1378,
7650  1371, 3301, 3300, 3286, 1372, 3284, 3286, 3284, 1371, 3302,
7651  3286, 3303, 1372, 1378, 1390, 1390, 1390, 1390, 3300, 2334,
7652  3304, 1378, 2334, 1392, 1392, 1392, 1392, 3305, 1395, 1395,
7653  1395, 1395, 1390, 3306, 3307, 1421, 1421, 1421, 1421, 3308,
7654  1372, 1392, 1421, 1422, 1422, 1422, 1422, 3309, 3284, 1378,
7655  2334, 3310, 1371, 1395, 1426, 1426, 1426, 1426, 1438, 1438,
7656  1438, 1438, 1423, 3311, 3312, 1423, 1459, 1459, 1459, 1459,
7657 
7658  1422, 3313, 2334, 1374, 1394, 1394, 1394, 1394, 3314, 1426,
7659  1394, 1423, 1423, 1423, 1423, 1423, 1423, 3315, 3316, 1395,
7660  1427, 1427, 1427, 1427, 1395, 3317, 3318, 1427, 2807, 1394,
7661  3319, 2807, 3320, 1395, 3321, 1394, 1395, 1448, 1448, 1448,
7662  1448, 2807, 1429, 1429, 1429, 1429, 2807, 3293, 1448, 1394,
7663  3293, 3322, 1423, 1423, 1448, 2807, 1394, 3326, 1459, 3328,
7664  1394, 3329, 1394, 3330, 1394, 1394, 1394, 1429, 3331, 1429,
7665  1394, 1394, 1394, 1394, 1394, 3332, 1394, 3333, 1394, 1394,
7666  1394, 1394, 1394, 1433, 1433, 1433, 1433, 3335, 3323, 3336,
7667  1433, 3323, 1433, 3337, 3338, 3339, 1433, 1434, 1434, 1434,
7668 
7669  1434, 3340, 3341, 3344, 1434, 3336, 1434, 3347, 1433, 3349,
7670  1434, 3354, 1435, 1435, 1435, 1435, 1437, 1437, 1437, 1437,
7671  3355, 1435, 1434, 1435, 3324, 1435, 3356, 3324, 1437, 1437,
7672  1443, 1443, 1443, 1443, 1443, 3324, 3357, 1443, 1433, 3358,
7673  3359, 1437, 3360, 1437, 3361, 1449, 1449, 1449, 1449, 3362,
7674  3363, 3364, 1434, 3366, 3368, 1443, 1449, 1450, 1450, 1450,
7675  1450, 3370, 1449, 1454, 1454, 1454, 1454, 1435, 1450, 1451,
7676  1451, 1451, 1451, 3371, 1450, 3373, 1452, 1452, 1452, 1452,
7677  1451, 1453, 1453, 1453, 1453, 3375, 1451, 1452, 1454, 3376,
7678  1454, 3378, 1453, 1452, 1455, 1455, 1455, 1455, 1453, 1497,
7679 
7680  1497, 1497, 1497, 3379, 1457, 1457, 1457, 1457, 1460, 1460,
7681  1460, 1460, 3381, 1449, 3382, 1443, 3383, 3384, 3385, 1455,
7682  3387, 1455, 3388, 3389, 1497, 3390, 1450, 1450, 3393, 1457,
7683  3394, 1457, 3397, 1460, 3396, 1460, 1461, 1461, 1461, 1461,
7684  3398, 1451, 3399, 1453, 3400, 3402, 3417, 1457, 1457, 3396,
7685  1452, 1457, 3418, 1452, 1462, 1462, 1462, 1462, 3423, 3424,
7686  3428, 1461, 3451, 1461, 1463, 1463, 1463, 1463, 1464, 1464,
7687  1464, 1464, 1465, 1465, 1465, 1465, 3452, 3453, 3463, 1462,
7688  1460, 1462, 3464, 1466, 1466, 1466, 1466, 3469, 3470, 1463,
7689  3474, 1463, 3475, 1464, 3477, 1464, 3478, 1465, 3479, 1465,
7690 
7691  1467, 1467, 1467, 1467, 1517, 1517, 1517, 1517, 1466, 3484,
7692  1466, 1461, 1462, 1468, 1468, 1468, 1468, 3485, 1469, 1469,
7693  1469, 1469, 3488, 3491, 1463, 1467, 3492, 1467, 3493, 3494,
7694  3495, 1464, 2337, 3496, 1463, 2337, 3497, 3498, 1468, 3499,
7695  1468, 3500, 3501, 1469, 3502, 1469, 3503, 1465, 1466, 1470,
7696  1470, 1470, 1470, 3506, 1471, 1471, 1471, 1471, 3509, 1472,
7697  1472, 1472, 1472, 2337, 1474, 1474, 1474, 1474, 1473, 1473,
7698  1473, 1473, 3510, 3511, 1470, 1468, 1470, 1467, 1469, 1471,
7699  3504, 1471, 3504, 3512, 1472, 2337, 1472, 3514, 3516, 1474,
7700  1469, 1474, 3517, 1473, 1469, 1473, 1518, 1518, 1518, 1518,
7701 
7702  3518, 1475, 1475, 1475, 1475, 1476, 1476, 1476, 1476, 1477,
7703  1477, 1477, 1477, 3519, 3513, 1470, 3504, 3513, 2465, 1472,
7704  3520, 2465, 3521, 1474, 1471, 1472, 1475, 1472, 1475, 1473,
7705  1476, 2465, 1476, 3522, 1477, 1472, 1477, 1478, 1478, 1478,
7706  1478, 3523, 1479, 1479, 1479, 1479, 1480, 1480, 1480, 1480,
7707  3524, 1481, 1481, 1481, 1481, 1482, 1482, 1482, 1482, 3525,
7708  3515, 3526, 1478, 3515, 1478, 3527, 1476, 1479, 3528, 1479,
7709  3505, 1480, 3505, 1480, 3529, 2465, 1481, 1475, 1481, 3530,
7710  1482, 3531, 1482, 3532, 3533, 1477, 1532, 1532, 1532, 1532,
7711  1483, 1483, 1483, 1483, 1484, 1484, 1484, 1484, 1485, 1485,
7712 
7713  1485, 1485, 3534, 2465, 3535, 1480, 1478, 3505, 1479, 1486,
7714  1486, 1486, 1486, 1479, 1481, 1483, 3536, 1483, 3537, 1484,
7715  3538, 1484, 3541, 1485, 1481, 1485, 3542, 3543, 3544, 1482,
7716  1487, 1487, 1487, 1487, 1486, 3545, 1486, 1488, 1488, 1488,
7717  1488, 3546, 3547, 3548, 1489, 1489, 1489, 1489, 1490, 1490,
7718  1490, 1490, 1484, 3549, 1483, 1487, 3507, 1487, 3550, 3507,
7719  1483, 3552, 1488, 3507, 1488, 3553, 3555, 1485, 1484, 1489,
7720  3556, 1489, 3557, 1490, 3558, 1490, 3559, 1491, 1491, 1491,
7721  1491, 1486, 1499, 1499, 1499, 1499, 3563, 3567, 3568, 1499,
7722  1500, 1500, 1500, 1500, 3569, 3570, 1487, 1500, 1501, 1501,
7723 
7724  1501, 1501, 1491, 1488, 1491, 3571, 1502, 1502, 1502, 1502,
7725  3572, 3574, 1489, 1502, 1504, 1504, 1504, 1504, 1536, 1536,
7726  1536, 1536, 1490, 3575, 3576, 1501, 1505, 1505, 1505, 1505,
7727  1505, 3577, 3579, 1505, 1506, 1506, 1506, 1506, 3580, 1504,
7728  3581, 1504, 3583, 3585, 3586, 1491, 1507, 1507, 1507, 1507,
7729  3593, 1505, 1509, 1509, 1509, 1509, 3596, 3595, 1509, 1506,
7730  3599, 1506, 1516, 1516, 1516, 1516, 1521, 1521, 1521, 1521,
7731  1509, 1507, 3595, 1507, 3600, 3601, 3604, 1516, 1535, 1535,
7732  1535, 1535, 3608, 3609, 3611, 1521, 3612, 3613, 1550, 1550,
7733  1550, 1550, 1553, 1553, 1553, 1553, 3628, 1535, 1554, 1554,
7734 
7735  1554, 1554, 3633, 3634, 1553, 1558, 1558, 1558, 1558, 1554,
7736  3638, 1505, 1519, 1519, 1519, 1519, 1550, 1557, 1557, 1557,
7737  1557, 3639, 3640, 1557, 3642, 1554, 1561, 1521, 1519, 1561,
7738  1563, 1563, 1563, 1563, 1564, 1564, 1564, 1564, 3663, 1535,
7739  1519, 1568, 1568, 1568, 1568, 1561, 1561, 1561, 1561, 1561,
7740  1561, 1550, 1570, 1570, 1570, 1570, 3664, 3672, 3673, 1550,
7741  1577, 1577, 1577, 1577, 1571, 1571, 1571, 1571, 3678, 1570,
7742  1519, 3637, 1519, 3679, 3680, 1519, 3690, 1570, 1577, 3695,
7743  3637, 1571, 1519, 1519, 3696, 3698, 1519, 1519, 1519, 1571,
7744  1519, 1572, 1572, 1572, 1572, 3699, 3701, 3703, 1572, 1573,
7745 
7746  1573, 1573, 1573, 1575, 1575, 1575, 1575, 3704, 1576, 1576,
7747  1576, 1576, 1579, 1579, 1579, 1579, 1573, 1568, 3706, 3707,
7748  1575, 3709, 3710, 3711, 1573, 1576, 3712, 3715, 1575, 1581,
7749  1581, 1581, 1581, 1576, 3716, 3717, 1581, 1579, 1582, 1582,
7750  1582, 1582, 3718, 3719, 3720, 1582, 1584, 1584, 1584, 1584,
7751  3721, 3722, 3723, 1584, 1586, 1586, 1586, 1586, 1588, 1588,
7752  1588, 1588, 1572, 3724, 1587, 1587, 1587, 1587, 1587, 3725,
7753  1576, 1587, 1575, 1591, 3726, 3727, 1591, 3728, 3729, 1586,
7754  3730, 3731, 3732, 1588, 1593, 1593, 1593, 1593, 3736, 1587,
7755  3737, 3740, 1591, 1591, 1591, 1591, 1591, 1591, 1598, 1598,
7756 
7757  1598, 1598, 1606, 1606, 1606, 1606, 1612, 1612, 1612, 1612,
7758  1614, 1614, 1614, 1614, 3739, 3741, 1598, 3739, 3742, 3743,
7759  1606, 1615, 1615, 1615, 1615, 1637, 1637, 1637, 1637, 1644,
7760  1644, 1644, 1644, 1645, 1645, 1645, 1645, 1650, 1650, 1650,
7761  1650, 1654, 1654, 1654, 1654, 1664, 1664, 1664, 1664, 1587,
7762  1665, 1665, 1665, 1665, 3745, 3746, 1666, 1666, 1666, 1666,
7763  3747, 3748, 1664, 1666, 3749, 3755, 3756, 1665, 3757, 1666,
7764  1667, 1667, 1667, 1667, 1668, 1668, 1668, 1668, 1669, 1669,
7765  1669, 1669, 1670, 1670, 1670, 1670, 3759, 1667, 1612, 3760,
7766  3762, 3763, 1614, 1671, 1671, 1671, 1671, 1650, 3764, 3767,
7767 
7768  1671, 3768, 3771, 1615, 1672, 1672, 1672, 1672, 1685, 1685,
7769  1685, 1685, 1697, 1697, 1697, 1697, 1702, 1702, 1702, 1702,
7770  3776, 3738, 3779, 1685, 3738, 3780, 3781, 1668, 3783, 3784,
7771  3785, 1669, 3738, 3786, 3790, 1670, 1669, 1703, 1703, 1703,
7772  1703, 1702, 1705, 1705, 1705, 1705, 1706, 1706, 1706, 1706,
7773  1743, 1743, 1743, 1743, 1703, 1754, 1754, 1754, 1754, 3793,
7774  3796, 3809, 1672, 1757, 1757, 1757, 1757, 3810, 3814, 3815,
7775  1757, 1706, 1758, 1758, 1758, 1758, 3816, 3817, 3835, 1758,
7776  1759, 1759, 1759, 1759, 1760, 1760, 1760, 1760, 1762, 1762,
7777  1762, 1762, 3713, 1759, 1697, 3713, 3839, 1760, 3840, 3839,
7778 
7779  3842, 1762, 1765, 1765, 1765, 1765, 3843, 3845, 3860, 1765,
7780  3861, 1765, 3713, 3713, 3863, 1765, 3865, 3864, 3866, 1754,
7781  1766, 1766, 1766, 1766, 3868, 3862, 3870, 1766, 3865, 1766,
7782  1754, 3864, 3873, 1766, 1767, 1767, 1767, 1767, 3871, 2573,
7783  3875, 1767, 2573, 1767, 3862, 3867, 3867, 1767, 1768, 1768,
7784  1768, 1768, 1769, 1769, 1769, 1769, 1770, 1770, 1770, 1770,
7785  1773, 1773, 1773, 1773, 3876, 1774, 1774, 1774, 1774, 3877,
7786  2573, 1773, 1774, 1776, 1776, 1776, 1776, 3882, 1774, 1778,
7787  1778, 1778, 1778, 3869, 3869, 1773, 1778, 1779, 1779, 1779,
7788  1779, 3883, 2573, 3871, 1779, 3884, 3885, 3886, 1776, 3887,
7789 
7790  1768, 3891, 3888, 3888, 1769, 3888, 3892, 3893, 1770, 1781,
7791  1781, 1781, 1781, 3894, 3895, 3896, 1781, 1783, 1783, 1783,
7792  1783, 1784, 1784, 1784, 1784, 1784, 3897, 3898, 1784, 1785,
7793  1785, 1785, 1785, 1786, 1786, 1786, 1786, 1787, 1787, 1787,
7794  1787, 3899, 1783, 3900, 3901, 1786, 1784, 3903, 1787, 1788,
7795  1788, 1788, 1788, 3904, 1785, 1795, 1795, 1795, 1795, 3905,
7796  1788, 1797, 1797, 1797, 1797, 1798, 1798, 1798, 1798, 1823,
7797  1823, 1823, 1823, 3912, 3913, 1788, 1828, 1828, 1828, 1828,
7798  3914, 3915, 3916, 1798, 1831, 1831, 1831, 1831, 1834, 1834,
7799  1834, 1834, 1836, 3917, 3918, 1836, 1839, 1839, 1839, 1839,
7800 
7801  3923, 1788, 1845, 1845, 1845, 1845, 1784, 1847, 1847, 1847,
7802  1847, 1836, 1836, 1836, 1836, 1836, 1836, 3924, 1847, 1851,
7803  1851, 1851, 1851, 1852, 1852, 1852, 1852, 1853, 1853, 1853,
7804  1853, 3927, 3930, 1847, 1851, 1867, 1867, 1867, 1867, 1868,
7805  1868, 1868, 1868, 1912, 1912, 1912, 1912, 3940, 1867, 3941,
7806  1912, 1913, 1913, 1913, 1913, 3942, 3945, 3946, 1913, 1847,
7807  1914, 1914, 1914, 1914, 1916, 1916, 1916, 1916, 1917, 1917,
7808  1917, 1917, 1914, 3962, 3911, 1914, 1916, 3911, 3966, 1916,
7809  1917, 3967, 3968, 1917, 1918, 1918, 1918, 1918, 3969, 1847,
7810  1920, 1920, 1920, 1920, 3976, 1912, 1922, 1922, 1922, 1922,
7811 
7812  3977, 3994, 1920, 1913, 3995, 1920, 1923, 1923, 1923, 1923,
7813  3996, 3889, 3889, 1923, 3889, 3997, 4005, 1923, 1924, 1924,
7814  1924, 1924, 4006, 3909, 3910, 1924, 3909, 3910, 4007, 1924,
7815  1925, 1925, 1925, 1925, 3909, 4008, 3910, 1925, 1926, 1926,
7816  1926, 1926, 1927, 1927, 1927, 1927, 4009, 1928, 1928, 1928,
7817  1928, 4011, 4014, 1927, 1928, 1929, 1929, 1929, 1929, 4016,
7818  4021, 4022, 1929, 1930, 1930, 1930, 1930, 4023, 1927, 1931,
7819  1931, 1931, 1931, 4024, 4025, 1930, 1933, 1933, 1933, 1933,
7820  1931, 1940, 1940, 1940, 1940, 4012, 4026, 1933, 4012, 1942,
7821  1942, 1942, 1942, 4027, 4028, 1931, 1942, 1943, 1943, 1943,
7822 
7823  1943, 4029, 1933, 4030, 1943, 4031, 1940, 1945, 1945, 1945,
7824  1945, 4032, 4033, 4036, 1945, 1947, 1947, 1947, 1947, 1948,
7825  1948, 1948, 1948, 1948, 4037, 4038, 1948, 1949, 1949, 1949,
7826  1949, 4013, 1985, 4039, 4013, 1985, 2011, 2011, 2011, 2011,
7827  1947, 4040, 4041, 4045, 1948, 1985, 4051, 4057, 4058, 2011,
7828  1985, 4062, 1949, 2021, 2021, 2021, 2021, 4063, 4064, 1985,
7829  2022, 2022, 2022, 2022, 2021, 4065, 4017, 4017, 2021, 4017,
7830  4073, 2022, 4074, 4019, 4019, 2022, 4019, 4075, 4077, 2021,
7831  2021, 2023, 2023, 2023, 2023, 4078, 2022, 2022, 4094, 1985,
7832  4034, 4096, 2023, 4034, 4097, 4100, 2023, 2024, 2024, 2024,
7833 
7834  2024, 4104, 4034, 4105, 1948, 4106, 2023, 2023, 2023, 2026,
7835  2026, 2026, 2026, 4109, 2024, 4112, 2026, 1985, 1986, 1986,
7836  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7837  1986, 1986, 1986, 1986, 1986, 1986, 1986, 4113, 1986, 1986,
7838  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7839  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7840  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7841  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7842  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7843  1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986, 1986,
7844 
7845  1986, 1986, 1986, 1986, 1986, 1986, 2007, 2007, 2007, 2007,
7846  4114, 4107, 4115, 2007, 4107, 4116, 4117, 2007, 4107, 2007,
7847  2010, 2010, 2010, 2010, 2012, 2012, 2012, 2012, 4118, 4108,
7848  4119, 2012, 4108, 2010, 4120, 2012, 4108, 2012, 2025, 2025,
7849  2025, 2025, 2027, 2027, 2027, 2027, 4122, 4123, 4124, 2027,
7850  2029, 2029, 2029, 2029, 2029, 2025, 4125, 2029, 2030, 2030,
7851  2030, 2030, 4126, 2007, 4127, 2031, 2031, 2031, 2031, 2030,
7852  4131, 4134, 4135, 2030, 4138, 2029, 2031, 2010, 4139, 4140,
7853  4145, 2012, 4146, 4147, 2030, 2030, 2032, 2032, 2032, 2032,
7854  4159, 2007, 2033, 2033, 2033, 2033, 4163, 2032, 4166, 2041,
7855 
7856  2041, 2041, 2041, 2033, 4167, 2010, 4168, 4173, 4177, 2012,
7857  2041, 2039, 2039, 2039, 2039, 2039, 4179, 2033, 2039, 2042,
7858  2042, 2042, 2042, 4180, 2041, 2050, 2050, 2050, 2050, 2050,
7859  2042, 4181, 2050, 4182, 4183, 2029, 2039, 2051, 2051, 2051,
7860  2051, 4184, 2131, 4185, 2042, 2131, 2052, 2052, 2052, 2052,
7861  2050, 4186, 4188, 4189, 2051, 2131, 4192, 2053, 2053, 2053,
7862  2053, 4193, 2051, 2052, 2053, 2054, 2054, 2054, 2054, 4195,
7863  4196, 2052, 2054, 2131, 4197, 2041, 2055, 2055, 2055, 2055,
7864  2068, 2058, 2058, 2058, 2058, 4202, 4203, 2042, 2058, 2068,
7865  2068, 2068, 2068, 4212, 4217, 2131, 2039, 2110, 2110, 2110,
7866 
7867  2110, 2055, 4220, 4231, 4232, 2075, 2075, 2075, 2075, 2075,
7868  2050, 4233, 2075, 4234, 2111, 2111, 2111, 2111, 2052, 2073,
7869  2073, 2073, 2073, 4235, 2110, 2073, 2214, 2214, 2214, 2214,
7870  2075, 4236, 2112, 4237, 4238, 2112, 4241, 2074, 2074, 2074,
7871  2074, 2111, 4242, 4245, 2073, 2119, 2119, 2119, 2119, 4246,
7872  2073, 2112, 2112, 2112, 2112, 2112, 2112, 2119, 2119, 4248,
7873  4249, 4253, 2074, 4256, 2073, 2116, 2116, 2116, 2116, 4257,
7874  2119, 2073, 4266, 4268, 2116, 2073, 2116, 2073, 2116, 2073,
7875  2073, 2073, 4269, 4270, 4271, 2073, 2073, 2073, 2073, 2073,
7876  2075, 2073, 4272, 2073, 2073, 2073, 2073, 2073, 2074, 2120,
7877 
7878  2120, 2120, 2120, 2074, 2117, 2117, 2117, 2117, 4273, 4275,
7879  2120, 2117, 2074, 2117, 4278, 2074, 4279, 2117, 4283, 4287,
7880  2116, 2118, 2118, 2118, 2118, 4290, 4291, 4300, 2118, 2117,
7881  2121, 2121, 2121, 2121, 4301, 4302, 4303, 2121, 2122, 2122,
7882  2122, 2122, 2121, 4304, 4308, 2577, 2118, 4319, 2577, 4320,
7883  2122, 2122, 4324, 2134, 2134, 2134, 2134, 2134, 4325, 2117,
7884  2134, 4326, 4327, 2122, 4328, 2122, 2137, 2137, 2137, 2137,
7885  2140, 2140, 2140, 2140, 4339, 4340, 2577, 2137, 2134, 4341,
7886  4342, 2140, 2141, 2141, 2141, 2141, 4343, 2140, 4344, 2142,
7887  2142, 2142, 2142, 2141, 2143, 2143, 2143, 2143, 2577, 2141,
7888 
7889  2142, 2144, 2144, 2144, 2144, 2143, 2142, 2152, 2152, 2152,
7890  2152, 2143, 2144, 2145, 2145, 2145, 2145, 4348, 2144, 2149,
7891  2149, 2149, 2149, 4349, 2145, 4352, 2146, 2146, 2146, 2146,
7892  2145, 2147, 2147, 2147, 2147, 4353, 4358, 2146, 2134, 2460,
7893  2141, 4686, 2147, 2146, 2149, 2459, 2149, 2458, 2147, 2456,
7894  4686, 2455, 2149, 2150, 2150, 2150, 2150, 2220, 2220, 2220,
7895  2220, 2142, 2151, 2151, 2151, 2151, 4697, 4699, 2450, 2152,
7896  2143, 2154, 2154, 2154, 2154, 4697, 4699, 2144, 2150, 2145,
7897  2150, 4698, 2449, 2448, 2145, 2146, 4702, 2151, 4698, 2151,
7898  2155, 2155, 2155, 2155, 4704, 4702, 2154, 4698, 2154, 2150,
7899 
7900  2447, 2151, 2446, 4704, 2147, 2156, 2156, 2156, 2156, 2157,
7901  2157, 2157, 2157, 2444, 2443, 2155, 2440, 2155, 2158, 2158,
7902  2158, 2158, 2159, 2159, 2159, 2159, 2160, 2160, 2160, 2160,
7903  2156, 2435, 2156, 4706, 2157, 4709, 2157, 2161, 2161, 2161,
7904  2161, 4724, 4706, 2158, 4709, 2158, 2434, 2159, 2154, 2159,
7905  4724, 2160, 2433, 2160, 2162, 2162, 2162, 2162, 2163, 2163,
7906  2163, 2163, 2161, 2429, 2161, 2428, 2155, 2164, 2164, 2164,
7907  2164, 2427, 2165, 2165, 2165, 2165, 2418, 2157, 2417, 2162,
7908  2156, 2162, 2416, 2163, 4169, 2163, 4726, 4169, 2159, 2415,
7909  2414, 4169, 2164, 2158, 2164, 4726, 2413, 2165, 2160, 2165,
7910 
7911  2166, 2166, 2166, 2166, 2225, 2225, 2225, 2225, 2161, 2167,
7912  2167, 2167, 2167, 4731, 2168, 2168, 2168, 2168, 2169, 2169,
7913  2169, 2169, 4731, 2162, 2412, 2166, 2411, 2166, 2163, 2164,
7914  2170, 2170, 2170, 2170, 2167, 4171, 2167, 4739, 4171, 2168,
7915  2165, 2168, 4171, 2169, 2410, 2169, 4739, 2171, 2171, 2171,
7916  2171, 2239, 2239, 2239, 2239, 2170, 2409, 2170, 2172, 2172,
7917  2172, 2172, 2166, 2173, 2173, 2173, 2173, 2174, 2174, 2174,
7918  2174, 2167, 2171, 2408, 2171, 4703, 2168, 2175, 2175, 2175,
7919  2175, 2407, 4703, 2172, 4745, 2172, 2169, 4711, 2173, 4705,
7920  2173, 4703, 2174, 4745, 2174, 2406, 4705, 2176, 2176, 2176,
7921 
7922  2176, 2405, 2175, 4711, 2175, 4705, 2170, 2177, 2177, 2177,
7923  2177, 2403, 4711, 2171, 2231, 2231, 2231, 2231, 2579, 2400,
7924  2172, 2579, 2176, 2173, 2176, 2178, 2178, 2178, 2178, 2399,
7925  2398, 4748, 2177, 2397, 2177, 2179, 2179, 2179, 2179, 2231,
7926  4748, 2174, 2175, 2180, 2180, 2180, 2180, 4716, 2451, 2579,
7927  2178, 2451, 2178, 2181, 2181, 2181, 2181, 4707, 4750, 2396,
7928  2179, 2451, 2179, 4716, 4707, 2177, 2451, 4750, 2180, 4725,
7929  2180, 2579, 4716, 4707, 2176, 2451, 4725, 4752, 2181, 4754,
7930  2181, 2182, 2182, 2182, 2182, 4725, 4752, 2178, 4754, 2183,
7931  2183, 2183, 2183, 2184, 2184, 2184, 2184, 2185, 2185, 2185,
7932 
7933  2185, 2186, 2186, 2186, 2186, 2451, 2182, 2395, 2182, 2187,
7934  2187, 2187, 2187, 2179, 2183, 2180, 2183, 2393, 2184, 2180,
7935  2184, 2181, 2185, 2392, 2185, 2391, 2186, 2390, 2186, 2188,
7936  2188, 2188, 2188, 2451, 2187, 4727, 2187, 2189, 2189, 2189,
7937  2189, 2388, 4727, 2190, 2190, 2190, 2190, 2191, 2191, 2191,
7938  2191, 4727, 4757, 2386, 2188, 2385, 2188, 2192, 2192, 2192,
7939  2192, 4757, 2189, 2384, 2189, 2186, 2183, 2185, 2190, 2380,
7940  2190, 2184, 2191, 2378, 2191, 2193, 2193, 2193, 2193, 2376,
7941  2374, 2372, 2192, 4717, 2192, 2187, 2194, 2194, 2194, 2194,
7942  2195, 2195, 2195, 2195, 2198, 2198, 2198, 2198, 2370, 4717,
7943 
7944  2193, 2368, 2193, 4759, 2366, 2190, 2188, 2201, 4717, 2189,
7945  2201, 2194, 4759, 2194, 2365, 2195, 2202, 2195, 2191, 2202,
7946  2363, 2198, 2199, 2199, 2199, 2199, 4746, 2192, 2200, 2200,
7947  2200, 2200, 2200, 4746, 2201, 2200, 2203, 2204, 2201, 2203,
7948  2204, 2361, 4746, 2202, 2357, 2355, 2344, 2202, 2195, 2199,
7949  2204, 2343, 2193, 2200, 2235, 2235, 2235, 2235, 2340, 2339,
7950  2201, 2336, 2194, 2203, 2204, 2235, 2332, 2203, 2204, 2202,
7951  2238, 2238, 2238, 2238, 2240, 2244, 2238, 2240, 2330, 4762,
7952  2329, 2235, 4765, 4768, 2244, 2244, 2244, 2244, 4762, 2203,
7953  2204, 4765, 4768, 2240, 2240, 2240, 2240, 2240, 2240, 2245,
7954 
7955  2245, 2245, 2245, 2247, 2247, 2247, 2247, 2252, 2252, 2252,
7956  2252, 4770, 4772, 2200, 2252, 2253, 2253, 2253, 2253, 2328,
7957  4770, 4772, 2253, 2254, 2254, 2254, 2254, 2255, 2255, 2255,
7958  2255, 2327, 2256, 2256, 2256, 2256, 2286, 2286, 2286, 2286,
7959  2254, 4774, 4787, 2326, 2255, 4789, 4801, 4809, 2254, 2256,
7960  4774, 4787, 2255, 2286, 4789, 4801, 4809, 2256, 2260, 2260,
7961  2260, 2260, 2260, 2264, 2325, 2260, 2290, 2290, 2290, 2290,
7962  2318, 2317, 2264, 2264, 2264, 2264, 4812, 4755, 2252, 2283,
7963  2283, 2283, 2283, 2260, 4755, 4812, 2283, 2316, 2315, 2255,
7964  2314, 2313, 2283, 4755, 2312, 2254, 2284, 2284, 2284, 2284,
7965 
7966  4760, 2311, 2310, 2284, 2309, 4814, 2256, 4760, 4763, 2284,
7967  2288, 2288, 2288, 2288, 4814, 4763, 4760, 2288, 2289, 2289,
7968  2289, 2289, 2308, 2307, 4763, 2289, 2298, 2298, 2298, 2298,
7969  2299, 2299, 2299, 2299, 2335, 2333, 2338, 2335, 2306, 2338,
7970  2305, 2298, 2302, 2260, 2333, 2333, 2333, 2333, 2342, 2342,
7971  2342, 2342, 2301, 2346, 2346, 2346, 2346, 4771, 2300, 2296,
7972  2346, 2335, 2295, 2338, 4771, 2335, 2346, 2338, 2347, 2347,
7973  2347, 2347, 4810, 4771, 2294, 2347, 2293, 2348, 2348, 2348,
7974  2348, 2347, 2349, 2349, 2349, 2349, 2287, 2335, 4810, 2338,
7975  2348, 2352, 2352, 2352, 2352, 2352, 4817, 4810, 2352, 2353,
7976 
7977  2353, 2353, 2353, 2358, 2280, 4817, 2279, 2349, 2369, 2278,
7978  2353, 2277, 2358, 2358, 2358, 2358, 2352, 2369, 2369, 2369,
7979  2369, 2373, 2276, 2382, 2275, 2377, 2382, 2274, 2273, 2381,
7980  2373, 2373, 2373, 2373, 2377, 2377, 2377, 2377, 2381, 2381,
7981  2381, 2381, 2382, 2382, 2382, 2382, 2382, 2382, 2389, 2419,
7982  2419, 2419, 2419, 2420, 2420, 2420, 2420, 2389, 2389, 2389,
7983  2389, 2419, 2271, 2268, 2419, 2421, 2421, 2421, 2421, 2422,
7984  2422, 2422, 2422, 2263, 2261, 2251, 2352, 2423, 2423, 2423,
7985  2423, 2424, 2424, 2424, 2424, 2425, 2425, 2425, 2425, 2426,
7986  2426, 2426, 2426, 2424, 2250, 2431, 2431, 2431, 2431, 2431,
7987 
7988  4815, 2426, 2431, 2467, 2467, 2467, 2467, 2473, 2473, 2473,
7989  2473, 2243, 2474, 2474, 2474, 2474, 4815, 4824, 2473, 2241,
7990  2431, 2237, 2473, 2474, 2234, 4815, 4824, 2474, 2490, 2490,
7991  2490, 2490, 2473, 2473, 2473, 2490, 2233, 2474, 2474, 2474,
7992  2476, 2476, 2476, 2476, 2493, 2493, 2493, 2493, 2232, 2230,
7993  2229, 2476, 2495, 2495, 2495, 2495, 2497, 2497, 2497, 2497,
7994  4773, 2505, 2228, 2497, 2227, 2476, 4828, 4773, 2226, 2493,
7995  2505, 2505, 2505, 2505, 2224, 4828, 4773, 2495, 2223, 2222,
7996  2431, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
7997  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
7998 
7999  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
8000  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
8001  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
8002  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
8003  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
8004  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442,
8005  2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2442, 2452,
8006  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8007  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2219, 2452,
8008  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8009 
8010  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8011  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8012  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8013  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8014  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452, 2452,
8015  2452, 2452, 2452, 2452, 2452, 2452, 2452, 2466, 2466, 2466,
8016  2466, 2482, 2482, 2482, 2482, 2483, 2483, 2483, 2483, 2213,
8017  2466, 4856, 2482, 4843, 4852, 2212, 2483, 2489, 2489, 2489,
8018  2489, 2489, 4843, 4852, 2489, 2211, 2482, 4856, 4874, 2210,
8019  2483, 2491, 2491, 2491, 2491, 2491, 4856, 4874, 2491, 2209,
8020 
8021  2208, 4857, 2489, 2494, 2494, 2494, 2494, 2509, 2509, 2509,
8022  2509, 2207, 2206, 2205, 2466, 2197, 2491, 4857, 4775, 2196,
8023  2494, 2559, 2559, 2559, 2559, 4775, 4857, 2483, 2494, 2153,
8024  2139, 2136, 2509, 2135, 4775, 2482, 2556, 2556, 2556, 2556,
8025  4788, 2124, 2466, 2556, 4866, 2556, 2559, 4788, 2559, 2556,
8026  2557, 2557, 2557, 2557, 2123, 2114, 4788, 2557, 2113, 2557,
8027  4866, 2556, 2489, 2557, 2647, 2647, 2647, 2647, 2509, 4866,
8028  2109, 2494, 2108, 2509, 4803, 2557, 2491, 2508, 2508, 2508,
8029  2508, 4803, 2509, 2508, 2107, 2509, 2560, 2560, 2560, 2560,
8030  4803, 2556, 2106, 2560, 2561, 2561, 2561, 2561, 2105, 2104,
8031 
8032  2103, 2561, 2508, 2102, 2099, 2557, 2098, 4867, 2508, 2562,
8033  2562, 2562, 2562, 2563, 2563, 2563, 2563, 2652, 2652, 2652,
8034  2652, 2562, 2508, 4867, 2563, 2659, 2659, 2659, 2659, 2508,
8035  2097, 4879, 4867, 2508, 2562, 2508, 2562, 2508, 2508, 2508,
8036  4879, 4881, 2652, 2508, 2508, 2508, 2508, 2508, 2095, 2508,
8037  4881, 2508, 2508, 2508, 2508, 2508, 2565, 2565, 2565, 2565,
8038  2094, 4886, 2093, 2565, 2566, 2566, 2566, 2566, 2565, 2568,
8039  4886, 2566, 2092, 2091, 2568, 2090, 2566, 2665, 2665, 2665,
8040  2665, 2568, 2568, 2568, 2568, 2568, 2568, 2569, 2569, 2569,
8041  2569, 2087, 2086, 2085, 2569, 2083, 2569, 2082, 2081, 4912,
8042 
8043  2569, 2571, 2571, 2571, 2571, 2586, 2586, 2586, 2586, 2080,
8044  2079, 2077, 2569, 2571, 4899, 4912, 2586, 2587, 2587, 2587,
8045  2587, 2067, 2586, 4899, 4912, 2065, 2571, 2064, 2587, 2588,
8046  2588, 2588, 2588, 2063, 2587, 4942, 2589, 2589, 2589, 2589,
8047  2588, 2062, 2569, 4971, 4942, 4975, 2588, 2589, 2590, 2590,
8048  2590, 2590, 4971, 2589, 4975, 2591, 2591, 2591, 2591, 2590,
8049  2592, 2592, 2592, 2592, 2061, 2590, 2591, 2593, 2593, 2593,
8050  2593, 2592, 2591, 2673, 2673, 2673, 2673, 2592, 2593, 2594,
8051  2594, 2594, 2594, 2060, 2593, 2595, 2595, 2595, 2595, 2059,
8052  2594, 2057, 2587, 2048, 2043, 2040, 2594, 2588, 2589, 2596,
8053 
8054  2596, 2596, 2596, 2597, 2597, 2597, 2597, 2038, 4991, 2020,
8055  2595, 2017, 2595, 2016, 2590, 4790, 4790, 4991, 2598, 2598,
8056  2598, 2598, 4790, 4995, 2596, 2595, 2596, 2015, 2597, 2009,
8057  2597, 4790, 4995, 2591, 2008, 2593, 2592, 2599, 2599, 2599,
8058  2599, 2597, 2596, 2598, 2004, 2598, 2600, 2600, 2600, 2600,
8059  1998, 2601, 2601, 2601, 2601, 1997, 2594, 2602, 2602, 2602,
8060  2602, 1995, 2599, 4811, 2599, 2603, 2603, 2603, 2603, 1994,
8061  4811, 2600, 5016, 2600, 5017, 1989, 2601, 2598, 2601, 4811,
8062  5024, 5016, 2602, 5017, 2602, 2604, 2604, 2604, 2604, 5024,
8063  2603, 1988, 2603, 2606, 2606, 2606, 2606, 2607, 2607, 2607,
8064 
8065  2607, 4813, 2608, 2608, 2608, 2608, 1987, 1984, 4813, 2601,
8066  2604, 2599, 2604, 2609, 2609, 2609, 2609, 4813, 2606, 5057,
8067  2606, 2600, 2607, 4816, 2607, 5094, 1983, 2608, 5057, 2608,
8068  4816, 1982, 1981, 2602, 5094, 2603, 5121, 5137, 2609, 4816,
8069  2609, 2672, 2672, 2672, 2672, 5121, 5137, 2672, 1980, 1978,
8070  1977, 2604, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605,
8071  2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605,
8072  2605, 2605, 1976, 2607, 2608, 2606, 5144, 1975, 2605, 2609,
8073  2605, 2605, 2605, 2605, 2605, 5144, 2610, 2610, 2610, 2610,
8074  1965, 2611, 2611, 2611, 2611, 2612, 2612, 2612, 2612, 2613,
8075 
8076  2613, 2613, 2613, 5163, 1964, 2605, 2605, 2605, 2605, 1959,
8077  2605, 2610, 5163, 2610, 5234, 1958, 2611, 1957, 2611, 1956,
8078  2612, 1953, 2612, 5234, 2613, 1952, 2613, 2614, 2614, 2614,
8079  2614, 2615, 2615, 2615, 2615, 2605, 2605, 2605, 2605, 2605,
8080  2616, 2616, 2616, 2616, 1941, 2617, 2617, 2617, 2617, 1939,
8081  4818, 1938, 2614, 1921, 2614, 4854, 2615, 4818, 2615, 1915,
8082  2610, 2611, 4854, 1911, 1909, 2616, 4818, 2616, 1908, 2612,
8083  2617, 4854, 2617, 1907, 1906, 1905, 2613, 2618, 2618, 2618,
8084  2618, 2619, 2619, 2619, 2619, 2620, 2620, 2620, 2620, 1904,
8085  2621, 2621, 2621, 2621, 2622, 2622, 2622, 2622, 2614, 1901,
8086 
8087  1900, 2615, 2618, 1896, 2618, 1895, 2619, 1890, 2619, 1884,
8088  2620, 4859, 2620, 1880, 2616, 2621, 2617, 2621, 4859, 2622,
8089  1879, 2622, 1878, 2623, 2623, 2623, 2623, 4859, 1877, 2624,
8090  2624, 2624, 2624, 1876, 1875, 2618, 2625, 2625, 2625, 2625,
8091  2626, 2626, 2626, 2626, 2671, 2671, 2671, 2671, 2623, 2621,
8092  2623, 1873, 2619, 2620, 2624, 2671, 2624, 2627, 2627, 2627,
8093  2627, 2625, 1872, 2625, 4999, 2626, 1865, 2626, 1864, 2622,
8094  2628, 2628, 2628, 2628, 2629, 2629, 2629, 2629, 1860, 1859,
8095  4999, 2623, 2627, 1844, 2627, 2630, 2630, 2630, 2630, 4999,
8096  1842, 2624, 1835, 4860, 1833, 2628, 1830, 2628, 2625, 2629,
8097 
8098  4860, 2629, 2631, 2631, 2631, 2631, 2626, 1827, 1822, 4860,
8099  2630, 1812, 2630, 2697, 2697, 2697, 2697, 2627, 1811, 2632,
8100  2632, 2632, 2632, 2633, 2633, 2633, 2633, 2631, 1810, 2631,
8101  2697, 4861, 2627, 1806, 1805, 1804, 2628, 1803, 4861, 1802,
8102  2629, 1796, 1792, 2630, 2632, 1777, 2632, 4861, 2633, 1775,
8103  2633, 2634, 2634, 2634, 2634, 2635, 2635, 2635, 2635, 2636,
8104  2636, 2636, 2636, 2637, 2637, 2637, 2637, 1772, 1771, 1756,
8105  2631, 2638, 2638, 2638, 2638, 1755, 2634, 1753, 2634, 1752,
8106  2635, 1751, 2635, 2633, 2636, 2632, 2636, 1742, 2637, 1737,
8107  2637, 1736, 2680, 2680, 2680, 2680, 2638, 1734, 2638, 2639,
8108 
8109  2639, 2639, 2639, 2640, 2640, 2640, 2640, 1725, 1724, 2680,
8110  1720, 2677, 2699, 2699, 2699, 2699, 2635, 2680, 1719, 2634,
8111  2677, 2677, 2677, 2677, 2639, 2635, 2639, 2637, 2640, 2636,
8112  2640, 2685, 4880, 2638, 2681, 2681, 2681, 2681, 1718, 4880,
8113  2685, 2685, 2685, 2685, 2704, 2704, 2704, 2704, 4880, 1717,
8114  4888, 2681, 2730, 2732, 2732, 2732, 2732, 4888, 1715, 2681,
8115  1714, 2730, 2730, 2730, 2730, 1713, 4888, 2680, 2733, 2733,
8116  2733, 2733, 2734, 2734, 2734, 2734, 2639, 2739, 1712, 2640,
8117  1704, 2733, 2735, 2735, 2735, 2735, 2739, 2739, 2739, 2739,
8118  2747, 1682, 2681, 1681, 2750, 1680, 1679, 2734, 1677, 2747,
8119 
8120  2747, 2747, 2747, 2750, 2750, 2750, 2750, 2735, 2753, 1676,
8121  1673, 1662, 2756, 2787, 2787, 2787, 2787, 2753, 2753, 2753,
8122  2753, 2756, 2756, 2756, 2756, 2762, 1660, 2732, 2818, 2818,
8123  2818, 2818, 1659, 1658, 2762, 2762, 2762, 2762, 2798, 2798,
8124  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8125  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8126  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8127  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8128  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8129  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8130 
8131  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8132  2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798, 2798,
8133  2798, 2798, 2798, 2798, 2798, 2798, 2815, 2815, 1652, 1651,
8134  1649, 2815, 1648, 1627, 2815, 2815, 2817, 2817, 2817, 2817,
8135  2823, 2823, 2823, 2823, 2815, 5039, 2815, 1623, 1621, 2817,
8136  1620, 2823, 2824, 2824, 2824, 2824, 1617, 2826, 2826, 2826,
8137  2826, 5039, 1604, 2824, 2826, 2823, 2827, 2827, 2827, 2827,
8138  5039, 1596, 1592, 2827, 1580, 1574, 1569, 2824, 2829, 2829,
8139  2829, 2829, 2831, 2831, 2831, 2831, 2831, 1566, 1562, 2831,
8140  5062, 1552, 1551, 2817, 2832, 2832, 2832, 2832, 2823, 2833,
8141 
8142  2833, 2833, 2833, 2829, 1549, 1548, 5062, 2831, 2859, 2859,
8143  2859, 2859, 1547, 2824, 1546, 5062, 2833, 1545, 1544, 2832,
8144  1543, 2817, 1542, 1541, 2833, 2844, 2844, 2844, 2844, 2893,
8145  2893, 2893, 2893, 1540, 1539, 5074, 2893, 2894, 2894, 2894,
8146  2894, 2898, 2898, 2898, 2898, 2982, 2982, 2982, 2982, 1537,
8147  2844, 5074, 1530, 2898, 2893, 2895, 2895, 2895, 2895, 1528,
8148  5074, 2833, 2894, 1527, 1526, 1524, 2898, 2831, 2843, 2843,
8149  2843, 2843, 4868, 5211, 2843, 2983, 2983, 2983, 2983, 4868,
8150  2895, 4868, 2895, 1523, 1522, 4889, 2844, 1520, 4868, 5211,
8151  2859, 2844, 4889, 2843, 2899, 2899, 2899, 2899, 5211, 2843,
8152 
8153  2844, 4889, 1498, 2844, 1496, 1495, 2899, 2990, 2990, 2990,
8154  2990, 4898, 1458, 2843, 2908, 2908, 2908, 2908, 4898, 2899,
8155  2843, 2899, 1456, 1445, 2843, 2908, 2843, 4898, 2843, 2843,
8156  2843, 2908, 1444, 1436, 2843, 2843, 2843, 2843, 2843, 1425,
8157  2843, 1424, 2843, 2843, 2843, 2843, 2843, 2901, 2995, 2995,
8158  2995, 2995, 2901, 2902, 2917, 2917, 2917, 2917, 2902, 2901,
8159  2901, 2901, 2901, 2901, 2901, 2902, 2902, 2902, 2902, 2902,
8160  2902, 2909, 2909, 2909, 2909, 2910, 2910, 2910, 2910, 2917,
8161  1419, 2917, 2909, 1417, 1415, 1414, 2910, 1412, 2909, 1410,
8162  2917, 1408, 2910, 2911, 2911, 2911, 2911, 2912, 2912, 2912,
8163 
8164  2912, 1407, 1406, 5205, 2911, 1404, 1402, 1401, 2912, 5205,
8165  2911, 1400, 1399, 1397, 2912, 2913, 2913, 2913, 2913, 2914,
8166  2914, 2914, 2914, 1388, 1387, 5205, 2913, 1386, 1384, 5236,
8167  2914, 5212, 2913, 1382, 5205, 5236, 2914, 2910, 2915, 2915,
8168  2915, 2915, 2916, 2916, 2916, 2916, 2909, 5212, 1381, 2915,
8169  4909, 5236, 1380, 2916, 1379, 2915, 5212, 4909, 1377, 2916,
8170  5236, 2918, 2918, 2918, 2918, 1352, 4909, 2911, 2912, 2919,
8171  2919, 2919, 2919, 2913, 2920, 2920, 2920, 2920, 1343, 1341,
8172  1339, 2914, 2921, 2921, 2921, 2921, 2918, 1338, 2918, 1327,
8173  2914, 1316, 1312, 1286, 2919, 1282, 2919, 1269, 1268, 2920,
8174 
8175  1264, 2920, 1262, 1255, 2915, 2918, 1254, 2921, 2916, 2921,
8176  1237, 2919, 2922, 2922, 2922, 2922, 2923, 2923, 2923, 2923,
8177  2924, 2924, 2924, 2924, 2925, 2925, 2925, 2925, 2926, 2926,
8178  2926, 2926, 2928, 2928, 2928, 2928, 1236, 2922, 1235, 2922,
8179  2921, 2923, 2920, 2923, 1232, 2924, 1219, 2924, 1218, 2925,
8180  1217, 2925, 1208, 2926, 1196, 2926, 1184, 2928, 1173, 2928,
8181  2931, 2931, 2931, 2931, 1172, 2932, 2932, 2932, 2932, 1171,
8182  2934, 2934, 2934, 2934, 2935, 2935, 2935, 2935, 2924, 2936,
8183  2936, 2936, 2936, 1170, 1169, 2931, 2925, 2931, 1168, 4917,
8184  2932, 2923, 2932, 1167, 2922, 2934, 4917, 2934, 2926, 2935,
8185 
8186  1166, 2935, 1158, 1151, 2936, 4917, 2936, 2937, 2937, 2937,
8187  2937, 2938, 2938, 2938, 2938, 1136, 2939, 2939, 2939, 2939,
8188  2940, 2940, 2940, 2940, 1126, 2932, 2941, 2941, 2941, 2941,
8189  4920, 1107, 2937, 1097, 2937, 1096, 2938, 4920, 2938, 2936,
8190  2932, 2939, 1059, 2939, 1053, 2940, 4920, 2940, 1052, 1051,
8191  2935, 2941, 1028, 2941, 3002, 3002, 3002, 3002, 2942, 2942,
8192  2942, 2942, 2943, 2943, 2943, 2943, 2944, 2944, 2944, 2944,
8193  1027, 3002, 2938, 2945, 2945, 2945, 2945, 2937, 1019, 3002,
8194  1011, 2940, 2939, 2942, 1003, 2942, 994, 2943, 984, 2943,
8195  978, 2944, 973, 2944, 965, 964, 2941, 959, 2945, 958,
8196 
8197  2945, 2946, 2946, 2946, 2946, 954, 2947, 2947, 2947, 2947,
8198  2948, 2948, 2948, 2948, 2949, 2949, 2949, 2949, 948, 937,
8199  2942, 2950, 2950, 2950, 2950, 2943, 2946, 926, 2946, 899,
8200  3002, 2947, 2943, 2947, 893, 2948, 892, 2948, 2944, 2949,
8201  891, 2949, 2951, 2951, 2951, 2951, 2950, 2945, 2950, 2952,
8202  2952, 2952, 2952, 890, 2953, 2953, 2953, 2953, 2956, 2956,
8203  2956, 2956, 2946, 2957, 2957, 2957, 2957, 2951, 2947, 2951,
8204  3008, 3008, 3008, 3008, 2952, 4922, 2952, 889, 2948, 2953,
8205  4928, 2953, 4922, 2956, 888, 2956, 2949, 4928, 2957, 885,
8206  2957, 4922, 2958, 2958, 2958, 2958, 4928, 2950, 881, 2959,
8207 
8208  2959, 2959, 2959, 2960, 2960, 2960, 2960, 871, 870, 2952,
8209  2961, 2961, 2961, 2961, 2953, 4929, 2951, 2958, 4930, 2958,
8210  4941, 869, 4929, 2957, 2959, 4930, 2959, 4941, 2960, 2953,
8211  2960, 4929, 2956, 868, 4930, 2961, 4941, 2961, 854, 2962,
8212  2962, 2962, 2962, 2963, 2963, 2963, 2963, 853, 2964, 2964,
8213  2964, 2964, 2965, 2965, 2965, 2965, 2966, 2966, 2966, 2966,
8214  2958, 2959, 4949, 2960, 2962, 851, 2962, 850, 2963, 4949,
8215  2963, 849, 848, 2964, 847, 2964, 815, 2965, 4949, 2965,
8216  790, 2966, 784, 2966, 782, 781, 2961, 2967, 2967, 2967,
8217  2967, 2968, 2968, 2968, 2968, 780, 757, 2962, 2969, 2969,
8218 
8219  2969, 2969, 750, 735, 734, 2963, 2964, 677, 2988, 2988,
8220  2988, 2988, 2967, 665, 2967, 663, 2968, 645, 2968, 2988,
8221  629, 628, 626, 2969, 619, 2969, 2992, 2992, 2992, 2992,
8222  2994, 2994, 2994, 2994, 2965, 595, 2994, 2992, 594, 592,
8223  3001, 3001, 3001, 3001, 3009, 3009, 3009, 3009, 578, 2968,
8224  569, 568, 558, 3039, 3039, 3039, 3039, 3001, 556, 555,
8225  3039, 554, 552, 2967, 2969, 3001, 3039, 3111, 3111, 3111,
8226  3111, 3112, 3112, 3112, 3112, 551, 550, 546, 3111, 497,
8227  465, 461, 3112, 2988, 3114, 3114, 3114, 3114, 3114, 5237,
8228  457, 3114, 3111, 456, 422, 5237, 3112, 3115, 3115, 3115,
8229 
8230  3115, 3119, 3119, 3119, 3119, 3133, 3133, 3133, 3133, 3114,
8231  3009, 5237, 3001, 420, 3115, 418, 3122, 3122, 3122, 3122,
8232  5237, 409, 3115, 3135, 3135, 3135, 3135, 3111, 3136, 3136,
8233  3136, 3136, 3137, 3137, 3137, 3137, 3161, 3161, 3161, 3161,
8234  404, 3122, 3169, 3169, 3169, 3169, 370, 359, 341, 3169,
8235  339, 324, 292, 3112, 3170, 3170, 3170, 3170, 4950, 4950,
8236  285, 3170, 0, 3170, 0, 4950, 3115, 3170, 0, 3114,
8237  3121, 3121, 3121, 3121, 4950, 0, 3121, 3122, 0, 3170,
8238  0, 3135, 3122, 3172, 3172, 3172, 3172, 3133, 3136, 0,
8239  0, 3122, 0, 0, 3122, 3121, 3175, 3175, 3175, 3175,
8240 
8241  0, 3121, 0, 3136, 4963, 4970, 0, 3175, 3172, 3170,
8242  4972, 4963, 4970, 3175, 0, 3121, 0, 4972, 3161, 0,
8243  4963, 4970, 3121, 0, 4972, 0, 3121, 4973, 3121, 0,
8244  3121, 3121, 3121, 4972, 4973, 0, 3121, 3121, 3121, 3121,
8245  3121, 0, 3121, 4973, 3121, 3121, 3121, 3121, 3121, 3176,
8246  3176, 3176, 3176, 3177, 3177, 3177, 3177, 0, 0, 0,
8247  3176, 0, 0, 0, 3177, 0, 3176, 0, 0, 0,
8248  3177, 3178, 3178, 3178, 3178, 3179, 3179, 3179, 3179, 0,
8249  0, 0, 3178, 0, 0, 0, 3179, 0, 3178, 0,
8250  0, 0, 3179, 3180, 3180, 3180, 3180, 3181, 3181, 3181,
8251 
8252  3181, 0, 0, 0, 3180, 0, 0, 0, 3181, 0,
8253  3180, 0, 0, 0, 3181, 0, 3177, 0, 3176, 3182,
8254  3182, 3182, 3182, 3183, 3183, 3183, 3183, 0, 0, 0,
8255  3182, 0, 0, 0, 3183, 0, 3182, 0, 0, 0,
8256  3183, 3178, 3184, 3184, 3184, 3184, 3185, 3185, 3185, 3185,
8257  0, 3179, 0, 3180, 0, 0, 0, 3181, 3186, 3186,
8258  3186, 3186, 3187, 3187, 3187, 3187, 0, 3184, 4974, 3184,
8259  4977, 3185, 0, 3185, 0, 4974, 3184, 4977, 0, 3182,
8260  0, 0, 3185, 3186, 4974, 3186, 4977, 3187, 0, 3187,
8261  3186, 3188, 3188, 3188, 3188, 0, 0, 3183, 3189, 3189,
8262 
8263  3189, 3189, 3191, 3191, 3191, 3191, 3192, 3192, 3192, 3192,
8264  3193, 3193, 3193, 3193, 0, 0, 3188, 0, 3188, 3194,
8265  3194, 3194, 3194, 3189, 0, 3189, 0, 3191, 3187, 3191,
8266  3194, 3192, 0, 3192, 0, 3193, 0, 3193, 3195, 3195,
8267  3195, 3195, 0, 0, 3194, 0, 3194, 3198, 3198, 3198,
8268  3198, 3188, 3240, 3240, 3240, 3240, 0, 0, 3192, 3199,
8269  3199, 3199, 3199, 3195, 4976, 3195, 3192, 0, 3192, 4992,
8270  4992, 4976, 3198, 0, 3198, 0, 4992, 3191, 4976, 0,
8271  3193, 3192, 0, 3192, 3199, 4992, 3199, 4976, 3200, 3200,
8272  3200, 3200, 3201, 3201, 3201, 3201, 0, 3201, 0, 3202,
8273 
8274  3202, 3202, 3202, 3203, 3203, 3203, 3203, 3204, 3204, 3204,
8275  3204, 4994, 0, 3200, 3195, 3200, 0, 3201, 4994, 3201,
8276  3205, 3205, 3205, 3205, 3202, 3199, 3202, 4994, 3203, 0,
8277  3203, 0, 3204, 0, 3204, 3206, 3206, 3206, 3206, 3207,
8278  3207, 3207, 3207, 0, 0, 3205, 0, 3205, 3208, 3208,
8279  3208, 3208, 5002, 0, 3200, 3209, 3209, 3209, 3209, 5002,
8280  3206, 0, 3206, 3203, 3207, 5007, 3207, 0, 5002, 3204,
8281  0, 0, 5007, 3208, 0, 3208, 3210, 3210, 3210, 3210,
8282  3209, 5007, 3209, 3211, 3211, 3211, 3211, 0, 3205, 3212,
8283  3212, 3212, 3212, 3213, 3213, 3213, 3213, 3207, 0, 0,
8284 
8285  0, 3210, 0, 3210, 0, 0, 3208, 0, 3211, 0,
8286  3211, 0, 0, 0, 3212, 0, 3212, 0, 3213, 0,
8287  3213, 3214, 3214, 3214, 3214, 3215, 3215, 3215, 3215, 3216,
8288  3216, 3216, 3216, 0, 3217, 3217, 3217, 3217, 3218, 3218,
8289  3218, 3218, 3219, 3219, 3219, 3219, 3214, 0, 3214, 0,
8290  3215, 0, 3215, 0, 3216, 3213, 3216, 3210, 3211, 3217,
8291  0, 3217, 0, 3218, 0, 3218, 0, 3219, 0, 3219,
8292  3222, 3222, 3222, 3222, 3223, 3223, 3223, 3223, 0, 3214,
8293  0, 0, 0, 3218, 0, 0, 0, 3215, 0, 3224,
8294  3224, 3224, 3224, 5018, 5025, 3222, 5025, 3222, 5018, 3223,
8295 
8296  5018, 3223, 0, 5025, 0, 3216, 0, 3219, 0, 5018,
8297  3217, 0, 5025, 3218, 3224, 0, 3224, 3225, 3225, 3225,
8298  3225, 3226, 3226, 3226, 3226, 3227, 3227, 3227, 3227, 0,
8299  0, 0, 3222, 0, 0, 0, 3223, 0, 3228, 3228,
8300  3228, 3228, 3225, 0, 3225, 0, 3226, 0, 3226, 0,
8301  3227, 0, 3227, 3229, 3229, 3229, 3229, 3230, 3230, 3230,
8302  3230, 0, 0, 3228, 3224, 3228, 0, 3231, 3231, 3231,
8303  3231, 3233, 3233, 3233, 3233, 0, 0, 0, 3229, 0,
8304  3229, 0, 3230, 0, 3230, 3234, 3234, 3234, 3234, 0,
8305  5026, 0, 3231, 3225, 3231, 0, 3233, 5026, 3233, 5026,
8306 
8307  3235, 3235, 3235, 3235, 0, 0, 5026, 3227, 0, 0,
8308  3234, 0, 3234, 0, 3228, 0, 3229, 3236, 3236, 3236,
8309  3236, 3237, 3237, 3237, 3237, 3235, 3230, 3235, 3244, 3244,
8310  3244, 3244, 3249, 3249, 3249, 3249, 0, 0, 0, 3244,
8311  0, 0, 3236, 0, 3236, 3234, 3237, 0, 3237, 3250,
8312  3250, 3250, 3250, 3253, 3253, 3253, 3253, 0, 0, 0,
8313  3234, 0, 0, 0, 3253, 3254, 3254, 3254, 3254, 3255,
8314  3255, 3255, 3255, 3257, 3257, 3257, 3257, 0, 0, 5038,
8315  3255, 3235, 0, 0, 0, 3236, 5038, 0, 0, 3237,
8316  3260, 3260, 3260, 3260, 0, 5038, 3260, 3261, 3261, 3261,
8317 
8318  3261, 0, 0, 3244, 3263, 3263, 3263, 3263, 3264, 3264,
8319  3264, 3264, 3342, 3342, 3342, 3342, 3343, 3343, 3343, 3343,
8320  0, 3263, 0, 3342, 5044, 3264, 0, 3343, 0, 3263,
8321  0, 5044, 0, 3264, 0, 0, 0, 3342, 0, 0,
8322  5044, 3343, 3346, 3346, 3346, 3346, 3348, 3348, 3348, 3348,
8323  3350, 3350, 3350, 3350, 3351, 3351, 3351, 3351, 0, 3346,
8324  0, 0, 3263, 3352, 3352, 3352, 3352, 3346, 3353, 3353,
8325  3353, 3353, 3365, 3365, 3365, 3365, 0, 0, 0, 3264,
8326  3367, 3367, 3367, 3367, 3369, 3369, 3369, 3369, 3342, 3372,
8327  3372, 3372, 3372, 3353, 3374, 3374, 3374, 3374, 3343, 3377,
8328 
8329  3377, 3377, 3377, 0, 3346, 3380, 3380, 3380, 3380, 0,
8330  0, 3386, 3386, 3386, 3386, 3391, 3391, 3391, 3391, 3392,
8331  3392, 3392, 3392, 5052, 3377, 3395, 3395, 3395, 3395, 3353,
8332  5052, 0, 3367, 0, 3353, 0, 3386, 0, 0, 5052,
8333  3367, 0, 3367, 3353, 0, 0, 3353, 3403, 3403, 3403,
8334  3403, 3468, 3468, 3468, 3468, 3367, 3386, 3367, 3403, 3404,
8335  3404, 3404, 3404, 0, 3403, 0, 3405, 3405, 3405, 3405,
8336  3404, 3406, 3406, 3406, 3406, 0, 3404, 3405, 3407, 3407,
8337  3407, 3407, 3406, 3405, 0, 0, 3386, 0, 3406, 3407,
8338  0, 3408, 3408, 3408, 3408, 3407, 3409, 3409, 3409, 3409,
8339 
8340  0, 3392, 3408, 3410, 3410, 3410, 3410, 3409, 3408, 3403,
8341  0, 0, 0, 3409, 3410, 0, 0, 3404, 0, 0,
8342  3410, 0, 0, 0, 3405, 3411, 3411, 3411, 3411, 3471,
8343  3471, 3471, 3471, 3406, 3412, 3412, 3412, 3412, 0, 0,
8344  3471, 3413, 3413, 3413, 3413, 3414, 3414, 3414, 3414, 0,
8345  3411, 0, 3411, 5055, 3407, 3472, 3472, 3472, 3472, 3412,
8346  5055, 3412, 3408, 0, 0, 3410, 3413, 0, 3413, 5055,
8347  3414, 0, 3414, 3411, 3415, 3415, 3415, 3415, 0, 0,
8348  3412, 0, 3413, 3416, 3416, 3416, 3416, 3419, 3419, 3419,
8349  3419, 3420, 3420, 3420, 3420, 3421, 3421, 3421, 3421, 3415,
8350 
8351  3421, 3415, 3420, 0, 0, 3421, 0, 0, 3416, 0,
8352  3416, 0, 3419, 0, 3419, 0, 3420, 0, 3420, 0,
8353  3414, 3422, 3422, 3422, 3422, 0, 3425, 3425, 3425, 3425,
8354  3426, 3426, 3426, 3426, 3427, 3427, 3427, 3427, 5070, 3427,
8355  3429, 3429, 3429, 3429, 0, 5070, 3422, 0, 3422, 0,
8356  3415, 3425, 0, 3425, 5070, 3426, 0, 3426, 0, 3427,
8357  0, 3427, 0, 3419, 0, 3429, 5090, 3429, 3430, 3430,
8358  3430, 3430, 0, 5090, 3432, 3432, 3432, 3432, 3433, 3433,
8359  3433, 3433, 5090, 3422, 0, 3434, 3434, 3434, 3434, 3435,
8360  3435, 3435, 3435, 3430, 0, 3430, 0, 3425, 0, 3432,
8361 
8362  3429, 3432, 0, 3433, 0, 3433, 3426, 0, 0, 0,
8363  3434, 0, 3434, 0, 3435, 3429, 3435, 3429, 3431, 3431,
8364  3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431,
8365  3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3436, 3436,
8366  3436, 3436, 0, 0, 3431, 3434, 3431, 3431, 3431, 3431,
8367  3431, 3473, 3473, 3473, 3473, 3432, 0, 3435, 3437, 3437,
8368  3437, 3437, 0, 3436, 0, 3436, 3438, 3438, 3438, 3438,
8369  0, 3431, 3431, 3431, 3431, 3431, 3431, 3476, 3476, 3476,
8370  3476, 0, 5097, 3437, 3439, 3439, 3439, 3439, 0, 5097,
8371  0, 3438, 5099, 3438, 3440, 3440, 3440, 3440, 5097, 5099,
8372 
8373  5125, 3431, 3431, 3431, 3431, 3431, 0, 5125, 5099, 3439,
8374  0, 3439, 3441, 3441, 3441, 3441, 5125, 0, 0, 3440,
8375  0, 3440, 3442, 3442, 3442, 3442, 3443, 3443, 3443, 3443,
8376  3444, 3444, 3444, 3444, 0, 0, 5109, 3441, 5109, 3441,
8377  3445, 3445, 3445, 3445, 0, 5109, 0, 3442, 0, 3442,
8378  0, 3443, 0, 3443, 5109, 3444, 0, 3444, 3446, 3446,
8379  3446, 3446, 0, 0, 0, 3445, 0, 3445, 0, 0,
8380  0, 3443, 3447, 3447, 3447, 3447, 3482, 3482, 3482, 3482,
8381  0, 0, 3442, 3446, 0, 3446, 0, 3448, 3448, 3448,
8382  3448, 3449, 3449, 3449, 3449, 0, 3444, 3447, 0, 0,
8383 
8384  0, 3443, 3445, 3446, 3450, 3450, 3450, 3450, 0, 0,
8385  0, 3444, 3448, 0, 3448, 0, 3449, 0, 3449, 3454,
8386  3454, 3454, 3454, 3455, 3455, 3455, 3455, 0, 0, 3450,
8387  0, 3450, 0, 3446, 0, 3456, 3456, 3456, 3456, 3483,
8388  3483, 3483, 3483, 3448, 3454, 0, 3454, 0, 3455, 0,
8389  3455, 3457, 3457, 3457, 3457, 3458, 3458, 3458, 3458, 3449,
8390  3456, 0, 3456, 0, 0, 0, 3450, 3460, 3460, 3460,
8391  3460, 3461, 3461, 3461, 3461, 0, 3457, 0, 3457, 0,
8392  3458, 0, 3458, 3462, 3462, 3462, 3462, 3465, 3465, 3465,
8393  3465, 0, 3460, 0, 3460, 0, 3461, 5133, 3461, 3466,
8394 
8395  3466, 3466, 3466, 0, 5133, 0, 3456, 0, 3462, 0,
8396  3462, 0, 3465, 5133, 3465, 3467, 3467, 3467, 3467, 3480,
8397  3480, 3480, 3480, 0, 3466, 0, 3466, 0, 5162, 3460,
8398  3480, 3486, 3486, 3486, 3486, 5162, 0, 3486, 0, 0,
8399  3467, 0, 3467, 0, 5162, 3462, 3487, 3487, 3487, 3487,
8400  3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 5176, 3465,
8401  0, 3560, 3560, 3560, 3560, 5176, 0, 3489, 0, 5089,
8402  5089, 3490, 0, 0, 5176, 3489, 5089, 3467, 3560, 3490,
8403  3561, 3561, 3561, 3561, 0, 5089, 3560, 3562, 3562, 3562,
8404  3562, 3564, 3564, 3564, 3564, 3565, 3565, 3565, 3565, 3566,
8405 
8406  3566, 3566, 3566, 3573, 3573, 3573, 3573, 0, 0, 0,
8407  3489, 3578, 3578, 3578, 3578, 3582, 3582, 3582, 3582, 3584,
8408  3584, 3584, 3584, 0, 3566, 0, 0, 0, 3490, 0,
8409  0, 3560, 3587, 3587, 3587, 3587, 3588, 3588, 3588, 3588,
8410  3589, 3589, 3589, 3589, 3590, 3590, 3590, 3590, 3591, 3591,
8411  3591, 3591, 3592, 3592, 3592, 3592, 0, 3587, 0, 5192,
8412  3566, 3594, 3594, 3594, 3594, 3566, 5192, 0, 0, 3590,
8413  3597, 3597, 3597, 3597, 3566, 5192, 0, 3566, 3598, 3598,
8414  3598, 3598, 3602, 3602, 3602, 3602, 3594, 3603, 3603, 3603,
8415  3603, 3605, 3605, 3605, 3605, 3597, 3606, 3606, 3606, 3606,
8416 
8417  3607, 3607, 3607, 3607, 0, 0, 3594, 3610, 3610, 3610,
8418  3610, 0, 3603, 0, 0, 3597, 3614, 3614, 3614, 3614,
8419  3615, 3615, 3615, 3615, 0, 0, 0, 3614, 5199, 0,
8420  0, 3615, 0, 3614, 0, 5199, 3594, 3615, 3616, 3616,
8421  3616, 3616, 0, 0, 5199, 3597, 0, 0, 0, 3616,
8422  3617, 3617, 3617, 3617, 0, 3616, 0, 3618, 3618, 3618,
8423  3618, 3617, 3619, 3619, 3619, 3619, 0, 3617, 3618, 3622,
8424  3622, 3622, 3622, 3619, 3618, 3623, 3623, 3623, 3623, 3619,
8425  3615, 3620, 3620, 3620, 3620, 0, 3614, 3621, 3621, 3621,
8426  3621, 0, 3620, 0, 3622, 0, 3622, 0, 3621, 0,
8427 
8428  3623, 0, 3623, 0, 3621, 0, 3616, 3624, 3624, 3624,
8429  3624, 3625, 3625, 3625, 3625, 3626, 3626, 3626, 3626, 3618,
8430  0, 5202, 0, 3623, 3627, 3627, 3627, 3627, 5202, 0,
8431  3619, 0, 3624, 0, 3624, 0, 3625, 5202, 3625, 0,
8432  3626, 0, 3626, 3629, 3629, 3629, 3629, 0, 3621, 3627,
8433  0, 3627, 5082, 0, 3624, 3630, 3630, 3630, 3630, 5082,
8434  3630, 3632, 3632, 3632, 3632, 3630, 5082, 0, 3629, 0,
8435  3629, 3635, 3635, 3635, 3635, 5082, 3625, 3636, 3636, 3636,
8436  3636, 3641, 3641, 3641, 3641, 0, 3632, 5213, 3632, 3643,
8437  3643, 3643, 3643, 0, 5213, 0, 3635, 0, 3635, 0,
8438 
8439  0, 0, 3636, 5213, 3636, 0, 3641, 0, 3641, 3644,
8440  3644, 3644, 3644, 0, 3643, 0, 3643, 0, 3629, 3645,
8441  3645, 3645, 3645, 3646, 3646, 3646, 3646, 3647, 3647, 3647,
8442  3647, 0, 0, 0, 3644, 3632, 3644, 3648, 3648, 3648,
8443  3648, 3635, 0, 0, 3645, 0, 3645, 0, 3646, 0,
8444  3646, 3649, 3649, 3649, 3649, 3650, 3650, 3650, 3650, 0,
8445  3643, 0, 3648, 0, 3648, 3651, 3651, 3651, 3651, 3652,
8446  3652, 3652, 3652, 0, 0, 0, 3649, 0, 3649, 0,
8447  3650, 3645, 3650, 3653, 3653, 3653, 3653, 0, 0, 0,
8448  3651, 0, 3651, 0, 3652, 0, 3652, 3654, 3654, 3654,
8449 
8450  3654, 3655, 3655, 3655, 3655, 0, 0, 0, 3653, 3656,
8451  3656, 3656, 3656, 0, 3652, 3657, 3657, 3657, 3657, 0,
8452  0, 0, 3654, 0, 3654, 0, 3655, 3651, 3655, 3658,
8453  3658, 3658, 3658, 0, 3656, 0, 3656, 0, 0, 0,
8454  3657, 0, 3657, 0, 3652, 3659, 3659, 3659, 3659, 3660,
8455  3660, 3660, 3660, 3654, 3658, 0, 3658, 3661, 3661, 3661,
8456  3661, 3662, 3662, 3662, 3662, 3677, 3677, 3677, 3677, 3655,
8457  0, 3656, 0, 0, 3660, 0, 3660, 3665, 3665, 3665,
8458  3665, 0, 3661, 0, 3661, 0, 3662, 0, 3662, 0,
8459  3658, 3666, 3666, 3666, 3666, 0, 3660, 0, 3667, 3667,
8460 
8461  3667, 3667, 3665, 0, 3665, 3668, 3668, 3668, 3668, 3669,
8462  3669, 3669, 3669, 5219, 0, 0, 3666, 0, 3666, 5102,
8463  5219, 0, 3662, 3667, 5102, 3667, 5102, 0, 3661, 5219,
8464  3668, 0, 0, 3677, 3669, 5102, 3669, 3670, 3670, 3670,
8465  3670, 3671, 3671, 3671, 3671, 0, 0, 0, 3665, 3674,
8466  3674, 3674, 3674, 3675, 3675, 3675, 3675, 3676, 3676, 3676,
8467  3676, 0, 3670, 0, 3670, 0, 3671, 0, 3671, 3681,
8468  3681, 3681, 3681, 0, 3674, 0, 3674, 0, 3675, 3669,
8469  3675, 0, 3676, 0, 3676, 3682, 3682, 3682, 3682, 3670,
8470  3683, 3683, 3683, 3683, 5220, 0, 0, 3670, 0, 3670,
8471 
8472  0, 5220, 3684, 3684, 3684, 3684, 3685, 3685, 3685, 3685,
8473  5220, 3674, 3670, 3684, 3670, 3670, 3686, 3686, 3686, 3686,
8474  3687, 3687, 3687, 3687, 3688, 3688, 3688, 3688, 0, 0,
8475  3688, 3689, 3689, 3689, 3689, 3691, 3691, 3691, 3691, 3714,
8476  3714, 3714, 3714, 0, 3697, 3697, 3697, 3697, 3750, 3750,
8477  3750, 3750, 3691, 3751, 3751, 3751, 3751, 0, 0, 0,
8478  3691, 3752, 3752, 3752, 3752, 3750, 3753, 3753, 3753, 3753,
8479  0, 0, 0, 3750, 3758, 3758, 3758, 3758, 0, 3754,
8480  3754, 3754, 3754, 3761, 3761, 3761, 3761, 3765, 3765, 3765,
8481  3765, 3766, 3766, 3766, 3766, 0, 0, 3691, 3692, 3692,
8482 
8483  3692, 3692, 3692, 0, 3754, 0, 3692, 3692, 3697, 0,
8484  0, 3692, 3692, 0, 3692, 3692, 3692, 0, 0, 3697,
8485  0, 0, 0, 3692, 3750, 3692, 3692, 3692, 3769, 3769,
8486  3769, 3769, 3770, 3770, 3770, 3770, 3772, 3772, 3772, 3772,
8487  3754, 3773, 3773, 3773, 3773, 3754, 3774, 3774, 3774, 3774,
8488  0, 0, 0, 3692, 3754, 0, 0, 3754, 0, 0,
8489  0, 3772, 3775, 3775, 3775, 3775, 3777, 3777, 3777, 3777,
8490  0, 3774, 3778, 3778, 3778, 3778, 3782, 3782, 3782, 3782,
8491  0, 3692, 0, 3692, 3787, 3787, 3787, 3787, 0, 0,
8492  0, 3777, 3788, 3788, 3788, 3788, 3789, 3789, 3789, 3789,
8493 
8494  3791, 3791, 3791, 3791, 3792, 3792, 3792, 3792, 0, 0,
8495  0, 3777, 3794, 3794, 3794, 3794, 0, 3788, 3795, 3795,
8496  3795, 3795, 3797, 3797, 3797, 3797, 3798, 3798, 3798, 3798,
8497  0, 0, 0, 3797, 0, 0, 0, 3798, 0, 3797,
8498  0, 3777, 0, 3798, 3799, 3799, 3799, 3799, 3800, 3800,
8499  3800, 3800, 3791, 0, 0, 3799, 0, 0, 0, 3800,
8500  3791, 3799, 3791, 3801, 3801, 3801, 3801, 0, 3802, 3802,
8501  3802, 3802, 0, 0, 3801, 3791, 0, 3791, 3791, 3802,
8502  3801, 3825, 3825, 3825, 3825, 3802, 0, 0, 3798, 3803,
8503  3803, 3803, 3803, 3804, 3804, 3804, 3804, 0, 3797, 0,
8504 
8505  3803, 3805, 3805, 3805, 3805, 0, 3803, 3806, 3806, 3806,
8506  3806, 3807, 3807, 3807, 3807, 5243, 0, 0, 3804, 0,
8507  3804, 0, 5243, 0, 3801, 0, 3805, 0, 3805, 0,
8508  0, 5243, 3806, 0, 3806, 0, 3807, 0, 3807, 3808,
8509  3808, 3808, 3808, 0, 3804, 3811, 3811, 3811, 3811, 3812,
8510  3812, 3812, 3812, 3813, 3813, 3813, 3813, 3819, 3819, 3819,
8511  3819, 5244, 0, 3805, 3808, 0, 3808, 0, 5244, 0,
8512  3811, 0, 3811, 0, 3812, 0, 3812, 5244, 3820, 3820,
8513  3820, 3820, 3819, 0, 3819, 3821, 3821, 3821, 3821, 3822,
8514  3822, 3822, 3822, 3823, 3823, 3823, 3823, 0, 3827, 3827,
8515 
8516  3827, 3827, 3808, 3820, 0, 3820, 3834, 3834, 3834, 3834,
8517  3821, 0, 3821, 0, 3822, 0, 3822, 0, 3823, 3837,
8518  3837, 3837, 3837, 3827, 0, 3827, 0, 3819, 0, 0,
8519  0, 3826, 3826, 3826, 3826, 3813, 3824, 3824, 3824, 3824,
8520  3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824,
8521  3824, 3824, 3824, 3824, 3824, 3824, 3826, 0, 3826, 0,
8522  0, 0, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3827,
8523  3828, 3828, 3828, 3828, 3829, 3829, 3829, 3829, 3826, 3830,
8524  3830, 3830, 3830, 0, 3831, 3831, 3831, 3831, 3834, 3824,
8525  3824, 3824, 3824, 5083, 3824, 3828, 0, 3828, 0, 3829,
8526 
8527  5083, 3829, 0, 0, 3830, 0, 3830, 5083, 0, 3831,
8528  0, 3831, 3832, 3832, 3832, 3832, 5083, 0, 0, 3824,
8529  3824, 3824, 3824, 3824, 3830, 3831, 3833, 3833, 3833, 3833,
8530  3836, 3836, 3836, 3836, 0, 0, 0, 3832, 0, 3832,
8531  3838, 3838, 3838, 3838, 0, 3828, 3841, 3841, 3841, 3841,
8532  0, 3833, 0, 3833, 3830, 3836, 0, 3836, 3844, 3844,
8533  3844, 3844, 0, 0, 0, 3838, 0, 3838, 0, 0,
8534  0, 3841, 0, 3841, 3846, 3846, 3846, 3846, 3847, 3847,
8535  3847, 3847, 0, 3844, 0, 3844, 0, 0, 3832, 3847,
8536  3848, 3848, 3848, 3848, 3849, 3849, 3849, 3849, 0, 0,
8537 
8538  3836, 3850, 3850, 3850, 3850, 3851, 3851, 3851, 3851, 3853,
8539  3853, 3853, 3853, 0, 0, 0, 3851, 3854, 3854, 3854,
8540  3854, 3855, 3855, 3855, 3855, 0, 0, 3855, 3856, 3856,
8541  3856, 3856, 3857, 3857, 3857, 3857, 3858, 3858, 3858, 3858,
8542  3874, 3874, 3874, 3874, 3890, 3890, 3890, 3890, 3920, 3920,
8543  3920, 3920, 0, 3858, 0, 0, 3919, 3919, 3919, 3919,
8544  0, 3858, 3859, 3859, 3859, 3859, 3859, 0, 0, 0,
8545  3859, 3859, 0, 3919, 0, 3859, 3859, 0, 3859, 3859,
8546  3859, 3919, 3921, 3921, 3921, 3921, 0, 3859, 0, 3859,
8547  3859, 3859, 0, 3922, 3922, 3922, 3922, 3925, 3925, 3925,
8548 
8549  3925, 0, 0, 0, 3874, 3926, 3926, 3926, 3926, 3928,
8550  3928, 3928, 3928, 0, 0, 3874, 0, 3859, 3922, 3929,
8551  3929, 3929, 3929, 3931, 3931, 3931, 3931, 3932, 3932, 3932,
8552  3932, 3919, 3933, 3933, 3933, 3933, 3934, 3934, 3934, 3934,
8553  3935, 3935, 3935, 3935, 0, 3859, 0, 3859, 3936, 3936,
8554  3936, 3936, 0, 0, 3922, 3937, 3937, 3937, 3937, 3922,
8555  3938, 3938, 3938, 3938, 3939, 3939, 3939, 3939, 3922, 0,
8556  0, 3922, 3943, 3943, 3943, 3943, 3944, 3944, 3944, 3944,
8557  3937, 3947, 3947, 3947, 3947, 3948, 3948, 3948, 3948, 3949,
8558  3949, 3949, 3949, 3950, 3950, 3950, 3950, 3951, 3951, 3951,
8559 
8560  3951, 3944, 3952, 3952, 3952, 3952, 0, 0, 3951, 3953,
8561  3953, 3953, 3953, 3952, 3951, 3954, 3954, 3954, 3954, 3952,
8562  3953, 3944, 3955, 3955, 3955, 3955, 3954, 3956, 3956, 3956,
8563  3956, 0, 3954, 3955, 3957, 3957, 3957, 3957, 3956, 3958,
8564  3958, 3958, 3958, 3959, 3959, 3959, 3959, 3960, 3960, 3960,
8565  3960, 3944, 0, 0, 0, 3951, 0, 0, 0, 3957,
8566  0, 3957, 0, 0, 3958, 0, 3958, 0, 3959, 0,
8567  3959, 0, 3960, 0, 3960, 3961, 3961, 3961, 3961, 3963,
8568  3963, 3963, 3963, 3964, 3964, 3964, 3964, 3970, 3970, 3970,
8569  3970, 3971, 3971, 3971, 3971, 3972, 3972, 3972, 3972, 0,
8570 
8571  3958, 0, 0, 0, 3963, 3960, 3963, 3973, 3973, 3973,
8572  3973, 0, 3970, 0, 3970, 0, 3971, 0, 3971, 0,
8573  3972, 0, 3972, 3978, 3978, 3978, 3978, 3979, 3979, 3979,
8574  3979, 3981, 3981, 3981, 3981, 3983, 3983, 3983, 3983, 3984,
8575  3984, 3984, 3984, 3989, 3989, 3989, 3989, 3970, 3978, 0,
8576  3978, 0, 3979, 0, 3979, 3972, 3981, 3961, 3981, 0,
8577  3983, 0, 0, 0, 3984, 3964, 3984, 0, 3979, 0,
8578  3972, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8579  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8580  3975, 3999, 3999, 3999, 3999, 3984, 0, 3975, 3975, 3975,
8581 
8582  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8583  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8584  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8585  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8586  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
8587  3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3980,
8588  3980, 3980, 3980, 3982, 3982, 3982, 3982, 0, 3985, 3985,
8589  3985, 3985, 3986, 3986, 3986, 3986, 3987, 3987, 3987, 3987,
8590  3988, 3988, 3988, 3988, 3980, 0, 3980, 0, 3982, 0,
8591  3982, 0, 0, 3985, 0, 3985, 0, 3986, 0, 3986,
8592 
8593  0, 3987, 0, 3987, 0, 3988, 0, 3988, 3982, 3991,
8594  3991, 3991, 3991, 0, 0, 3986, 3992, 3992, 3992, 3992,
8595  3993, 3993, 3993, 3993, 3998, 3998, 3998, 3998, 0, 0,
8596  3998, 4000, 4000, 4000, 4000, 3980, 3985, 0, 3982, 0,
8597  0, 3992, 0, 3992, 0, 3993, 0, 3993, 0, 0,
8598  0, 3987, 4001, 4001, 4001, 4001, 4010, 4010, 4010, 4010,
8599  4015, 4015, 4015, 4015, 4042, 4042, 4042, 4042, 0, 4001,
8600  0, 4015, 4043, 4043, 4043, 4043, 3992, 4001, 0, 0,
8601  0, 4042, 4044, 4044, 4044, 4044, 0, 0, 0, 4042,
8602  0, 3991, 4046, 4046, 4046, 4046, 4047, 4047, 4047, 4047,
8603 
8604  4048, 4048, 4048, 4048, 0, 0, 0, 4044, 4049, 4049,
8605  4049, 4049, 4050, 4050, 4050, 4050, 4052, 4052, 4052, 4052,
8606  4010, 4053, 4053, 4053, 4053, 4054, 4054, 4054, 4054, 0,
8607  0, 4010, 4055, 4055, 4055, 4055, 4056, 4056, 4056, 4056,
8608  0, 0, 0, 4044, 4059, 4059, 4059, 4059, 4044, 4060,
8609  4060, 4060, 4060, 4061, 4061, 4061, 4061, 4044, 0, 0,
8610  4044, 4066, 4066, 4066, 4066, 4067, 4067, 4067, 4067, 4059,
8611  4068, 4068, 4068, 4068, 4060, 4069, 4069, 4069, 4069, 0,
8612  0, 4068, 4070, 4070, 4070, 4070, 4069, 4068, 4071, 4071,
8613  4071, 4071, 4055, 4070, 4060, 4072, 4072, 4072, 4072, 0,
8614 
8615  4076, 4076, 4076, 4076, 0, 0, 0, 4055, 4080, 4080,
8616  4080, 4080, 0, 4071, 0, 4071, 4081, 4081, 4081, 4081,
8617  4082, 4082, 4082, 4082, 4060, 4076, 0, 4076, 4083, 4083,
8618  4083, 4083, 4084, 4084, 4084, 4084, 4080, 0, 0, 4085,
8619  4085, 4085, 4085, 0, 4081, 4082, 4068, 4082, 4071, 4086,
8620  4086, 4086, 4086, 4083, 0, 4083, 0, 4084, 0, 4084,
8621  0, 0, 4076, 4082, 4085, 4087, 4087, 4087, 4087, 4088,
8622  4088, 4088, 4088, 4089, 4089, 4089, 4089, 4090, 4090, 4090,
8623  4090, 4091, 4091, 4091, 4091, 0, 4093, 4093, 4093, 4093,
8624  4087, 0, 4087, 0, 4088, 0, 4088, 0, 4089, 0,
8625 
8626  4089, 0, 4090, 4083, 4090, 4095, 4095, 4095, 4095, 0,
8627  0, 4093, 4087, 4093, 4098, 4098, 4098, 4098, 0, 0,
8628  4098, 4089, 4099, 4099, 4099, 4099, 4103, 4103, 4103, 4103,
8629  4110, 4110, 4110, 4110, 0, 4111, 4111, 4111, 4111, 4111,
8630  4088, 4110, 4111, 4128, 4128, 4128, 4128, 0, 4093, 4129,
8631  4129, 4129, 4129, 4130, 4130, 4130, 4130, 0, 0, 0,
8632  4111, 4132, 4132, 4132, 4132, 0, 0, 0, 4128, 4133,
8633  4133, 4133, 4133, 4136, 4136, 4136, 4136, 0, 4130, 4137,
8634  4137, 4137, 4137, 4141, 4141, 4141, 4141, 4095, 0, 0,
8635  4103, 0, 4142, 4142, 4142, 4142, 0, 0, 4136, 0,
8636 
8637  0, 4103, 0, 4142, 4144, 4144, 4144, 4144, 4141, 4142,
8638  4143, 4143, 4143, 4143, 4130, 4148, 4148, 4148, 4148, 4130,
8639  4111, 4149, 4149, 4149, 4149, 0, 0, 0, 4130, 0,
8640  0, 4130, 0, 0, 0, 4143, 0, 4143, 4151, 4151,
8641  4151, 4151, 0, 4148, 4152, 4152, 4152, 4152, 0, 4149,
8642  4153, 4153, 4153, 4153, 4154, 4154, 4154, 4154, 4142, 4160,
8643  4160, 4160, 4160, 4151, 0, 4151, 0, 0, 0, 4152,
8644  0, 4152, 4143, 4155, 4155, 4155, 4155, 0, 0, 4154,
8645  0, 4154, 4156, 4156, 4156, 4156, 4151, 4157, 4157, 4157,
8646  4157, 4158, 4158, 4158, 4158, 4154, 0, 0, 4155, 0,
8647 
8648  4155, 4162, 4162, 4162, 4162, 0, 0, 4156, 0, 4156,
8649  0, 0, 4157, 0, 4157, 0, 4158, 4164, 4164, 4164,
8650  4164, 0, 0, 4164, 4165, 4165, 4165, 4165, 0, 4156,
8651  4174, 4174, 4174, 4174, 4174, 0, 0, 4174, 4175, 4175,
8652  4175, 4175, 0, 0, 0, 4175, 0, 0, 0, 4155,
8653  4176, 4176, 4176, 4176, 4176, 4174, 0, 4176, 0, 4178,
8654  4178, 4178, 4178, 4190, 4190, 4190, 4190, 4191, 4191, 4191,
8655  4191, 4178, 0, 0, 4178, 4176, 4194, 4194, 4194, 4194,
8656  0, 0, 0, 4162, 4178, 4198, 4198, 4198, 4198, 0,
8657  0, 0, 4191, 4199, 4199, 4199, 4199, 4200, 4200, 4200,
8658 
8659  4200, 4194, 4201, 4201, 4201, 4201, 0, 0, 4200, 0,
8660  4198, 0, 0, 0, 4200, 4174, 4204, 4204, 4204, 4204,
8661  0, 4205, 4205, 4205, 4205, 0, 0, 0, 4191, 4206,
8662  4206, 4206, 4206, 4191, 0, 4176, 0, 4207, 4207, 4207,
8663  4207, 4204, 4191, 4204, 0, 4191, 4205, 0, 4205, 4208,
8664  4208, 4208, 4208, 0, 4206, 4209, 4209, 4209, 4209, 0,
8665  0, 0, 4207, 4204, 4207, 0, 0, 0, 4200, 4210,
8666  4210, 4210, 4210, 0, 4208, 0, 4208, 0, 0, 0,
8667  4207, 4213, 4213, 4213, 4213, 0, 0, 4213, 4214, 4214,
8668  4214, 4214, 4221, 4221, 4221, 4221, 0, 0, 0, 4221,
8669 
8670  4222, 4222, 4222, 4222, 0, 0, 0, 4222, 4223, 4223,
8671  4223, 4223, 4224, 4224, 4224, 4224, 4239, 4239, 4239, 4239,
8672  4223, 0, 0, 4223, 4208, 4225, 4225, 4225, 4225, 4225,
8673  0, 0, 4225, 4228, 4228, 4228, 4228, 4224, 4226, 4226,
8674  4226, 4226, 4226, 0, 0, 4226, 4227, 4227, 4227, 4227,
8675  4225, 0, 0, 4229, 4229, 4229, 4229, 4229, 4227, 4228,
8676  4229, 4227, 0, 4226, 4230, 4230, 4230, 4230, 0, 0,
8677  0, 4227, 4243, 4243, 4243, 4243, 4230, 0, 4229, 4230,
8678  4240, 4240, 4240, 4240, 4244, 4244, 4244, 4244, 0, 4230,
8679  4247, 4247, 4247, 4247, 0, 0, 0, 4243, 0, 0,
8680 
8681  0, 4247, 0, 0, 0, 4240, 0, 4247, 0, 0,
8682  4225, 4250, 4250, 4250, 4250, 4251, 4251, 4251, 4251, 4255,
8683  4255, 4255, 4255, 4226, 4252, 4252, 4252, 4252, 4254, 4254,
8684  4254, 4254, 0, 0, 4254, 0, 0, 0, 4229, 0,
8685  4251, 4240, 4251, 0, 0, 0, 4240, 0, 0, 4252,
8686  0, 4252, 0, 0, 0, 4240, 0, 0, 4240, 0,
8687  4247, 0, 0, 4251, 4258, 4258, 4258, 4258, 4259, 4259,
8688  4259, 4259, 4261, 4261, 4261, 4261, 4258, 0, 0, 4258,
8689  4259, 0, 0, 4259, 4260, 4260, 4260, 4260, 4260, 0,
8690  0, 4260, 4263, 4263, 4263, 4263, 4263, 0, 4261, 4263,
8691 
8692  4264, 4264, 4264, 4264, 0, 0, 0, 4264, 0, 4260,
8693  0, 4265, 4265, 4265, 4265, 4265, 0, 4263, 4265, 4267,
8694  4267, 4267, 4267, 4276, 4276, 4276, 4276, 4277, 4277, 4277,
8695  4277, 4267, 0, 0, 4267, 0, 4265, 4280, 4280, 4280,
8696  4280, 0, 0, 0, 4267, 0, 4281, 4281, 4281, 4281,
8697  0, 0, 4277, 4282, 4282, 4282, 4282, 4281, 4285, 4285,
8698  4285, 4285, 4280, 4281, 4284, 4284, 4284, 4284, 0, 4260,
8699  4286, 4286, 4286, 4286, 0, 0, 0, 4263, 4288, 4288,
8700  4288, 4288, 0, 4285, 4288, 4285, 0, 0, 4277, 4284,
8701  0, 4284, 0, 4277, 0, 4286, 4265, 4289, 4289, 4289,
8702 
8703  4289, 0, 4277, 0, 0, 4277, 4292, 4292, 4292, 4292,
8704  0, 4284, 0, 4292, 4293, 4293, 4293, 4293, 0, 0,
8705  0, 4293, 4294, 4294, 4294, 4294, 4295, 4295, 4295, 4295,
8706  4305, 4305, 4305, 4305, 4294, 4282, 0, 4294, 4296, 4296,
8707  4296, 4296, 4296, 0, 0, 4296, 4297, 4297, 4297, 4297,
8708  4297, 4295, 0, 4297, 4298, 4298, 4298, 4298, 4299, 4299,
8709  4299, 4299, 0, 4296, 0, 0, 4298, 0, 0, 4298,
8710  4299, 4297, 0, 4299, 4306, 4306, 4306, 4306, 0, 4298,
8711  0, 0, 0, 4299, 4307, 4307, 4307, 4307, 4309, 4309,
8712  4309, 4309, 4310, 4310, 4310, 4310, 0, 0, 0, 4306,
8713 
8714  4311, 4311, 4311, 4311, 4312, 4312, 4312, 4312, 0, 0,
8715  0, 4311, 0, 4309, 4314, 4314, 4314, 4314, 4315, 4315,
8716  4315, 4315, 0, 4296, 0, 4316, 4316, 4316, 4316, 0,
8717  0, 4297, 0, 0, 0, 4306, 4317, 4317, 4317, 4317,
8718  4306, 0, 4317, 4318, 4318, 4318, 4318, 0, 0, 4306,
8719  0, 0, 4306, 4316, 4321, 4321, 4321, 4321, 4322, 4322,
8720  4322, 4322, 4329, 4329, 4329, 4329, 4321, 0, 0, 4321,
8721  4322, 0, 0, 4322, 4323, 4323, 4323, 4323, 4323, 0,
8722  0, 4323, 4330, 4330, 4330, 4330, 4331, 4331, 4331, 4331,
8723  4332, 4332, 4332, 4332, 0, 0, 4314, 0, 0, 4323,
8724 
8725  4334, 4334, 4334, 4334, 0, 0, 0, 4330, 4335, 4335,
8726  4335, 4335, 0, 4335, 4336, 4336, 4336, 4336, 4335, 0,
8727  4336, 4337, 4337, 4337, 4337, 0, 0, 0, 4334, 4345,
8728  4345, 4345, 4345, 4346, 4346, 4346, 4346, 4347, 4347, 4347,
8729  4347, 0, 4347, 4330, 0, 0, 0, 4347, 4330, 4350,
8730  4350, 4350, 4350, 0, 0, 4350, 0, 4330, 4346, 4323,
8731  4330, 4351, 4351, 4351, 4351, 4356, 4356, 4356, 4356, 0,
8732  4357, 4357, 4357, 4357, 0, 4359, 4359, 4359, 4359, 0,
8733  4335, 4359, 4360, 4360, 4360, 4360, 4361, 4361, 4361, 4361,
8734  4362, 4362, 4362, 4362, 4346, 4357, 0, 0, 0, 4346,
8735 
8736  4363, 4363, 4363, 4363, 0, 4363, 0, 0, 4346, 4347,
8737  4363, 4346, 0, 0, 0, 4362, 4364, 4364, 4364, 4364,
8738  0, 0, 4364, 4365, 4365, 4365, 4365, 0, 0, 4363,
8739  0, 4357, 4366, 4366, 4366, 4366, 4357, 4367, 4367, 4367,
8740  4367, 4368, 4368, 4368, 4368, 4357, 0, 0, 4357, 0,
8741  0, 4362, 4369, 4369, 4369, 4369, 4362, 4371, 4371, 4371,
8742  4371, 0, 4367, 4371, 0, 4362, 0, 0, 4362, 0,
8743  4368, 4372, 4372, 4372, 4372, 4373, 4373, 4373, 4373, 0,
8744  0, 4369, 4374, 4374, 4374, 4374, 4375, 4375, 4375, 4375,
8745  0, 0, 4375, 4376, 4376, 4376, 4376, 0, 4367, 4377,
8746 
8747  4377, 4377, 4377, 4367, 0, 0, 0, 4374, 4378, 4378,
8748  4378, 4378, 4367, 0, 0, 4367, 4379, 4379, 4379, 4379,
8749  0, 0, 4379, 4380, 4380, 4380, 4380, 4381, 4381, 4381,
8750  4381, 0, 0, 4378, 4382, 4382, 4382, 4382, 4383, 4383,
8751  4383, 4383, 0, 4374, 4383, 0, 0, 0, 4374, 4384,
8752  4384, 4384, 4384, 4385, 4385, 4385, 4385, 4374, 0, 4382,
8753  4374, 0, 4386, 4386, 4386, 4386, 0, 0, 0, 4378,
8754  4387, 4387, 4387, 4387, 4378, 0, 4387, 4388, 4388, 4388,
8755  4388, 0, 0, 4378, 0, 0, 4378, 4386, 4389, 4389,
8756  4389, 4389, 0, 0, 0, 4382, 4390, 4390, 4390, 4390,
8757 
8758  4382, 4391, 4391, 4391, 4391, 0, 0, 4391, 0, 4382,
8759  0, 0, 4382, 4392, 4392, 4392, 4392, 4393, 4393, 4393,
8760  4393, 4390, 0, 4386, 4394, 4394, 4394, 4394, 4386, 4395,
8761  4395, 4395, 4395, 0, 0, 4395, 0, 4386, 0, 0,
8762  4386, 4396, 4396, 4396, 4396, 4397, 4397, 4397, 4397, 4394,
8763  4398, 4398, 4398, 4398, 0, 0, 0, 4390, 4399, 4399,
8764  4399, 4399, 4390, 0, 4399, 4400, 4400, 4400, 4400, 0,
8765  0, 4390, 0, 0, 4390, 4398, 4401, 4401, 4401, 4401,
8766  4402, 4402, 4402, 4402, 0, 4394, 4403, 4403, 4403, 4403,
8767  4394, 0, 4403, 4404, 4404, 4404, 4404, 0, 0, 4394,
8768 
8769  0, 0, 4394, 0, 0, 4402, 4405, 4405, 4405, 4405,
8770  0, 4398, 4406, 4406, 4406, 4406, 4398, 4407, 4407, 4407,
8771  4407, 0, 0, 4407, 0, 4398, 0, 0, 4398, 4408,
8772  4408, 4408, 4408, 4409, 4409, 4409, 4409, 4406, 0, 0,
8773  0, 4402, 4410, 4410, 4410, 4410, 4402, 4411, 4411, 4411,
8774  4411, 0, 0, 4411, 0, 4402, 0, 0, 4402, 4412,
8775  4412, 4412, 4412, 4413, 4413, 4413, 4413, 4410, 4414, 4414,
8776  4414, 4414, 0, 4406, 4415, 4415, 4415, 4415, 4406, 0,
8777  4415, 4416, 4416, 4416, 4416, 0, 0, 4406, 0, 0,
8778  4406, 0, 0, 4414, 4417, 4417, 4417, 4417, 4418, 4418,
8779 
8780  4418, 4418, 0, 4410, 4419, 4419, 4419, 4419, 4410, 0,
8781  4419, 4420, 4420, 4420, 4420, 0, 0, 4410, 0, 0,
8782  4410, 0, 0, 4418, 4421, 4421, 4421, 4421, 0, 4414,
8783  4422, 4422, 4422, 4422, 4414, 4423, 4423, 4423, 4423, 0,
8784  0, 4423, 0, 4414, 0, 0, 4414, 4424, 4424, 4424,
8785  4424, 4425, 4425, 4425, 4425, 4422, 0, 0, 0, 4418,
8786  4426, 4426, 4426, 4426, 4418, 4427, 4427, 4427, 4427, 0,
8787  0, 4427, 0, 4418, 0, 0, 4418, 4428, 4428, 4428,
8788  4428, 4429, 4429, 4429, 4429, 4426, 4430, 4430, 4430, 4430,
8789  0, 4422, 4431, 4431, 4431, 4431, 4422, 0, 4431, 4432,
8790 
8791  4432, 4432, 4432, 0, 0, 4422, 0, 0, 4422, 0,
8792  0, 4430, 4433, 4433, 4433, 4433, 4434, 4434, 4434, 4434,
8793  0, 4426, 4435, 4435, 4435, 4435, 4426, 0, 4435, 4436,
8794  4436, 4436, 4436, 0, 0, 4426, 0, 0, 4426, 0,
8795  0, 4434, 4437, 4437, 4437, 4437, 0, 4430, 4438, 4438,
8796  4438, 4438, 4430, 4439, 4439, 4439, 4439, 0, 0, 4439,
8797  0, 4430, 0, 0, 4430, 4440, 4440, 4440, 4440, 4441,
8798  4441, 4441, 4441, 4438, 0, 0, 0, 4434, 4442, 4442,
8799  4442, 4442, 4434, 4443, 4443, 4443, 4443, 0, 0, 4443,
8800  0, 4434, 0, 0, 4434, 4444, 4444, 4444, 4444, 4445,
8801 
8802  4445, 4445, 4445, 4442, 4446, 4446, 4446, 4446, 0, 4438,
8803  4447, 4447, 4447, 4447, 4438, 0, 4447, 4448, 4448, 4448,
8804  4448, 0, 0, 4438, 0, 0, 4438, 0, 0, 4446,
8805  4449, 4449, 4449, 4449, 4450, 4450, 4450, 4450, 0, 4442,
8806  4451, 4451, 4451, 4451, 4442, 0, 4451, 4452, 4452, 4452,
8807  4452, 0, 0, 4442, 0, 0, 4442, 0, 0, 4450,
8808  4453, 4453, 4453, 4453, 0, 4446, 4454, 4454, 4454, 4454,
8809  4446, 4455, 4455, 4455, 4455, 0, 0, 4455, 0, 4446,
8810  0, 0, 4446, 4456, 4456, 4456, 4456, 4457, 4457, 4457,
8811  4457, 4454, 0, 0, 0, 4450, 4458, 4458, 4458, 4458,
8812 
8813  4450, 4459, 4459, 4459, 4459, 0, 0, 4459, 0, 4450,
8814  0, 0, 4450, 4460, 4460, 4460, 4460, 4461, 4461, 4461,
8815  4461, 4458, 4462, 4462, 4462, 4462, 0, 4454, 4463, 4463,
8816  4463, 4463, 4454, 0, 4463, 4464, 4464, 4464, 4464, 0,
8817  0, 4454, 0, 0, 4454, 0, 0, 4462, 4465, 4465,
8818  4465, 4465, 4466, 4466, 4466, 4466, 0, 4458, 4467, 4467,
8819  4467, 4467, 4458, 0, 4467, 4468, 4468, 4468, 4468, 0,
8820  0, 4458, 0, 0, 4458, 0, 0, 4466, 4469, 4469,
8821  4469, 4469, 0, 4462, 4470, 4470, 4470, 4470, 4462, 4471,
8822  4471, 4471, 4471, 0, 0, 4471, 0, 4462, 0, 0,
8823 
8824  4462, 4472, 4472, 4472, 4472, 4473, 4473, 4473, 4473, 4470,
8825  0, 0, 0, 4466, 4474, 4474, 4474, 4474, 4466, 4475,
8826  4475, 4475, 4475, 0, 0, 4475, 0, 4466, 0, 0,
8827  4466, 4476, 4476, 4476, 4476, 4477, 4477, 4477, 4477, 4474,
8828  4478, 4478, 4478, 4478, 0, 4470, 4479, 4479, 4479, 4479,
8829  4470, 0, 4479, 4480, 4480, 4480, 4480, 0, 0, 4470,
8830  0, 0, 4470, 0, 0, 4478, 4481, 4481, 4481, 4481,
8831  4482, 4482, 4482, 4482, 0, 4474, 4483, 4483, 4483, 4483,
8832  4474, 0, 4483, 4484, 4484, 4484, 4484, 0, 0, 4474,
8833  0, 0, 4474, 0, 0, 4482, 4485, 4485, 4485, 4485,
8834 
8835  0, 4478, 4486, 4486, 4486, 4486, 4478, 4487, 4487, 4487,
8836  4487, 0, 0, 4487, 0, 4478, 0, 0, 4478, 4488,
8837  4488, 4488, 4488, 4489, 4489, 4489, 4489, 4486, 0, 0,
8838  0, 4482, 4490, 4490, 4490, 4490, 4482, 4491, 4491, 4491,
8839  4491, 0, 0, 4491, 0, 4482, 0, 0, 4482, 4492,
8840  4492, 4492, 4492, 4493, 4493, 4493, 4493, 4490, 4494, 4494,
8841  4494, 4494, 0, 4486, 4495, 4495, 4495, 4495, 4486, 0,
8842  4495, 4496, 4496, 4496, 4496, 0, 0, 4486, 0, 0,
8843  4486, 0, 0, 4494, 4497, 4497, 4497, 4497, 4498, 4498,
8844  4498, 4498, 0, 4490, 4499, 4499, 4499, 4499, 4490, 0,
8845 
8846  4499, 4500, 4500, 4500, 4500, 0, 0, 4490, 0, 0,
8847  4490, 0, 0, 4498, 4501, 4501, 4501, 4501, 0, 4494,
8848  4502, 4502, 4502, 4502, 4494, 4503, 4503, 4503, 4503, 0,
8849  0, 4503, 0, 4494, 0, 0, 4494, 4504, 4504, 4504,
8850  4504, 4505, 4505, 4505, 4505, 4502, 0, 0, 0, 4498,
8851  4506, 4506, 4506, 4506, 4498, 4507, 4507, 4507, 4507, 0,
8852  0, 4507, 0, 4498, 0, 0, 4498, 4508, 4508, 4508,
8853  4508, 4509, 4509, 4509, 4509, 4506, 4510, 4510, 4510, 4510,
8854  0, 4502, 4511, 4511, 4511, 4511, 4502, 0, 4511, 4512,
8855  4512, 4512, 4512, 0, 0, 4502, 0, 0, 4502, 0,
8856 
8857  0, 4510, 4513, 4513, 4513, 4513, 4514, 4514, 4514, 4514,
8858  0, 4506, 4515, 4515, 4515, 4515, 4506, 0, 4515, 4516,
8859  4516, 4516, 4516, 0, 0, 4506, 0, 0, 4506, 0,
8860  0, 4514, 4517, 4517, 4517, 4517, 0, 4510, 4518, 4518,
8861  4518, 4518, 4510, 4519, 4519, 4519, 4519, 0, 0, 4519,
8862  0, 4510, 0, 0, 4510, 4520, 4520, 4520, 4520, 4521,
8863  4521, 4521, 4521, 4518, 0, 0, 0, 4514, 4522, 4522,
8864  4522, 4522, 4514, 4523, 4523, 4523, 4523, 0, 0, 4523,
8865  0, 4514, 0, 0, 4514, 4524, 4524, 4524, 4524, 4525,
8866  4525, 4525, 4525, 4522, 4526, 4526, 4526, 4526, 0, 4518,
8867 
8868  4527, 4527, 4527, 4527, 4518, 0, 4527, 4528, 4528, 4528,
8869  4528, 0, 0, 4518, 0, 0, 4518, 0, 0, 4526,
8870  4529, 4529, 4529, 4529, 4530, 4530, 4530, 4530, 0, 4522,
8871  4531, 4531, 4531, 4531, 4522, 0, 4531, 4532, 4532, 4532,
8872  4532, 0, 0, 4522, 0, 0, 4522, 0, 0, 4530,
8873  4533, 4533, 4533, 4533, 0, 4526, 4534, 4534, 4534, 4534,
8874  4526, 4535, 4535, 4535, 4535, 0, 0, 4535, 0, 4526,
8875  0, 0, 4526, 4536, 4536, 4536, 4536, 4537, 4537, 4537,
8876  4537, 4534, 0, 0, 0, 4530, 4538, 4538, 4538, 4538,
8877  4530, 4539, 4539, 4539, 4539, 0, 0, 4539, 0, 4530,
8878 
8879  0, 0, 4530, 4540, 4540, 4540, 4540, 4541, 4541, 4541,
8880  4541, 4538, 4542, 4542, 4542, 4542, 0, 4534, 4543, 4543,
8881  4543, 4543, 4534, 0, 4543, 4544, 4544, 4544, 4544, 0,
8882  0, 4534, 0, 0, 4534, 0, 0, 4542, 4545, 4545,
8883  4545, 4545, 4546, 4546, 4546, 4546, 0, 4538, 4547, 4547,
8884  4547, 4547, 4538, 0, 4547, 4548, 4548, 4548, 4548, 0,
8885  0, 4538, 0, 0, 4538, 0, 0, 4546, 4549, 4549,
8886  4549, 4549, 0, 4542, 4550, 4550, 4550, 4550, 4542, 4551,
8887  4551, 4551, 4551, 0, 0, 4551, 0, 4542, 0, 0,
8888  4542, 4552, 4552, 4552, 4552, 4553, 4553, 4553, 4553, 4550,
8889 
8890  0, 0, 0, 4546, 4554, 4554, 4554, 4554, 4546, 4555,
8891  4555, 4555, 4555, 0, 0, 4555, 0, 4546, 0, 0,
8892  4546, 4556, 4556, 4556, 4556, 4557, 4557, 4557, 4557, 4554,
8893  4558, 4558, 4558, 4558, 0, 4550, 4559, 4559, 4559, 4559,
8894  4550, 0, 4559, 4560, 4560, 4560, 4560, 0, 0, 4550,
8895  0, 0, 4550, 0, 0, 4558, 4561, 4561, 4561, 4561,
8896  4562, 4562, 4562, 4562, 0, 4554, 4563, 4563, 4563, 4563,
8897  4554, 0, 4563, 4564, 4564, 4564, 4564, 0, 0, 4554,
8898  0, 0, 4554, 0, 0, 4562, 4565, 4565, 4565, 4565,
8899  0, 4558, 4566, 4566, 4566, 4566, 4558, 4567, 4567, 4567,
8900 
8901  4567, 0, 0, 4567, 0, 4558, 0, 0, 4558, 4568,
8902  4568, 4568, 4568, 4569, 4569, 4569, 4569, 4566, 0, 0,
8903  0, 4562, 4570, 4570, 4570, 4570, 4562, 4571, 4571, 4571,
8904  4571, 0, 0, 4571, 0, 4562, 0, 0, 4562, 4572,
8905  4572, 4572, 4572, 4573, 4573, 4573, 4573, 4570, 4574, 4574,
8906  4574, 4574, 0, 4566, 4575, 4575, 4575, 4575, 4566, 0,
8907  4575, 4576, 4576, 4576, 4576, 0, 0, 4566, 0, 0,
8908  4566, 0, 0, 4574, 4577, 4577, 4577, 4577, 4578, 4578,
8909  4578, 4578, 0, 4570, 4579, 4579, 4579, 4579, 4570, 0,
8910  4579, 4580, 4580, 4580, 4580, 0, 0, 4570, 0, 0,
8911 
8912  4570, 0, 0, 4578, 4581, 4581, 4581, 4581, 0, 4574,
8913  4582, 4582, 4582, 4582, 4574, 4583, 4583, 4583, 4583, 0,
8914  0, 4583, 0, 4574, 0, 0, 4574, 4584, 4584, 4584,
8915  4584, 4585, 4585, 4585, 4585, 4582, 0, 0, 0, 4578,
8916  4586, 4586, 4586, 4586, 4578, 4587, 4587, 4587, 4587, 0,
8917  0, 4587, 0, 4578, 0, 0, 4578, 4588, 4588, 4588,
8918  4588, 4589, 4589, 4589, 4589, 4586, 4590, 4590, 4590, 4590,
8919  0, 4582, 4591, 4591, 4591, 4591, 4582, 0, 4591, 4592,
8920  4592, 4592, 4592, 0, 0, 4582, 0, 0, 4582, 0,
8921  0, 4590, 4593, 4593, 4593, 4593, 4594, 4594, 4594, 4594,
8922 
8923  0, 4586, 4595, 4595, 4595, 4595, 4586, 0, 4595, 4596,
8924  4596, 4596, 4596, 0, 0, 4586, 0, 0, 4586, 0,
8925  0, 4594, 4597, 4597, 4597, 4597, 0, 4590, 4598, 4598,
8926  4598, 4598, 4590, 4599, 4599, 4599, 4599, 0, 0, 4599,
8927  0, 4590, 0, 0, 4590, 4600, 4600, 4600, 4600, 4601,
8928  4601, 4601, 4601, 4598, 0, 0, 0, 4594, 4602, 4602,
8929  4602, 4602, 4594, 4603, 4603, 4603, 4603, 0, 0, 4603,
8930  0, 4594, 0, 0, 4594, 4604, 4604, 4604, 4604, 4605,
8931  4605, 4605, 4605, 4602, 4606, 4606, 4606, 4606, 0, 4598,
8932  4607, 4607, 4607, 4607, 4598, 0, 4607, 4609, 4609, 4609,
8933 
8934  4609, 0, 0, 4598, 0, 0, 4598, 0, 0, 4606,
8935  4610, 4610, 4610, 4610, 4611, 4611, 4611, 4611, 0, 4602,
8936  4611, 0, 0, 0, 4602, 0, 0, 0, 0, 0,
8937  0, 0, 0, 4602, 0, 4610, 4602, 0, 0, 0,
8938  0, 0, 0, 0, 0, 4606, 0, 0, 0, 0,
8939  4606, 0, 0, 0, 0, 0, 0, 0, 0, 4606,
8940  0, 0, 4606, 0, 0, 0, 0, 0, 0, 0,
8941  0, 4610, 0, 0, 0, 0, 4610, 0, 0, 0,
8942  0, 0, 0, 0, 0, 4610, 0, 0, 4610, 4613,
8943  4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
8944 
8945  4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
8946  4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613, 4613,
8947  4613, 4613, 4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614,
8948  4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614,
8949  4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614, 4614,
8950  4614, 4614, 4614, 4614, 4614, 4615, 4615, 4615, 4615, 4615,
8951  4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615,
8952  4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615,
8953  4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4616, 4616,
8954  4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616,
8955 
8956  4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616,
8957  4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616, 4616,
8958  4616, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617,
8959  4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617,
8960  4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617, 4617,
8961  4617, 4617, 4617, 4617, 4618, 4618, 4618, 4618, 4618, 4618,
8962  4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,
8963  4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,
8964  4618, 4618, 4618, 4618, 4618, 4618, 4618, 4619, 4619, 4619,
8965  4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619,
8966 
8967  4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619,
8968  4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619, 4619,
8969  4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620,
8970  4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620,
8971  4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620,
8972  4620, 4620, 4620, 4621, 4621, 4621, 4621, 4621, 4621, 4621,
8973  4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621,
8974  4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621, 4621,
8975  4621, 4621, 4621, 4621, 4621, 4621, 4622, 4622, 4622, 4622,
8976  4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622,
8977 
8978  4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622,
8979  4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622, 4622, 4623,
8980  4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623,
8981  4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623,
8982  4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623,
8983  4623, 4623, 4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624,
8984  4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624,
8985  4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624, 4624,
8986  4624, 4624, 4624, 4624, 4624, 4625, 4625, 4625, 4625, 4625,
8987  4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625,
8988 
8989  4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625,
8990  4625, 4625, 4625, 4625, 4625, 4625, 4625, 4625, 4626, 4626,
8991  4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626,
8992  4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626,
8993  4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626,
8994  4626, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627,
8995  4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627,
8996  4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627, 4627,
8997  4627, 4627, 4627, 4627, 4628, 4628, 4628, 4628, 4628, 4628,
8998  4628, 4628, 4628, 4628, 4628, 4628, 4628, 4628, 4628, 4628,
8999 
9000  4628, 4628, 4628, 4628, 4628, 4628, 4628, 4628, 4628, 4628,
9001  4628, 4628, 4628, 4628, 4628, 4628, 4628, 4629, 4629, 4629,
9002  4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629,
9003  4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629,
9004  4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629, 4629,
9005  4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630,
9006  4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630,
9007  4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630,
9008  4630, 4630, 4630, 4631, 4631, 4631, 4631, 4631, 4631, 4631,
9009  4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631,
9010 
9011  4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631,
9012  4631, 4631, 4631, 4631, 4631, 4631, 4632, 4632, 4632, 4632,
9013  4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632,
9014  4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632,
9015  4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4632, 4633,
9016  4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
9017  4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
9018  4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
9019  4633, 4633, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634,
9020  4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634,
9021 
9022  4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634, 4634,
9023  4634, 4634, 4634, 4634, 4634, 4635, 4635, 4635, 4635, 4635,
9024  4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635,
9025  4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635,
9026  4635, 4635, 4635, 4635, 4635, 4635, 4635, 4635, 4636, 4636,
9027  4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636,
9028  4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636,
9029  4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636, 4636,
9030  4636, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
9031  4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
9032 
9033  4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
9034  4637, 4637, 4637, 4637, 4638, 4638, 4638, 4638, 4638, 4638,
9035  4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638,
9036  4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638, 4638,
9037  4638, 4638, 4638, 4638, 4638, 4638, 4638, 4639, 4639, 4639,
9038  4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639,
9039  4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639,
9040  4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639, 4639,
9041  4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640,
9042  4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640,
9043 
9044  4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640, 4640,
9045  4640, 4640, 4640, 4641, 4641, 4641, 4641, 4641, 4641, 4641,
9046  4641, 4641, 4641, 4641, 4641, 4641, 4641, 4641, 4641, 4641,
9047  4641, 4641, 4641, 4641, 4641, 4641, 4641, 4641, 4641, 4641,
9048  4641, 4641, 4641, 4641, 4641, 4641, 4642, 4642, 4642, 4642,
9049  4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642,
9050  4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642,
9051  4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642, 4642, 4643,
9052  4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
9053  4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
9054 
9055  4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
9056  4643, 4643, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,
9057  4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,
9058  4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,
9059  4644, 4644, 4644, 4644, 4644, 4645, 4645, 4645, 4645, 4645,
9060  4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645,
9061  4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645,
9062  4645, 4645, 4645, 4645, 4645, 4645, 4645, 4645, 4646, 4646,
9063  4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
9064  4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
9065 
9066  4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
9067  4646, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647,
9068  4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647,
9069  4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647, 4647,
9070  4647, 4647, 4647, 4647, 4648, 4648, 4648, 4648, 4648, 4648,
9071  4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648,
9072  4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648,
9073  4648, 4648, 4648, 4648, 4648, 4648, 4648, 4649, 4649, 4649,
9074  4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649,
9075  4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649,
9076 
9077  4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649, 4649,
9078  4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650,
9079  4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650,
9080  4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650, 4650,
9081  4650, 4650, 4650, 4651, 4651, 4651, 4651, 4651, 4651, 4651,
9082  4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651,
9083  4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651, 4651,
9084  4651, 4651, 4651, 4651, 4651, 4651, 4652, 4652, 4652, 4652,
9085  4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652,
9086  4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652,
9087 
9088  4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4653,
9089  4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653,
9090  4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653,
9091  4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653,
9092  4653, 4653, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654,
9093  4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654,
9094  4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654, 4654,
9095  4654, 4654, 4654, 4654, 4654, 4655, 4655, 4655, 4655, 4655,
9096  4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655,
9097  4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655,
9098 
9099  4655, 4655, 4655, 4655, 4655, 4655, 4655, 4655, 4656, 4656,
9100  4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
9101  4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
9102  4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
9103  4656, 4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657,
9104  4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657,
9105  4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657, 4657,
9106  4657, 4657, 4657, 4657, 4658, 4658, 4658, 4658, 4658, 4658,
9107  4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658,
9108  4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658,
9109 
9110  4658, 4658, 4658, 4658, 4658, 4658, 4658, 4659, 4659, 4659,
9111  4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659,
9112  4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659,
9113  4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659, 4659,
9114  4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660,
9115  4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660,
9116  4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660,
9117  4660, 4660, 4660, 4661, 4661, 4661, 4661, 4661, 4661, 4661,
9118  4661, 4661, 4661, 4661, 4661, 4661, 4661, 4661, 4661, 4661,
9119  4661, 4661, 4661, 4661, 4661, 4661, 4661, 4661, 4661, 4661,
9120 
9121  4661, 4661, 4661, 4661, 4661, 4661, 4662, 4662, 4662, 4662,
9122  4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662,
9123  4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662,
9124  4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662, 4662, 4663,
9125  4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663,
9126  4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663,
9127  4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663, 4663,
9128  4663, 4663, 4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664,
9129  4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664,
9130  4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664, 4664,
9131 
9132  4664, 4664, 4664, 4664, 4664, 4665, 4665, 4665, 4665, 4665,
9133  4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665,
9134  4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665,
9135  4665, 4665, 4665, 4665, 4665, 4665, 4665, 4665, 4666, 4666,
9136  4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666,
9137  4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666,
9138  4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666,
9139  4666, 4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667,
9140  4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667,
9141  4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667, 4667,
9142 
9143  4667, 4667, 4667, 4667, 4668, 4668, 4668, 4668, 4668, 4668,
9144  4668, 4668, 4668, 4668, 4668, 4668, 4668, 4668, 4668, 4668,
9145  4668, 4668, 4668, 4668, 4668, 4668, 4668, 4668, 4668, 4668,
9146  4668, 4668, 4668, 4668, 4668, 4668, 4668, 4669, 4669, 4669,
9147  4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669,
9148  4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669,
9149  4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669, 4669,
9150  4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670,
9151  4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670,
9152  4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670, 4670,
9153 
9154  4670, 4670, 4670, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
9155  4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
9156  4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
9157  4671, 4671, 4671, 4671, 4671, 4671, 4672, 4672, 4672, 4672,
9158  4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672,
9159  4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672,
9160  4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672, 4672, 4673,
9161  4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673,
9162  4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673,
9163  4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673,
9164 
9165  4673, 4673, 4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674,
9166  4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674,
9167  4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674, 4674,
9168  4674, 4674, 4674, 4674, 4674, 4675, 4675, 4675, 4675, 4675,
9169  4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675,
9170  4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675,
9171  4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4676, 4676,
9172  4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676,
9173  4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676,
9174  4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676,
9175 
9176  4676, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677,
9177  4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677,
9178  4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677, 4677,
9179  4677, 4677, 4677, 4677, 4678, 4678, 4678, 4678, 4678, 4678,
9180  4678, 4678, 4678, 4678, 4678, 4678, 4678, 4678, 4678, 4678,
9181  4678, 4678, 4678, 4678, 4678, 4678, 4678, 4678, 4678, 4678,
9182  4678, 4678, 4678, 4678, 4678, 4678, 4678, 4679, 4679, 4679,
9183  4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679,
9184  4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679,
9185  4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679,
9186 
9187  4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680,
9188  4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680,
9189  4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680, 4680,
9190  4680, 4680, 4680, 4681, 4681, 4681, 4681, 4681, 4681, 4681,
9191  4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681,
9192  4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681,
9193  4681, 4681, 4681, 4681, 4681, 4681, 4682, 4682, 4682, 4682,
9194  4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682,
9195  4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682,
9196  4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682, 4682, 4683,
9197 
9198  4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683,
9199  4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683,
9200  4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683, 4683,
9201  4683, 4683, 4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684,
9202  4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684,
9203  4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684, 4684,
9204  4684, 4684, 4684, 4684, 4684, 4685, 4685, 4685, 4685, 4685,
9205  4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685,
9206  4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685,
9207  4685, 4685, 4685, 4685, 4685, 4685, 4685, 4685, 4687, 0,
9208 
9209  0, 0, 0, 0, 0, 0, 0, 4687, 0, 0,
9210  0, 0, 0, 4687, 0, 0, 0, 0, 0, 0,
9211  4687, 0, 0, 0, 0, 0, 0, 0, 0, 4687,
9212  4688, 4688, 4688, 0, 0, 0, 4688, 0, 0, 0,
9213  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9214  0, 0, 4688, 0, 0, 0, 0, 0, 0, 0,
9215  0, 4688, 4689, 4689, 4689, 4689, 0, 0, 4689, 0,
9216  0, 0, 0, 0, 0, 0, 0, 0, 4689, 0,
9217  0, 0, 0, 0, 4689, 0, 0, 0, 0, 0,
9218  0, 0, 4689, 4689, 4690, 4690, 4690, 0, 0, 0,
9219 
9220  4690, 0, 0, 0, 0, 0, 0, 4690, 0, 0,
9221  0, 0, 0, 0, 0, 0, 4690, 0, 0, 0,
9222  0, 0, 0, 0, 4690, 4690, 4691, 4691, 4691, 0,
9223  0, 0, 0, 0, 0, 4691, 0, 0, 4691, 4691,
9224  0, 4691, 4691, 4691, 4691, 0, 0, 0, 4691, 0,
9225  0, 0, 0, 0, 0, 0, 0, 4691, 4692, 4692,
9226  4692, 0, 0, 0, 4692, 0, 0, 0, 0, 0,
9227  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9228  4692, 0, 0, 0, 0, 0, 0, 0, 0, 4692,
9229  4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693,
9230 
9231  4693, 4693, 4693, 0, 4693, 4693, 4693, 4693, 4693, 4693,
9232  4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693, 0,
9233  4693, 4693, 4693, 4694, 4694, 4694, 0, 0, 0, 4694,
9234  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9235  0, 0, 0, 0, 0, 4694, 0, 0, 0, 0,
9236  0, 0, 0, 0, 4694, 4695, 4695, 4695, 4695, 0,
9237  0, 4695, 0, 0, 0, 0, 0, 0, 0, 0,
9238  0, 4695, 0, 0, 0, 0, 0, 4695, 0, 0,
9239  0, 0, 0, 0, 0, 4695, 4695, 4696, 4696, 4696,
9240  0, 0, 0, 0, 0, 0, 4696, 0, 0, 0,
9241 
9242  0, 0, 4696, 4696, 0, 0, 0, 0, 0, 4696,
9243  0, 0, 0, 0, 0, 0, 0, 0, 4696, 4700,
9244  0, 0, 0, 4700, 0, 4700, 0, 0, 4700, 0,
9245  0, 0, 4700, 0, 0, 0, 0, 0, 0, 0,
9246  0, 4700, 4701, 4701, 0, 4701, 4701, 4701, 4701, 4701,
9247  4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701,
9248  4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701,
9249  4701, 4701, 4701, 4701, 4701, 4708, 4708, 4708, 0, 0,
9250  0, 4708, 0, 0, 0, 0, 0, 0, 0, 0,
9251  0, 0, 0, 4708, 0, 0, 0, 4708, 0, 0,
9252 
9253  0, 0, 0, 4708, 0, 0, 4708, 4710, 4710, 4710,
9254  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9255  4710, 0, 4710, 4710, 0, 0, 0, 0, 0, 4710,
9256  0, 4710, 0, 0, 0, 0, 0, 0, 4710, 4712,
9257  4712, 0, 4712, 4712, 4712, 4712, 4712, 4712, 0, 4712,
9258  4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712,
9259  4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712,
9260  4712, 4712, 4713, 4713, 4713, 0, 0, 0, 4713, 0,
9261  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9262  0, 0, 0, 0, 4713, 0, 0, 0, 0, 0,
9263 
9264  0, 0, 0, 4713, 4714, 4714, 4714, 4714, 0, 0,
9265  4714, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9266  4714, 0, 0, 0, 0, 0, 4714, 0, 0, 0,
9267  0, 0, 0, 0, 4714, 4714, 4715, 4715, 4715, 0,
9268  0, 0, 4715, 4715, 0, 0, 0, 4715, 0, 0,
9269  0, 0, 4715, 0, 0, 0, 0, 0, 4715, 0,
9270  0, 0, 4715, 0, 0, 0, 0, 4715, 4718, 4718,
9271  4718, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9272  0, 0, 0, 4718, 4718, 0, 4718, 0, 0, 0,
9273  4718, 0, 0, 0, 0, 0, 0, 0, 0, 4718,
9274 
9275  4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719,
9276  4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719,
9277  4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719, 4719,
9278  4719, 4719, 4719, 4720, 4720, 0, 4720, 4720, 4720, 4720,
9279  4720, 4720, 4720, 4720, 4720, 4720, 4720, 4720, 4720, 4720,
9280  4720, 4720, 0, 4720, 4720, 4720, 4720, 4720, 4720, 4720,
9281  4720, 4720, 4720, 4720, 4720, 4720, 4721, 4721, 4721, 0,
9282  0, 0, 4721, 0, 0, 0, 0, 0, 0, 0,
9283  0, 0, 0, 0, 0, 0, 0, 0, 4721, 0,
9284  0, 0, 0, 0, 0, 0, 0, 4721, 4722, 4722,
9285 
9286  4722, 4722, 0, 0, 4722, 0, 0, 0, 0, 0,
9287  0, 0, 0, 0, 4722, 0, 0, 0, 0, 0,
9288  4722, 0, 0, 0, 0, 0, 0, 0, 4722, 4722,
9289  4723, 4723, 4723, 0, 0, 0, 0, 0, 0, 0,
9290  0, 0, 0, 0, 0, 4723, 4723, 0, 4723, 0,
9291  0, 0, 4723, 0, 0, 0, 0, 0, 0, 0,
9292  0, 4723, 4728, 4728, 0, 0, 4728, 0, 0, 4728,
9293  4728, 0, 4728, 4728, 4728, 4728, 4728, 0, 4728, 4728,
9294  4728, 0, 4728, 4728, 0, 4728, 4728, 4728, 4728, 4728,
9295  4728, 0, 0, 4728, 4728, 4729, 4729, 0, 4729, 4729,
9296 
9297  4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729,
9298  4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729,
9299  4729, 4729, 4729, 4729, 4729, 4729, 4729, 4729, 4730, 4730,
9300  0, 4730, 4730, 4730, 4730, 4730, 4730, 0, 4730, 4730,
9301  4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730,
9302  4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730,
9303  4730, 4732, 4732, 4732, 0, 0, 0, 0, 0, 0,
9304  0, 0, 0, 0, 4732, 0, 4732, 4732, 0, 0,
9305  0, 0, 0, 4732, 0, 0, 0, 0, 0, 0,
9306  0, 0, 4732, 4733, 4733, 4733, 0, 0, 0, 4733,
9307 
9308  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9309  0, 0, 0, 0, 0, 4733, 0, 0, 0, 0,
9310  0, 0, 0, 0, 4733, 4734, 4734, 4734, 4734, 0,
9311  0, 4734, 0, 0, 0, 0, 0, 0, 0, 0,
9312  0, 4734, 0, 0, 0, 0, 0, 4734, 0, 0,
9313  0, 0, 0, 0, 0, 4734, 4734, 4735, 4735, 4735,
9314  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9315  0, 0, 4735, 4735, 0, 0, 0, 0, 0, 4735,
9316  0, 0, 0, 0, 0, 0, 0, 0, 4735, 4736,
9317  4736, 0, 4736, 4736, 0, 0, 4736, 4736, 0, 4736,
9318 
9319  4736, 4736, 4736, 4736, 0, 4736, 4736, 4736, 0, 4736,
9320  4736, 0, 4736, 4736, 0, 4736, 4736, 4736, 0, 0,
9321  4736, 4736, 4737, 4737, 0, 4737, 4737, 4737, 4737, 4737,
9322  4737, 0, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737,
9323  4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737, 4737,
9324  4737, 4737, 4737, 4737, 4737, 4738, 4738, 0, 4738, 4738,
9325  4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738,
9326  4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738,
9327  4738, 4738, 4738, 4738, 4738, 4738, 4738, 4738, 4740, 4740,
9328  4740, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9329 
9330  0, 0, 0, 4740, 0, 0, 0, 0, 0, 0,
9331  4740, 0, 0, 0, 0, 0, 4740, 0, 0, 4740,
9332  4741, 4741, 0, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
9333  4741, 4741, 0, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
9334  4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741, 4741,
9335  4741, 4741, 4741, 4742, 4742, 4742, 4742, 4742, 4742, 4742,
9336  4742, 4742, 4742, 4742, 4742, 4742, 4742, 4742, 4742, 4742,
9337  4742, 4742, 4742, 4742, 4742, 4742, 4742, 4742, 4742, 4742,
9338  4742, 4742, 4742, 4742, 4742, 4742, 4743, 4743, 0, 4743,
9339  4743, 0, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743,
9340 
9341  4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743,
9342  0, 4743, 0, 4743, 4743, 4743, 4743, 4743, 4743, 4744,
9343  4744, 0, 4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744,
9344  4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744,
9345  4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744, 4744,
9346  4744, 4744, 4747, 0, 0, 0, 4747, 4747, 4747, 4747,
9347  4747, 4747, 4747, 4747, 0, 4747, 0, 0, 4747, 4747,
9348  4747, 4747, 4747, 4747, 4747, 4747, 4747, 4747, 4747, 4747,
9349  4747, 4747, 4747, 4747, 4747, 4749, 0, 4749, 0, 0,
9350  0, 0, 0, 0, 4749, 0, 4749, 0, 0, 0,
9351 
9352  0, 0, 0, 4749, 4751, 4751, 4751, 0, 0, 0,
9353  0, 0, 0, 0, 0, 0, 0, 4751, 0, 4751,
9354  0, 0, 0, 0, 0, 0, 4751, 0, 0, 0,
9355  0, 0, 0, 0, 0, 4751, 4753, 4753, 4753, 0,
9356  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9357  0, 4753, 0, 0, 0, 0, 0, 0, 4753, 0,
9358  4753, 0, 0, 0, 0, 0, 0, 4753, 4756, 4756,
9359  0, 4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756,
9360  4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756,
9361  4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756, 4756,
9362 
9363  4756, 4758, 0, 0, 0, 4758, 0, 0, 0, 0,
9364  0, 0, 4758, 0, 0, 0, 0, 0, 0, 4758,
9365  0, 0, 0, 0, 0, 0, 0, 0, 4758, 4761,
9366  4761, 0, 4761, 4761, 0, 4761, 4761, 4761, 4761, 4761,
9367  4761, 4761, 4761, 4761, 4761, 4761, 4761, 4761, 4761, 4761,
9368  4761, 4761, 4761, 4761, 4761, 4761, 4761, 4761, 4761, 4761,
9369  4761, 4761, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764,
9370  4764, 4764, 4764, 0, 4764, 4764, 4764, 4764, 4764, 4764,
9371  4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764,
9372  4764, 4764, 4764, 4764, 4764, 4766, 4766, 4766, 0, 0,
9373 
9374  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9375  4766, 4766, 0, 0, 0, 0, 0, 4766, 0, 0,
9376  0, 0, 0, 0, 0, 0, 4766, 4767, 4767, 4767,
9377  4767, 4767, 4767, 4767, 4767, 4767, 4767, 0, 0, 4767,
9378  4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767,
9379  4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767,
9380  4769, 4769, 0, 4769, 0, 0, 0, 4769, 0, 0,
9381  0, 0, 0, 0, 0, 0, 4769, 4776, 4776, 0,
9382  4776, 4776, 4776, 4776, 4776, 4776, 0, 4776, 4776, 4776,
9383  4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776,
9384 
9385  4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776,
9386  4777, 4777, 4777, 0, 0, 0, 4777, 0, 0, 0,
9387  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9388  0, 0, 4777, 0, 0, 0, 0, 0, 0, 0,
9389  0, 4777, 4778, 4778, 4778, 0, 0, 0, 0, 0,
9390  0, 0, 0, 4778, 0, 0, 0, 4778, 0, 0,
9391  0, 0, 0, 0, 4778, 0, 0, 0, 0, 0,
9392  0, 0, 0, 4778, 4779, 4779, 4779, 0, 0, 0,
9393  4779, 4779, 0, 0, 0, 4779, 0, 0, 0, 0,
9394  0, 0, 0, 0, 0, 0, 4779, 0, 0, 0,
9395 
9396  0, 0, 0, 0, 0, 4779, 4780, 4780, 4780, 0,
9397  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9398  0, 4780, 0, 0, 0, 0, 0, 0, 4780, 4780,
9399  0, 0, 0, 0, 0, 0, 0, 4780, 4781, 4781,
9400  4781, 0, 0, 0, 4781, 0, 0, 0, 0, 0,
9401  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9402  4781, 0, 0, 0, 0, 0, 0, 0, 0, 4781,
9403  4782, 4782, 4782, 4782, 0, 0, 4782, 0, 0, 0,
9404  0, 0, 0, 0, 0, 0, 4782, 0, 0, 0,
9405  0, 0, 4782, 0, 0, 0, 0, 0, 0, 0,
9406 
9407  4782, 4782, 4783, 4783, 4783, 0, 0, 0, 0, 0,
9408  0, 0, 0, 0, 0, 0, 0, 4783, 4783, 0,
9409  0, 0, 0, 0, 4783, 0, 0, 0, 0, 0,
9410  0, 0, 0, 4783, 4784, 4784, 0, 4784, 4784, 4784,
9411  4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784,
9412  4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784, 4784,
9413  4784, 4784, 4784, 4784, 4784, 4784, 4784, 4785, 0, 0,
9414  0, 4785, 0, 0, 4785, 4785, 0, 0, 0, 4785,
9415  4785, 4785, 0, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
9416  4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
9417 
9418  4786, 4786, 0, 4786, 4786, 4786, 4786, 4786, 4786, 0,
9419  4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786,
9420  4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786, 4786,
9421  4786, 4786, 4786, 4791, 4791, 0, 4791, 4791, 4791, 4791,
9422  4791, 4791, 4791, 4791, 4791, 4791, 4791, 4791, 4791, 4791,
9423  4791, 4791, 4791, 4791, 4791, 4791, 4791, 4791, 4791, 4791,
9424  4791, 4791, 4791, 4791, 4791, 4791, 4792, 4792, 0, 4792,
9425  4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792,
9426  4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792,
9427  4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792, 4792, 4793,
9428 
9429  4793, 0, 4793, 4793, 0, 4793, 4793, 4793, 0, 0,
9430  0, 4793, 4793, 4793, 4793, 4793, 4793, 4793, 4793, 4793,
9431  4793, 4793, 4793, 4793, 4793, 4793, 4793, 4793, 4793, 4793,
9432  4793, 4793, 4794, 4794, 0, 4794, 4794, 4794, 4794, 4794,
9433  4794, 0, 4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794,
9434  4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794,
9435  4794, 4794, 4794, 4794, 4794, 4795, 4795, 0, 4795, 4795,
9436  0, 4795, 4795, 4795, 0, 4795, 4795, 4795, 4795, 4795,
9437  0, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795,
9438  4795, 4795, 4795, 4795, 0, 0, 4795, 4795, 4796, 4796,
9439 
9440  0, 4796, 4796, 4796, 4796, 4796, 4796, 0, 4796, 4796,
9441  4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
9442  4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796, 4796,
9443  4796, 4797, 4797, 0, 4797, 4797, 0, 4797, 4797, 4797,
9444  0, 0, 0, 4797, 4797, 4797, 0, 4797, 4797, 4797,
9445  4797, 4797, 4797, 4797, 4797, 4797, 4797, 4797, 4797, 4797,
9446  4797, 4797, 4797, 4797, 4798, 4798, 0, 4798, 4798, 4798,
9447  4798, 4798, 4798, 0, 4798, 4798, 4798, 4798, 4798, 4798,
9448  4798, 4798, 4798, 4798, 4798, 4798, 4798, 4798, 4798, 4798,
9449  4798, 4798, 4798, 4798, 4798, 4798, 4798, 4799, 4799, 0,
9450 
9451  4799, 4799, 0, 4799, 4799, 4799, 0, 4799, 4799, 4799,
9452  0, 4799, 0, 4799, 4799, 4799, 4799, 4799, 4799, 4799,
9453  4799, 4799, 4799, 4799, 4799, 4799, 0, 0, 4799, 4799,
9454  4800, 4800, 0, 4800, 4800, 4800, 4800, 4800, 4800, 0,
9455  4800, 4800, 4800, 4800, 4800, 4800, 4800, 4800, 4800, 4800,
9456  4800, 4800, 4800, 4800, 4800, 4800, 4800, 4800, 4800, 4800,
9457  4800, 4800, 4800, 4802, 4802, 0, 4802, 4802, 4802, 4802,
9458  4802, 4802, 0, 4802, 4802, 4802, 4802, 4802, 4802, 4802,
9459  4802, 4802, 4802, 4802, 4802, 4802, 4802, 4802, 4802, 4802,
9460  4802, 4802, 4802, 4802, 4802, 4802, 4804, 4804, 0, 4804,
9461 
9462  4804, 0, 4804, 4804, 4804, 0, 4804, 4804, 4804, 4804,
9463  4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4804,
9464  4804, 0, 4804, 4804, 4804, 4804, 4804, 4804, 4804, 4805,
9465  4805, 0, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
9466  4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
9467  4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
9468  4805, 4805, 4806, 4806, 0, 4806, 4806, 0, 4806, 4806,
9469  4806, 0, 0, 0, 4806, 4806, 4806, 0, 4806, 4806,
9470  4806, 4806, 4806, 4806, 4806, 4806, 4806, 4806, 4806, 4806,
9471  4806, 4806, 4806, 4806, 4806, 4807, 4807, 0, 4807, 4807,
9472 
9473  4807, 4807, 4807, 4807, 4807, 4807, 4807, 0, 4807, 4807,
9474  4807, 4807, 4807, 4807, 4807, 4807, 4807, 0, 4807, 4807,
9475  0, 4807, 4807, 4807, 4807, 4807, 4807, 4807, 4808, 4808,
9476  0, 4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808,
9477  4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808, 4808,
9478  0, 4808, 4808, 0, 4808, 4808, 4808, 4808, 4808, 4808,
9479  4808, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819,
9480  4819, 4819, 0, 4819, 4819, 4819, 4819, 4819, 4819, 4819,
9481  4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819, 4819,
9482  4819, 4819, 4819, 4819, 4820, 0, 4820, 4820, 4820, 4820,
9483 
9484  4820, 4820, 4820, 4820, 0, 0, 4820, 4820, 4820, 4820,
9485  4820, 4820, 4820, 4820, 4820, 4820, 4820, 4820, 4820, 0,
9486  4820, 4820, 4820, 4820, 4820, 4820, 4820, 4821, 4821, 0,
9487  4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 0, 4821,
9488  4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821,
9489  4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821,
9490  4822, 0, 4822, 4822, 4822, 4822, 4822, 4822, 4822, 4822,
9491  0, 0, 4822, 4822, 4822, 4822, 4822, 4822, 4822, 4822,
9492  4822, 4822, 4822, 4822, 4822, 0, 4822, 4822, 4822, 4822,
9493  4822, 4822, 4822, 4823, 4823, 4823, 0, 0, 0, 4823,
9494 
9495  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9496  0, 0, 0, 0, 0, 4823, 4823, 0, 0, 0,
9497  0, 0, 0, 0, 4823, 4825, 4825, 4825, 0, 0,
9498  0, 0, 0, 0, 0, 4825, 0, 4825, 0, 0,
9499  4825, 0, 0, 0, 0, 0, 0, 4825, 0, 0,
9500  0, 0, 0, 0, 0, 0, 4825, 4826, 4826, 4826,
9501  4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826,
9502  4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826,
9503  4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826, 4826,
9504  4827, 4827, 4827, 0, 0, 0, 4827, 0, 0, 4827,
9505 
9506  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9507  0, 0, 4827, 0, 0, 0, 0, 0, 0, 0,
9508  0, 4827, 4829, 4829, 4829, 0, 0, 0, 4829, 0,
9509  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9510  0, 0, 0, 0, 4829, 0, 0, 0, 0, 0,
9511  0, 0, 0, 4829, 4830, 4830, 4830, 0, 0, 0,
9512  0, 0, 0, 4830, 0, 0, 0, 0, 0, 4830,
9513  0, 4830, 0, 0, 0, 0, 4830, 0, 0, 0,
9514  0, 0, 0, 0, 0, 4830, 4831, 0, 0, 0,
9515  0, 0, 4831, 4831, 0, 0, 0, 4831, 0, 0,
9516 
9517  0, 0, 0, 0, 0, 0, 0, 0, 4831, 0,
9518  0, 0, 0, 0, 0, 0, 0, 4831, 4832, 4832,
9519  4832, 0, 0, 0, 4832, 0, 0, 0, 0, 0,
9520  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9521  4832, 0, 0, 0, 0, 0, 0, 0, 0, 4832,
9522  4833, 4833, 4833, 4833, 0, 0, 4833, 0, 0, 0,
9523  0, 0, 0, 0, 0, 0, 4833, 0, 0, 0,
9524  0, 0, 4833, 0, 0, 0, 0, 0, 0, 0,
9525  4833, 4833, 4834, 4834, 4834, 0, 0, 0, 0, 0,
9526  0, 0, 0, 0, 0, 0, 0, 4834, 4834, 0,
9527 
9528  0, 0, 0, 0, 4834, 0, 0, 0, 0, 0,
9529  0, 0, 0, 4834, 4835, 4835, 4835, 4835, 4835, 4835,
9530  4835, 4835, 4835, 4835, 4835, 4835, 4835, 4835, 4835, 4835,
9531  4835, 4835, 4835, 4835, 4835, 4835, 4835, 4835, 4835, 4835,
9532  4835, 4835, 4835, 4835, 4835, 4835, 4835, 4836, 4836, 0,
9533  4836, 4836, 4836, 4836, 4836, 4836, 4836, 4836, 4836, 0,
9534  4836, 4836, 0, 4836, 4836, 4836, 4836, 4836, 4836, 0,
9535  4836, 4836, 0, 4836, 4836, 4836, 4836, 4836, 0, 4836,
9536  4837, 4837, 0, 4837, 4837, 4837, 4837, 0, 4837, 4837,
9537  4837, 4837, 0, 4837, 4837, 0, 4837, 4837, 4837, 0,
9538 
9539  4837, 4837, 0, 4837, 4837, 0, 0, 4837, 4837, 4837,
9540  4837, 0, 4837, 4838, 4838, 4838, 0, 0, 0, 4838,
9541  0, 0, 4838, 0, 4838, 0, 0, 4838, 0, 0,
9542  0, 0, 0, 0, 0, 4838, 0, 0, 0, 0,
9543  4838, 0, 0, 4838, 4838, 4839, 0, 0, 0, 0,
9544  0, 0, 0, 0, 4839, 0, 0, 0, 0, 0,
9545  4839, 0, 0, 0, 0, 0, 0, 4839, 0, 0,
9546  0, 0, 0, 0, 0, 0, 4839, 4840, 4840, 4840,
9547  0, 0, 0, 4840, 0, 0, 0, 0, 0, 0,
9548  4840, 0, 0, 0, 0, 0, 0, 0, 0, 4840,
9549 
9550  0, 0, 0, 0, 0, 0, 0, 4840, 4840, 4841,
9551  4841, 4841, 0, 0, 0, 4841, 0, 0, 0, 0,
9552  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9553  0, 4841, 0, 0, 0, 0, 0, 0, 0, 0,
9554  4841, 4842, 4842, 4842, 0, 0, 0, 0, 0, 0,
9555  4842, 0, 0, 4842, 0, 0, 4842, 0, 4842, 4842,
9556  0, 0, 0, 4842, 0, 0, 0, 0, 0, 0,
9557  0, 0, 4842, 4844, 4844, 4844, 0, 0, 0, 0,
9558  0, 0, 4844, 0, 0, 4844, 4844, 0, 4844, 4844,
9559  4844, 4844, 0, 0, 0, 4844, 0, 0, 0, 0,
9560 
9561  0, 0, 0, 0, 4844, 4845, 4845, 4845, 0, 0,
9562  0, 0, 0, 0, 0, 0, 0, 0, 4845, 0,
9563  4845, 0, 0, 0, 0, 0, 0, 4845, 0, 0,
9564  0, 0, 0, 0, 0, 0, 4845, 4846, 4846, 4846,
9565  0, 0, 0, 4846, 0, 0, 0, 0, 0, 0,
9566  0, 0, 0, 0, 0, 0, 0, 0, 0, 4846,
9567  0, 0, 0, 0, 0, 0, 0, 0, 4846, 4847,
9568  4847, 4847, 0, 0, 0, 4847, 0, 0, 0, 0,
9569  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9570  0, 4847, 0, 0, 0, 0, 0, 0, 0, 0,
9571 
9572  4847, 4848, 4848, 4848, 0, 0, 0, 0, 0, 0,
9573  4848, 0, 0, 4848, 0, 0, 4848, 0, 4848, 4848,
9574  0, 0, 0, 4848, 0, 0, 0, 0, 0, 0,
9575  0, 0, 4848, 4849, 4849, 4849, 4849, 4849, 4849, 4849,
9576  4849, 4849, 4849, 4849, 4849, 4849, 0, 4849, 4849, 4849,
9577  4849, 4849, 4849, 4849, 4849, 4849, 4849, 4849, 4849, 4849,
9578  4849, 4849, 0, 4849, 4849, 4849, 4850, 4850, 4850, 0,
9579  0, 0, 4850, 0, 0, 0, 0, 0, 0, 0,
9580  0, 0, 0, 0, 0, 0, 0, 0, 4850, 0,
9581  0, 0, 0, 0, 0, 0, 0, 4850, 4851, 4851,
9582 
9583  4851, 0, 0, 0, 0, 0, 0, 4851, 0, 0,
9584  0, 0, 0, 4851, 0, 0, 0, 0, 0, 0,
9585  4851, 0, 0, 0, 0, 0, 0, 0, 0, 4851,
9586  4853, 4853, 4853, 0, 0, 0, 0, 0, 0, 4853,
9587  0, 0, 0, 0, 0, 4853, 4853, 0, 0, 0,
9588  0, 0, 4853, 0, 0, 0, 0, 0, 0, 0,
9589  0, 4853, 4855, 0, 0, 0, 4855, 0, 4855, 0,
9590  0, 4855, 0, 0, 0, 4855, 0, 0, 0, 0,
9591  0, 0, 0, 0, 4855, 4858, 4858, 0, 4858, 4858,
9592  4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858,
9593 
9594  4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858,
9595  4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4862, 4862,
9596  4862, 0, 0, 0, 4862, 0, 0, 0, 0, 0,
9597  0, 0, 0, 0, 0, 0, 4862, 0, 0, 0,
9598  4862, 0, 0, 0, 0, 0, 4862, 0, 0, 4862,
9599  4863, 4863, 4863, 0, 0, 0, 0, 0, 0, 0,
9600  0, 0, 0, 4863, 0, 4863, 4863, 0, 0, 0,
9601  0, 0, 4863, 0, 0, 0, 0, 0, 0, 0,
9602  0, 4863, 4864, 4864, 4864, 0, 0, 0, 0, 0,
9603  0, 0, 0, 0, 0, 4864, 0, 4864, 4864, 0,
9604 
9605  0, 0, 0, 0, 4864, 0, 4864, 0, 0, 0,
9606  0, 0, 0, 4864, 4865, 4865, 4865, 0, 0, 0,
9607  4865, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9608  0, 0, 0, 0, 0, 0, 4865, 0, 0, 0,
9609  0, 0, 0, 0, 0, 4865, 4869, 4869, 0, 4869,
9610  4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
9611  4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4869,
9612  4869, 0, 4869, 4869, 4869, 4869, 4869, 4869, 4869, 4870,
9613  4870, 0, 4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870,
9614  4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870,
9615 
9616  4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870, 4870,
9617  4870, 4870, 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871,
9618  4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871,
9619  4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871, 4871,
9620  4871, 4871, 4871, 4871, 4871, 4872, 4872, 4872, 0, 0,
9621  0, 4872, 0, 0, 0, 0, 0, 0, 0, 0,
9622  0, 0, 0, 0, 0, 0, 0, 4872, 0, 0,
9623  0, 0, 0, 0, 0, 0, 4872, 4873, 4873, 4873,
9624  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9625  0, 0, 4873, 0, 0, 4873, 0, 0, 0, 4873,
9626 
9627  0, 0, 0, 0, 0, 0, 0, 0, 4873, 4875,
9628  4875, 4875, 0, 0, 0, 0, 0, 0, 0, 0,
9629  0, 0, 0, 0, 4875, 4875, 0, 4875, 0, 0,
9630  0, 4875, 0, 0, 0, 0, 0, 0, 0, 0,
9631  4875, 4876, 4876, 0, 4876, 4876, 4876, 4876, 4876, 4876,
9632  4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
9633  4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
9634  4876, 4876, 4876, 4876, 4877, 4877, 4877, 0, 0, 0,
9635  4877, 4877, 0, 0, 0, 4877, 0, 0, 0, 0,
9636  4877, 0, 0, 0, 0, 0, 4877, 0, 0, 0,
9637 
9638  4877, 0, 0, 0, 0, 4877, 4878, 4878, 4878, 0,
9639  0, 0, 0, 0, 0, 0, 4878, 4878, 0, 0,
9640  0, 4878, 4878, 0, 4878, 0, 0, 0, 4878, 0,
9641  0, 0, 0, 0, 0, 0, 0, 4878, 4882, 4882,
9642  4882, 0, 0, 0, 0, 0, 0, 4882, 0, 0,
9643  0, 4882, 0, 4882, 0, 0, 0, 0, 0, 0,
9644  4882, 0, 0, 0, 0, 0, 0, 0, 0, 4882,
9645  4883, 4883, 0, 4883, 4883, 4883, 4883, 4883, 4883, 4883,
9646  4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883, 0,
9647  4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883,
9648 
9649  4883, 4883, 4883, 4884, 4884, 4884, 0, 0, 0, 4884,
9650  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9651  0, 0, 0, 0, 0, 4884, 0, 0, 0, 0,
9652  0, 0, 0, 0, 4884, 4885, 4885, 4885, 0, 0,
9653  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9654  4885, 0, 0, 4885, 0, 0, 0, 4885, 0, 0,
9655  0, 0, 0, 0, 0, 0, 4885, 4887, 4887, 4887,
9656  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9657  0, 0, 4887, 4887, 0, 4887, 0, 0, 0, 4887,
9658  0, 0, 0, 0, 0, 0, 0, 0, 4887, 4890,
9659 
9660  4890, 0, 0, 4890, 0, 0, 4890, 4890, 0, 4890,
9661  4890, 4890, 4890, 4890, 0, 4890, 4890, 4890, 0, 4890,
9662  4890, 0, 4890, 4890, 4890, 4890, 4890, 4890, 0, 0,
9663  4890, 4890, 4891, 4891, 0, 4891, 4891, 4891, 4891, 4891,
9664  4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
9665  4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
9666  4891, 4891, 4891, 4891, 4891, 4892, 4892, 0, 4892, 4892,
9667  4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892,
9668  4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892,
9669  0, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4893, 4893,
9670 
9671  0, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
9672  4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
9673  4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
9674  4893, 4894, 4894, 0, 4894, 4894, 4894, 4894, 4894, 4894,
9675  4894, 4894, 4894, 4894, 4894, 4894, 4894, 4894, 4894, 4894,
9676  4894, 4894, 4894, 4894, 4894, 4894, 4894, 4894, 4894, 4894,
9677  4894, 4894, 4894, 4894, 4895, 4895, 4895, 0, 0, 0,
9678  0, 0, 0, 0, 0, 0, 0, 4895, 0, 4895,
9679  4895, 0, 0, 0, 0, 0, 4895, 0, 0, 0,
9680  0, 0, 0, 0, 0, 4895, 4896, 4896, 4896, 0,
9681 
9682  0, 0, 4896, 0, 0, 0, 0, 0, 0, 0,
9683  0, 0, 0, 0, 0, 0, 0, 0, 4896, 0,
9684  0, 0, 0, 0, 0, 0, 0, 4896, 4897, 4897,
9685  4897, 0, 0, 0, 4897, 0, 0, 0, 0, 0,
9686  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9687  4897, 0, 0, 0, 0, 0, 0, 0, 0, 4897,
9688  4900, 4900, 4900, 0, 0, 0, 0, 0, 0, 0,
9689  0, 0, 0, 0, 0, 4900, 4900, 0, 0, 0,
9690  0, 0, 4900, 0, 0, 0, 0, 0, 0, 0,
9691  0, 4900, 4901, 4901, 0, 4901, 4901, 0, 0, 4901,
9692 
9693  4901, 0, 4901, 4901, 4901, 4901, 4901, 0, 4901, 4901,
9694  4901, 0, 4901, 4901, 0, 4901, 4901, 0, 4901, 4901,
9695  4901, 0, 0, 4901, 4901, 4902, 4902, 0, 4902, 4902,
9696  4902, 4902, 4902, 4902, 4902, 4902, 4902, 4902, 4902, 4902,
9697  4902, 4902, 4902, 4902, 4902, 4902, 4902, 4902, 4902, 4902,
9698  0, 4902, 4902, 4902, 4902, 4902, 4902, 4902, 4903, 4903,
9699  0, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903,
9700  4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903,
9701  4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903,
9702  4903, 4904, 4904, 4904, 0, 0, 0, 0, 0, 0,
9703 
9704  0, 0, 0, 0, 0, 0, 4904, 0, 0, 0,
9705  0, 0, 0, 4904, 0, 0, 0, 0, 0, 4904,
9706  0, 0, 4904, 4905, 4905, 0, 4905, 4905, 4905, 4905,
9707  4905, 4905, 4905, 4905, 4905, 0, 4905, 4905, 4905, 4905,
9708  4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905,
9709  4905, 4905, 4905, 4905, 4905, 4905, 4906, 4906, 4906, 4906,
9710  4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906,
9711  4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906,
9712  4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4907,
9713  4907, 0, 4907, 4907, 0, 4907, 4907, 4907, 4907, 4907,
9714 
9715  4907, 4907, 4907, 4907, 4907, 4907, 4907, 4907, 4907, 4907,
9716  4907, 4907, 4907, 0, 4907, 0, 4907, 4907, 4907, 4907,
9717  4907, 4907, 4908, 4908, 0, 4908, 4908, 4908, 4908, 4908,
9718  4908, 4908, 4908, 4908, 4908, 4908, 4908, 4908, 4908, 4908,
9719  4908, 4908, 4908, 4908, 4908, 4908, 4908, 4908, 4908, 4908,
9720  4908, 4908, 4908, 4908, 4908, 4910, 0, 0, 0, 4910,
9721  4910, 4910, 4910, 4910, 4910, 4910, 4910, 0, 4910, 0,
9722  0, 4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910,
9723  4910, 4910, 4910, 4910, 4910, 4910, 4910, 4910, 4911, 0,
9724  4911, 0, 0, 0, 0, 0, 0, 4911, 0, 4911,
9725 
9726  0, 0, 0, 0, 0, 0, 4911, 4913, 4913, 4913,
9727  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9728  4913, 0, 4913, 0, 0, 0, 0, 0, 0, 4913,
9729  0, 0, 0, 0, 0, 0, 0, 0, 4913, 4914,
9730  4914, 4914, 0, 0, 0, 4914, 0, 0, 0, 0,
9731  4914, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9732  0, 4914, 0, 0, 0, 0, 0, 0, 0, 0,
9733  4914, 4915, 4915, 4915, 0, 0, 0, 0, 0, 0,
9734  0, 0, 0, 0, 0, 0, 4915, 0, 0, 0,
9735  0, 0, 0, 4915, 0, 4915, 0, 0, 0, 0,
9736 
9737  0, 0, 4915, 4916, 4916, 4916, 0, 0, 0, 4916,
9738  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9739  0, 0, 0, 0, 0, 4916, 0, 0, 0, 0,
9740  0, 0, 0, 0, 4916, 4918, 4918, 0, 4918, 4918,
9741  4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918,
9742  4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918,
9743  4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4919, 0,
9744  0, 0, 4919, 0, 0, 0, 0, 0, 0, 4919,
9745  0, 0, 0, 0, 0, 0, 4919, 0, 0, 0,
9746  0, 0, 0, 0, 0, 4919, 4921, 4921, 0, 4921,
9747 
9748  4921, 0, 4921, 4921, 4921, 4921, 4921, 4921, 4921, 4921,
9749  4921, 4921, 4921, 4921, 4921, 4921, 4921, 4921, 4921, 4921,
9750  4921, 4921, 4921, 4921, 4921, 4921, 4921, 4921, 4921, 4923,
9751  4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923,
9752  0, 4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923,
9753  4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923, 4923,
9754  4923, 4923, 4924, 4924, 4924, 0, 0, 0, 0, 0,
9755  0, 0, 0, 0, 0, 0, 0, 4924, 4924, 0,
9756  0, 0, 0, 0, 4924, 0, 0, 0, 0, 0,
9757  0, 0, 0, 4924, 4925, 4925, 4925, 4925, 4925, 4925,
9758 
9759  4925, 4925, 4925, 4925, 0, 0, 4925, 4925, 4925, 4925,
9760  4925, 4925, 4925, 4925, 4925, 4925, 4925, 4925, 4925, 4925,
9761  4925, 4925, 4925, 4925, 4925, 4925, 4925, 4926, 4926, 0,
9762  4926, 0, 0, 0, 4926, 0, 0, 0, 0, 0,
9763  0, 0, 0, 4926, 4927, 0, 0, 0, 0, 0,
9764  0, 4927, 0, 0, 0, 4927, 4927, 0, 0, 4927,
9765  4927, 0, 0, 0, 4927, 0, 4927, 4931, 4931, 0,
9766  4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931,
9767  4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931, 4931,
9768  4931, 4931, 0, 4931, 4931, 4931, 4931, 4931, 4931, 4931,
9769 
9770  4932, 4932, 0, 4932, 4932, 4932, 4932, 4932, 4932, 4932,
9771  4932, 4932, 4932, 4932, 4932, 4932, 4932, 4932, 4932, 4932,
9772  4932, 4932, 4932, 4932, 4932, 4932, 4932, 4932, 4932, 4932,
9773  4932, 4932, 4932, 4933, 0, 4933, 4933, 4933, 4933, 4933,
9774  4933, 4933, 4933, 4933, 0, 4933, 4933, 4933, 4933, 4933,
9775  4933, 4933, 4933, 4933, 4933, 4933, 4933, 4933, 0, 4933,
9776  4933, 4933, 4933, 4933, 4933, 4933, 4934, 4934, 4934, 0,
9777  0, 0, 4934, 0, 0, 0, 0, 0, 0, 0,
9778  0, 0, 0, 0, 0, 0, 0, 0, 4934, 0,
9779  0, 0, 0, 0, 0, 0, 0, 4934, 4935, 4935,
9780 
9781  4935, 0, 0, 0, 0, 0, 0, 0, 0, 4935,
9782  0, 0, 0, 4935, 0, 0, 0, 0, 0, 0,
9783  4935, 0, 0, 0, 0, 0, 0, 0, 0, 4935,
9784  4936, 4936, 4936, 0, 0, 0, 4936, 4936, 0, 0,
9785  0, 4936, 0, 0, 0, 0, 0, 0, 0, 0,
9786  0, 0, 4936, 0, 0, 0, 0, 0, 0, 0,
9787  0, 4936, 4937, 4937, 4937, 0, 0, 0, 0, 0,
9788  0, 0, 0, 0, 0, 0, 0, 4937, 0, 0,
9789  0, 0, 0, 0, 4937, 4937, 0, 0, 0, 0,
9790  0, 0, 0, 4937, 4938, 4938, 0, 4938, 4938, 4938,
9791 
9792  4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938,
9793  4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938,
9794  4938, 4938, 4938, 4938, 4938, 4938, 4938, 4939, 4939, 4939,
9795  0, 0, 0, 4939, 0, 0, 0, 0, 4939, 0,
9796  0, 0, 0, 0, 0, 0, 0, 0, 0, 4939,
9797  0, 0, 0, 0, 0, 0, 0, 0, 4939, 4940,
9798  4940, 4940, 0, 0, 0, 4940, 0, 0, 0, 0,
9799  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9800  0, 4940, 0, 0, 0, 0, 0, 0, 0, 0,
9801  4940, 4943, 4943, 4943, 0, 0, 0, 0, 0, 0,
9802 
9803  0, 0, 0, 0, 0, 0, 4943, 4943, 0, 0,
9804  0, 0, 0, 4943, 0, 0, 0, 0, 0, 0,
9805  0, 0, 4943, 4944, 4944, 0, 4944, 4944, 4944, 4944,
9806  4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944,
9807  4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944, 4944,
9808  4944, 4944, 4944, 4944, 4944, 4944, 4945, 0, 0, 0,
9809  4945, 0, 0, 4945, 4945, 0, 0, 0, 4945, 4945,
9810  4945, 0, 4945, 4945, 4945, 4945, 4945, 4945, 4945, 4945,
9811  4945, 4945, 4945, 4945, 4945, 4945, 4945, 4945, 4945, 4946,
9812  4946, 0, 4946, 4946, 4946, 4946, 4946, 4946, 4946, 4946,
9813 
9814  4946, 4946, 4946, 4946, 4946, 4946, 4946, 4946, 4946, 4946,
9815  4946, 4946, 4946, 4946, 0, 4946, 4946, 4946, 4946, 4946,
9816  4946, 4946, 4947, 4947, 0, 4947, 4947, 4947, 4947, 4947,
9817  4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947,
9818  4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947,
9819  4947, 4947, 4947, 4947, 4947, 4948, 0, 4948, 4948, 4948,
9820  4948, 4948, 4948, 4948, 4948, 4948, 0, 4948, 4948, 4948,
9821  4948, 4948, 4948, 4948, 4948, 4948, 4948, 4948, 4948, 4948,
9822  0, 4948, 4948, 4948, 4948, 4948, 4948, 4948, 4951, 4951,
9823  0, 4951, 4951, 0, 4951, 4951, 4951, 0, 0, 0,
9824 
9825  4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951,
9826  4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951, 4951,
9827  4951, 4952, 4952, 0, 4952, 4952, 4952, 4952, 4952, 4952,
9828  4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952,
9829  4952, 4952, 4952, 4952, 4952, 4952, 0, 4952, 4952, 4952,
9830  4952, 4952, 4952, 4952, 4953, 4953, 0, 4953, 4953, 4953,
9831  4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953,
9832  4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953,
9833  4953, 4953, 4953, 4953, 4953, 4953, 4953, 4954, 4954, 0,
9834  4954, 4954, 0, 4954, 4954, 4954, 0, 4954, 4954, 4954,
9835 
9836  4954, 4954, 0, 4954, 4954, 4954, 4954, 4954, 4954, 4954,
9837  4954, 4954, 4954, 4954, 4954, 4954, 0, 0, 4954, 4954,
9838  4955, 4955, 0, 4955, 4955, 4955, 4955, 4955, 4955, 4955,
9839  4955, 4955, 4955, 4955, 4955, 4955, 4955, 4955, 4955, 4955,
9840  4955, 4955, 4955, 4955, 4955, 0, 4955, 4955, 4955, 4955,
9841  4955, 4955, 4955, 4956, 4956, 0, 4956, 4956, 4956, 4956,
9842  4956, 4956, 4956, 4956, 4956, 4956, 4956, 4956, 4956, 4956,
9843  4956, 4956, 4956, 4956, 4956, 4956, 4956, 4956, 4956, 4956,
9844  4956, 4956, 4956, 4956, 4956, 4956, 4957, 4957, 0, 4957,
9845  4957, 0, 4957, 4957, 4957, 0, 0, 0, 4957, 4957,
9846 
9847  4957, 0, 4957, 4957, 4957, 4957, 4957, 4957, 4957, 4957,
9848  4957, 4957, 4957, 4957, 4957, 4957, 4957, 4957, 4957, 4958,
9849  4958, 0, 4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958,
9850  4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958,
9851  4958, 4958, 4958, 4958, 0, 4958, 4958, 4958, 4958, 4958,
9852  4958, 4958, 4959, 4959, 0, 4959, 4959, 4959, 4959, 4959,
9853  4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959,
9854  4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959,
9855  4959, 4959, 4959, 4959, 4959, 4960, 4960, 0, 4960, 4960,
9856  0, 4960, 4960, 4960, 0, 4960, 4960, 4960, 0, 4960,
9857 
9858  0, 4960, 4960, 4960, 4960, 4960, 4960, 4960, 4960, 4960,
9859  4960, 4960, 4960, 4960, 0, 0, 4960, 4960, 4961, 4961,
9860  0, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961,
9861  4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961,
9862  4961, 4961, 4961, 0, 4961, 4961, 4961, 4961, 4961, 4961,
9863  4961, 4962, 4962, 0, 4962, 4962, 4962, 4962, 4962, 4962,
9864  4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962,
9865  4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962,
9866  4962, 4962, 4962, 4962, 4964, 4964, 0, 4964, 4964, 4964,
9867  4964, 4964, 4964, 4964, 4964, 4964, 4964, 4964, 4964, 4964,
9868 
9869  4964, 4964, 4964, 4964, 4964, 4964, 4964, 4964, 4964, 0,
9870  4964, 4964, 4964, 4964, 4964, 4964, 4964, 4965, 4965, 0,
9871  4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965,
9872  4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965,
9873  4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965, 4965,
9874  4966, 4966, 0, 4966, 4966, 0, 4966, 4966, 4966, 0,
9875  4966, 4966, 4966, 4966, 4966, 4966, 4966, 4966, 4966, 4966,
9876  4966, 4966, 4966, 4966, 4966, 0, 4966, 4966, 4966, 4966,
9877  4966, 4966, 4966, 4967, 4967, 0, 4967, 4967, 0, 4967,
9878  4967, 4967, 0, 0, 0, 4967, 4967, 4967, 0, 4967,
9879 
9880  4967, 4967, 4967, 4967, 4967, 4967, 4967, 4967, 4967, 4967,
9881  4967, 4967, 4967, 4967, 4967, 4967, 4968, 4968, 0, 4968,
9882  4968, 4968, 4968, 4968, 4968, 4968, 4968, 4968, 0, 4968,
9883  4968, 4968, 4968, 4968, 4968, 4968, 4968, 4968, 0, 4968,
9884  4968, 0, 4968, 4968, 4968, 4968, 4968, 4968, 4968, 4969,
9885  4969, 0, 4969, 4969, 4969, 4969, 4969, 4969, 4969, 4969,
9886  4969, 4969, 4969, 4969, 4969, 4969, 4969, 4969, 4969, 4969,
9887  4969, 0, 4969, 4969, 0, 4969, 4969, 4969, 4969, 4969,
9888  4969, 4969, 4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978,
9889  4978, 4978, 4978, 0, 4978, 4978, 4978, 4978, 4978, 4978,
9890 
9891  4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978,
9892  4978, 4978, 4978, 4978, 4978, 4979, 0, 4979, 4979, 4979,
9893  4979, 4979, 4979, 4979, 4979, 0, 0, 4979, 4979, 4979,
9894  4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979,
9895  0, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4980, 4980,
9896  0, 4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980, 0,
9897  4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980,
9898  4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980, 4980,
9899  4980, 4981, 0, 4981, 4981, 4981, 4981, 4981, 4981, 4981,
9900  4981, 0, 0, 4981, 4981, 4981, 4981, 4981, 4981, 4981,
9901 
9902  4981, 4981, 4981, 4981, 4981, 4981, 0, 4981, 4981, 4981,
9903  4981, 4981, 4981, 4981, 4982, 4982, 4982, 0, 0, 0,
9904  4982, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9905  0, 0, 0, 0, 0, 0, 4982, 4982, 0, 0,
9906  0, 0, 0, 0, 0, 4982, 4983, 4983, 4983, 0,
9907  0, 0, 0, 0, 0, 0, 4983, 0, 4983, 0,
9908  0, 4983, 0, 0, 0, 0, 0, 0, 4983, 0,
9909  0, 0, 0, 0, 0, 0, 0, 4983, 4984, 4984,
9910  4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984,
9911  4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984,
9912 
9913  4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984,
9914  4984, 4985, 4985, 4985, 0, 0, 0, 0, 0, 0,
9915  0, 4985, 0, 4985, 0, 0, 4985, 0, 0, 0,
9916  0, 0, 0, 4985, 0, 0, 0, 0, 0, 0,
9917  0, 0, 4985, 4986, 4986, 4986, 0, 0, 0, 4986,
9918  0, 0, 4986, 0, 0, 0, 0, 0, 0, 0,
9919  0, 0, 0, 0, 0, 4986, 0, 0, 0, 0,
9920  0, 0, 0, 0, 4986, 4987, 4987, 4987, 0, 0,
9921  0, 4987, 0, 0, 0, 0, 0, 0, 0, 0,
9922  0, 0, 0, 0, 0, 0, 0, 4987, 0, 0,
9923 
9924  0, 0, 0, 0, 0, 0, 4987, 4988, 4988, 4988,
9925  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9926  0, 0, 4988, 0, 0, 0, 0, 0, 0, 4988,
9927  0, 0, 0, 0, 0, 0, 0, 0, 4988, 4989,
9928  4989, 4989, 0, 0, 0, 0, 0, 0, 4989, 0,
9929  0, 0, 0, 0, 4989, 0, 4989, 0, 0, 0,
9930  0, 4989, 0, 0, 0, 0, 0, 0, 0, 0,
9931  4989, 4990, 4990, 4990, 0, 0, 0, 0, 0, 0,
9932  0, 4990, 0, 0, 0, 0, 4990, 0, 0, 0,
9933  0, 0, 0, 4990, 0, 0, 0, 0, 0, 0,
9934 
9935  0, 0, 4990, 4993, 4993, 4993, 0, 0, 0, 4993,
9936  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9937  0, 0, 0, 0, 0, 4993, 0, 0, 0, 0,
9938  0, 0, 0, 0, 4993, 4996, 4996, 4996, 0, 0,
9939  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9940  4996, 4996, 0, 0, 0, 0, 0, 4996, 0, 0,
9941  0, 0, 0, 0, 0, 0, 4996, 4997, 4997, 4997,
9942  4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997,
9943  4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997,
9944  4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997, 4997,
9945 
9946  4998, 4998, 0, 4998, 4998, 4998, 4998, 4998, 4998, 4998,
9947  4998, 4998, 0, 4998, 4998, 0, 4998, 4998, 4998, 4998,
9948  4998, 4998, 0, 4998, 4998, 0, 4998, 4998, 4998, 4998,
9949  4998, 0, 4998, 5000, 5000, 0, 5000, 5000, 5000, 5000,
9950  0, 5000, 5000, 5000, 5000, 0, 5000, 5000, 0, 5000,
9951  5000, 5000, 0, 5000, 5000, 0, 5000, 5000, 0, 0,
9952  5000, 5000, 5000, 5000, 0, 5000, 5001, 5001, 5001, 0,
9953  0, 0, 5001, 0, 0, 5001, 0, 5001, 0, 0,
9954  0, 0, 0, 0, 0, 0, 0, 0, 5001, 0,
9955  0, 0, 0, 5001, 0, 0, 5001, 5001, 5003, 5003,
9956 
9957  5003, 0, 0, 0, 0, 0, 0, 5003, 0, 0,
9958  5003, 0, 0, 5003, 0, 5003, 5003, 0, 0, 0,
9959  5003, 0, 0, 0, 0, 0, 0, 0, 0, 5003,
9960  5004, 5004, 5004, 0, 0, 0, 0, 0, 0, 5004,
9961  0, 0, 5004, 0, 0, 5004, 5004, 5004, 5004, 0,
9962  0, 0, 5004, 0, 0, 0, 0, 0, 0, 0,
9963  0, 5004, 5005, 5005, 5005, 0, 0, 0, 0, 0,
9964  0, 0, 0, 0, 0, 5005, 0, 5005, 0, 0,
9965  0, 0, 0, 0, 5005, 0, 0, 0, 0, 0,
9966  0, 0, 0, 5005, 5006, 5006, 5006, 0, 0, 0,
9967 
9968  5006, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9969  0, 0, 0, 0, 0, 0, 5006, 0, 0, 0,
9970  0, 0, 0, 0, 0, 5006, 5008, 5008, 5008, 5008,
9971  0, 0, 5008, 0, 0, 0, 0, 0, 0, 0,
9972  0, 0, 5008, 0, 0, 0, 0, 0, 5008, 0,
9973  0, 0, 0, 0, 0, 0, 5008, 5008, 5009, 5009,
9974  5009, 0, 0, 0, 0, 0, 0, 5009, 0, 0,
9975  5009, 0, 0, 5009, 0, 5009, 5009, 0, 0, 0,
9976  5009, 0, 0, 0, 0, 0, 0, 0, 0, 5009,
9977  5010, 5010, 5010, 0, 0, 0, 0, 0, 0, 5010,
9978 
9979  0, 0, 0, 0, 0, 5010, 0, 0, 0, 0,
9980  0, 0, 5010, 0, 0, 0, 0, 0, 0, 0,
9981  0, 5010, 5011, 5011, 5011, 0, 0, 0, 0, 0,
9982  0, 5011, 0, 0, 0, 0, 0, 5011, 5011, 0,
9983  0, 0, 0, 0, 5011, 0, 0, 0, 0, 0,
9984  0, 0, 0, 5011, 5012, 5012, 5012, 5012, 5012, 5012,
9985  5012, 5012, 5012, 5012, 5012, 5012, 0, 5012, 5012, 0,
9986  5012, 5012, 5012, 5012, 5012, 5012, 5012, 5012, 5012, 5012,
9987  5012, 5012, 5012, 5012, 5012, 5012, 5012, 5013, 5013, 5013,
9988  5013, 5013, 5013, 5013, 5013, 5013, 5013, 5013, 5013, 5013,
9989 
9990  5013, 5013, 0, 5013, 5013, 5013, 5013, 5013, 5013, 5013,
9991  5013, 5013, 5013, 5013, 5013, 5013, 5013, 5013, 5013, 5013,
9992  5014, 5014, 5014, 5014, 0, 0, 5014, 0, 0, 0,
9993  0, 0, 0, 0, 0, 0, 5014, 0, 0, 0,
9994  0, 0, 5014, 0, 0, 0, 0, 0, 0, 0,
9995  5014, 5014, 5015, 5015, 5015, 0, 0, 0, 0, 0,
9996  0, 5015, 0, 0, 0, 0, 0, 5015, 5015, 0,
9997  0, 0, 0, 0, 5015, 0, 0, 0, 0, 0,
9998  0, 0, 0, 5015, 5019, 0, 0, 0, 5019, 0,
9999  5019, 0, 0, 5019, 0, 0, 0, 5019, 0, 0,
10000 
10001  0, 0, 0, 0, 0, 0, 5019, 5020, 5020, 5020,
10002  5020, 0, 0, 5020, 0, 0, 0, 0, 0, 0,
10003  0, 0, 0, 5020, 0, 0, 0, 0, 0, 5020,
10004  0, 0, 0, 0, 0, 0, 0, 5020, 5020, 5021,
10005  5021, 5021, 0, 0, 0, 0, 0, 0, 0, 0,
10006  0, 0, 5021, 0, 5021, 5021, 0, 0, 0, 0,
10007  0, 5021, 0, 0, 0, 0, 0, 0, 0, 0,
10008  5021, 5022, 5022, 5022, 0, 0, 0, 5022, 0, 0,
10009  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10010  0, 0, 0, 5022, 0, 0, 0, 0, 0, 0,
10011 
10012  0, 0, 5022, 5023, 5023, 5023, 0, 0, 0, 0,
10013  0, 0, 0, 0, 0, 0, 0, 0, 5023, 5023,
10014  0, 0, 0, 0, 0, 5023, 0, 0, 0, 0,
10015  0, 0, 0, 0, 5023, 5027, 5027, 0, 5027, 5027,
10016  5027, 5027, 5027, 5027, 5027, 5027, 5027, 5027, 5027, 5027,
10017  5027, 5027, 5027, 5027, 5027, 5027, 5027, 5027, 5027, 5027,
10018  0, 5027, 5027, 5027, 5027, 5027, 5027, 5027, 5028, 5028,
10019  5028, 5028, 0, 0, 5028, 0, 0, 0, 0, 0,
10020  0, 0, 0, 0, 5028, 0, 0, 0, 0, 0,
10021  5028, 0, 0, 0, 0, 0, 0, 0, 5028, 5028,
10022 
10023  5029, 5029, 5029, 0, 0, 0, 0, 0, 0, 0,
10024  0, 0, 0, 0, 0, 5029, 0, 0, 5029, 0,
10025  0, 0, 5029, 0, 0, 0, 0, 0, 0, 0,
10026  0, 5029, 5030, 5030, 0, 5030, 5030, 5030, 5030, 5030,
10027  5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030,
10028  5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030,
10029  5030, 5030, 5030, 5030, 5030, 5031, 5031, 5031, 0, 0,
10030  0, 5031, 5031, 0, 0, 0, 5031, 0, 0, 0,
10031  0, 5031, 0, 0, 0, 0, 0, 5031, 0, 0,
10032  0, 5031, 0, 0, 0, 0, 5031, 5032, 5032, 5032,
10033 
10034  0, 0, 0, 5032, 0, 0, 0, 0, 0, 0,
10035  0, 0, 0, 5032, 0, 0, 0, 0, 0, 5032,
10036  0, 0, 0, 0, 0, 0, 0, 0, 5032, 5033,
10037  5033, 5033, 0, 0, 0, 5033, 0, 0, 0, 5033,
10038  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10039  0, 5033, 0, 0, 0, 0, 0, 0, 0, 0,
10040  5033, 5034, 5034, 5034, 0, 0, 0, 0, 0, 0,
10041  0, 5034, 5034, 0, 0, 0, 5034, 5034, 0, 5034,
10042  0, 0, 0, 5034, 0, 0, 0, 0, 0, 0,
10043  0, 0, 5034, 5035, 0, 0, 0, 0, 0, 0,
10044 
10045  5035, 0, 0, 0, 5035, 5035, 0, 0, 5035, 5035,
10046  0, 0, 0, 5035, 0, 5035, 5036, 5036, 5036, 5036,
10047  5036, 5036, 5036, 5036, 5036, 5036, 5036, 5036, 0, 5036,
10048  5036, 0, 5036, 5036, 5036, 5036, 5036, 5036, 5036, 5036,
10049  5036, 5036, 5036, 5036, 5036, 5036, 5036, 5036, 5036, 5037,
10050  5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037,
10051  5037, 5037, 5037, 5037, 0, 5037, 5037, 5037, 5037, 5037,
10052  5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037,
10053  5037, 5037, 5040, 5040, 5040, 0, 0, 0, 0, 0,
10054  0, 5040, 0, 0, 0, 5040, 0, 5040, 0, 0,
10055 
10056  0, 0, 0, 0, 5040, 0, 0, 0, 0, 0,
10057  0, 0, 0, 5040, 5041, 5041, 5041, 0, 0, 0,
10058  0, 0, 0, 0, 0, 0, 0, 0, 0, 5041,
10059  5041, 0, 5041, 0, 0, 0, 5041, 0, 0, 0,
10060  0, 0, 0, 0, 0, 5041, 5042, 5042, 5042, 0,
10061  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10062  0, 5042, 0, 0, 5042, 0, 0, 0, 5042, 0,
10063  0, 0, 0, 0, 0, 0, 0, 5042, 5043, 5043,
10064  5043, 5043, 0, 0, 5043, 0, 0, 0, 0, 0,
10065  0, 0, 0, 0, 5043, 0, 0, 0, 0, 0,
10066 
10067  5043, 0, 0, 0, 0, 0, 0, 0, 5043, 5043,
10068  5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045,
10069  5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045,
10070  5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045, 5045,
10071  5045, 5045, 5045, 5046, 5046, 5046, 5046, 5046, 0, 5046,
10072  5046, 5046, 0, 5046, 5046, 5046, 5046, 5046, 0, 5046,
10073  5046, 5046, 0, 5046, 5046, 0, 5046, 5046, 5046, 5046,
10074  5046, 5046, 0, 0, 5046, 5046, 5047, 5047, 0, 5047,
10075  5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047,
10076  5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047,
10077 
10078  5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047, 5047, 5048,
10079  5048, 0, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048,
10080  5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048,
10081  5048, 5048, 5048, 5048, 0, 5048, 5048, 5048, 5048, 5048,
10082  5048, 5048, 5049, 5049, 0, 5049, 5049, 5049, 5049, 5049,
10083  5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049,
10084  5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049,
10085  5049, 5049, 5049, 5049, 5049, 5050, 5050, 5050, 0, 0,
10086  0, 5050, 0, 0, 0, 0, 0, 0, 0, 0,
10087  0, 0, 0, 0, 0, 0, 0, 5050, 0, 0,
10088 
10089  0, 0, 0, 0, 0, 0, 5050, 5051, 5051, 5051,
10090  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10091  5051, 0, 5051, 5051, 0, 0, 0, 0, 0, 5051,
10092  0, 0, 0, 0, 0, 0, 0, 0, 5051, 5053,
10093  5053, 5053, 5053, 0, 0, 5053, 0, 0, 0, 0,
10094  0, 0, 0, 0, 0, 5053, 0, 0, 0, 0,
10095  0, 5053, 0, 0, 0, 0, 0, 0, 0, 5053,
10096  5053, 5054, 5054, 0, 5054, 5054, 5054, 5054, 5054, 5054,
10097  5054, 5054, 5054, 5054, 5054, 5054, 5054, 5054, 5054, 5054,
10098  5054, 5054, 5054, 5054, 5054, 5054, 0, 5054, 5054, 5054,
10099 
10100  5054, 5054, 5054, 5054, 5056, 0, 0, 0, 5056, 5056,
10101  5056, 5056, 5056, 5056, 5056, 5056, 0, 5056, 0, 0,
10102  5056, 5056, 5056, 5056, 5056, 5056, 5056, 5056, 5056, 5056,
10103  5056, 5056, 5056, 5056, 5056, 5056, 5056, 5058, 0, 5058,
10104  0, 0, 0, 0, 0, 0, 5058, 0, 5058, 0,
10105  0, 0, 0, 0, 0, 5058, 5059, 5059, 5059, 0,
10106  0, 0, 5059, 0, 0, 0, 0, 5059, 0, 0,
10107  0, 0, 0, 0, 0, 0, 0, 0, 5059, 0,
10108  0, 0, 0, 0, 0, 0, 0, 5059, 5060, 5060,
10109  5060, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10110 
10111  0, 5060, 0, 5060, 0, 0, 0, 0, 0, 0,
10112  5060, 0, 0, 0, 0, 0, 0, 0, 0, 5060,
10113  5061, 5061, 5061, 0, 0, 0, 5061, 0, 0, 0,
10114  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10115  0, 0, 5061, 0, 0, 0, 0, 0, 0, 0,
10116  0, 5061, 5063, 0, 0, 0, 0, 0, 0, 5063,
10117  0, 0, 0, 5063, 5063, 0, 0, 5063, 5063, 0,
10118  0, 0, 5063, 0, 5063, 5064, 5064, 0, 5064, 0,
10119  0, 0, 5064, 0, 0, 0, 0, 0, 0, 0,
10120  0, 5064, 5065, 5065, 0, 5065, 5065, 5065, 5065, 5065,
10121 
10122  5065, 5065, 5065, 5065, 5065, 5065, 5065, 5065, 5065, 5065,
10123  5065, 5065, 5065, 5065, 5065, 5065, 5065, 0, 5065, 5065,
10124  5065, 5065, 5065, 5065, 5065, 5066, 0, 5066, 5066, 5066,
10125  5066, 5066, 5066, 5066, 5066, 5066, 0, 5066, 5066, 5066,
10126  5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066,
10127  0, 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5067, 5067,
10128  0, 5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067,
10129  5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067,
10130  5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067, 5067,
10131  5067, 5068, 5068, 5068, 0, 0, 0, 5068, 0, 0,
10132 
10133  0, 0, 5068, 0, 0, 0, 0, 0, 0, 0,
10134  0, 0, 0, 5068, 0, 0, 0, 0, 0, 0,
10135  0, 0, 5068, 5069, 5069, 5069, 0, 0, 0, 0,
10136  0, 0, 0, 0, 0, 0, 0, 0, 5069, 5069,
10137  0, 0, 0, 0, 0, 5069, 0, 0, 0, 0,
10138  0, 0, 0, 0, 5069, 5071, 5071, 5071, 5071, 0,
10139  0, 5071, 0, 0, 0, 0, 0, 0, 0, 0,
10140  0, 5071, 0, 0, 0, 0, 0, 5071, 0, 0,
10141  0, 0, 0, 0, 0, 5071, 5071, 5072, 5072, 0,
10142  5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072,
10143 
10144  5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072, 5072,
10145  5072, 5072, 0, 5072, 5072, 5072, 5072, 5072, 5072, 5072,
10146  5073, 0, 5073, 5073, 5073, 5073, 5073, 5073, 5073, 5073,
10147  5073, 0, 5073, 5073, 5073, 5073, 5073, 5073, 5073, 5073,
10148  5073, 5073, 5073, 5073, 5073, 0, 5073, 5073, 5073, 5073,
10149  5073, 5073, 5073, 5075, 5075, 0, 5075, 5075, 5075, 5075,
10150  5075, 5075, 5075, 5075, 5075, 5075, 5075, 5075, 5075, 5075,
10151  5075, 5075, 5075, 5075, 5075, 5075, 5075, 5075, 0, 5075,
10152  5075, 5075, 5075, 5075, 5075, 5075, 5076, 5076, 0, 5076,
10153  5076, 5076, 5076, 5076, 5076, 5076, 5076, 5076, 5076, 5076,
10154 
10155  5076, 5076, 5076, 5076, 5076, 5076, 5076, 5076, 5076, 5076,
10156  5076, 0, 5076, 5076, 5076, 5076, 5076, 5076, 5076, 5077,
10157  5077, 0, 5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077,
10158  5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077, 5077,
10159  5077, 5077, 5077, 5077, 0, 5077, 5077, 5077, 5077, 5077,
10160  5077, 5077, 5078, 5078, 0, 5078, 5078, 5078, 5078, 5078,
10161  5078, 5078, 5078, 5078, 5078, 5078, 5078, 5078, 5078, 5078,
10162  5078, 5078, 5078, 5078, 5078, 5078, 5078, 0, 5078, 5078,
10163  5078, 5078, 5078, 5078, 5078, 5079, 5079, 0, 5079, 5079,
10164  0, 5079, 5079, 5079, 0, 5079, 5079, 5079, 0, 5079,
10165 
10166  0, 5079, 5079, 5079, 5079, 5079, 5079, 5079, 5079, 5079,
10167  5079, 5079, 5079, 5079, 0, 0, 5079, 5079, 5080, 5080,
10168  0, 5080, 5080, 5080, 5080, 5080, 5080, 5080, 5080, 5080,
10169  5080, 5080, 5080, 5080, 5080, 5080, 5080, 5080, 5080, 5080,
10170  5080, 5080, 5080, 0, 5080, 5080, 5080, 5080, 5080, 5080,
10171  5080, 5081, 5081, 5081, 5081, 5081, 5081, 5081, 5081, 5081,
10172  5081, 5081, 5081, 5081, 5081, 5081, 5081, 0, 5081, 5081,
10173  5081, 5081, 5081, 5081, 0, 5081, 5081, 5081, 5081, 5081,
10174  5081, 5081, 5081, 5081, 5084, 0, 5084, 5084, 5084, 5084,
10175  5084, 5084, 5084, 5084, 0, 0, 5084, 5084, 5084, 5084,
10176 
10177  5084, 5084, 5084, 5084, 5084, 5084, 5084, 5084, 5084, 0,
10178  5084, 5084, 5084, 5084, 5084, 5084, 5084, 5085, 0, 5085,
10179  5085, 5085, 5085, 5085, 5085, 5085, 5085, 0, 0, 5085,
10180  5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085,
10181  5085, 5085, 0, 5085, 5085, 5085, 5085, 5085, 5085, 5085,
10182  5086, 5086, 5086, 0, 0, 0, 0, 0, 0, 0,
10183  5086, 0, 5086, 0, 0, 5086, 0, 0, 0, 0,
10184  0, 0, 5086, 0, 0, 0, 0, 0, 0, 0,
10185  0, 5086, 5087, 5087, 5087, 0, 0, 0, 0, 0,
10186  0, 0, 0, 0, 0, 0, 0, 5087, 0, 0,
10187 
10188  0, 0, 0, 0, 5087, 0, 0, 0, 0, 0,
10189  0, 0, 0, 5087, 5088, 5088, 5088, 0, 0, 0,
10190  0, 0, 0, 0, 5088, 0, 0, 0, 0, 5088,
10191  0, 0, 0, 0, 0, 0, 5088, 0, 0, 0,
10192  0, 0, 0, 0, 0, 5088, 5091, 5091, 5091, 5091,
10193  0, 0, 5091, 0, 0, 0, 0, 0, 0, 0,
10194  0, 0, 5091, 0, 0, 0, 0, 0, 5091, 0,
10195  0, 0, 0, 0, 0, 0, 5091, 5091, 5092, 5092,
10196  5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092,
10197  5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092,
10198 
10199  5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092,
10200  5092, 5093, 5093, 0, 5093, 5093, 5093, 5093, 5093, 5093,
10201  5093, 5093, 5093, 0, 5093, 5093, 0, 5093, 5093, 5093,
10202  5093, 5093, 5093, 0, 5093, 5093, 0, 5093, 5093, 5093,
10203  5093, 5093, 0, 5093, 5095, 5095, 5095, 5095, 5095, 5095,
10204  5095, 5095, 5095, 5095, 5095, 5095, 5095, 5095, 5095, 0,
10205  0, 5095, 5095, 5095, 5095, 5095, 5095, 0, 5095, 5095,
10206  5095, 5095, 5095, 5095, 5095, 5095, 5095, 5096, 5096, 0,
10207  5096, 5096, 5096, 5096, 0, 5096, 5096, 5096, 5096, 5096,
10208  5096, 5096, 0, 5096, 5096, 5096, 0, 5096, 5096, 0,
10209 
10210  5096, 5096, 0, 0, 5096, 5096, 5096, 5096, 5096, 5096,
10211  5098, 5098, 5098, 0, 0, 0, 0, 0, 0, 5098,
10212  0, 0, 5098, 0, 0, 5098, 5098, 5098, 5098, 0,
10213  0, 0, 5098, 0, 0, 0, 0, 0, 0, 0,
10214  0, 5098, 5100, 5100, 5100, 0, 0, 0, 0, 0,
10215  0, 5100, 0, 0, 0, 0, 0, 5100, 5100, 0,
10216  0, 0, 0, 0, 5100, 0, 0, 0, 0, 0,
10217  0, 0, 0, 5100, 5101, 5101, 5101, 0, 0, 0,
10218  0, 0, 0, 5101, 0, 0, 0, 0, 0, 5101,
10219  5101, 0, 0, 0, 0, 0, 5101, 0, 0, 0,
10220 
10221  0, 0, 0, 0, 0, 5101, 5103, 0, 0, 0,
10222  5103, 0, 5103, 0, 0, 5103, 0, 0, 0, 5103,
10223  0, 0, 0, 0, 0, 0, 0, 0, 5103, 5104,
10224  5104, 5104, 5104, 0, 0, 5104, 0, 0, 0, 0,
10225  0, 0, 0, 0, 0, 5104, 0, 0, 0, 0,
10226  0, 5104, 0, 0, 0, 0, 0, 0, 0, 5104,
10227  5104, 5105, 5105, 5105, 0, 0, 0, 5105, 0, 0,
10228  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10229  0, 0, 0, 5105, 0, 0, 0, 0, 0, 0,
10230  0, 0, 5105, 5106, 5106, 5106, 0, 0, 0, 0,
10231 
10232  0, 0, 0, 0, 0, 0, 0, 0, 5106, 5106,
10233  0, 0, 0, 0, 0, 5106, 0, 0, 0, 0,
10234  0, 0, 0, 0, 5106, 5107, 5107, 5107, 0, 0,
10235  0, 0, 0, 0, 0, 0, 0, 0, 5107, 0,
10236  5107, 5107, 0, 0, 0, 0, 0, 5107, 0, 0,
10237  0, 0, 0, 0, 0, 0, 5107, 5108, 5108, 5108,
10238  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10239  0, 0, 5108, 5108, 0, 0, 0, 0, 0, 5108,
10240  0, 0, 0, 0, 0, 0, 0, 0, 5108, 5110,
10241  5110, 5110, 0, 0, 0, 5110, 0, 0, 0, 0,
10242 
10243  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10244  0, 5110, 0, 0, 0, 0, 0, 0, 0, 0,
10245  5110, 5111, 5111, 0, 5111, 5111, 5111, 5111, 5111, 5111,
10246  5111, 5111, 5111, 5111, 5111, 5111, 5111, 5111, 5111, 5111,
10247  5111, 5111, 5111, 5111, 5111, 5111, 0, 5111, 5111, 5111,
10248  5111, 5111, 5111, 5111, 5112, 5112, 5112, 0, 0, 0,
10249  5112, 5112, 0, 0, 0, 5112, 0, 0, 0, 0,
10250  5112, 0, 0, 0, 0, 0, 5112, 0, 0, 0,
10251  5112, 0, 0, 0, 0, 5112, 5113, 5113, 5113, 0,
10252  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10253 
10254  0, 5113, 5113, 0, 5113, 0, 0, 0, 5113, 0,
10255  0, 0, 0, 0, 0, 0, 0, 5113, 5114, 5114,
10256  5114, 0, 0, 0, 5114, 0, 0, 0, 0, 0,
10257  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10258  5114, 0, 0, 0, 0, 0, 0, 0, 0, 5114,
10259  5115, 5115, 5115, 0, 0, 0, 0, 0, 0, 0,
10260  5115, 0, 0, 0, 0, 5115, 5115, 0, 5115, 0,
10261  0, 0, 5115, 0, 0, 0, 0, 0, 0, 0,
10262  0, 5115, 5116, 5116, 5116, 0, 0, 0, 5116, 0,
10263  0, 0, 5116, 0, 0, 0, 0, 0, 0, 0,
10264 
10265  0, 0, 0, 0, 5116, 0, 0, 0, 0, 0,
10266  0, 0, 0, 5116, 5117, 0, 0, 0, 5117, 0,
10267  0, 0, 0, 5117, 0, 0, 0, 0, 0, 0,
10268  5117, 0, 0, 0, 0, 0, 0, 0, 0, 5117,
10269  5118, 0, 0, 0, 0, 0, 0, 5118, 0, 0,
10270  0, 5118, 5118, 0, 0, 5118, 5118, 0, 0, 0,
10271  5118, 0, 5118, 5119, 5119, 5119, 5119, 5119, 5119, 5119,
10272  5119, 5119, 5119, 5119, 5119, 5119, 5119, 5119, 5119, 5119,
10273  5119, 5119, 5119, 5119, 5119, 5119, 5119, 5119, 5119, 5119,
10274  5119, 5119, 5119, 5119, 5119, 5119, 5120, 5120, 0, 5120,
10275 
10276  5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120,
10277  5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120,
10278  5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120, 5120, 5122,
10279  5122, 5122, 0, 0, 0, 0, 0, 0, 5122, 0,
10280  0, 0, 5122, 0, 5122, 0, 0, 0, 0, 0,
10281  0, 5122, 0, 0, 0, 0, 0, 0, 0, 0,
10282  5122, 5123, 5123, 5123, 0, 0, 0, 0, 0, 0,
10283  5123, 0, 0, 0, 5123, 0, 5123, 0, 0, 0,
10284  0, 0, 0, 5123, 0, 0, 0, 0, 0, 0,
10285  0, 0, 5123, 5124, 5124, 5124, 0, 0, 0, 0,
10286 
10287  0, 0, 0, 0, 0, 0, 0, 0, 5124, 5124,
10288  0, 5124, 0, 0, 0, 5124, 0, 0, 0, 0,
10289  0, 0, 0, 0, 5124, 5126, 5126, 5126, 5126, 5126,
10290  5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126,
10291  5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126,
10292  5126, 5126, 5126, 5126, 5126, 5126, 5126, 5126, 5127, 5127,
10293  5127, 5127, 5127, 0, 5127, 5127, 5127, 0, 5127, 5127,
10294  5127, 5127, 5127, 0, 5127, 5127, 5127, 0, 5127, 5127,
10295  0, 5127, 5127, 5127, 5127, 5127, 5127, 0, 0, 5127,
10296  5127, 5128, 5128, 0, 5128, 5128, 5128, 5128, 5128, 5128,
10297 
10298  5128, 5128, 5128, 5128, 5128, 5128, 5128, 5128, 5128, 5128,
10299  5128, 5128, 5128, 5128, 5128, 5128, 5128, 5128, 5128, 5128,
10300  5128, 5128, 5128, 5128, 5129, 5129, 0, 5129, 5129, 5129,
10301  5129, 5129, 5129, 5129, 5129, 5129, 5129, 5129, 5129, 5129,
10302  5129, 5129, 5129, 5129, 5129, 5129, 5129, 5129, 5129, 0,
10303  5129, 5129, 5129, 5129, 5129, 5129, 5129, 5130, 5130, 5130,
10304  5130, 5130, 5130, 5130, 5130, 5130, 5130, 5130, 5130, 5130,
10305  5130, 5130, 5130, 0, 5130, 5130, 5130, 5130, 5130, 5130,
10306  0, 5130, 5130, 5130, 5130, 5130, 5130, 5130, 5130, 5130,
10307  5131, 5131, 5131, 0, 0, 0, 0, 0, 0, 0,
10308 
10309  0, 0, 0, 5131, 0, 5131, 5131, 0, 0, 0,
10310  0, 0, 5131, 0, 0, 0, 0, 0, 0, 0,
10311  0, 5131, 5132, 5132, 0, 5132, 5132, 5132, 5132, 5132,
10312  5132, 5132, 5132, 5132, 5132, 5132, 5132, 5132, 5132, 5132,
10313  5132, 5132, 5132, 5132, 5132, 5132, 5132, 0, 5132, 5132,
10314  5132, 5132, 5132, 5132, 5132, 5134, 0, 0, 0, 5134,
10315  5134, 5134, 5134, 5134, 5134, 5134, 5134, 0, 5134, 0,
10316  0, 5134, 5134, 5134, 5134, 5134, 5134, 5134, 5134, 5134,
10317  5134, 5134, 5134, 5134, 5134, 5134, 5134, 5134, 5135, 0,
10318  5135, 0, 0, 0, 0, 0, 0, 5135, 0, 5135,
10319 
10320  0, 0, 0, 0, 0, 0, 5135, 5136, 5136, 5136,
10321  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10322  5136, 0, 5136, 0, 0, 0, 0, 0, 0, 5136,
10323  0, 0, 0, 0, 0, 0, 0, 0, 5136, 5138,
10324  5138, 0, 5138, 0, 0, 0, 5138, 0, 0, 0,
10325  0, 0, 0, 0, 0, 5138, 5139, 5139, 0, 5139,
10326  5139, 5139, 5139, 5139, 5139, 5139, 5139, 5139, 5139, 5139,
10327  5139, 5139, 5139, 5139, 5139, 5139, 5139, 5139, 5139, 5139,
10328  5139, 0, 5139, 5139, 5139, 5139, 5139, 5139, 5139, 5140,
10329  0, 5140, 5140, 5140, 5140, 5140, 5140, 5140, 5140, 5140,
10330 
10331  0, 5140, 5140, 5140, 5140, 5140, 5140, 5140, 5140, 5140,
10332  5140, 5140, 5140, 5140, 0, 5140, 5140, 5140, 5140, 5140,
10333  5140, 5140, 5141, 5141, 5141, 0, 0, 0, 0, 0,
10334  0, 0, 0, 0, 0, 0, 0, 5141, 5141, 0,
10335  0, 0, 0, 0, 5141, 0, 0, 0, 0, 0,
10336  0, 0, 0, 5141, 5142, 5142, 0, 5142, 5142, 5142,
10337  5142, 5142, 5142, 5142, 5142, 5142, 5142, 5142, 5142, 5142,
10338  5142, 5142, 5142, 5142, 5142, 5142, 5142, 5142, 5142, 0,
10339  5142, 5142, 5142, 5142, 5142, 5142, 5142, 5143, 0, 5143,
10340  5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 0, 5143,
10341 
10342  5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
10343  5143, 5143, 0, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
10344  5145, 5145, 0, 5145, 5145, 5145, 5145, 5145, 5145, 5145,
10345  5145, 5145, 5145, 5145, 5145, 5145, 5145, 5145, 5145, 5145,
10346  5145, 5145, 5145, 5145, 5145, 0, 5145, 5145, 5145, 5145,
10347  5145, 5145, 5145, 5146, 5146, 0, 5146, 5146, 5146, 5146,
10348  5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146,
10349  5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146, 0, 5146,
10350  5146, 5146, 5146, 5146, 5146, 5146, 5147, 5147, 0, 5147,
10351  5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147,
10352 
10353  5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147,
10354  5147, 0, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5148,
10355  5148, 0, 5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148,
10356  5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148,
10357  5148, 5148, 5148, 5148, 0, 5148, 5148, 5148, 5148, 5148,
10358  5148, 5148, 5149, 5149, 0, 5149, 5149, 5149, 5149, 5149,
10359  5149, 0, 5149, 5149, 5149, 0, 5149, 0, 5149, 5149,
10360  5149, 5149, 5149, 5149, 5149, 5149, 5149, 5149, 5149, 5149,
10361  5149, 0, 0, 5149, 5149, 5150, 5150, 0, 5150, 5150,
10362  5150, 5150, 5150, 5150, 5150, 5150, 5150, 5150, 5150, 5150,
10363 
10364  5150, 5150, 5150, 5150, 5150, 5150, 5150, 5150, 5150, 5150,
10365  0, 5150, 5150, 5150, 5150, 5150, 5150, 5150, 5151, 5151,
10366  5151, 5151, 5151, 5151, 5151, 5151, 5151, 5151, 5151, 5151,
10367  5151, 5151, 5151, 5151, 0, 5151, 5151, 5151, 5151, 5151,
10368  5151, 0, 5151, 5151, 5151, 5151, 5151, 5151, 5151, 5151,
10369  5151, 5152, 0, 5152, 5152, 5152, 5152, 5152, 5152, 5152,
10370  5152, 0, 0, 5152, 5152, 5152, 5152, 5152, 5152, 5152,
10371  5152, 5152, 5152, 5152, 5152, 5152, 0, 5152, 5152, 5152,
10372  5152, 5152, 5152, 5152, 5153, 0, 5153, 5153, 5153, 5153,
10373  5153, 5153, 5153, 5153, 0, 0, 5153, 5153, 5153, 5153,
10374 
10375  5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 5153, 0,
10376  5153, 5153, 5153, 5153, 5153, 5153, 5153, 5154, 0, 0,
10377  0, 0, 0, 5154, 5154, 0, 0, 0, 5154, 0,
10378  0, 0, 0, 0, 0, 0, 0, 0, 0, 5154,
10379  0, 0, 0, 0, 0, 0, 0, 0, 5154, 5155,
10380  5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155,
10381  5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155,
10382  5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155,
10383  5155, 5155, 5156, 5156, 0, 5156, 5156, 5156, 5156, 5156,
10384  5156, 5156, 5156, 5156, 0, 5156, 5156, 0, 5156, 5156,
10385 
10386  5156, 5156, 5156, 5156, 0, 5156, 5156, 0, 5156, 5156,
10387  5156, 5156, 5156, 0, 5156, 5157, 5157, 5157, 5157, 5157,
10388  5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157,
10389  5157, 0, 5157, 5157, 5157, 5157, 5157, 5157, 0, 5157,
10390  5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157, 5158, 5158,
10391  0, 5158, 5158, 5158, 5158, 0, 5158, 5158, 5158, 5158,
10392  5158, 5158, 5158, 0, 5158, 5158, 5158, 0, 5158, 5158,
10393  0, 5158, 5158, 0, 0, 5158, 5158, 5158, 5158, 0,
10394  5158, 5159, 5159, 5159, 0, 0, 0, 0, 0, 0,
10395  5159, 0, 0, 0, 0, 0, 5159, 5159, 0, 0,
10396 
10397  0, 0, 0, 5159, 0, 0, 0, 0, 0, 0,
10398  0, 0, 5159, 5160, 0, 0, 0, 5160, 0, 5160,
10399  0, 0, 5160, 0, 0, 0, 5160, 0, 0, 0,
10400  0, 0, 0, 0, 0, 5160, 5161, 5161, 5161, 0,
10401  0, 0, 5161, 0, 0, 0, 0, 0, 0, 0,
10402  0, 0, 0, 0, 0, 0, 0, 0, 5161, 0,
10403  0, 0, 0, 0, 0, 0, 0, 5161, 5164, 5164,
10404  5164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10405  0, 0, 0, 5164, 5164, 0, 0, 0, 0, 0,
10406  5164, 0, 0, 0, 0, 0, 0, 0, 0, 5164,
10407 
10408  5165, 5165, 5165, 0, 0, 0, 0, 0, 0, 0,
10409  0, 0, 0, 5165, 0, 5165, 5165, 0, 0, 0,
10410  0, 0, 5165, 0, 0, 0, 0, 0, 0, 0,
10411  0, 5165, 5166, 5166, 5166, 0, 0, 0, 5166, 0,
10412  0, 0, 0, 0, 0, 0, 0, 0, 5166, 0,
10413  0, 0, 0, 0, 5166, 0, 0, 0, 0, 0,
10414  0, 0, 0, 5166, 5167, 5167, 5167, 0, 0, 0,
10415  0, 0, 0, 0, 0, 0, 0, 0, 0, 5167,
10416  5167, 0, 5167, 0, 0, 0, 5167, 0, 0, 0,
10417  0, 0, 0, 0, 0, 5167, 5168, 0, 0, 0,
10418 
10419  0, 0, 0, 5168, 0, 0, 0, 5168, 5168, 0,
10420  0, 5168, 5168, 0, 0, 0, 5168, 0, 5168, 5169,
10421  5169, 5169, 0, 0, 0, 0, 0, 0, 0, 5169,
10422  0, 0, 0, 0, 5169, 5169, 0, 5169, 0, 0,
10423  0, 5169, 0, 0, 0, 0, 0, 0, 0, 0,
10424  5169, 5170, 0, 0, 0, 5170, 0, 0, 0, 0,
10425  5170, 0, 0, 0, 0, 0, 0, 5170, 0, 0,
10426  0, 0, 0, 0, 0, 0, 5170, 5171, 5171, 5171,
10427  5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171,
10428  5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171,
10429 
10430  5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171,
10431  5172, 5172, 0, 5172, 5172, 5172, 5172, 5172, 5172, 5172,
10432  5172, 5172, 5172, 5172, 5172, 5172, 5172, 5172, 5172, 5172,
10433  5172, 5172, 5172, 5172, 5172, 5172, 5172, 5172, 5172, 5172,
10434  5172, 5172, 5172, 5173, 5173, 5173, 0, 0, 0, 0,
10435  0, 0, 5173, 0, 0, 0, 5173, 0, 5173, 0,
10436  0, 0, 0, 0, 0, 5173, 0, 0, 0, 0,
10437  0, 0, 0, 0, 5173, 5174, 5174, 5174, 0, 0,
10438  0, 0, 0, 0, 5174, 0, 0, 0, 5174, 0,
10439  5174, 0, 0, 0, 0, 0, 0, 5174, 0, 0,
10440 
10441  0, 0, 0, 0, 0, 0, 5174, 5175, 5175, 5175,
10442  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10443  0, 0, 5175, 5175, 0, 5175, 0, 0, 0, 5175,
10444  0, 0, 0, 0, 0, 0, 0, 0, 5175, 5177,
10445  5177, 5177, 5177, 5177, 0, 5177, 5177, 5177, 0, 5177,
10446  5177, 5177, 5177, 5177, 0, 5177, 5177, 5177, 0, 5177,
10447  5177, 0, 5177, 5177, 5177, 5177, 5177, 5177, 0, 0,
10448  5177, 5177, 5178, 5178, 0, 5178, 5178, 5178, 5178, 5178,
10449  5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178,
10450  5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178,
10451 
10452  5178, 5178, 5178, 5178, 5178, 5179, 5179, 5179, 0, 0,
10453  0, 0, 0, 0, 0, 0, 0, 0, 5179, 0,
10454  5179, 5179, 0, 0, 0, 0, 0, 5179, 0, 0,
10455  0, 0, 0, 0, 0, 0, 5179, 5180, 5180, 5180,
10456  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10457  0, 0, 5180, 0, 0, 0, 0, 0, 0, 5180,
10458  0, 0, 0, 0, 0, 0, 0, 0, 5180, 5181,
10459  0, 0, 0, 5181, 5181, 5181, 5181, 5181, 5181, 5181,
10460  5181, 0, 5181, 0, 0, 5181, 5181, 5181, 5181, 5181,
10461  5181, 5181, 5181, 5181, 5181, 5181, 5181, 5181, 5181, 5181,
10462 
10463  5181, 5181, 5182, 5182, 0, 5182, 0, 0, 0, 5182,
10464  0, 0, 0, 0, 0, 0, 0, 0, 5182, 5183,
10465  0, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183,
10466  0, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183,
10467  5183, 5183, 5183, 5183, 0, 5183, 5183, 5183, 5183, 5183,
10468  5183, 5183, 5184, 5184, 5184, 0, 0, 0, 5184, 0,
10469  0, 0, 0, 5184, 0, 0, 0, 0, 0, 0,
10470  0, 0, 0, 0, 5184, 0, 0, 0, 0, 0,
10471  0, 0, 0, 5184, 5185, 0, 5185, 5185, 5185, 5185,
10472  5185, 5185, 5185, 5185, 5185, 0, 5185, 5185, 5185, 5185,
10473 
10474  5185, 5185, 5185, 5185, 5185, 5185, 5185, 5185, 5185, 0,
10475  5185, 5185, 5185, 5185, 5185, 5185, 5185, 5186, 5186, 0,
10476  5186, 5186, 0, 5186, 5186, 5186, 5186, 5186, 5186, 5186,
10477  5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186,
10478  5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186,
10479  5187, 0, 5187, 5187, 5187, 5187, 5187, 5187, 5187, 5187,
10480  0, 0, 5187, 5187, 5187, 5187, 5187, 5187, 5187, 5187,
10481  5187, 5187, 5187, 5187, 5187, 0, 5187, 5187, 5187, 5187,
10482  5187, 5187, 5187, 5188, 0, 5188, 5188, 5188, 5188, 5188,
10483  5188, 5188, 5188, 0, 0, 5188, 5188, 5188, 5188, 5188,
10484 
10485  5188, 5188, 5188, 5188, 5188, 5188, 5188, 5188, 0, 5188,
10486  5188, 5188, 5188, 5188, 5188, 5188, 5189, 5189, 5189, 5189,
10487  5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189,
10488  5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189,
10489  5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5190,
10490  5190, 0, 5190, 5190, 5190, 5190, 5190, 5190, 5190, 5190,
10491  5190, 0, 5190, 5190, 0, 5190, 5190, 5190, 5190, 5190,
10492  5190, 0, 5190, 5190, 0, 5190, 5190, 5190, 5190, 5190,
10493  0, 5190, 5191, 5191, 5191, 0, 0, 0, 0, 0,
10494  0, 5191, 0, 0, 0, 0, 0, 5191, 5191, 0,
10495 
10496  0, 0, 0, 0, 5191, 0, 0, 0, 0, 0,
10497  0, 0, 0, 5191, 5193, 5193, 5193, 5193, 0, 0,
10498  5193, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10499  5193, 0, 0, 0, 0, 0, 5193, 0, 0, 0,
10500  0, 0, 0, 0, 5193, 5193, 5194, 5194, 5194, 0,
10501  0, 0, 0, 0, 0, 0, 0, 0, 0, 5194,
10502  0, 5194, 5194, 0, 0, 0, 0, 0, 5194, 0,
10503  0, 0, 0, 0, 0, 0, 0, 5194, 5195, 5195,
10504  5195, 0, 0, 0, 5195, 0, 0, 0, 0, 0,
10505  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10506 
10507  5195, 0, 0, 0, 0, 0, 0, 0, 0, 5195,
10508  5196, 0, 0, 0, 0, 0, 0, 5196, 0, 0,
10509  0, 5196, 5196, 0, 0, 5196, 5196, 0, 0, 0,
10510  5196, 0, 5196, 5197, 5197, 5197, 0, 0, 0, 0,
10511  0, 0, 5197, 0, 0, 0, 5197, 0, 5197, 0,
10512  0, 0, 0, 0, 0, 5197, 0, 0, 0, 0,
10513  0, 0, 0, 0, 5197, 5198, 5198, 5198, 0, 0,
10514  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10515  5198, 5198, 0, 5198, 0, 0, 0, 5198, 0, 0,
10516  0, 0, 0, 0, 0, 0, 5198, 5200, 5200, 5200,
10517 
10518  5200, 5200, 0, 5200, 5200, 5200, 0, 5200, 5200, 5200,
10519  5200, 5200, 0, 5200, 5200, 5200, 0, 5200, 5200, 0,
10520  5200, 5200, 5200, 5200, 5200, 5200, 0, 0, 5200, 5200,
10521  5201, 5201, 5201, 0, 0, 0, 0, 0, 0, 0,
10522  0, 0, 0, 5201, 0, 5201, 5201, 0, 0, 0,
10523  0, 0, 5201, 0, 0, 0, 0, 0, 0, 0,
10524  0, 5201, 5203, 0, 0, 0, 5203, 5203, 5203, 5203,
10525  5203, 5203, 5203, 5203, 0, 5203, 0, 0, 5203, 5203,
10526  5203, 5203, 5203, 5203, 5203, 5203, 5203, 5203, 5203, 5203,
10527  5203, 5203, 5203, 5203, 5203, 5204, 5204, 0, 5204, 0,
10528 
10529  0, 0, 5204, 0, 0, 0, 0, 0, 0, 0,
10530  0, 5204, 5206, 0, 5206, 5206, 5206, 5206, 5206, 5206,
10531  5206, 5206, 5206, 0, 5206, 5206, 5206, 5206, 5206, 5206,
10532  5206, 5206, 5206, 5206, 5206, 5206, 5206, 0, 5206, 5206,
10533  5206, 5206, 5206, 5206, 5206, 5207, 0, 5207, 5207, 5207,
10534  5207, 5207, 5207, 5207, 5207, 5207, 0, 5207, 5207, 5207,
10535  5207, 5207, 5207, 5207, 5207, 5207, 5207, 5207, 5207, 5207,
10536  0, 5207, 5207, 5207, 5207, 5207, 5207, 5207, 5208, 5208,
10537  0, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208,
10538  5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208,
10539 
10540  5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208,
10541  5208, 5209, 0, 5209, 5209, 5209, 5209, 5209, 5209, 5209,
10542  5209, 0, 0, 5209, 5209, 5209, 5209, 5209, 5209, 5209,
10543  5209, 5209, 5209, 5209, 5209, 5209, 0, 5209, 5209, 5209,
10544  5209, 5209, 5209, 5209, 5210, 0, 5210, 5210, 5210, 5210,
10545  5210, 5210, 5210, 5210, 0, 0, 5210, 5210, 5210, 5210,
10546  5210, 5210, 5210, 5210, 5210, 5210, 5210, 5210, 5210, 0,
10547  5210, 5210, 5210, 5210, 5210, 5210, 5210, 5214, 0, 5214,
10548  5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214, 0, 5214,
10549  5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214,
10550 
10551  5214, 5214, 0, 5214, 5214, 5214, 5214, 5214, 5214, 5214,
10552  5215, 0, 5215, 5215, 5215, 5215, 5215, 5215, 5215, 5215,
10553  5215, 0, 5215, 5215, 5215, 5215, 5215, 5215, 5215, 5215,
10554  5215, 5215, 5215, 5215, 5215, 0, 5215, 5215, 5215, 5215,
10555  5215, 5215, 5215, 5216, 0, 5216, 5216, 5216, 5216, 5216,
10556  5216, 5216, 5216, 0, 0, 5216, 5216, 5216, 5216, 5216,
10557  5216, 5216, 5216, 5216, 5216, 5216, 5216, 5216, 0, 5216,
10558  5216, 5216, 5216, 5216, 5216, 5216, 5217, 0, 5217, 5217,
10559  5217, 5217, 5217, 5217, 5217, 5217, 0, 0, 5217, 5217,
10560  5217, 5217, 5217, 5217, 5217, 5217, 5217, 5217, 5217, 5217,
10561 
10562  5217, 0, 5217, 5217, 5217, 5217, 5217, 5217, 5217, 5218,
10563  5218, 5218, 5218, 5218, 5218, 5218, 5218, 5218, 5218, 5218,
10564  5218, 5218, 5218, 5218, 5218, 0, 5218, 5218, 5218, 5218,
10565  5218, 5218, 0, 5218, 5218, 5218, 5218, 5218, 5218, 5218,
10566  5218, 5218, 5221, 0, 5221, 5221, 5221, 5221, 5221, 5221,
10567  5221, 5221, 5221, 0, 5221, 5221, 5221, 5221, 5221, 5221,
10568  5221, 5221, 5221, 5221, 5221, 5221, 5221, 0, 5221, 5221,
10569  5221, 5221, 5221, 5221, 5221, 5222, 0, 5222, 5222, 5222,
10570  5222, 5222, 5222, 5222, 5222, 5222, 0, 5222, 5222, 5222,
10571  5222, 5222, 5222, 5222, 5222, 5222, 5222, 5222, 5222, 5222,
10572 
10573  0, 5222, 5222, 5222, 5222, 5222, 5222, 5222, 5223, 0,
10574  5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223, 0, 0,
10575  5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223,
10576  5223, 5223, 5223, 0, 5223, 5223, 5223, 5223, 5223, 5223,
10577  5223, 5224, 0, 5224, 5224, 5224, 5224, 5224, 5224, 5224,
10578  5224, 0, 0, 5224, 5224, 5224, 5224, 5224, 5224, 5224,
10579  5224, 5224, 5224, 5224, 5224, 5224, 0, 5224, 5224, 5224,
10580  5224, 5224, 5224, 5224, 5225, 0, 5225, 5225, 5225, 5225,
10581  5225, 5225, 5225, 5225, 5225, 0, 5225, 5225, 5225, 5225,
10582  5225, 5225, 5225, 5225, 5225, 5225, 5225, 5225, 5225, 0,
10583 
10584  5225, 5225, 5225, 5225, 5225, 5225, 5225, 5226, 0, 5226,
10585  5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226, 0, 5226,
10586  5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226,
10587  5226, 5226, 0, 5226, 5226, 5226, 5226, 5226, 5226, 5226,
10588  5227, 0, 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227,
10589  0, 0, 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227,
10590  5227, 5227, 5227, 5227, 5227, 0, 5227, 5227, 5227, 5227,
10591  5227, 5227, 5227, 5228, 0, 5228, 5228, 5228, 5228, 5228,
10592  5228, 5228, 5228, 0, 0, 5228, 5228, 5228, 5228, 5228,
10593  5228, 5228, 5228, 5228, 5228, 5228, 5228, 5228, 0, 5228,
10594 
10595  5228, 5228, 5228, 5228, 5228, 5228, 5229, 5229, 5229, 5229,
10596  5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229,
10597  5229, 5229, 0, 5229, 5229, 5229, 5229, 5229, 5229, 0,
10598  5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5230,
10599  0, 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230,
10600  0, 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230,
10601  5230, 5230, 5230, 5230, 0, 5230, 5230, 5230, 5230, 5230,
10602  5230, 5230, 5231, 0, 5231, 5231, 5231, 5231, 5231, 5231,
10603  5231, 5231, 5231, 0, 5231, 5231, 5231, 5231, 5231, 5231,
10604  5231, 5231, 5231, 5231, 5231, 5231, 5231, 0, 5231, 5231,
10605 
10606  5231, 5231, 5231, 5231, 5231, 5232, 0, 5232, 5232, 5232,
10607  5232, 5232, 5232, 5232, 5232, 0, 0, 5232, 5232, 5232,
10608  5232, 5232, 5232, 5232, 5232, 5232, 5232, 5232, 5232, 5232,
10609  0, 5232, 5232, 5232, 5232, 5232, 5232, 5232, 5233, 0,
10610  5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233, 0, 0,
10611  5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233,
10612  5233, 5233, 5233, 0, 5233, 5233, 5233, 5233, 5233, 5233,
10613  5233, 5235, 5235, 5235, 0, 0, 0, 0, 0, 0,
10614  0, 0, 0, 0, 0, 0, 5235, 0, 0, 0,
10615  5235, 0, 0, 5235, 0, 0, 0, 0, 0, 0,
10616 
10617  0, 0, 5235, 5238, 0, 5238, 5238, 5238, 5238, 5238,
10618  5238, 5238, 5238, 5238, 0, 5238, 5238, 5238, 5238, 5238,
10619  5238, 5238, 5238, 5238, 5238, 5238, 5238, 5238, 0, 5238,
10620  5238, 5238, 5238, 5238, 5238, 5238, 5239, 5239, 5239, 5239,
10621  0, 0, 5239, 0, 0, 0, 0, 0, 0, 0,
10622  0, 0, 5239, 0, 0, 0, 0, 0, 5239, 0,
10623  0, 0, 0, 0, 0, 0, 5239, 5239, 5240, 0,
10624  5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240, 0,
10625  5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240,
10626  5240, 5240, 5240, 0, 5240, 5240, 5240, 5240, 5240, 5240,
10627 
10628  5240, 5241, 0, 5241, 5241, 5241, 5241, 5241, 5241, 5241,
10629  5241, 0, 0, 5241, 5241, 5241, 5241, 5241, 5241, 5241,
10630  5241, 5241, 5241, 5241, 5241, 5241, 0, 5241, 5241, 5241,
10631  5241, 5241, 5241, 5241, 5242, 0, 5242, 5242, 5242, 5242,
10632  5242, 5242, 5242, 5242, 0, 0, 5242, 5242, 5242, 5242,
10633  5242, 5242, 5242, 5242, 5242, 5242, 5242, 5242, 5242, 0,
10634  5242, 5242, 5242, 5242, 5242, 5242, 5242, 5245, 0, 5245,
10635  5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245, 0, 5245,
10636  5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245,
10637  5245, 5245, 0, 5245, 5245, 5245, 5245, 5245, 5245, 5245,
10638 
10639  5246, 5246, 5246, 0, 0, 0, 5246, 0, 0, 0,
10640  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10641  0, 0, 5246, 0, 0, 0, 0, 0, 0, 0,
10642  0, 5246, 5247, 5247, 5247, 0, 0, 0, 0, 0,
10643  0, 0, 5247, 0, 5247, 0, 0, 5247, 5247, 0,
10644  0, 0, 0, 0, 5247, 0, 0, 0, 0, 0,
10645  0, 0, 0, 5247, 5248, 0, 5248, 5248, 5248, 5248,
10646  5248, 5248, 5248, 5248, 5248, 0, 5248, 5248, 5248, 5248,
10647  5248, 5248, 5248, 5248, 5248, 5248, 5248, 5248, 5248, 0,
10648  5248, 5248, 5248, 5248, 5248, 5248, 5248, 5249, 0, 5249,
10649 
10650  5249, 5249, 5249, 5249, 5249, 5249, 5249, 0, 0, 5249,
10651  5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249,
10652  5249, 5249, 0, 5249, 5249, 5249, 5249, 5249, 5249, 5249,
10653  5250, 0, 5250, 5250, 5250, 5250, 5250, 5250, 5250, 5250,
10654  0, 0, 5250, 5250, 5250, 5250, 5250, 5250, 5250, 5250,
10655  5250, 5250, 5250, 5250, 5250, 0, 5250, 5250, 5250, 5250,
10656  5250, 5250, 5250, 5251, 0, 5251, 5251, 5251, 5251, 5251,
10657  5251, 5251, 5251, 5251, 0, 5251, 5251, 5251, 5251, 5251,
10658  5251, 5251, 5251, 5251, 5251, 5251, 5251, 5251, 0, 5251,
10659  5251, 5251, 5251, 5251, 5251, 5251, 5252, 5252, 5252, 0,
10660 
10661  0, 0, 0, 0, 0, 0, 5252, 0, 5252, 0,
10662  0, 5252, 0, 0, 0, 0, 0, 0, 5252, 0,
10663  0, 0, 0, 0, 0, 0, 0, 5252, 5253, 5253,
10664  5253, 5253, 0, 0, 5253, 0, 0, 0, 0, 0,
10665  0, 0, 0, 0, 5253, 0, 0, 0, 0, 0,
10666  5253, 0, 0, 0, 0, 0, 0, 0, 5253, 5253,
10667  5254, 0, 5254, 5254, 5254, 5254, 5254, 5254, 5254, 5254,
10668  5254, 0, 5254, 5254, 5254, 5254, 5254, 5254, 5254, 5254,
10669  5254, 5254, 5254, 5254, 5254, 0, 5254, 5254, 5254, 5254,
10670  5254, 5254, 5254, 5255, 0, 5255, 5255, 5255, 5255, 5255,
10671 
10672  5255, 5255, 5255, 0, 0, 5255, 5255, 5255, 5255, 5255,
10673  5255, 5255, 5255, 5255, 5255, 5255, 5255, 5255, 0, 5255,
10674  5255, 5255, 5255, 5255, 5255, 5255, 5256, 0, 5256, 5256,
10675  5256, 5256, 5256, 5256, 5256, 5256, 0, 0, 5256, 5256,
10676  5256, 5256, 5256, 5256, 5256, 5256, 5256, 5256, 5256, 5256,
10677  5256, 0, 5256, 5256, 5256, 5256, 5256, 5256, 5256, 5257,
10678  0, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257,
10679  0, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257,
10680  5257, 5257, 5257, 5257, 0, 5257, 5257, 5257, 5257, 5257,
10681  5257, 5257, 5258, 5258, 5258, 0, 0, 0, 5258, 0,
10682 
10683  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10684  0, 0, 0, 0, 5258, 0, 0, 0, 0, 0,
10685  0, 0, 0, 5258, 5259, 5259, 5259, 0, 0, 0,
10686  0, 0, 0, 0, 5259, 0, 5259, 0, 0, 5259,
10687  5259, 0, 0, 0, 0, 0, 5259, 0, 0, 0,
10688  0, 0, 0, 0, 0, 5259, 5260, 0, 5260, 5260,
10689  5260, 5260, 5260, 5260, 5260, 5260, 5260, 0, 5260, 5260,
10690  5260, 5260, 5260, 5260, 5260, 5260, 5260, 5260, 5260, 5260,
10691  5260, 0, 5260, 5260, 5260, 5260, 5260, 5260, 5260, 5261,
10692  0, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 0,
10693 
10694  0, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261,
10695  5261, 5261, 5261, 5261, 0, 5261, 5261, 5261, 5261, 5261,
10696  5261, 5261, 5262, 0, 5262, 5262, 5262, 5262, 5262, 5262,
10697  5262, 5262, 0, 0, 5262, 5262, 5262, 5262, 5262, 5262,
10698  5262, 5262, 5262, 5262, 5262, 5262, 5262, 0, 5262, 5262,
10699  5262, 5262, 5262, 5262, 5262, 5263, 0, 5263, 5263, 5263,
10700  5263, 5263, 5263, 5263, 5263, 5263, 0, 5263, 5263, 5263,
10701  5263, 5263, 5263, 5263, 5263, 5263, 5263, 5263, 5263, 5263,
10702  0, 5263, 5263, 5263, 5263, 5263, 5263, 5263, 5264, 5264,
10703  5264, 0, 0, 0, 0, 0, 0, 0, 5264, 0,
10704 
10705  5264, 0, 0, 5264, 0, 0, 0, 0, 0, 0,
10706  5264, 0, 0, 0, 0, 0, 0, 0, 0, 5264,
10707  5265, 0, 5265, 5265, 5265, 5265, 5265, 5265, 5265, 5265,
10708  5265, 0, 5265, 5265, 5265, 5265, 5265, 5265, 5265, 5265,
10709  5265, 5265, 5265, 5265, 5265, 0, 5265, 5265, 5265, 5265,
10710  5265, 5265, 5265, 5266, 0, 5266, 5266, 5266, 5266, 5266,
10711  5266, 5266, 5266, 0, 0, 5266, 5266, 5266, 5266, 5266,
10712  5266, 5266, 5266, 5266, 5266, 5266, 5266, 5266, 0, 5266,
10713  5266, 5266, 5266, 5266, 5266, 5266, 5267, 0, 5267, 5267,
10714  5267, 5267, 5267, 5267, 5267, 5267, 0, 0, 5267, 5267,
10715 
10716  5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267,
10717  5267, 0, 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5268,
10718  0, 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268,
10719  0, 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268,
10720  5268, 5268, 5268, 5268, 0, 5268, 5268, 5268, 5268, 5268,
10721  5268, 5268, 5269, 0, 5269, 5269, 5269, 5269, 5269, 5269,
10722  5269, 5269, 5269, 0, 5269, 5269, 5269, 5269, 5269, 5269,
10723  5269, 5269, 5269, 5269, 5269, 5269, 5269, 0, 5269, 5269,
10724  5269, 5269, 5269, 5269, 5269, 5270, 0, 5270, 5270, 5270,
10725  5270, 5270, 5270, 5270, 5270, 0, 0, 5270, 5270, 5270,
10726 
10727  5270, 5270, 5270, 5270, 5270, 5270, 5270, 5270, 5270, 5270,
10728  0, 5270, 5270, 5270, 5270, 5270, 5270, 5270, 5271, 0,
10729  5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 0, 0,
10730  5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271,
10731  5271, 5271, 5271, 0, 5271, 5271, 5271, 5271, 5271, 5271,
10732  5271, 5272, 0, 5272, 5272, 5272, 5272, 5272, 5272, 5272,
10733  5272, 5272, 0, 5272, 5272, 5272, 5272, 5272, 5272, 5272,
10734  5272, 5272, 5272, 5272, 5272, 5272, 0, 5272, 5272, 5272,
10735  5272, 5272, 5272, 5272, 5273, 0, 5273, 5273, 5273, 5273,
10736  5273, 5273, 5273, 5273, 5273, 0, 5273, 5273, 5273, 5273,
10737 
10738  5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273, 0,
10739  5273, 5273, 5273, 5273, 5273, 5273, 5273, 4612, 4612, 4612,
10740  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10741  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10742  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10743  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10744  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10745  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10746  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10747  4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612, 4612,
10748 
10749  4612, 4612, 4612, 4612, 4612, 4612
10750  } ;
10751 
10752 extern int scannerYY_flex_debug;
10753 int scannerYY_flex_debug = 0;
10754 
10755 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
10756 static char *yy_full_match;
10757 static int yy_lp;
10759 static int yy_full_lp;
10760 static int *yy_full_state;
10761 #define YY_TRAILING_MASK 0x2000
10762 #define YY_TRAILING_HEAD_MASK 0x4000
10763 #define REJECT \
10764 { \
10765 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */ \
10766 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
10767 (yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
10768 (yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
10769 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
10770 ++(yy_lp); \
10771 goto find_rule; \
10772 }
10773 
10774 #define yymore() yymore_used_but_not_detected
10775 #define YY_MORE_ADJ 0
10776 #define YY_RESTORE_YY_MORE_OFFSET
10778 #line 1 "scanner.l"
10779 /*****************************************************************************
10780  *
10781  *
10782  *
10783  * Copyright (C) 1997-2015 by Dimitri van Heesch.
10784  *
10785  * Permission to use, copy, modify, and distribute this software and its
10786  * documentation under the terms of the GNU General Public License is hereby
10787  * granted. No representations are made about the suitability of this software
10788  * for any purpose. It is provided "as is" without express or implied warranty.
10789  * See the GNU General Public License for more details.
10790  *
10791  * Documents produced by Doxygen are derivative works derived from the
10792  * input used in their production; they are not affected by this license.
10793  *
10794  */
10795 #line 19 "scanner.l"
10796 
10797 /*
10798  * includes
10799  */
10800 #include <stdio.h>
10801 #include <stdlib.h>
10802 #include <assert.h>
10803 #include <ctype.h>
10804 
10805 #include <qarray.h>
10806 #include <qstack.h>
10807 #include <qregexp.h>
10808 #include <qfile.h>
10809 
10810 #include "scanner.h"
10811 #include "entry.h"
10812 #include "message.h"
10813 #include "config.h"
10814 #include "doxygen.h"
10815 #include "util.h"
10816 #include "defargs.h"
10817 #include "language.h"
10818 #include "commentscan.h"
10819 #include "code.h"
10820 #include "arguments.h"
10821 
10822 #include "clangparser.h"
10823 
10824 #define YY_NO_INPUT 1
10825 #define YY_NO_UNISTD_H 1
10826 
10827 /* -----------------------------------------------------------------
10828  *
10829  * statics
10830  */
10832 static const char * inputString;
10833 static int inputPosition;
10835 static int lastContext;
10836 static int lastCContext;
10837 static int lastDocContext;
10838 static int lastCPPContext;
10842 static int lastCurlyContext;
10843 static int lastRoundContext;
10851 static int lastCSConstraint;
10858 static int sharpCount = 0 ;
10859 static int roundCount = 0 ;
10860 static int curlyCount = 0 ;
10861 static int squareCount = 0 ;
10862 static int padCount = 0 ;
10863 static Entry* current_root = 0 ;
10864 static Entry* global_root = 0 ;
10865 static Entry* current = 0 ;
10866 static Entry* previous = 0 ;
10867 static Entry* tempEntry = 0 ;
10869 static Entry* memspecEntry = 0 ;
10870 static int yyLineNr = 1 ;
10871 static int yyBegLineNr = yyLineNr ;
10872 static int yyColNr = 1 ;
10873 static int yyBegColNr = yyColNr ;
10874 static int anonCount = 0 ;
10875 static int anonNSCount = 0 ;
10878 static bool gstat;
10879 static bool removeSlashes;
10883 static bool isTypedef;
10884 static int tmpDocType;
10894 
10896 static bool insideIDL = FALSE; //!< processing IDL code?
10897 static bool insideJava = FALSE; //!< processing Java code?
10898 static bool insideCS = FALSE; //!< processing C# code?
10899 static bool insideD = FALSE; //!< processing D code?
10900 static bool insidePHP = FALSE; //!< processing PHP code?
10901 static bool insideObjC = FALSE; //!< processing Objective C code?
10902 static bool insideCli = FALSE; //!< processing C++/CLI code?
10903 static bool insideJS = FALSE; //!< processing JavaScript code?
10904 static bool insideCpp = TRUE; //!< processing C/C++ code
10905 
10906 static bool insideCppQuote = FALSE;
10908 
10909 static int argRoundCount;
10910 static int argSharpCount;
10916 
10918 static char lastCopyArgChar;
10919 
10924 
10932 
10933 static bool insideFormula;
10934 static bool insideTryBlock=FALSE;
10935 static bool insideCode;
10936 static bool needsSemi;
10937 
10938 //static int depthIf;
10939 static int initBracketCount;
10940 
10944 
10945 static int docBlockContext;
10948 static bool docBlockInBody;
10949 static bool docBlockAutoBrief;
10950 static char docBlockTerm;
10951 
10954 static bool odlProp;
10955 
10956 static bool g_lexInit = FALSE;
10957 static bool externC;
10958 
10960 
10961 static int g_column;
10962 
10963 static int g_fencedSize=0;
10964 static bool g_nestedComment=0;
10965 
10966 //-----------------------------------------------------------------------------
10967 
10968 // forward declarations
10969 //static void handleGroupStartCommand(const char *header);
10970 //static void handleGroupEndCommand();
10971 
10972 //-----------------------------------------------------------------------------
10973 
10974 static void initParser()
10975 {
10976  sectionLabel.resize(0);
10977  sectionTitle.resize(0);
10978  baseName.resize(0);
10979  formulaText.resize(0);
10980  protection = Public;
10981  baseProt = Public;
10982  sharpCount = 0;
10983  roundCount = 0;
10984  curlyCount = 0;
10985  mtype = Method;
10986  gstat = FALSE;
10987  virt = Normal;
10988  baseVirt = Normal;
10989  isTypedef = FALSE;
10990  autoGroupStack.clear();
10991  insideTryBlock = FALSE;
10992  autoGroupStack.setAutoDelete(TRUE);
10993  insideFormula = FALSE;
10994  insideCode=FALSE;
10995  insideCli=Config_getBool("CPP_CLI_SUPPORT");
10996  previous = 0;
10997  firstTypedefEntry = 0;
10998  tempEntry = 0;
10999  memspecEntry =0;
11000 }
11001 
11002 static void initEntry()
11003 {
11004  if (insideJava)
11005  {
11006  protection = (current_root->spec & (Entry::Interface|Entry::Enum)) ? Public : Package;
11007  }
11008  current->protection = protection ;
11009  current->mtype = mtype;
11010  current->virt = virt;
11011  current->stat = gstat;
11012  current->lang = language;
11013  //printf("*** initEntry() language=%d\n",language);
11014  //if (!autoGroupStack.isEmpty())
11015  //{
11016  // //printf("Appending group %s\n",autoGroupStack.top()->groupname.data());
11017  // current->groups->append(new Grouping(*autoGroupStack.top()));
11018  //}
11019  initGroupInfo(current);
11020  isTypedef=FALSE;
11021 }
11022 
11023 
11024 //-----------------------------------------------------------------------------
11025 
11026 ///// remove any automatic grouping and add new one (if given)
11027 //static void setCurrentGroup( QCString *newgroup, Grouping::GroupPri_t pri )
11028 //{
11029 // /* remove auto group name from current entry and discard it */
11030 // Grouping *g = current->groups->first();
11031 // int i=0;
11032 // while (g)
11033 // {
11034 // if (g->pri <= Grouping::GROUPING_AUTO_DEF)
11035 // {
11036 // current->groups->remove(i);
11037 // i--;
11038 // }
11039 // g=current->groups->next();
11040 // i++;
11041 // }
11042 //
11043 // /* use new group name instead? */
11044 // if ( newgroup )
11045 // {
11046 // current->groups->append(new Grouping(*newgroup, pri));
11047 // }
11048 //}
11049 //
11050 //static int newMemberGroupId()
11051 //{
11052 // static int curGroupId=0;
11053 // return curGroupId++;
11054 //}
11055 //
11056 // forward declarations
11057 //static void startGroupInDoc();
11058 //static void endGroup();
11059 
11060 //-----------------------------------------------------------------------------
11061 
11062 static void lineCount()
11063 {
11064  static int tabSize = Config_getInt("TAB_SIZE");
11065  const char *p;
11066  for (p = scannerYYtext ; *p ; ++p )
11067  {
11068  if (*p=='\n')
11069  {
11070  yyLineNr++,g_column=0,yyColNr=1;
11071  }
11072  else if (*p=='\t')
11073  {
11074  g_column+=tabSize - (g_column%tabSize);
11075  }
11076  else
11077  {
11078  g_column++,yyColNr++;
11079  }
11080  }
11081  //printf("lineCount()=%d\n",g_column);
11082 }
11083 
11084 static inline int computeIndent(const char *s,int startIndent)
11085 {
11086  int col=startIndent;
11087  static int tabSize=Config_getInt("TAB_SIZE");
11088  const char *p=s;
11089  char c;
11090  while ((c=*p++))
11091  {
11092  if (c=='\t') col+=tabSize-(col%tabSize);
11093  else if (c=='\n') col=0;
11094  else col++;
11095  }
11096  return col;
11097 }
11098 
11099 static void addType( Entry* current )
11100 {
11101  uint tl=current->type.length();
11102  if( tl>0 && !current->name.isEmpty() && current->type.at(tl-1)!='.')
11103  {
11104  current->type += ' ' ;
11105  }
11106  current->type += current->name ;
11107  current->name.resize(0) ;
11108  tl=current->type.length();
11109  if( tl>0 && !current->args.isEmpty() && current->type.at(tl-1)!='.')
11110  {
11111  current->type += ' ' ;
11112  }
11113  current->type += current->args ;
11114  current->args.resize(0) ;
11115  current->argList->clear();
11116 }
11117 
11118 
11119 static QCString stripQuotes(const char *s)
11120 {
11121  QCString name;
11122  if (s==0 || *s==0) return name;
11123  name=s;
11124  if (name.at(0)=='"' && name.at(name.length()-1)=='"')
11125  {
11126  name=name.mid(1,name.length()-2);
11127  }
11128  return name;
11129 }
11130 
11131 //-----------------------------------------------------------------
11132 
11133 static void startCommentBlock(bool);
11134 static void handleCommentBlock(const QCString &doc,bool brief);
11136 
11137 //-----------------------------------------------------------------
11138 
11140 {
11141  int i=name.find("operator");
11142  if (i==-1) return FALSE;
11143  if (i==0 && !isId(name.at(8))) return TRUE; // case operator ::X
11144  if (i>0 && !isId(name.at(i-1)) && !isId(name.at(i+8))) return TRUE; // case X::operator
11145  return FALSE; // case TEXToperatorTEXT
11146 }
11147 
11148 //-----------------------------------------------------------------------------
11149 
11150 static void setContext()
11151 {
11153  language = getLanguageFromFileName(fileName);
11154  insideIDL = language==SrcLangExt_IDL;
11155  insideJava = language==SrcLangExt_Java;
11156  insideCS = language==SrcLangExt_CSharp;
11157  insideD = language==SrcLangExt_D;
11158  insidePHP = language==SrcLangExt_PHP;
11159  insideObjC = language==SrcLangExt_ObjC;
11160  insideJS = language==SrcLangExt_JS;
11161  insideCpp = language==SrcLangExt_Cpp;
11162  if ( insidePHP )
11163  {
11164  useOverrideCommands = TRUE;
11165  }
11166  //printf("setContext(%s) insideIDL=%d insideJava=%d insideCS=%d "
11167  // "insideD=%d insidePHP=%d insideObjC=%d\n",
11168  // yyFileName.data(),insideIDL,insideJava,insideCS,insideD,insidePHP,insideObjC
11169  // );
11170 }
11171 
11172 //-----------------------------------------------------------------------------
11173 
11174 static void prependScope()
11175 {
11176  if (current_root->section & Entry::SCOPE_MASK)
11177  {
11178  //printf("--- prependScope %s to %s\n",current_root->name.data(),current->name.data());
11179  current->name.prepend(current_root->name+"::");
11180  if (current_root->tArgLists)
11181  {
11182  if (current->tArgLists==0)
11183  {
11184  current->tArgLists = new QList<ArgumentList>;
11185  current->tArgLists->setAutoDelete(TRUE);
11186  }
11187  //printf("prependScope #=%d #current=%d\n",current_root->tArgLists->count(),current->tArgLists->count());
11188  QListIterator<ArgumentList> talsi(*current_root->tArgLists);
11189  ArgumentList *srcAl=0;
11190  for (talsi.toLast();(srcAl=talsi.current());--talsi)
11191  {
11192  ArgumentList *dstAl = new ArgumentList;
11193  QListIterator<Argument> tali(*srcAl);
11194  Argument *a;
11195  for (;(a=tali.current());++tali)
11196  {
11197  dstAl->append(new Argument(*a));
11198  //printf("appending argument %s %s\n",a->type.data(),a->name.data());
11199  }
11200  current->tArgLists->insert(0,dstAl);
11201  }
11202  }
11203  }
11204 }
11205 
11206 //-----------------------------------------------------------------------------
11207 
11208 /*! Returns TRUE iff the current entry could be a K&R style C function */
11209 static bool checkForKnRstyleC()
11210 {
11211  if (((QCString)yyFileName).right(2).lower()!=".c") return FALSE; // must be a C file
11212  if (!current->argList) return FALSE; // must have arguments
11213  ArgumentListIterator ali(*current->argList);
11214  Argument *a;
11215  for (ali.toFirst();(a=ali.current());++ali)
11216  {
11217  // in K&R style argument do not have a type, but doxygen expects a type
11218  // so it will think the argument has no name
11219  if (a->type.isEmpty() || !a->name.isEmpty()) return FALSE;
11220  }
11221  return TRUE;
11222 }
11223 
11224 //-----------------------------------------------------------------------------
11225 
11226 static void splitKnRArg(QCString &oldStyleArgPtr,QCString &oldStyleArgName)
11227 {
11228  int si = current->args.length();
11229  if (oldStyleArgType.isEmpty()) // new argument
11230  {
11231  static QRegExp re("([^)]*)");
11232  int bi1 = current->args.findRev(re);
11233  int bi2 = bi1!=-1 ? current->args.findRev(re,bi1-1) : -1;
11234  char c;
11235  if (bi1!=-1 && bi2!=-1) // found something like "int (*func)(int arg)"
11236  {
11237  int s=bi2+1;
11238  oldStyleArgType = current->args.left(s);
11239  int i=s;
11240  while (i<si && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i++;
11241  oldStyleArgType += current->args.mid(s,i-s);
11242  s=i;
11243  while (i<si && isId(current->args.at(i))) i++;
11244  oldStyleArgName = current->args.mid(s,i-s);
11245  oldStyleArgType+=current->args.mid(i);
11246  }
11247  else if (bi1!=-1) // redundant braces like in "int (*var)"
11248  {
11249  int s=bi1;
11250  oldStyleArgType = current->args.left(s);
11251  s++;
11252  int i=s+1;
11253  while (i<si && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i++;
11254  oldStyleArgType += current->args.mid(s,i-s);
11255  s=i;
11256  while (i<si && isId(current->args.at(i))) i++;
11257  oldStyleArgName = current->args.mid(s,i-s);
11258  }
11259  else // normal "int *var"
11260  {
11261  int l=si,i=l-1,j;
11262  char c;
11263  // look for start of name in "type *name"
11264  while (i>=0 && isId(current->args.at(i))) i--;
11265  j=i+1;
11266  // look for start of *'s
11267  while (i>=0 && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i--;
11268  i++;
11269  if (i!=l)
11270  {
11271  oldStyleArgType=current->args.left(i);
11272  oldStyleArgPtr=current->args.mid(i,j-i);
11273  oldStyleArgName=current->args.mid(j).stripWhiteSpace();
11274  }
11275  else
11276  {
11277  oldStyleArgName=current->args.copy().stripWhiteSpace();
11278  }
11279  }
11280  }
11281  else // continuation like *arg2 in "int *args,*arg2"
11282  {
11283  int l=si,j=0;
11284  char c;
11285  while (j<l && ((c=current->args.at(j))=='*' || isspace((uchar)c))) j++;
11286  if (j>0)
11287  {
11288  oldStyleArgPtr=current->args.left(j);
11289  oldStyleArgName=current->args.mid(j).stripWhiteSpace();
11290  }
11291  else
11292  {
11293  oldStyleArgName=current->args.copy().stripWhiteSpace();
11294  }
11295  }
11296 }
11297 
11298 //-----------------------------------------------------------------------------
11299 
11300 /*! Update the argument \a name with additional \a type info. For K&R style
11301  * function the type is found \e after the argument list, so this routine
11302  * in needed to fix up.
11303  */
11304 static void addKnRArgInfo(const QCString &type,const QCString &name,
11305  const QCString &brief,const QCString &docs)
11306 {
11307  if (current->argList==0) return;
11308  ArgumentListIterator ali(*current->argList);
11309  Argument *a;
11310  for (ali.toFirst();(a=ali.current());++ali)
11311  {
11312  if (a->type==name)
11313  {
11314  a->type=type.stripWhiteSpace();
11315  if (a->type.left(9)=="register ") // strip keyword
11316  {
11317  a->type=a->type.mid(9);
11318  }
11319  a->name=name.stripWhiteSpace();
11320  if (!brief.isEmpty() && !docs.isEmpty())
11321  {
11322  a->docs=brief+"\n\n"+docs;
11323  }
11324  else if (!brief.isEmpty())
11325  {
11326  a->docs=brief;
11327  }
11328  else
11329  {
11330  a->docs=docs;
11331  }
11332  }
11333  }
11334 }
11335 
11336 //-----------------------------------------------------------------------------
11337 
11338 
11340 {
11341  if (al==0) return;
11342  ArgumentListIterator ali(*al);
11343  Argument *a;
11344  for (ali.toFirst();(a=ali.current());++ali)
11345  {
11346  if (!a->type.isEmpty() && a->name.isEmpty())
11347  { // a->type is actually the (typeless) parameter name, so move it
11348  a->name=a->type;
11349  a->type.resize(0);
11350  }
11351  }
11352 }
11353 
11354 /* ----------------------------------------------------------------- */
11355 #undef YY_INPUT
11356 #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size);
11357 
11358 static int yyread(char *buf,int max_size)
11359 {
11360  int c=0;
11361  while( c < max_size && inputString[inputPosition] )
11362  {
11363  *buf = inputString[inputPosition++] ;
11364  //printf("%d (%c)\n",*buf,*buf);
11365  c++; buf++;
11366  }
11367  return c;
11368 }
11369 
11370 /* start command character */
11371 /* language parsing states */
11372 
11373 
11374 
11375 
11376 
11377 
11378 
11379 
11380 
11381 
11382 
11383 
11384 
11385 
11386 
11387 
11388 
11389 
11390 
11391 
11392 
11393 
11394 
11395 
11396 
11397 
11398 
11399 
11400 
11401 
11402 
11403 
11404 
11405 
11406 
11407 
11408 
11409 
11410 
11411 
11412 
11413 
11414 
11415 
11416 
11417 
11418 
11419 
11420 
11421 
11422 
11423 
11424 
11425 
11426 
11427 
11428 
11429 
11430 
11431 
11432 
11433 
11434 
11435 
11436 
11437 
11438 
11439 
11440 
11441 
11442 
11443 
11444 
11445 
11446 
11447 
11448 
11449 
11450 
11451 
11452 
11453 
11454 
11455 
11456 
11457 
11458 
11459 
11460 
11461 
11462 
11463 
11464 
11465 
11466 
11467 
11468 
11469 
11470 
11471 
11472 
11473 
11474 
11475 
11476 
11477 
11478 
11479 
11480 
11481 
11482 
11483 
11484 
11485 
11486 
11487 
11488 
11489 
11490 
11491 
11492 
11493 
11494 
11495 
11496 
11497 
11498 
11499 
11500 
11501 
11502 
11503 
11504 
11505 /** Prototype scanner states */
11506 
11507 
11508 
11509 
11510 
11511 /** comment parsing states */
11512 
11513 
11514 
11515 #line 11516 "/nova/app/home/novasoft/doxygen/doxygen-1.8.11/build/generated_src/scanner.cpp"
11516 
11517 #define INITIAL 0
11518 #define AlignAs 1
11519 #define AlignAsEnd 2
11520 #define Define 3
11521 #define DefineEnd 4
11522 #define CompoundName 5
11523 #define ClassVar 6
11524 #define CSConstraintName 7
11525 #define CSConstraintType 8
11526 #define CSIndexer 9
11527 #define ClassCategory 10
11528 #define ClassTemplSpec 11
11529 #define CliPropertyType 12
11530 #define CliPropertyIndex 13
11531 #define CliOverride 14
11532 #define Bases 15
11533 #define BasesProt 16
11534 #define NextSemi 17
11535 #define BitFields 18
11536 #define EnumBaseType 19
11537 #define FindMembers 20
11538 #define FindMembersPHP 21
11539 #define FindMemberName 22
11540 #define FindFields 23
11541 #define FindFieldArg 24
11542 #define Function 25
11543 #define FuncRound 26
11544 #define ExcpRound 27
11545 #define ExcpList 28
11546 #define FuncQual 29
11547 #define TrailingReturn 30
11548 #define Operator 31
11549 #define Array 32
11550 #define ReadBody 33
11551 #define ReadNSBody 34
11552 #define ReadBodyIntf 35
11553 #define Using 36
11554 #define UsingAlias 37
11555 #define UsingAliasEnd 38
11556 #define UsingDirective 39
11557 #define SkipCurly 40
11558 #define SkipCurlyCpp 41
11559 #define SkipCurlyEndDoc 42
11560 #define SkipString 43
11561 #define SkipPHPString 44
11562 #define SkipInits 45
11563 #define SkipC11Inits 46
11564 #define SkipC11Attribute 47
11565 #define SkipCPP 48
11566 #define SkipCPPBlock 49
11567 #define SkipComment 50
11568 #define SkipCxxComment 51
11569 #define SkipCurlyBlock 52
11570 #define SkipRoundBlock 53
11571 #define Sharp 54
11572 #define SkipRound 55
11573 #define SkipSquare 56
11574 #define SkipRemainder 57
11575 #define StaticAssert 58
11576 #define DeclType 59
11577 #define TypedefName 60
11578 #define TryFunctionBlock 61
11579 #define TryFunctionBlockEnd 62
11580 #define Comment 63
11581 #define PackageName 64
11582 #define JavaImport 65
11583 #define PHPUse 66
11584 #define PHPUseAs 67
11585 #define CSAccessorDecl 68
11586 #define CSGeneric 69
11587 #define PreLineCtrl 70
11588 #define DefinePHP 71
11589 #define DefinePHPEnd 72
11590 #define OldStyleArgs 73
11591 #define SkipVerbString 74
11592 #define ObjCMethod 75
11593 #define ObjCReturnType 76
11594 #define ObjCParams 77
11595 #define ObjCParamType 78
11596 #define ObjCProtocolList 79
11597 #define ObjCPropAttr 80
11598 #define ObjCSkipStatement 81
11599 #define QtPropType 82
11600 #define QtPropName 83
11601 #define QtPropAttr 84
11602 #define QtPropRead 85
11603 #define QtPropWrite 86
11604 #define ReadInitializer 87
11605 #define UNOIDLAttributeBlock 88
11606 #define GetCallType 89
11607 #define CppQuote 90
11608 #define EndCppQuote 91
11609 #define MemberSpec 92
11610 #define MemberSpecSkip 93
11611 #define EndTemplate 94
11612 #define FuncPtr 95
11613 #define FuncPtrOperator 96
11614 #define EndFuncPtr 97
11615 #define ReadFuncArgType 98
11616 #define ReadTempArgs 99
11617 #define IDLUnionCase 100
11618 #define NSAliasName 101
11619 #define NSAliasArg 102
11620 #define CopyString 103
11621 #define CopyPHPString 104
11622 #define CopyGString 105
11623 #define CopyPHPGString 106
11624 #define CopyRound 107
11625 #define CopyCurly 108
11626 #define GCopyRound 109
11627 #define GCopyCurly 110
11628 #define SkipUnionSwitch 111
11629 #define Specialization 112
11630 #define FuncPtrInit 113
11631 #define FuncFunc 114
11632 #define FuncFuncEnd 115
11633 #define FuncFuncType 116
11634 #define FuncFuncArray 117
11635 #define CopyArgString 118
11636 #define CopyArgPHPString 119
11637 #define CopyArgRound 120
11638 #define CopyArgSharp 121
11639 #define CopyArgComment 122
11640 #define CopyArgCommentLine 123
11641 #define CopyArgVerbatim 124
11642 #define HereDoc 125
11643 #define HereDocEnd 126
11644 #define CopyHereDoc 127
11645 #define CopyHereDocEnd 128
11646 #define RawString 129
11647 #define RawGString 130
11648 #define IDLAttribute 131
11649 #define IDLProp 132
11650 #define IDLPropName 133
11651 #define Prototype 134
11652 #define PrototypePtr 135
11653 #define PrototypeQual 136
11654 #define PrototypeExc 137
11655 #define PrototypeSkipLine 138
11656 #define DocLine 139
11657 #define DocBlock 140
11658 #define DocCopyBlock 141
11659 
11660 #ifndef YY_NO_UNISTD_H
11661 /* Special case for "unistd.h", since it is non-ANSI. We include it way
11662  * down here because we want the user's section 1 to have been scanned first.
11663  * The user has a chance to override it with an option.
11664  */
11665 #include <unistd.h>
11666 #endif
11667 
11668 #ifndef YY_EXTRA_TYPE
11669 #define YY_EXTRA_TYPE void *
11670 #endif
11671 
11672 static int yy_init_globals (void );
11673 
11674 /* Accessor methods to globals.
11675  These are made visible to non-reentrant scanners for convenience. */
11676 
11677 int scannerYYlex_destroy (void );
11678 
11679 int scannerYYget_debug (void );
11680 
11681 void scannerYYset_debug (int debug_flag );
11682 
11684 
11685 void scannerYYset_extra (YY_EXTRA_TYPE user_defined );
11686 
11687 FILE *scannerYYget_in (void );
11688 
11689 void scannerYYset_in (FILE * in_str );
11690 
11691 FILE *scannerYYget_out (void );
11692 
11693 void scannerYYset_out (FILE * out_str );
11694 
11695 int scannerYYget_leng (void );
11696 
11697 char *scannerYYget_text (void );
11698 
11699 int scannerYYget_lineno (void );
11700 
11701 void scannerYYset_lineno (int line_number );
11702 
11703 /* Macros after this point can all be overridden by user definitions in
11704  * section 1.
11705  */
11706 
11707 #ifndef YY_SKIP_YYWRAP
11708 #ifdef __cplusplus
11709 extern "C" int scannerYYwrap (void );
11710 #else
11711 extern int scannerYYwrap (void );
11712 #endif
11713 #endif
11714 
11715  static void yyunput (int c,char *buf_ptr );
11716 
11717 #ifndef yytext_ptr
11718 static void yy_flex_strncpy (char *,yyconst char *,int );
11719 #endif
11720 
11721 #ifdef YY_NEED_STRLEN
11722 static int yy_flex_strlen (yyconst char * );
11723 #endif
11724 
11725 #ifndef YY_NO_INPUT
11726 
11727 #ifdef __cplusplus
11728 static int yyinput (void );
11729 #else
11730 static int input (void );
11731 #endif
11732 
11733 #endif
11734 
11735 /* Amount of stuff to slurp up with each read. */
11736 #ifndef YY_READ_BUF_SIZE
11737 #define YY_READ_BUF_SIZE 8192
11738 #endif
11739 
11740 /* Copy whatever the last rule matched to the standard output. */
11741 #ifndef ECHO
11742 /* This used to be an fputs(), but since the string might contain NUL's,
11743  * we now use fwrite().
11744  */
11745 #define ECHO do { if (fwrite( scannerYYtext, scannerYYleng, 1, scannerYYout )) {} } while (0)
11746 #endif
11747 
11748 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
11749  * is returned in "result".
11750  */
11751 #ifndef YY_INPUT
11752 #define YY_INPUT(buf,result,max_size) \
11753  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
11754  { \
11755  int c = '*'; \
11756  unsigned n; \
11757  for ( n = 0; n < max_size && \
11758  (c = getc( scannerYYin )) != EOF && c != '\n'; ++n ) \
11759  buf[n] = (char) c; \
11760  if ( c == '\n' ) \
11761  buf[n++] = (char) c; \
11762  if ( c == EOF && ferror( scannerYYin ) ) \
11763  YY_FATAL_ERROR( "input in flex scanner failed" ); \
11764  result = n; \
11765  } \
11766  else \
11767  { \
11768  errno=0; \
11769  while ( (result = fread(buf, 1, max_size, scannerYYin))==0 && ferror(scannerYYin)) \
11770  { \
11771  if( errno != EINTR) \
11772  { \
11773  YY_FATAL_ERROR( "input in flex scanner failed" ); \
11774  break; \
11775  } \
11776  errno=0; \
11777  clearerr(scannerYYin); \
11778  } \
11779  }\
11780 \
11781 
11782 #endif
11783 
11784 /* No semi-colon after return; correct usage is to write "yyterminate();" -
11785  * we don't want an extra ';' after the "return" because that will cause
11786  * some compilers to complain about unreachable statements.
11787  */
11788 #ifndef yyterminate
11789 #define yyterminate() return YY_NULL
11790 #endif
11791 
11792 /* Number of entries by which start-condition stack grows. */
11793 #ifndef YY_START_STACK_INCR
11794 #define YY_START_STACK_INCR 25
11795 #endif
11796 
11797 /* Report a fatal error. */
11798 #ifndef YY_FATAL_ERROR
11799 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
11800 #endif
11801 
11802 /* end tables serialization structures and prototypes */
11803 
11804 /* Default declaration of generated scanner - a define so the user can
11805  * easily add parameters.
11806  */
11807 #ifndef YY_DECL
11808 #define YY_DECL_IS_OURS 1
11809 
11810 extern int scannerYYlex (void);
11811 
11812 #define YY_DECL int scannerYYlex (void)
11813 #endif /* !YY_DECL */
11814 
11815 /* Code executed at the beginning of each rule, after scannerYYtext and scannerYYleng
11816  * have been set up.
11817  */
11818 #ifndef YY_USER_ACTION
11819 #define YY_USER_ACTION
11820 #endif
11821 
11822 /* Code executed at the end of each rule. */
11823 #ifndef YY_BREAK
11824 #define YY_BREAK break;
11825 #endif
11826 
11827 #define YY_RULE_SETUP \
11828  if ( scannerYYleng > 0 ) \
11829  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
11830  (scannerYYtext[scannerYYleng - 1] == '\n'); \
11831  YY_USER_ACTION
11832 
11833 /** The main scanner function which does all the work.
11834  */
11835 YY_DECL
11837  register yy_state_type yy_current_state;
11838  register char *yy_cp, *yy_bp;
11839  register int yy_act;
11840 
11841 #line 775 "scanner.l"
11842 
11843 
11844 #line 11845 "/nova/app/home/novasoft/doxygen/doxygen-1.8.11/build/generated_src/scanner.cpp"
11845 
11846  if ( !(yy_init) )
11847  {
11848  (yy_init) = 1;
11849 
11850 #ifdef YY_USER_INIT
11851  YY_USER_INIT;
11852 #endif
11853 
11854  /* Create the reject buffer large enough to save one state per allowed character. */
11855  if ( ! (yy_state_buf) )
11856  (yy_state_buf) = (yy_state_type *)scannerYYalloc(YY_STATE_BUF_SIZE );
11857  if ( ! (yy_state_buf) )
11858  YY_FATAL_ERROR( "out of dynamic memory in scannerYYlex()" );
11859 
11860  if ( ! (yy_start) )
11861  (yy_start) = 1; /* first start state */
11862 
11863  if ( ! scannerYYin )
11864  scannerYYin = stdin;
11865 
11866  if ( ! scannerYYout )
11867  scannerYYout = stdout;
11868 
11869  if ( ! YY_CURRENT_BUFFER ) {
11873  }
11874 
11876  }
11877 
11878  while ( 1 ) /* loops until end-of-file is reached */
11879  {
11880  yy_cp = (yy_c_buf_p);
11881 
11882  /* Support of scannerYYtext. */
11883  *yy_cp = (yy_hold_char);
11884 
11885  /* yy_bp points to the position in yy_ch_buf of the start of
11886  * the current run.
11887  */
11888  yy_bp = yy_cp;
11889 
11890  yy_current_state = (yy_start);
11891  yy_current_state += YY_AT_BOL();
11892 
11893  (yy_state_ptr) = (yy_state_buf);
11894  *(yy_state_ptr)++ = yy_current_state;
11895 
11896 yy_match:
11897  do
11898  {
11899  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
11900  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11901  {
11902  yy_current_state = (int) yy_def[yy_current_state];
11903  if ( yy_current_state >= 4613 )
11904  yy_c = yy_meta[(unsigned int) yy_c];
11905  }
11906  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
11907  *(yy_state_ptr)++ = yy_current_state;
11908  ++yy_cp;
11909  }
11910  while ( yy_current_state != 4612 );
11911 
11912 yy_find_action:
11913  yy_current_state = *--(yy_state_ptr);
11914  (yy_lp) = yy_accept[yy_current_state];
11915 find_rule: /* we branch to this label when backing up */
11916  for ( ; ; ) /* until we find what rule we matched */
11917  {
11918  if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
11919  {
11920  yy_act = yy_acclist[(yy_lp)];
11921  if ( yy_act & YY_TRAILING_HEAD_MASK ||
11922  (yy_looking_for_trail_begin) )
11923  {
11924  if ( yy_act == (yy_looking_for_trail_begin) )
11925  {
11927  yy_act &= ~YY_TRAILING_HEAD_MASK;
11928  break;
11929  }
11930  }
11931  else if ( yy_act & YY_TRAILING_MASK )
11932  {
11933  (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
11935  (yy_full_match) = yy_cp;
11937  (yy_full_lp) = (yy_lp);
11938  }
11939  else
11940  {
11941  (yy_full_match) = yy_cp;
11943  (yy_full_lp) = (yy_lp);
11944  break;
11945  }
11946  ++(yy_lp);
11947  goto find_rule;
11948  }
11949  --yy_cp;
11950  yy_current_state = *--(yy_state_ptr);
11951  (yy_lp) = yy_accept[yy_current_state];
11952  }
11953 
11955 
11956 do_action: /* This label is used only to access EOF actions. */
11957 
11958  switch ( yy_act )
11959  { /* beginning of action switch */
11960 case 1:
11962 #line 777 "scanner.l"
11963 {
11964  curlyCount=0;
11965  needsSemi = TRUE;
11967  }
11968  YY_BREAK
11969 case 2:
11971 #line 782 "scanner.l"
11972 {
11973  roundCount=0;
11975  }
11976  YY_BREAK
11977 case 3:
11979 #line 786 "scanner.l"
11980 {
11981  ++roundCount;
11982  }
11983  YY_BREAK
11984 case 4:
11986 #line 789 "scanner.l"
11987 {
11988  if (roundCount )
11989  --roundCount ;
11990  else
11991  BEGIN( NextSemi ) ;
11992  }
11993  YY_BREAK
11994 case 5:
11996 #line 795 "scanner.l"
11997 {
11998  ++curlyCount ;
11999  }
12000  YY_BREAK
12001 case 6:
12003 #line 798 "scanner.l"
12004 {
12005  if( curlyCount )
12006  {
12007  --curlyCount ;
12008  }
12009  else if (needsSemi)
12010  {
12011  BEGIN( NextSemi );
12012  }
12013  else
12014  {
12015  BEGIN( FindMembers );
12016  }
12017  }
12018  YY_BREAK
12019 case 7:
12021 #line 812 "scanner.l"
12022 {
12023  if (insidePHP)
12024  {
12025  lastStringContext=NextSemi;
12027  }
12028  }
12029  YY_BREAK
12030 case 8:
12032 #line 819 "scanner.l"
12033 { if (insidePHP) REJECT; }
12034  YY_BREAK
12035 case 9:
12037 #line 820 "scanner.l"
12038 {
12039  lastStringContext=NextSemi;
12040  BEGIN(SkipString);
12041  }
12042  YY_BREAK
12043 case 10:
12045 #line 824 "scanner.l"
12046 {
12047  unput(*scannerYYtext);
12048  BEGIN( FindMembers );
12049  }
12050  YY_BREAK
12051 case 11:
12053 #line 828 "scanner.l"
12054 {
12055  unput(*scannerYYtext);
12056  BEGIN( FindMembers );
12057  }
12058  YY_BREAK
12059 case 12:
12061 #line 832 "scanner.l"
12062 {
12063  current->args = current->args.simplifyWhiteSpace();
12064  unput(*scannerYYtext);
12065  BEGIN( ClassVar );
12066  }
12067  YY_BREAK
12068 case 13:
12070 #line 837 "scanner.l"
12071 { // PHP code with unsupported extension?
12072  insidePHP = TRUE;
12073  }
12074  YY_BREAK
12075 case 14:
12077 #line 840 "scanner.l"
12078 { // PHP code start
12079  BEGIN( FindMembers );
12080  }
12081  YY_BREAK
12082 case 15:
12083 /* rule 15 can match eol */
12085 #line 843 "scanner.l"
12086 { // PHP code start
12087  lineCount() ;
12088  BEGIN( FindMembers );
12089  }
12090  YY_BREAK
12091 case 16:
12093 #line 847 "scanner.l"
12094 { // Non-PHP code text, ignore
12095  }
12096  YY_BREAK
12097 case 17:
12098 /* rule 17 can match eol */
12100 #line 849 "scanner.l"
12101 { // Non-PHP code text, ignore
12102  lineCount();
12103  }
12104  YY_BREAK
12105 case 18:
12107 #line 852 "scanner.l"
12108 { // Non-PHP code text, ignore
12109  }
12110  YY_BREAK
12111 case 19:
12113 #line 854 "scanner.l"
12114 { // PHP code end
12115  if (insidePHP)
12116  BEGIN( FindMembersPHP );
12117  else
12118  REJECT;
12119  }
12120  YY_BREAK
12121 case 20:
12122 /* rule 20 can match eol */
12124 #line 860 "scanner.l"
12125 { if (insidePHP)
12126  BEGIN( NextSemi );
12127  else
12128  REJECT;
12129  }
12130  YY_BREAK
12131 case 21:
12133 #line 865 "scanner.l"
12134 { // Mozilla XPIDL lang-specific block
12135  if (!insideIDL)
12136  REJECT;
12137  }
12138  YY_BREAK
12139 case 22:
12141 #line 869 "scanner.l"
12142 { // Mozilla XPIDL lang-specific block end
12143  if (!insideIDL)
12144  REJECT;
12145  }
12146  YY_BREAK
12147 case 23:
12148 /* rule 23 can match eol */
12150 #line 873 "scanner.l"
12151 { // IDL or Borland C++ builder property
12152  current->mtype = mtype = Property;
12153  current->protection = protection = Public ;
12154  current->type.resize(0);
12155  current->name.resize(0);
12156  current->args.resize(0);
12157  current->argList->clear();
12158  lineCount() ;
12159  }
12160  YY_BREAK
12161 case 24:
12162 /* rule 24 can match eol */
12164 #line 883 "scanner.l"
12165 { current->mtype = mtype = DCOP;
12166  current->protection = protection = Public ;
12167  current->type.resize(0);
12168  current->name.resize(0);
12169  current->args.resize(0);
12170  current->argList->clear();
12171  lineCount() ;
12172  }
12173  YY_BREAK
12174 case 25:
12175 /* rule 25 can match eol */
12177 #line 892 "scanner.l"
12178 { current->mtype = mtype = Signal;
12179 
12180  current->protection = protection = Public ;
12181  current->type.resize(0);
12182  current->name.resize(0);
12183  current->args.resize(0);
12184  current->argList->clear();
12185  lineCount() ;
12186  }
12187  YY_BREAK
12188 case 26:
12189 /* rule 26 can match eol */
12191 #line 902 "scanner.l"
12192 {
12193  current->protection = protection = Public ;
12194  current->mtype = mtype = Slot;
12195  current->type.resize(0);
12196  current->name.resize(0);
12197  current->args.resize(0);
12198  current->argList->clear();
12199  lineCount();
12200  }
12201  YY_BREAK
12202 case 27:
12203 /* rule 27 can match eol */
12205 #line 912 "scanner.l"
12206 {
12207  current->protection = protection = Protected ;
12208  current->mtype = mtype = Slot;
12209  current->type.resize(0);
12210  current->name.resize(0);
12211  current->args.resize(0);
12212  current->argList->clear();
12213  lineCount();
12214  }
12215  YY_BREAK
12216 case 28:
12217 /* rule 28 can match eol */
12219 #line 922 "scanner.l"
12220 {
12221  current->protection = protection = Private ;
12222  current->mtype = mtype = Slot;
12223  current->type.resize(0);
12224  current->name.resize(0);
12225  current->args.resize(0);
12226  current->argList->clear();
12227  lineCount();
12228  }
12229  YY_BREAK
12230 case 29:
12231 /* rule 29 can match eol */
12233 #line 931 "scanner.l"
12234 {
12235  current->protection = protection = Public ;
12236  current->mtype = mtype = Method;
12237  current->type.resize(0);
12238  current->name.resize(0);
12239  current->args.resize(0);
12240  current->argList->clear();
12241  lineCount() ;
12242  }
12243  YY_BREAK
12244 case 30:
12245 /* rule 30 can match eol */
12247 #line 940 "scanner.l"
12248 { // for now treat C++/CLI's internal as package...
12249  if (insideCli)
12250  {
12251  current->protection = protection = Package ;
12252  current->mtype = mtype = Method;
12253  current->type.resize(0);
12254  current->name.resize(0);
12255  current->args.resize(0);
12256  current->argList->clear();
12257  lineCount() ;
12258  }
12259  else
12260  {
12261  REJECT;
12262  }
12263  }
12264  YY_BREAK
12265 case 31:
12266 /* rule 31 can match eol */
12268 #line 956 "scanner.l"
12269 {
12270  current->protection = protection = Protected ;
12271  current->mtype = mtype = Method;
12272  current->type.resize(0);
12273  current->name.resize(0);
12274  current->args.resize(0);
12275  current->argList->clear();
12276  lineCount() ;
12277  }
12278  YY_BREAK
12279 case 32:
12280 /* rule 32 can match eol */
12282 #line 965 "scanner.l"
12283 {
12284  current->protection = protection = Private ;
12285  current->mtype = mtype = Method;
12286  current->type.resize(0);
12287  current->name.resize(0);
12288  current->args.resize(0);
12289  current->argList->clear();
12290  lineCount() ;
12291  }
12292  YY_BREAK
12293 case 33:
12294 /* rule 33 can match eol */
12296 #line 974 "scanner.l"
12297 {
12298  if (insideCli)
12299  {
12300  // C++/CLI event
12301  lineCount() ;
12302  current->mtype = mtype = Event;
12303  current->bodyLine = yyLineNr;
12304  curlyCount=0;
12306  }
12307  else if (insideCS)
12308  {
12309  lineCount() ;
12310  current->mtype = Event;
12311  current->bodyLine = yyLineNr;
12312  }
12313  else
12314  {
12315  REJECT;
12316  }
12317  }
12318  YY_BREAK
12319 case 34:
12320 /* rule 34 can match eol */
12322 #line 995 "scanner.l"
12323 {
12324  if (insideCli)
12325  {
12326  // C++/CLI property
12327  lineCount() ;
12328  current->mtype = mtype = Property;
12329  current->bodyLine = yyLineNr;
12330  curlyCount=0;
12332  }
12333  else
12334  {
12335  REJECT;
12336  }
12337  }
12338  YY_BREAK
12339 case 35:
12341 #line 1010 "scanner.l"
12342 {
12343  addType( current );
12344  current->name = scannerYYtext;
12345  }
12346  YY_BREAK
12347 case 36:
12349 #line 1014 "scanner.l"
12350 { // C++/CLI indexed property
12351  current->name += scannerYYtext;
12353  }
12354  YY_BREAK
12355 case 37:
12357 #line 1018 "scanner.l"
12358 {
12359  curlyCount=0;
12360  //printf("event: '%s' '%s'\n",current->type.data(),current->name.data());
12361  BEGIN( CSAccessorDecl );
12362  }
12363  YY_BREAK
12364 case 38:
12366 #line 1023 "scanner.l"
12367 {
12368  unput(*scannerYYtext);
12369  BEGIN( FindMembers );
12370  }
12371  YY_BREAK
12372 case 39:
12373 /* rule 39 can match eol */
12375 #line 1027 "scanner.l"
12376 {
12377  lineCount();
12378  }
12379  YY_BREAK
12380 case 40:
12382 #line 1030 "scanner.l"
12383 {
12384  }
12385  YY_BREAK
12386 case 41:
12388 #line 1032 "scanner.l"
12389 {
12390  addType( current );
12391  current->type += scannerYYtext;
12392  }
12393  YY_BREAK
12394 case 42:
12396 #line 1036 "scanner.l"
12397 {
12399  current->name+=scannerYYtext;
12400  }
12401  YY_BREAK
12402 case 43:
12404 #line 1040 "scanner.l"
12405 {
12406  current->name+=scannerYYtext;
12407  }
12408  YY_BREAK
12409 /*
12410 <FindMembers>{B}*"property"{BN}+ {
12411  if (!current->type.isEmpty())
12412  {
12413  REJECT;
12414  }
12415  else
12416  {
12417  current->mtype = mtype = Property;
12418  lineCount();
12419  }
12420  }
12421  */
12422 case 44:
12423 /* rule 44 can match eol */
12425 #line 1056 "scanner.l"
12426 {
12427  current->protection = protection = Private ;
12428  current->mtype = mtype = Method;
12429  current->type.resize(0);
12430  current->name.resize(0);
12431  current->args.resize(0);
12432  current->argList->clear();
12433  lineCount() ;
12434  }
12435  YY_BREAK
12436 case 45:
12437 /* rule 45 can match eol */
12439 #line 1065 "scanner.l"
12440 {
12441  current->protection = protection = Protected ;
12442  current->mtype = mtype = Method;
12443  current->type.resize(0);
12444  current->name.resize(0);
12445  current->args.resize(0);
12446  current->argList->clear();
12447  lineCount() ;
12448  }
12449  YY_BREAK
12450 case 46:
12451 /* rule 46 can match eol */
12453 #line 1074 "scanner.l"
12454 {
12455  current->protection = protection = Public ;
12456  current->mtype = mtype = Method;
12457  current->type.resize(0);
12458  current->name.resize(0);
12459  current->args.resize(0);
12460  current->argList->clear();
12461  lineCount() ;
12462  }
12463  YY_BREAK
12464 case 47:
12465 /* rule 47 can match eol */
12467 #line 1083 "scanner.l"
12468 {
12469  if (!insideObjC)
12470  {
12471  REJECT;
12472  }
12473  else
12474  {
12475  lineCount();
12476  current->fileName = yyFileName;
12477  current->startLine = yyLineNr;
12478  current->startColumn = yyColNr;
12479  current->bodyLine = yyLineNr;
12480  current->section = Entry::FUNCTION_SEC;
12481  current->protection = protection = Public ;
12482  language = current->lang = SrcLangExt_ObjC;
12483  insideObjC = TRUE;
12484  current->virt = Virtual;
12485  current->stat=scannerYYtext[0]=='+';
12486  current->mtype = mtype = Method;
12487  current->type.resize(0);
12488  current->name.resize(0);
12489  current->args.resize(0);
12490  current->argList->clear();
12491  BEGIN( ObjCMethod );
12492  }
12493  }
12494  YY_BREAK
12495 case 48:
12497 #line 1109 "scanner.l"
12498 { // start of method's return type
12499  BEGIN( ObjCReturnType );
12500  }
12501  YY_BREAK
12502 case 49:
12504 #line 1112 "scanner.l"
12505 { // found method name
12506  if (current->type.isEmpty())
12507  {
12508  current->type = "id";
12509  }
12510  current->name = scannerYYtext;
12511  if (insideCpp || insideObjC)
12512  {
12513  current->id = ClangParser::instance()->lookup(yyLineNr,scannerYYtext);
12514  }
12515  }
12516  YY_BREAK
12517 case 50:
12519 #line 1123 "scanner.l"
12520 { // start of parameter list
12521  current->name += ':';
12522  Argument *a = new Argument;
12523  current->argList->append(a);
12524  BEGIN( ObjCParams );
12525  }
12526  YY_BREAK
12527 case 51:
12528 /* rule 51 can match eol */
12530 #line 1129 "scanner.l"
12531 { // TODO: check if nested braches are possible.
12532  current->type = scannerYYtext;
12533  }
12534  YY_BREAK
12535 case 52:
12537 #line 1132 "scanner.l"
12538 {
12539  BEGIN( ObjCMethod );
12540  }
12541  YY_BREAK
12542 case 53:
12544 #line 1135 "scanner.l"
12545 { // Keyword of parameter
12546  QCString keyw = scannerYYtext;
12547  keyw=keyw.left(keyw.length()-1); // strip :
12548  if (keyw.isEmpty())
12549  {
12550  current->name += " :";
12551  }
12552  else
12553  {
12554  current->name += keyw+":";
12555  }
12556  if (current->argList->getLast()->type.isEmpty())
12557  {
12558  current->argList->getLast()->type="id";
12559  }
12560  Argument *a = new Argument;
12561  a->attrib=(QCString)"["+keyw+"]";
12562  current->argList->append(a);
12563  }
12564  YY_BREAK
12565 case 54:
12566 /* rule 54 can match eol */
12568 #line 1154 "scanner.l"
12569 { // name of parameter
12570  lineCount();
12571  current->argList->getLast()->name=QCString(scannerYYtext).stripWhiteSpace();
12572  }
12573  YY_BREAK
12574 case 55:
12575 /* rule 55 can match eol */
12577 #line 1158 "scanner.l"
12578 { // name of parameter
12579  lineCount();
12580  // do we want the comma as part of the name?
12581  //current->name += ",";
12582  Argument *a = new Argument;
12583  a->attrib="[,]";
12584  a->type="...";
12585  current->argList->append(a);
12586  }
12587  YY_BREAK
12588 /*
12589 <ObjCParams>":" {
12590  current->name += ':';
12591  }
12592  */
12593 case 56:
12595 #line 1172 "scanner.l"
12596 {
12597  roundCount=0;
12598  current->argList->getLast()->type.resize(0);
12599  BEGIN( ObjCParamType );
12600  }
12601  YY_BREAK
12602 case 57:
12604 #line 1177 "scanner.l"
12605 {
12606  roundCount++;
12607  current->argList->getLast()->type+=scannerYYtext;
12608  }
12609  YY_BREAK
12610 case 58:
12611 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
12612 (yy_c_buf_p) = yy_cp = yy_bp + 1;
12613 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
12615 #line 1181 "scanner.l"
12616 {
12617  if (roundCount<=0)
12618  {
12619  BEGIN( ObjCParams );
12620  }
12621  else
12622  {
12623  current->argList->getLast()->type+=scannerYYtext;
12624  roundCount--;
12625  }
12626  }
12627  YY_BREAK
12628 case 59:
12629 /* rule 59 can match eol */
12631 #line 1192 "scanner.l"
12632 {
12633  current->argList->getLast()->type+=QCString(scannerYYtext).stripWhiteSpace();
12634  }
12635  YY_BREAK
12636 case 60:
12638 #line 1195 "scanner.l"
12639 { // end of method declaration
12640  if (current->argList->getLast() && current->argList->getLast()->type.isEmpty())
12641  {
12642  current->argList->getLast()->type="id";
12643  }
12644  current->args = argListToString(current->argList);
12645  //printf("argList=%s\n",current->args.data());
12646  unput(';');
12647  BEGIN( Function );
12648  }
12649  YY_BREAK
12650 case 61:
12651 /* rule 61 can match eol */
12653 #line 1205 "scanner.l"
12654 { // start of a method body
12655  lineCount();
12656  //printf("Type=%s Name=%s args=%s\n",
12657  // current->type.data(),current->name.data(),argListToString(current->argList).data()
12658  // );
12659  if (current->argList->getLast() && current->argList->getLast()->type.isEmpty())
12660  {
12661  current->argList->getLast()->type="id";
12662  }
12663  current->args = argListToString(current->argList);
12664  unput('{');
12665  BEGIN( Function );
12666  }
12667  YY_BREAK
12668 case 62:
12669 /* rule 62 can match eol */
12671 #line 1218 "scanner.l"
12672 {
12673  lineCount();
12674  }
12675  YY_BREAK
12676 case 63:
12677 /* rule 63 can match eol */
12679 #line 1221 "scanner.l"
12680 {
12681  if (insideJava) // Java annotation
12682  {
12683  lineCount();
12684  lastSkipRoundContext = YY_START;
12685  roundCount=0;
12686  BEGIN( SkipRound );
12687  }
12688  else if (qstrncmp(scannerYYtext,"@property",9)==0) // ObjC 2.0 property
12689  {
12690  current->mtype = mtype = Property;
12692  current->protection = Public ;
12693  unput('(');
12694  BEGIN( ObjCPropAttr );
12695  }
12696  else
12697  {
12698  REJECT;
12699  }
12700  }
12701  YY_BREAK
12702 case 64:
12704 #line 1242 "scanner.l"
12705 {
12706  current->read = scannerYYtext+7;
12707  }
12708  YY_BREAK
12709 case 65:
12711 #line 1245 "scanner.l"
12712 {
12713  current->write = scannerYYtext+7;
12714  }
12715  YY_BREAK
12716 case 66:
12718 #line 1248 "scanner.l"
12719 {
12720  current->spec&=~Entry::Writable;
12721  }
12722  YY_BREAK
12723 case 67:
12725 #line 1251 "scanner.l"
12726 { // default
12727  }
12728  YY_BREAK
12729 case 68:
12731 #line 1253 "scanner.l"
12732 { // default
12733  }
12734  YY_BREAK
12735 case 69:
12737 #line 1255 "scanner.l"
12738 {
12739  current->spec&=~Entry::Assign;
12740  current->spec|=Entry::Unretained;
12741  }
12742  YY_BREAK
12743 case 70:
12745 #line 1259 "scanner.l"
12746 {
12747  current->spec&=~Entry::Assign;
12748  current->spec|=Entry::Retain;
12749  }
12750  YY_BREAK
12751 case 71:
12753 #line 1263 "scanner.l"
12754 {
12755  current->spec&=~Entry::Assign;
12756  current->spec|=Entry::Copy;
12757  }
12758  YY_BREAK
12759 case 72:
12761 #line 1267 "scanner.l"
12762 {
12763  current->spec&=~Entry::Assign;
12764  current->spec|=Entry::Weak;
12765  }
12766  YY_BREAK
12767 case 73:
12769 #line 1271 "scanner.l"
12770 {
12771  current->spec&=~Entry::Assign;
12772  current->spec|=Entry::Strong;
12773  }
12774  YY_BREAK
12775 case 74:
12777 #line 1275 "scanner.l"
12778 {
12779  current->spec|=Entry::NonAtomic;
12780  }
12781  YY_BREAK
12782 case 75:
12784 #line 1278 "scanner.l"
12785 {
12786  BEGIN(FindMembers);
12787  }
12788  YY_BREAK
12789 case 76:
12791 #line 1281 "scanner.l"
12792 {
12793  if (insideJava) // Java annotation
12794  {
12795  // skip annotation
12796  }
12797  else if (qstrcmp(scannerYYtext,"@property")==0) // ObjC 2.0 property
12798  {
12799  current->mtype = mtype = Property;
12800  current->spec|=Entry::Writable | Entry::Readable;
12801  current->protection = Public ;
12802  }
12803  else if (qstrcmp(scannerYYtext,"@synthesize")==0)
12804  {
12806  }
12807  else if (qstrcmp(scannerYYtext,"@dynamic")==0)
12808  {
12810  }
12811  else
12812  {
12813  REJECT;
12814  }
12815  }
12816  YY_BREAK
12817 case 77:
12819 #line 1305 "scanner.l"
12820 {
12821  BEGIN(FindMembers);
12822  }
12823  YY_BREAK
12824 case 78:
12826 #line 1308 "scanner.l"
12827 {
12828  isTypedef=FALSE;
12829  //printf("Found namespace %s lang=%d\n",scannerYYtext,current->lang);
12830  current->name = scannerYYtext;
12831  current->name = substitute(current->name,".","::");
12832  current->name = substitute(current->name,"\\","::");
12833  current->section = Entry::NAMESPACE_SEC;
12834  current->type = "namespace" ;
12835  current->fileName = yyFileName;
12836  current->startLine = yyLineNr;
12837  current->startColumn = yyColNr;
12838  current->bodyLine = yyLineNr;
12839  lineCount();
12840  }
12841  YY_BREAK
12842 case 79:
12844 #line 1322 "scanner.l"
12845 {
12846  current_root->addSubEntry(current);
12847  current_root = current ;
12848  current = new Entry ;
12849  initEntry();
12850  BEGIN(FindMembers);
12851  }
12852  YY_BREAK
12853 case 80:
12855 #line 1329 "scanner.l"
12856 {
12857  curlyCount=0;
12858  BEGIN( ReadNSBody );
12859  }
12860  YY_BREAK
12861 case 81:
12862 /* rule 81 can match eol */
12864 #line 1333 "scanner.l"
12865 {
12866  current->type += " initonly ";
12867  if (insideCli) current->spec |= Entry::Initonly;
12868  lineCount();
12869  }
12870  YY_BREAK
12871 case 82:
12872 /* rule 82 can match eol */
12874 #line 1338 "scanner.l"
12875 { current->type += " static ";
12876  current->stat = TRUE;
12877  lineCount();
12878  }
12879  YY_BREAK
12880 case 83:
12881 /* rule 83 can match eol */
12883 #line 1342 "scanner.l"
12884 {
12885  current->stat = FALSE;
12886  current->explicitExternal = TRUE;
12887  lineCount();
12888  }
12889  YY_BREAK
12890 case 84:
12891 /* rule 84 can match eol */
12893 #line 1347 "scanner.l"
12894 { current->type += " virtual ";
12895  current->virt = Virtual;
12896  lineCount();
12897  }
12898  YY_BREAK
12899 case 85:
12900 /* rule 85 can match eol */
12902 #line 1351 "scanner.l"
12903 { // UNO IDL published keyword
12904  if (insideIDL)
12905  {
12906  lineCount();
12907  current->spec |= Entry::Published;
12908  }
12909  else
12910  {
12911  REJECT;
12912  }
12913  }
12914  YY_BREAK
12915 case 86:
12916 /* rule 86 can match eol */
12918 #line 1362 "scanner.l"
12919 {
12920  if (!insidePHP)
12921  {
12922  current->type += " abstract ";
12923  if (!insideJava)
12924  {
12925  current->virt = Pure;
12926  }
12927  else
12928  {
12929  current->spec|=Entry::Abstract;
12930  }
12931  }
12932  else
12933  {
12934  current->spec|=Entry::Abstract;
12935  }
12936  lineCount();
12937  }
12938  YY_BREAK
12939 case 87:
12940 /* rule 87 can match eol */
12942 #line 1381 "scanner.l"
12943 { current->spec|=Entry::Inline;
12944  lineCount();
12945  }
12946  YY_BREAK
12947 case 88:
12948 /* rule 88 can match eol */
12950 #line 1384 "scanner.l"
12951 { current->spec|=Entry::Mutable;
12952  lineCount();
12953  }
12954  YY_BREAK
12955 case 89:
12956 /* rule 89 can match eol */
12958 #line 1387 "scanner.l"
12959 { current->spec|=Entry::Explicit;
12960  lineCount();
12961  }
12962  YY_BREAK
12963 case 90:
12964 /* rule 90 can match eol */
12966 #line 1390 "scanner.l"
12967 { // Objective C 2.0 protocol required section
12968  current->spec=(current->spec & ~Entry::Optional) | Entry::Required;
12969  lineCount();
12970  }
12971  YY_BREAK
12972 case 91:
12973 /* rule 91 can match eol */
12975 #line 1394 "scanner.l"
12976 { // Objective C 2.0 protocol optional section
12977  current->spec=(current->spec & ~Entry::Required) | Entry::Optional;
12978  lineCount();
12979  }
12980  YY_BREAK
12981 /*
12982 <FindMembers>{B}*"import"{BN}+ { // IDL import keyword
12983  BEGIN( NextSemi );
12984  }
12985  */
12986 case 92:
12987 /* rule 92 can match eol */
12989 #line 1403 "scanner.l"
12990 { lineCount(); }
12991  YY_BREAK
12992 case 93:
12993 /* rule 93 can match eol */
12994 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
12995 (yy_c_buf_p) = yy_cp -= 1;
12996 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
12998 #line 1404 "scanner.l"
12999 {
13000  isTypedef=FALSE;
13001  current->section = Entry::NAMESPACE_SEC;
13002  current->type = "namespace" ;
13003  current->fileName = yyFileName;
13004  current->startLine = yyLineNr;
13005  current->startColumn = yyColNr;
13006  current->bodyLine = yyLineNr;
13007  lineCount();
13008  if (insidePHP)
13009  {
13010  BEGIN( PackageName );
13011  }
13012  else
13013  {
13014  BEGIN( CompoundName );
13015  }
13016  }
13017  YY_BREAK
13018 case 94:
13019 /* rule 94 can match eol */
13021 #line 1422 "scanner.l"
13022 {
13023  lineCount();
13024  if (insideIDL)
13025  {
13026  isTypedef=FALSE;
13027  current->section = Entry::NAMESPACE_SEC;
13028  current->type = "module" ;
13029  current->fileName = yyFileName;
13030  current->startLine = yyLineNr;
13031  current->startColumn = yyColNr;
13032  current->bodyLine = yyLineNr;
13033  BEGIN( CompoundName );
13034  }
13035  else if (insideD)
13036  {
13037  lineCount();
13038  BEGIN(PackageName);
13039  }
13040  else
13041  {
13042  addType( current ) ;
13043  current->name = QCString(scannerYYtext).stripWhiteSpace();
13044  }
13045  }
13046  YY_BREAK
13047 case 95:
13048 /* rule 95 can match eol */
13050 #line 1446 "scanner.l"
13051 {
13052  lineCount();
13053  if (insideIDL)
13054  {
13055  isTypedef=FALSE;
13056  current->section = Entry::NAMESPACE_SEC;
13057  current->type = "library" ;
13058  current->fileName = yyFileName;
13059  current->startLine = yyLineNr;
13060  current->startColumn = yyColNr;
13061  current->bodyLine = yyLineNr;
13062  BEGIN( CompoundName );
13063  }
13064  else
13065  {
13066  addType( current ) ;
13067  current->name = QCString(scannerYYtext).stripWhiteSpace();
13068  }
13069  }
13070  YY_BREAK
13071 case 96:
13072 /* rule 96 can match eol */
13074 #line 1465 "scanner.l"
13075 { // UNO IDL constant group
13076  lineCount();
13077  if (insideIDL)
13078  {
13079  isTypedef=FALSE;
13080  current->section = Entry::NAMESPACE_SEC;
13081  current->type = "constants";
13082  current->fileName = yyFileName;
13083  current->startLine = yyLineNr;
13084  current->startColumn = yyColNr;
13085  current->bodyLine = yyLineNr;
13086  BEGIN( CompoundName );
13087  }
13088  else
13089  {
13090  addType( current ) ;
13091  current->name = QCString(scannerYYtext).stripWhiteSpace();
13092  }
13093  }
13094  YY_BREAK
13095 case 97:
13096 /* rule 97 can match eol */
13098 #line 1484 "scanner.l"
13099 { // UNO IDL service
13100  lineCount();
13101  if (insideIDL)
13102  {
13103  isTypedef=FALSE;
13104  current->section = Entry::CLASS_SEC;
13105  current->spec = Entry::Service |
13106  // preserve UNO IDL [optional] or published
13107  (current->spec & (Entry::Optional|Entry::Published));
13108  addType( current ) ;
13109  current->type += " service " ;
13110  current->fileName = yyFileName;
13111  current->startLine = yyLineNr;
13112  current->bodyLine = yyLineNr;
13113  BEGIN( CompoundName );
13114  }
13115  else // TODO is addType right? just copy/pasted
13116  {
13117  addType( current ) ;
13118  current->name = QCString(scannerYYtext).stripWhiteSpace();
13119  }
13120  }
13121  YY_BREAK
13122 case 98:
13123 /* rule 98 can match eol */
13125 #line 1506 "scanner.l"
13126 { // UNO IDL singleton
13127  lineCount();
13128  if (insideIDL)
13129  {
13130  isTypedef=FALSE;
13131  current->section = Entry::CLASS_SEC;
13132  current->spec = Entry::Singleton |
13133  (current->spec & Entry::Published); // preserve
13134  addType( current ) ;
13135  current->type += " singleton " ;
13136  current->fileName = yyFileName;
13137  current->startLine = yyLineNr;
13138  current->bodyLine = yyLineNr;
13139  BEGIN( CompoundName );
13140  }
13141  else // TODO is addType right? just copy/pasted
13142  {
13143  addType( current ) ;
13144  current->name = QCString(scannerYYtext).stripWhiteSpace();
13145  }
13146  }
13147  YY_BREAK
13148 case 99:
13149 /* rule 99 can match eol */
13151 #line 1527 "scanner.l"
13152 { // M$/Corba/UNO IDL/Java interface
13153  lineCount();
13154  if (insideIDL || insideJava || insideCS || insideD || insidePHP)
13155  {
13156  isTypedef=FALSE;
13157  current->section = Entry::CLASS_SEC;
13158  current->spec = Entry::Interface |
13159  // preserve UNO IDL [optional] or published
13160  (current->spec & (Entry::Optional|Entry::Published));
13161  addType( current ) ;
13162  current->type += " interface" ;
13163  current->fileName = yyFileName;
13164  current->startLine = yyLineNr;
13165  current->startColumn = yyColNr;
13166  current->bodyLine = yyLineNr;
13167  BEGIN( CompoundName );
13168  }
13169  else
13170  {
13171  addType( current ) ;
13172  current->name = QCString(scannerYYtext).stripWhiteSpace();
13173  }
13174  }
13175  YY_BREAK
13176 case 100:
13177 /* rule 100 can match eol */
13179 #line 1550 "scanner.l"
13180 { // Objective-C class implementation
13181  lineCount();
13182  isTypedef=FALSE;
13183  current->section = Entry::OBJCIMPL_SEC;
13184  language = current->lang = SrcLangExt_ObjC;
13185  insideObjC = TRUE;
13186  current->protection = protection = Public ;
13187  addType( current ) ;
13188  current->type += " implementation" ;
13189  current->fileName = yyFileName;
13190  current->startLine = yyLineNr;
13191  current->bodyLine = yyLineNr;
13192  BEGIN( CompoundName );
13193  }
13194  YY_BREAK
13195 case 101:
13196 /* rule 101 can match eol */
13198 #line 1564 "scanner.l"
13199 { // Objective-C class interface, or Java attribute
13200  lineCount();
13201  isTypedef=FALSE;
13202  current->section = Entry::CLASS_SEC;
13203  current->spec = Entry::Interface;
13204  if (!insideJava)
13205  {
13206  language = current->lang = SrcLangExt_ObjC;
13207  insideObjC = TRUE;
13208  }
13209  current->protection = protection = Public ;
13210  addType( current ) ;
13211  current->type += " interface" ;
13212  current->fileName = yyFileName;
13213  current->startLine = yyLineNr;
13214  current->startColumn = yyColNr;
13215  current->bodyLine = yyLineNr;
13216  BEGIN( CompoundName );
13217  }
13218  YY_BREAK
13219 case 102:
13220 /* rule 102 can match eol */
13222 #line 1583 "scanner.l"
13223 { // Objective-C protocol definition
13224  lineCount();
13225  isTypedef=FALSE;
13226  current->section = Entry::CLASS_SEC;
13227  current->spec = Entry::Protocol;
13228  language = current->lang = SrcLangExt_ObjC;
13229  insideObjC = TRUE;
13230  current->protection = protection = Public ;
13231  addType( current ) ;
13232  current->type += " protocol" ;
13233  current->fileName = yyFileName;
13234  current->startLine = yyLineNr;
13235  current->startColumn = yyColNr;
13236  current->bodyLine = yyLineNr;
13237  BEGIN( CompoundName );
13238  }
13239  YY_BREAK
13240 case 103:
13241 /* rule 103 can match eol */
13243 #line 1599 "scanner.l"
13244 { // Corba IDL exception
13245  isTypedef=FALSE;
13246  current->section = Entry::CLASS_SEC;
13247  current->spec = Entry::Exception |
13248  (current->spec & Entry::Published); // preserve UNO IDL
13249  addType( current ) ;
13250  current->type += " exception" ;
13251  current->fileName = yyFileName;
13252  current->startLine = yyLineNr;
13253  current->startColumn = yyColNr;
13254  current->bodyLine = yyLineNr;
13255  lineCount();
13256  BEGIN( CompoundName );
13257  }
13258  YY_BREAK
13259 case 104:
13260 #line 1614 "scanner.l"
13261 case 105:
13262 /* rule 105 can match eol */
13263 #line 1615 "scanner.l"
13264 case 106:
13265 /* rule 106 can match eol */
13267 #line 1615 "scanner.l"
13268 {
13269  QCString decl = scannerYYtext;
13270  isTypedef=decl.find("typedef")!=-1;
13271  bool isConst=decl.find("const")!=-1;
13272  bool isVolatile=decl.find("volatile")!=-1;
13273  current->section = Entry::CLASS_SEC;
13274  addType( current ) ;
13275  if (isConst)
13276  {
13277  current->type += " const";
13278  }
13279  else if (isVolatile)
13280  {
13281  current->type += " volatile";
13282  }
13283  current->type += " class" ;
13284  current->fileName = yyFileName;
13285  current->startLine = yyLineNr;
13286  current->startColumn = yyColNr;
13287  current->bodyLine = yyLineNr;
13288  if (scannerYYtext[0]=='@')
13289  {
13290  language = current->lang = SrcLangExt_ObjC;
13291  insideObjC = TRUE;
13292  }
13293  lineCount() ;
13294  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13295  if (insidePHP && current->spec&Entry::Abstract)
13296  {
13297  // convert Abstract to AbstractClass
13298  current->spec=(current->spec&~Entry::Abstract)|Entry::AbstractClass;
13299  }
13300  BEGIN( CompoundName ) ;
13301  }
13302  YY_BREAK
13303 case 107:
13304 #line 1650 "scanner.l"
13305 case 108:
13306 /* rule 108 can match eol */
13308 #line 1650 "scanner.l"
13309 {
13310  isTypedef=FALSE;
13311  current->section = Entry::CLASS_SEC;
13312  current->spec = Entry::Value;
13313  addType( current ) ;
13314  current->type += " value class" ;
13315  current->fileName = yyFileName;
13316  current->startLine = yyLineNr;
13317  current->startColumn = yyColNr;
13318  current->bodyLine = yyLineNr;
13319  lineCount() ;
13320  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13321  BEGIN( CompoundName ) ;
13322  }
13323  YY_BREAK
13324 case 109:
13325 #line 1665 "scanner.l"
13326 case 110:
13327 /* rule 110 can match eol */
13329 #line 1665 "scanner.l"
13330 {
13331  isTypedef=FALSE;
13332  current->section = Entry::CLASS_SEC;
13333  current->spec = Entry::Ref;
13334  addType( current ) ;
13335  current->type += " ref class" ;
13336  current->fileName = yyFileName;
13337  current->startLine = yyLineNr;
13338  current->startColumn = yyColNr;
13339  current->bodyLine = yyLineNr;
13340  lineCount() ;
13341  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13342  BEGIN( CompoundName ) ;
13343  }
13344  YY_BREAK
13345 case 111:
13346 #line 1680 "scanner.l"
13347 case 112:
13348 /* rule 112 can match eol */
13350 #line 1680 "scanner.l"
13351 {
13352  isTypedef=FALSE;
13353  current->section = Entry::CLASS_SEC;
13354  current->spec = Entry::Interface;
13355  addType( current ) ;
13356  current->type += " interface class" ;
13357  current->fileName = yyFileName;
13358  current->startLine = yyLineNr;
13359  current->startColumn = yyColNr;
13360  current->bodyLine = yyLineNr;
13361  lineCount() ;
13362  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13363  BEGIN( CompoundName ) ;
13364  }
13365  YY_BREAK
13366 case 113:
13367 /* rule 113 can match eol */
13369 #line 1694 "scanner.l"
13370 {
13371  if (insideIDL)
13372  {
13373  isTypedef=FALSE;
13374  current->section = Entry::CLASS_SEC;
13375  addType( current ) ;
13376  current->type += " coclass" ;
13377  current->fileName = yyFileName;
13378  current->startLine = yyLineNr;
13379  current->startColumn = yyColNr;
13380  current->bodyLine = yyLineNr;
13381  lineCount() ;
13382  BEGIN( CompoundName ) ;
13383  }
13384  else
13385  {
13386  addType(current);
13387  current->name = scannerYYtext;
13388  current->name = current->name.stripWhiteSpace();
13389  lineCount();
13390  }
13391  }
13392  YY_BREAK
13393 case 114:
13394 /* rule 114 can match eol */
13395 #line 1717 "scanner.l"
13396 case 115:
13397 /* rule 115 can match eol */
13399 #line 1717 "scanner.l"
13400 {
13401  QCString decl = scannerYYtext;
13402  isTypedef=decl.find("typedef")!=-1;
13403  bool isConst=decl.find("const")!=-1;
13404  bool isVolatile=decl.find("volatile")!=-1;
13405  current->section = Entry::CLASS_SEC ;
13406  current->spec = Entry::Struct |
13407  (current->spec & Entry::Published); // preserve UNO IDL
13408  // bug 582676: can be a struct nested in an interface so keep insideObjC state
13409  //current->objc = insideObjC = FALSE;
13410  addType( current ) ;
13411  if (isConst)
13412  {
13413  current->type += " const";
13414  }
13415  else if (isVolatile)
13416  {
13417  current->type += " volatile";
13418  }
13419  current->type += " struct" ;
13420  current->fileName = yyFileName;
13421  current->startLine = yyLineNr;
13422  current->startColumn = yyColNr;
13423  current->bodyLine = yyLineNr;
13424  lineCount() ;
13425  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13426  BEGIN( CompoundName ) ;
13427  }
13428  YY_BREAK
13429 case 116:
13430 #line 1746 "scanner.l"
13431 case 117:
13432 /* rule 117 can match eol */
13434 #line 1746 "scanner.l"
13435 {
13436  isTypedef=FALSE;
13437  current->section = Entry::CLASS_SEC;
13438  current->spec = Entry::Struct | Entry::Value;
13439  addType( current ) ;
13440  current->type += " value struct" ;
13441  current->fileName = yyFileName;
13442  current->startLine = yyLineNr;
13443  current->startColumn = yyColNr;
13444  current->bodyLine = yyLineNr;
13445  lineCount() ;
13446  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13447  BEGIN( CompoundName ) ;
13448  }
13449  YY_BREAK
13450 case 118:
13451 #line 1761 "scanner.l"
13452 case 119:
13453 /* rule 119 can match eol */
13455 #line 1761 "scanner.l"
13456 {
13457  isTypedef=FALSE;
13458  current->section = Entry::CLASS_SEC;
13459  current->spec = Entry::Struct | Entry::Ref;
13460  addType( current ) ;
13461  current->type += " ref struct" ;
13462  current->fileName = yyFileName;
13463  current->startLine = yyLineNr;
13464  current->startColumn = yyColNr;
13465  current->bodyLine = yyLineNr;
13466  lineCount() ;
13467  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13468  BEGIN( CompoundName ) ;
13469  }
13470  YY_BREAK
13471 case 120:
13472 #line 1776 "scanner.l"
13473 case 121:
13474 /* rule 121 can match eol */
13476 #line 1776 "scanner.l"
13477 {
13478  isTypedef=FALSE;
13479  current->section = Entry::CLASS_SEC;
13480  current->spec = Entry::Struct | Entry::Interface;
13481  addType( current ) ;
13482  current->type += " interface struct";
13483  current->fileName = yyFileName;
13484  current->startLine = yyLineNr;
13485  current->startColumn = yyColNr;
13486  current->bodyLine = yyLineNr;
13487  lineCount() ;
13488  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13489  BEGIN( CompoundName ) ;
13490  }
13491  YY_BREAK
13492 case 122:
13493 /* rule 122 can match eol */
13494 #line 1791 "scanner.l"
13495 case 123:
13496 /* rule 123 can match eol */
13498 #line 1791 "scanner.l"
13499 {
13500  QCString decl=scannerYYtext;
13501  isTypedef=decl.find("typedef")!=-1;
13502  bool isConst=decl.find("const")!=-1;
13503  bool isVolatile=decl.find("volatile")!=-1;
13504  current->section = Entry::CLASS_SEC;
13505  current->spec = Entry::Union;
13506  // bug 582676: can be a struct nested in an interface so keep insideObjC state
13507  //current->objc = insideObjC = FALSE;
13508  addType( current ) ;
13509  if (isConst)
13510  {
13511  current->type += " const";
13512  }
13513  else if (isVolatile)
13514  {
13515  current->type += " volatile";
13516  }
13517  current->type += " union" ;
13518  current->fileName = yyFileName;
13519  current->startLine = yyLineNr;
13520  current->startColumn = yyColNr;
13521  current->bodyLine = yyLineNr;
13522  lineCount() ;
13523  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13524  BEGIN( CompoundName ) ;
13525  }
13526  YY_BREAK
13527 case 124:
13528 /* rule 124 can match eol */
13529 #line 1819 "scanner.l"
13530 case 125:
13531 /* rule 125 can match eol */
13533 #line 1819 "scanner.l"
13534 { // for IDL: typedef [something] enum
13535  QCString text=scannerYYtext;
13536  isTypedef = text.find("typedef")!=-1;
13537  bool isStrongEnum = text.find("struct")!=-1 || text.find("class")!=-1 || insideCS;
13538  if (insideJava)
13539  {
13540  current->section = Entry::CLASS_SEC;
13541  current->spec = Entry::Enum;
13542  }
13543  else
13544  {
13545  current->section = Entry::ENUM_SEC ;
13546  }
13547  addType( current ) ;
13548  current->type += " enum";
13549  if (isStrongEnum)
13550  {
13551  current->spec |= Entry::Strong;
13552  }
13553  current->fileName = yyFileName;
13554  current->startLine = yyLineNr;
13555  current->startColumn = yyColNr;
13556  current->bodyLine = yyLineNr;
13557  lineCount() ;
13558  if (scannerYYtext[scannerYYleng-1]=='{') unput('{');
13559  BEGIN( CompoundName ) ;
13560  }
13561  YY_BREAK
13562 case 126:
13563 /* rule 126 can match eol */
13564 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
13565 (yy_c_buf_p) = yy_cp -= 1;
13566 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
13568 #line 1846 "scanner.l"
13569 { // A::operator()<int>(int arg)
13570  lineCount();
13571  current->name += "()";
13572  BEGIN( FindMembers );
13573  }
13574  YY_BREAK
13575 case 127:
13576 /* rule 127 can match eol */
13577 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
13578 (yy_c_buf_p) = yy_cp -= 1;
13579 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
13581 #line 1851 "scanner.l"
13582 {
13583  lineCount();
13584  current->name += scannerYYtext ;
13585  current->name = current->name.simplifyWhiteSpace();
13586  BEGIN( FindMembers ) ;
13587  }
13588  YY_BREAK
13589 case 128:
13591 #line 1857 "scanner.l"
13592 { // can occur when importing members
13593  unput(';');
13594  BEGIN( FindMembers ) ;
13595  }
13596  YY_BREAK
13597 case 129:
13598 /* rule 129 can match eol */
13600 #line 1861 "scanner.l"
13601 {
13602  lineCount();
13603  current->name += *scannerYYtext ;
13604  }
13605  YY_BREAK
13606 case 130:
13608 #line 1865 "scanner.l"
13609 { /* skip guided templ specifiers */ }
13610  YY_BREAK
13611 case 131:
13613 #line 1866 "scanner.l"
13614 {
13615  current->name = current->name.simplifyWhiteSpace();
13616  unput(*scannerYYtext);
13617  BEGIN( FindMembers ) ;
13618  }
13619  YY_BREAK
13620 case 132:
13621 /* rule 132 can match eol */
13623 #line 1871 "scanner.l"
13624 { // generic is a C++/CLI extension
13625  lineCount();
13626  if (current->tArgLists==0)
13627  {
13628  current->tArgLists = new QList<ArgumentList>;
13629  current->tArgLists->setAutoDelete(TRUE);
13630  }
13631  ArgumentList *al = new ArgumentList;
13632  //current->spec |= (scannerYYtext[0]=='g') ? Entry::Generic : Entry::Template;
13633  current->tArgLists->append(al);
13634  currentArgumentList = al;
13635  templateStr="<";
13636  fullArgString = templateStr;
13637  copyArgString = &templateStr;
13638  currentArgumentContext = FindMembers;
13639  BEGIN( ReadTempArgs );
13640  }
13641  YY_BREAK
13642 case 133:
13643 /* rule 133 can match eol */
13645 #line 1888 "scanner.l"
13646 { // namespace alias
13647  lineCount();
13648  BEGIN( NSAliasName );
13649  }
13650  YY_BREAK
13651 case 134:
13653 #line 1892 "scanner.l"
13654 {
13655  aliasName = scannerYYtext;
13656  BEGIN( NSAliasArg );
13657  }
13658  YY_BREAK
13659 case 135:
13661 #line 1896 "scanner.l"
13662 {
13663  //printf("Inserting namespace alias %s::%s->%s\n",current_root->name.data(),aliasName.data(),scannerYYtext);
13664  //if (current_root->name.isEmpty())
13665  //{
13666  // TODO: namespace aliases are now treated as global entities
13667  // while they should be aware of the scope they are in
13668  Doxygen::namespaceAliasDict.insert(aliasName,new QCString(scannerYYtext));
13669  //}
13670  //else
13671  //{
13672  // Doxygen::namespaceAliasDict.insert(current_root->name+"::"+aliasName,
13673  // new QCString(current_root->name+"::"+scannerYYtext));
13674  //}
13675  }
13676  YY_BREAK
13677 case 136:
13679 #line 1910 "scanner.l"
13680 {
13681  BEGIN( FindMembers );
13682  }
13683  YY_BREAK
13684 case 137:
13685 /* rule 137 can match eol */
13687 #line 1913 "scanner.l"
13688 {
13689  lineCount();
13690  aliasName=scannerYYtext;
13691  BEGIN(PHPUseAs);
13692  }
13693  YY_BREAK
13694 case 138:
13695 /* rule 138 can match eol */
13697 #line 1918 "scanner.l"
13698 {
13699  lineCount();
13700  current->name=removeRedundantWhiteSpace(substitute(scannerYYtext,"\\","::"));
13701  //printf("PHP: adding use relation: %s\n",current->name.data());
13702  current->fileName = yyFileName;
13703  // add a using declaraton
13704  current->section=Entry::USINGDECL_SEC;
13705  current_root->addSubEntry(current);
13706  current = new Entry(*current);
13707  // also add it as a using directive
13708  current->section=Entry::USINGDIR_SEC;
13709  current_root->addSubEntry(current);
13710  current = new Entry ;
13711  initEntry();
13712  aliasName.resize(0);
13713  }
13714  YY_BREAK
13715 case 139:
13716 /* rule 139 can match eol */
13718 #line 1934 "scanner.l"
13719 {
13720  lineCount();
13721  }
13722  YY_BREAK
13723 case 140:
13725 #line 1937 "scanner.l"
13726 {
13727  //printf("PHP: adding use as relation: %s->%s\n",scannerYYtext,aliasName.data());
13728  Doxygen::namespaceAliasDict.insert(scannerYYtext,
13730  substitute(aliasName,"\\","::"))));
13731  aliasName.resize(0);
13732  }
13733  YY_BREAK
13734 case 141:
13736 #line 1944 "scanner.l"
13737 {
13738  if (*scannerYYtext==',')
13739  {
13740  BEGIN(PHPUse);
13741  }
13742  else
13743  {
13744  BEGIN(FindMembers);
13745  }
13746  }
13747  YY_BREAK
13748 case 142:
13749 /* rule 142 can match eol */
13751 #line 1954 "scanner.l"
13752 { // package import => add as a using directive
13753  lineCount();
13755  current->name=removeRedundantWhiteSpace(substitute(scope.left(scope.length()-1),".","::"));
13756  current->fileName = yyFileName;
13757  current->section=Entry::USINGDIR_SEC;
13758  current_root->addSubEntry(current);
13759  current = new Entry;
13760  initEntry();
13761  BEGIN(Using);
13762  }
13763  YY_BREAK
13764 case 143:
13765 /* rule 143 can match eol */
13767 #line 1965 "scanner.l"
13768 { // class import => add as a using declaration
13769  lineCount();
13771  current->name=removeRedundantWhiteSpace(substitute(scope,".","::"));
13772  current->fileName = yyFileName;
13773  if (insideD)
13774  {
13775  current->section=Entry::USINGDIR_SEC;
13776  }
13777  else
13778  {
13779  //printf("import name = %s -> %s\n",scannerYYtext,current->name.data());
13780  current->section=Entry::USINGDECL_SEC;
13781  }
13782  current_root->addSubEntry(current);
13783  current = new Entry ;
13784  initEntry();
13785  BEGIN(Using);
13786  }
13787  YY_BREAK
13788 case 144:
13789 /* rule 144 can match eol */
13791 #line 1984 "scanner.l"
13792 {
13793  current->startLine=yyLineNr;
13794  current->startColumn = yyColNr;
13795  lineCount();
13796  BEGIN(Using);
13797  }
13798  YY_BREAK
13799 case 145:
13800 /* rule 145 can match eol */
13802 #line 1990 "scanner.l"
13804  YY_BREAK
13805 case 146:
13806 /* rule 146 can match eol */
13808 #line 1991 "scanner.l"
13809 {
13810  lineCount();
13811  current->name=scannerYYtext;
13812  current->fileName = yyFileName;
13813  current->section=Entry::USINGDECL_SEC;
13814  current->startLine = yyLineNr;
13815  current_root->addSubEntry(current);
13816  previous = current;
13817  current = new Entry ;
13818  if (insideCS) /* Hack: in C# a using declaration and
13819  directive have the same syntax, so we
13820  also add it as a using directive here
13821  */
13822  {
13823  current->name=scannerYYtext;
13824  current->fileName = yyFileName;
13825  current->startLine = yyLineNr;
13826  current->startColumn = yyColNr;
13827  current->section=Entry::USINGDIR_SEC;
13828  current_root->addSubEntry(current);
13829  current = new Entry ;
13830  }
13831  initEntry();
13832  BEGIN(Using);
13833  }
13834  YY_BREAK
13835 case 147:
13837 #line 2016 "scanner.l"
13838 { // C++11 style template alias?
13839  BEGIN(UsingAlias);
13840  }
13841  YY_BREAK
13842 case 148:
13844 #line 2019 "scanner.l"
13845 {
13846  previous->section=Entry::VARIABLE_SEC;
13847  previous->type = "typedef "+previous->args;
13848  previous->type=previous->type.simplifyWhiteSpace();
13849  previous->args.resize(0);
13850  previous->name=previous->name.stripWhiteSpace();
13851  previous->bodyLine = yyLineNr;
13852  previous->spec |= Entry::Alias;
13853  BEGIN(FindMembers);
13854  }
13855  YY_BREAK
13856 case 149:
13857 /* rule 149 can match eol */
13859 #line 2029 "scanner.l"
13860 {
13861  docBlockContext = UsingAliasEnd;
13862  docBlockInBody = FALSE;
13863  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
13864  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
13865  QCString indent;
13866  indent.fill(' ',computeIndent(scannerYYtext,g_column));
13867  docBlock=indent;
13868  lineCount();
13869 
13870  docBlockTerm = ';';
13871  if (scannerYYtext[scannerYYleng-3]=='/')
13872  {
13874  BEGIN( DocLine );
13875  }
13876  else
13877  {
13879  BEGIN( DocBlock );
13880  }
13881  }
13882  YY_BREAK
13883 case 150:
13885 #line 2051 "scanner.l"
13886 {
13887  previous->args+=scannerYYtext;
13888  }
13889  YY_BREAK
13890 case 151:
13891 /* rule 151 can match eol */
13893 #line 2054 "scanner.l"
13894 {
13895  previous->args+=scannerYYtext;
13896  lineCount();
13897  }
13898  YY_BREAK
13899 case 152:
13901 #line 2058 "scanner.l"
13902 {
13903  previous->doc = current->doc;
13904  previous->brief = current->brief;
13905  current->doc.resize(0);
13906  current->brief.resize(0);
13907  unput(';');
13908  BEGIN(UsingAlias);
13909  }
13910  YY_BREAK
13911 case 153:
13912 /* rule 153 can match eol */
13914 #line 2066 "scanner.l"
13915 { current->name=removeRedundantWhiteSpace(scannerYYtext);
13916  current->fileName = yyFileName;
13917  current->section=Entry::USINGDIR_SEC;
13918  current_root->addSubEntry(current);
13919  current = new Entry ;
13920  initEntry();
13921  BEGIN(Using);
13922  }
13923  YY_BREAK
13924 case 154:
13926 #line 2074 "scanner.l"
13927 { BEGIN(FindMembers); }
13928  YY_BREAK
13929 case 155:
13930 /* rule 155 can match eol */
13932 #line 2075 "scanner.l"
13933 { // guided template decl
13935  addType( current );
13936  current->name=n.left(n.length()-2);
13937  }
13938  YY_BREAK
13939 case 156:
13940 /* rule 156 can match eol */
13941 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
13942 (yy_c_buf_p) = yy_cp -= 1;
13943 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
13945 #line 2080 "scanner.l"
13946 { // Note: this could be a return type!
13947  roundCount=0;
13948  sharpCount=0;
13949  lineCount();
13950  addType( current );
13951  current->name=scannerYYtext;
13952  current->name=current->name.stripWhiteSpace();
13953  //current->scopeSpec.resize(0);
13954  // currentTemplateSpec = &current->scopeSpec;
13955  if (nameIsOperator(current->name))
13956  BEGIN( Operator );
13957  else
13958  BEGIN( EndTemplate );
13959  }
13960  YY_BREAK
13961 case 157:
13962 /* rule 157 can match eol */
13963 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
13964 (yy_c_buf_p) = yy_cp -= 1;
13965 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
13967 #line 2094 "scanner.l"
13968 {
13969  sharpCount=0;
13970  roundCount=0;
13971  lineCount();
13972  current->name+=((QCString)scannerYYtext).stripWhiteSpace();
13973  //current->memberSpec.resize(0);
13974  // currentTemplateSpec = &current->memberSpec;
13975  if (nameIsOperator(current->name))
13976  BEGIN( Operator );
13977  else
13978  BEGIN( EndTemplate );
13979  }
13980  YY_BREAK
13981 case 158:
13983 #line 2106 "scanner.l"
13984 {
13985  if (!insidePHP)
13986  {
13987  REJECT;
13988  }
13989  else
13990  {
13991  lastHereDocContext = YY_START;
13992  BEGIN(HereDoc);
13993  }
13994  }
13995  YY_BREAK
13996 case 159:
13998 #line 2117 "scanner.l"
13999 {
14000  current->name+=scannerYYtext;
14001  // *currentTemplateSpec+=scannerYYtext;
14002  }
14003  YY_BREAK
14004 case 160:
14006 #line 2121 "scanner.l"
14007 {
14008  if (roundCount==0)
14009  {
14010  // *currentTemplateSpec+='<';
14011  sharpCount++;
14012  }
14013  current->name+=scannerYYtext;
14014  }
14015  YY_BREAK
14016 case 161:
14018 #line 2129 "scanner.l"
14019 {
14020  if (insideJava || insideCS || insideCli || roundCount==0)
14021  {
14022  unput('>');
14023  unput(' ');
14024  unput('>');
14025  }
14026  else
14027  {
14028  current->name+=scannerYYtext;
14029  }
14030  // *currentTemplateSpec+=scannerYYtext;
14031  }
14032  YY_BREAK
14033 case 162:
14035 #line 2142 "scanner.l"
14036 {
14037  current->name+='>';
14038  // *currentTemplateSpec+='>';
14039  if (roundCount==0 && --sharpCount<=0)
14040  {
14041  //printf("Found %s\n",current->name.data());
14042  BEGIN(FindMembers);
14043  }
14044  }
14045  YY_BREAK
14046 case 163:
14047 /* rule 163 can match eol */
14049 #line 2151 "scanner.l"
14050 {
14051  lineCount();
14052  current->name+='>';
14053  // *currentTemplateSpec+='>';
14054  if (roundCount==0 && --sharpCount<=0)
14055  {
14056  current->bodyLine = yyLineNr;
14057  current->args = "(";
14058  currentArgumentContext = FuncQual;
14059  fullArgString = current->args.copy();
14060  copyArgString = &current->args;
14061  //printf("Found %s\n",current->name.data());
14062  BEGIN( ReadFuncArgType ) ;
14063  }
14064  }
14065  YY_BREAK
14066 case 164:
14067 /* rule 164 can match eol */
14069 #line 2166 "scanner.l"
14070 { // function pointer returning a template instance
14071  lineCount();
14072  current->name+='>';
14073  if (roundCount==0)
14074  {
14075  BEGIN(FindMembers);
14076  }
14077  }
14078  YY_BREAK
14079 case 165:
14080 /* rule 165 can match eol */
14081 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
14082 (yy_c_buf_p) = yy_cp -= 2;
14083 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
14085 #line 2174 "scanner.l"
14086 {
14087  lineCount();
14088  current->name+='>';
14089  // *currentTemplateSpec+='>';
14090  if (roundCount==0 && --sharpCount<=0)
14091  {
14093  }
14094  }
14095  YY_BREAK
14096 case 166:
14098 #line 2183 "scanner.l"
14099 { current->name+=*scannerYYtext;
14100  roundCount++;
14101  }
14102  YY_BREAK
14103 case 167:
14105 #line 2186 "scanner.l"
14106 { current->name+=*scannerYYtext;
14107  if (roundCount>0) roundCount--;
14108  }
14109  YY_BREAK
14110 case 168:
14112 #line 2189 "scanner.l"
14113 {
14114  current->name+=*scannerYYtext;
14115  // *currentTemplateSpec+=*scannerYYtext;
14116  }
14117  YY_BREAK
14118 case 169:
14119 /* rule 169 can match eol */
14121 #line 2193 "scanner.l"
14122 {
14123  if (insidePHP)
14124  {
14125  current->bodyLine = yyLineNr;
14126  BEGIN( DefinePHP );
14127  }
14128  else
14129  REJECT;
14130  }
14131  YY_BREAK
14132 case 170:
14134 #line 2202 "scanner.l"
14135 { // PHP heredoc
14136  g_delimiter = scannerYYtext;
14137  *pCopyHereDocGString += scannerYYtext;
14139  }
14140  YY_BREAK
14141 case 171:
14142 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
14143 (yy_c_buf_p) = yy_cp -= 1;
14144 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
14146 #line 2207 "scanner.l"
14147 { // PHP nowdoc
14148  g_delimiter = &scannerYYtext[1];
14149  *pCopyHereDocGString += scannerYYtext;
14151  }
14152  YY_BREAK
14153 case 172:
14155 #line 2212 "scanner.l"
14156 { // PHP heredoc
14157  g_delimiter = scannerYYtext;
14158  BEGIN(HereDocEnd);
14159  }
14160  YY_BREAK
14161 case 173:
14162 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
14163 (yy_c_buf_p) = yy_cp -= 1;
14164 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
14166 #line 2216 "scanner.l"
14167 { // PHP nowdoc
14168  g_delimiter = &scannerYYtext[1];
14169  BEGIN(HereDocEnd);
14170  }
14171  YY_BREAK
14172 case 174:
14174 #line 2220 "scanner.l"
14175 { // id at start of the line could mark the end of the block
14176  if (g_delimiter==scannerYYtext) // it is the end marker
14177  {
14178  BEGIN(lastHereDocContext);
14179  }
14180  }
14181  YY_BREAK
14182 case 175:
14184 #line 2226 "scanner.l"
14185 { }
14186  YY_BREAK
14187 case 176:
14189 #line 2227 "scanner.l"
14190 { // id at start of the line could mark the end of the block
14191  *pCopyHereDocGString += scannerYYtext;
14192  if (g_delimiter==scannerYYtext) // it is the end marker
14193  {
14194  BEGIN(lastHereDocContext);
14195  }
14196  }
14197  YY_BREAK
14198 case 177:
14199 /* rule 177 can match eol */
14201 #line 2234 "scanner.l"
14202 {
14203  *pCopyHereDocGString += scannerYYtext;
14204  }
14205  YY_BREAK
14206 case 178:
14208 #line 2237 "scanner.l"
14209 {
14210  *pCopyHereDocGString += scannerYYtext;
14211  }
14212  YY_BREAK
14213 case 179:
14215 #line 2240 "scanner.l"
14216 { // Qt object macro
14217  }
14218  YY_BREAK
14219 case 180:
14221 #line 2242 "scanner.l"
14222 { // Qt property declaration
14223  current->protection = Public ; // see bug734245 & bug735462
14224  current->mtype = mtype = Property;
14225  current->type.resize(0);
14226  BEGIN(QtPropType);
14227  }
14228  YY_BREAK
14229 case 181:
14231 #line 2248 "scanner.l"
14232 { // start of property arguments
14233  }
14234  YY_BREAK
14235 case 182:
14237 #line 2250 "scanner.l"
14238 { // end of property arguments
14239  unput(';');
14240  BEGIN(FindMembers);
14241  }
14242  YY_BREAK
14243 case 183:
14245 #line 2254 "scanner.l"
14246 {
14247  current->type+=scannerYYtext;
14248  }
14249  YY_BREAK
14250 case 184:
14252 #line 2257 "scanner.l"
14253 {
14254  current->type+=scannerYYtext;
14255  }
14256  YY_BREAK
14257 case 185:
14259 #line 2260 "scanner.l"
14260 {
14261  current->type+=scannerYYtext;
14262  BEGIN(QtPropName);
14263  }
14264  YY_BREAK
14265 case 186:
14267 #line 2264 "scanner.l"
14268 {
14269  current->name=scannerYYtext;
14270  BEGIN(QtPropAttr);
14271  }
14272  YY_BREAK
14273 case 187:
14275 #line 2268 "scanner.l"
14276 {
14277  current->spec |= Entry::Readable;
14278  BEGIN(QtPropRead);
14279  }
14280  YY_BREAK
14281 case 188:
14283 #line 2272 "scanner.l"
14284 {
14285  current->spec |= Entry::Writable;
14286  BEGIN(QtPropWrite);
14287  }
14288  YY_BREAK
14289 case 189:
14291 #line 2276 "scanner.l"
14292 { // reset method => not supported yet
14293  }
14294  YY_BREAK
14295 case 190:
14297 #line 2278 "scanner.l"
14298 { // scriptable property => not supported yet
14299  }
14300  YY_BREAK
14301 case 191:
14303 #line 2280 "scanner.l"
14304 { // designable property => not supported yet
14305  }
14306  YY_BREAK
14307 case 192:
14309 #line 2282 "scanner.l"
14310 {
14311  current->read = scannerYYtext;
14312  BEGIN(QtPropAttr);
14313  }
14314  YY_BREAK
14315 case 193:
14317 #line 2286 "scanner.l"
14318 {
14319  current->write = scannerYYtext;
14320  BEGIN(QtPropAttr);
14321  }
14322  YY_BREAK
14323 case 194:
14324 /* rule 194 can match eol */
14326 #line 2290 "scanner.l"
14327 {
14328  current->name=scannerYYtext;
14329  BEGIN(FindMembers);
14330  }
14331  YY_BREAK
14332 case 195:
14333 /* rule 195 can match eol */
14335 #line 2294 "scanner.l"
14336 {
14337  if (insideCpp || insideObjC)
14338  {
14339  current->id = ClangParser::instance()->lookup(yyLineNr,scannerYYtext);
14340  }
14341  yyBegColNr=yyColNr;
14342  yyBegLineNr=yyLineNr;
14343  lineCount();
14344  if (insideIDL && scannerYYleng==9 && qstrcmp(scannerYYtext,"cpp_quote")==0)
14345  {
14346  BEGIN(CppQuote);
14347  }
14348  else if ((insideIDL || insideJava || insideD) && scannerYYleng==6 && qstrcmp(scannerYYtext,"import")==0)
14349  {
14350  if (insideIDL)
14351  BEGIN(NextSemi);
14352  else // insideJava or insideD
14353  BEGIN(JavaImport);
14354  }
14355  else if (insidePHP && qstrcmp(scannerYYtext,"use")==0)
14356  {
14357  BEGIN(PHPUse);
14358  }
14359  else if (insideJava && qstrcmp(scannerYYtext,"package")==0)
14360  {
14361  lineCount();
14362  BEGIN(PackageName);
14363  }
14364  else if (insideIDL && qstrcmp(scannerYYtext,"case")==0)
14365  {
14367  }
14368  else if (insideTryBlock && qstrcmp(scannerYYtext,"catch")==0)
14369  {
14370  insideTryBlock=FALSE;
14372  }
14373  else if (insideCpp && qstrcmp(scannerYYtext,"alignas")==0)
14374  {
14375  lastAlignAsContext = YY_START;
14376  BEGIN(AlignAs);
14377  }
14378  else if (insideJS && qstrcmp(scannerYYtext,"var")==0)
14379  { // javascript variable
14380  current->type="var";
14381  }
14382  else if (insideJS && qstrcmp(scannerYYtext,"function")==0)
14383  { // javascript function
14384  current->type="function";
14385  }
14386  else if (insideCS && qstrcmp(scannerYYtext,"this")==0)
14387  {
14388  // C# indexer
14389  addType( current ) ;
14390  current->name="this";
14391  BEGIN(CSIndexer);
14392  }
14393  else if (insideCpp && qstrcmp(scannerYYtext,"static_assert")==0)
14394  {
14395  // C++11 static_assert
14397  }
14398  else if (insideCpp && qstrcmp(scannerYYtext,"decltype")==0)
14399  {
14400  // C++11 decltype(x)
14401  current->type+=scannerYYtext;
14402  BEGIN(DeclType);
14403  }
14404  else
14405  {
14406  if (YY_START==FindMembers)
14407  {
14408  addType( current ) ;
14409  }
14410  bool javaLike = insideJava || insideCS || insideD || insidePHP || insideJS;
14411  if (javaLike && qstrcmp(scannerYYtext,"public")==0)
14412  {
14413  current->protection = Public;
14414  }
14415  else if (javaLike && qstrcmp(scannerYYtext,"protected")==0)
14416  {
14417  current->protection = Protected;
14418  }
14419  else if (javaLike && qstrcmp(scannerYYtext,"internal")==0)
14420  {
14421  current->protection = Package;
14422  }
14423  else if (javaLike && qstrcmp(scannerYYtext,"private")==0)
14424  {
14425  current->protection = Private;
14426  }
14427  else if (javaLike && qstrcmp(scannerYYtext,"static")==0)
14428  {
14429  if (YY_START==FindMembers)
14430  current->name = scannerYYtext;
14431  else
14432  current->name += scannerYYtext;
14433  current->stat = TRUE;
14434  }
14435  else
14436  {
14437  if (YY_START==FindMembers)
14438  current->name = scannerYYtext;
14439  else
14440  current->name += scannerYYtext;
14441  if (current->name.left(7)=="static ")
14442  {
14443  current->stat = TRUE;
14444  current->name= current->name.mid(7);
14445  }
14446  else if (current->name.left(7)=="inline ")
14447  {
14448  if (current->type.isEmpty())
14449  {
14450  current->type="inline";
14451  }
14452  else
14453  {
14454  current->type+="inline ";
14455  }
14456  current->name= current->name.mid(7);
14457  }
14458  else if (current->name.left(6)=="const ")
14459  {
14460  if (current->type.isEmpty())
14461  {
14462  current->type="const";
14463  }
14464  else
14465  {
14466  current->type+="const ";
14467  }
14468  current->name=current->name.mid(6);
14469  }
14470  }
14472  if (nameIsOperator(tmp))
14473  {
14474  BEGIN( Operator );
14475  }
14476  else
14477  {
14478  externC=FALSE; // see bug759247
14479  BEGIN(FindMembers);
14480  }
14481  }
14482  }
14483  YY_BREAK
14484 case 196:
14486 #line 2441 "scanner.l"
14487 {
14488  lastSkipRoundContext = FindMembers;
14489  roundCount=0;
14490  BEGIN(SkipRound);
14491  }
14492  YY_BREAK
14493 case 197:
14494 /* rule 197 can match eol */
14496 #line 2446 "scanner.l"
14497 { lineCount(); }
14498  YY_BREAK
14499 case 198:
14501 #line 2447 "scanner.l"
14502 { // variable with static_assert as name?
14503  unput(*scannerYYtext);
14504  BEGIN(FindMembers);
14505  }
14506  YY_BREAK
14507 case 199:
14509 #line 2451 "scanner.l"
14510 {
14511  current->type+=scannerYYtext;
14512  lastRoundContext=FindMembers;
14513  pCopyRoundString=&current->type;
14514  roundCount=0;
14515  BEGIN(CopyRound);
14516  }
14517  YY_BREAK
14518 case 200:
14519 /* rule 200 can match eol */
14521 #line 2458 "scanner.l"
14522 { lineCount(); }
14523  YY_BREAK
14524 case 201:
14526 #line 2459 "scanner.l"
14527 {
14528  unput(*scannerYYtext);
14529  BEGIN(FindMembers);
14530  }
14531  YY_BREAK
14532 case 202:
14534 #line 2463 "scanner.l"
14535 {
14536  current->name+=removeRedundantWhiteSpace(scannerYYtext);
14537  BEGIN(FindMembers);
14538  }
14539  YY_BREAK
14540 case 203:
14542 #line 2467 "scanner.l"
14543 { // some number where we did not expect one
14544  }
14545  YY_BREAK
14546 case 204:
14548 #line 2469 "scanner.l"
14549 {
14550  if (insideJava || insideCS || insideD)
14551  {
14552  current->name+=".";
14553  }
14554  }
14555  YY_BREAK
14556 case 205:
14558 #line 2475 "scanner.l"
14559 {
14560  current->name+=scannerYYtext;
14561  }
14562  YY_BREAK
14563 case 206:
14565 #line 2478 "scanner.l"
14566 {
14567  insideCppQuote=TRUE;
14568  BEGIN(FindMembers);
14569  }
14570  YY_BREAK
14571 case 207:
14573 #line 2482 "scanner.l"
14574 
14575  YY_BREAK
14576 case 208:
14578 #line 2483 "scanner.l"
14579 { BEGIN(FindMembers); }
14580  YY_BREAK
14581 case 209:
14582 /* rule 209 can match eol */
14584 #line 2484 "scanner.l"
14585 { lineCount(); }
14586  YY_BREAK
14587 case 210:
14589 #line 2485 "scanner.l"
14590 
14591  YY_BREAK
14592 case 211:
14593 /* rule 211 can match eol */
14595 #line 2486 "scanner.l"
14596 { lineCount(); }
14597  YY_BREAK
14598 case 212:
14600 #line 2487 "scanner.l"
14601 {
14602  curlyCount=0;
14603  lastCurlyContext = TryFunctionBlockEnd ;
14604  BEGIN( SkipCurly );
14605  }
14606  YY_BREAK
14607 case 213:
14609 #line 2492 "scanner.l"
14610 
14611  YY_BREAK
14612 case 214:
14613 /* rule 214 can match eol */
14615 #line 2493 "scanner.l"
14616 { lineCount(); BEGIN(TryFunctionBlock); // {BN}* added to fix bug 611193
14617  }
14618  YY_BREAK
14619 case 215:
14620 /* rule 215 can match eol */
14622 #line 2495 "scanner.l"
14623 { unput(*scannerYYtext); // rule added to fix bug id 601138
14624  BEGIN( FindMembers );
14625  }
14626  YY_BREAK
14627 case 216:
14629 #line 2498 "scanner.l"
14630 { unput(*scannerYYtext);
14631  BEGIN( FindMembers );
14632  }
14633  YY_BREAK
14634 case 217:
14636 #line 2501 "scanner.l"
14637 {
14638  insideCppQuote=FALSE;
14639  BEGIN(FindMembers);
14640  }
14641  YY_BREAK
14642 case 218:
14644 #line 2505 "scanner.l"
14645 { if (insidePHP)
14646  REJECT;
14647  lastCPPContext = YY_START;
14648  BEGIN( SkipCPP ) ;
14649  }
14650  YY_BREAK
14651 case 219:
14653 #line 2510 "scanner.l"
14654 {
14655  if (insidePHP)
14656  REJECT;
14657  current->bodyLine = yyLineNr;
14658  lastDefineContext = YY_START;
14659  BEGIN( Define );
14660  }
14661  YY_BREAK
14662 case 220:
14663 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
14664 (yy_c_buf_p) = yy_cp -= 1;
14665 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
14667 #line 2517 "scanner.l"
14668 { /* line control directive */
14669  yyLineNr = atoi(&scannerYYtext[1]);
14670  //printf("setting line number to %d\n",yyLineNr);
14671  lastPreLineCtrlContext = YY_START;
14672  if (YY_START==ReadBody ||
14673  YY_START==ReadNSBody ||
14675  {
14676  current->program+=scannerYYtext;
14677  }
14678  BEGIN( PreLineCtrl );
14679  }
14680  YY_BREAK
14681 case 221:
14683 #line 2529 "scanner.l"
14684 {
14685  yyFileName = stripQuotes(scannerYYtext);
14686  if (lastPreLineCtrlContext==ReadBody ||
14687  lastPreLineCtrlContext==ReadNSBody ||
14688  lastPreLineCtrlContext==ReadBodyIntf)
14689  {
14690  current->program+=scannerYYtext;
14691  }
14692  }
14693  YY_BREAK
14694 case 222:
14696 #line 2538 "scanner.l"
14697 {
14698  if (lastPreLineCtrlContext==ReadBody ||
14699  lastPreLineCtrlContext==ReadNSBody ||
14700  lastPreLineCtrlContext==ReadBodyIntf)
14701  {
14702  current->program+=scannerYYtext;
14703  }
14704  }
14705  YY_BREAK
14706 case 223:
14707 /* rule 223 can match eol */
14709 #line 2546 "scanner.l"
14710 {
14711  if (lastPreLineCtrlContext==ReadBody ||
14712  lastPreLineCtrlContext==ReadNSBody ||
14713  lastPreLineCtrlContext==ReadBodyIntf)
14714  {
14715  current->program+=scannerYYtext;
14716  }
14717  lineCount();
14718  BEGIN( lastPreLineCtrlContext );
14719  }
14720  YY_BREAK
14721 case 224:
14723 #line 2556 "scanner.l"
14724 
14725  YY_BREAK
14726 case 225:
14727 /* rule 225 can match eol */
14729 #line 2557 "scanner.l"
14730 { lineCount(); }
14731  YY_BREAK
14732 case 226:
14733 /* rule 226 can match eol */
14735 #line 2558 "scanner.l"
14736 { lineCount();
14737  BEGIN( lastCPPContext) ;
14738  }
14739  YY_BREAK
14740 case 227:
14742 #line 2561 "scanner.l"
14743 {
14744  current->name = scannerYYtext;
14745  current->name = current->name.left(current->name.length()-1).stripWhiteSpace();
14746  current->args = "(";
14747  current->bodyLine = yyLineNr;
14748  currentArgumentContext = DefineEnd;
14749  fullArgString=current->args.copy();
14750  copyArgString=&current->args;
14751  BEGIN( ReadFuncArgType ) ;
14752  }
14753  YY_BREAK
14754 /*
14755 <DefineArg>")" {
14756  //printf("Define with args\n");
14757  current->args += ')';
14758  BEGIN( DefineEnd );
14759  }
14760 <DefineArg>. {
14761  current->args += *scannerYYtext;
14762  }
14763  */
14764 case 228:
14766 #line 2581 "scanner.l"
14767 {
14768  //printf("Define `%s' without args\n",scannerYYtext);
14769  if (insideCpp || insideObjC)
14770  {
14771  current->id = ClangParser::instance()->lookup(yyLineNr,scannerYYtext);
14772  }
14773  current->bodyLine = yyLineNr;
14774  current->name = scannerYYtext;
14775  BEGIN(DefineEnd);
14776  }
14777  YY_BREAK
14778 case 229:
14779 /* rule 229 can match eol */
14781 #line 2591 "scanner.l"
14782 {
14783  //printf("End define: doc=%s docFile=%s docLine=%d\n",current->doc.data(),current->docFile.data(),current->docLine);
14784  lineCount();
14785  current->fileName = yyFileName;
14786  current->startLine = yyLineNr;
14787  current->startColumn = yyColNr;
14788  current->type.resize(0);
14789  current->args = current->args.simplifyWhiteSpace();
14790  current->name = current->name.stripWhiteSpace();
14791  current->section = Entry::DEFINE_SEC;
14792  current_root->addSubEntry(current);
14793  current = new Entry ;
14794  initEntry();
14795  BEGIN(lastDefineContext);
14796  }
14797  YY_BREAK
14798 case 230:
14800 #line 2606 "scanner.l"
14801 {
14802  //printf("End define\n");
14803  current->fileName = yyFileName;
14804  current->startLine = yyLineNr;
14805  current->startColumn = yyColNr;
14806  current->type.resize(0);
14807  current->type = "const";
14808  QCString init = current->initializer.data();
14809  init = init.simplifyWhiteSpace();
14810  init = init.left(init.length()-1);
14811  current->initializer = init;
14812  current->name = current->name.stripWhiteSpace();
14813  current->section = Entry::VARIABLE_SEC;
14814  current_root->addSubEntry(current);
14815  current = new Entry ;
14816  initEntry();
14817  BEGIN(FindMembers);
14818  }
14819  YY_BREAK
14820 case 231:
14822 #line 2624 "scanner.l"
14823 
14824  YY_BREAK
14825 case 232:
14826 /* rule 232 can match eol */
14828 #line 2625 "scanner.l"
14829 {
14830  lineCount();
14831  }
14832  YY_BREAK
14833 case 233:
14835 #line 2628 "scanner.l"
14836 {
14837  if (insideIDL && insideCppQuote)
14838  {
14839  BEGIN(EndCppQuote);
14840  }
14841  else
14842  {
14843  lastStringContext=DefineEnd;
14844  BEGIN(SkipString);
14845  }
14846  }
14847  YY_BREAK
14848 case 234:
14850 #line 2639 "scanner.l"
14851 
14852  YY_BREAK
14853 case 235:
14854 /* rule 235 can match eol */
14856 #line 2640 "scanner.l"
14857 {
14858  current->name = scannerYYtext;
14859  current->name = current->name.stripWhiteSpace();
14860  current->name = current->name.left(current->name.length()-1).stripWhiteSpace();
14861  current->name = current->name.left(current->name.length()-1);
14862  current->bodyLine = yyLineNr;
14863  lastRoundContext = DefinePHPEnd;
14864  pCopyRoundGString = &current->initializer;
14865  roundCount = 0;
14866  BEGIN( GCopyRound );
14867  }
14868  YY_BREAK
14869 case 236:
14871 #line 2652 "scanner.l"
14872 { // ^ and % are C++/CLI extensions
14873  if (insideCli)
14874  {
14875  addType( current );
14876  current->name = scannerYYtext ;
14877  }
14878  else
14879  {
14880  REJECT;
14881  }
14882  }
14883  YY_BREAK
14884 case 237:
14886 #line 2663 "scanner.l"
14887 {
14888  current->name += scannerYYtext ;
14889  addType( current );
14890  }
14891  YY_BREAK
14892 case 238:
14893 /* rule 238 can match eol */
14895 #line 2667 "scanner.l"
14896 {
14897  if (current->bodyLine==-1)
14898  {
14899  current->bodyLine=yyLineNr;
14900  }
14901  docBlockContext = YY_START;
14902  docBlockInBody = FALSE;
14903  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
14904  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
14905 
14906  QCString indent;
14907  indent.fill(' ',computeIndent(scannerYYtext,g_column));
14908  docBlock=indent;
14909  //printf("indent=%d\n",computeIndent(scannerYYtext+1,g_column));
14910  lineCount();
14911 
14912  docBlockTerm = ';';
14913  if (YY_START==EnumBaseType && current->section==Entry::ENUM_SEC)
14914  {
14915  current->bitfields = ":"+current->args;
14916  current->args.resize(0);
14917  current->section=Entry::VARIABLE_SEC;
14918  }
14919  if (scannerYYtext[scannerYYleng-3]=='/')
14920  {
14922  BEGIN( DocLine );
14923  }
14924  else
14925  {
14927  BEGIN( DocBlock );
14928  }
14929  }
14930  YY_BREAK
14931 case 239:
14932 /* rule 239 can match eol */
14934 #line 2701 "scanner.l"
14935 {
14936  docBlockContext = YY_START;
14937  docBlockInBody = FALSE;
14938  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
14939  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
14940 
14941  QCString indent;
14942  indent.fill(' ',computeIndent(scannerYYtext,g_column));
14943  docBlock=indent;
14944  lineCount();
14945 
14946  docBlockTerm = ',';
14947  if (YY_START==EnumBaseType && current->section==Entry::ENUM_SEC)
14948  {
14949  current->bitfields = ":"+current->args;
14950  current->args.resize(0);
14951  current->section=Entry::VARIABLE_SEC;
14952  }
14953  if (scannerYYtext[scannerYYleng-3]=='/')
14954  {
14956  BEGIN( DocLine );
14957  }
14958  else
14959  {
14961  BEGIN( DocBlock );
14962  }
14963  }
14964  YY_BREAK
14965 case 240:
14966 /* rule 240 can match eol */
14968 #line 2730 "scanner.l"
14969 {
14970  if (current->bodyLine==-1)
14971  {
14972  current->bodyLine=yyLineNr;
14973  }
14974  docBlockContext = YY_START;
14975  docBlockInBody = FALSE;
14976  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
14977  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
14978  QCString indent;
14979  indent.fill(' ',computeIndent(scannerYYtext,g_column));
14980  docBlock=indent;
14981  lineCount();
14982 
14983  docBlockTerm = 0;
14984  if (scannerYYtext[scannerYYleng-3]=='/')
14985  {
14987  BEGIN( DocLine );
14988  }
14989  else
14990  {
14992  BEGIN( DocBlock );
14993  }
14994  }
14995  YY_BREAK
14996 case 241:
14998 #line 2757 "scanner.l"
14999 {
15000  //handleGroupStartCommand(current->name);
15001  if (previous && previous->section==Entry::GROUPDOC_SEC)
15002  {
15003  // link open command to the group defined in the previous entry
15004  openGroup(previous,yyFileName,yyLineNr);
15005  }
15006  else
15007  {
15008  // link open command to the current entry
15009  openGroup(current,yyFileName,yyLineNr);
15010  }
15011  //current = tmp;
15012  initEntry();
15013  if (scannerYYtext[1]=='/')
15014  {
15015  if (scannerYYtext[2]=='!' || scannerYYtext[2]=='/')
15016  {
15017  docBlockContext = YY_START;
15018  docBlockInBody = FALSE;
15019  docBlockAutoBrief = FALSE;
15020  docBlock.resize(0);
15021  docBlockTerm = 0;
15023  BEGIN(DocLine);
15024  }
15025  else
15026  {
15027  lastCContext=YY_START;
15029  }
15030  }
15031  else
15032  {
15033  if (scannerYYtext[2]=='!' || scannerYYtext[2]=='*')
15034  {
15035  docBlockContext = YY_START;
15036  docBlockInBody = FALSE;
15037  docBlock.resize(0);
15038  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
15039  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
15040  docBlockTerm = 0;
15042  BEGIN(DocBlock);
15043  }
15044  else
15045  {
15046  lastCContext=YY_START;
15047  BEGIN(SkipComment);
15048  }
15049  }
15050  }
15051  YY_BREAK
15052 case 242:
15053 /* rule 242 can match eol */
15055 #line 2809 "scanner.l"
15056 {
15057  bool insideEnum = YY_START==FindFields || (YY_START==ReadInitializer && lastInitializerContext==FindFields); // see bug746226
15058  closeGroup(current,yyFileName,yyLineNr,insideEnum);
15059  }
15060  YY_BREAK
15061 case 243:
15063 #line 2813 "scanner.l"
15064 { // in PHP code this could also be due to "<?="
15065  current->bodyLine = yyLineNr;
15066  current->initializer = scannerYYtext;
15067  lastInitializerContext = YY_START;
15068  initBracketCount=0;
15070  }
15071  YY_BREAK
15072 case 244:
15073 /* rule 244 can match eol */
15075 #line 2820 "scanner.l"
15076 {
15077  lineCount();
15078  current->exception += " ";
15079  current->exception += removeRedundantWhiteSpace(scannerYYtext);
15080  }
15081  YY_BREAK
15082 case 245:
15084 #line 2825 "scanner.l"
15085 {
15086  current->exception += " }";
15087  BEGIN(FindMembers);
15088  }
15089  YY_BREAK
15090 /* Read initializer rules */
15091 case 246:
15093 #line 2830 "scanner.l"
15094 {
15095  lastRoundContext=YY_START;
15096  pCopyRoundGString=&current->initializer;
15097  roundCount=0;
15098  current->initializer+=*scannerYYtext;
15099  BEGIN(GCopyRound);
15100  }
15101  YY_BREAK
15102 case 247:
15104 #line 2837 "scanner.l"
15105 {
15106  lastCurlyContext=YY_START;
15107  pCopyCurlyGString=&current->initializer;
15108  curlyCount=0;
15109  current->initializer+=*scannerYYtext;
15110  BEGIN(GCopyCurly);
15111  }
15112  YY_BREAK
15113 case 248:
15115 #line 2844 "scanner.l"
15116 {
15117  //printf(">> initializer `%s' <<\n",current->initializer.data());
15118  if (*scannerYYtext==';' && (current_root->spec&Entry::Enum))
15119  {
15120  current->fileName = yyFileName;
15121  current->startLine = yyLineNr;
15122  current->startColumn = yyColNr;
15123  current->args = current->args.simplifyWhiteSpace();
15124  current->name = current->name.stripWhiteSpace();
15125  current->section = Entry::VARIABLE_SEC;
15126  current_root->addSubEntry(current);
15127  current = new Entry;
15128  initEntry();
15129  BEGIN(FindMembers);
15130  }
15131  else if (*scannerYYtext==';' || (lastInitializerContext==FindFields && initBracketCount==0)) // initBracketCount==0 was added for bug 665778
15132  {
15133  unput(*scannerYYtext);
15134  BEGIN(lastInitializerContext);
15135  }
15136  else if (*scannerYYtext==',' && initBracketCount==0) // for "int a=0,b=0"
15137  {
15138  unput(*scannerYYtext);
15139  BEGIN(lastInitializerContext);
15140  }
15141  else
15142  {
15143  current->initializer+=*scannerYYtext;
15144  }
15145  }
15146  YY_BREAK
15147 case 249:
15148 /* rule 249 can match eol */
15150 #line 2874 "scanner.l"
15151 { // C++11 raw string
15152  if (!insideCpp)
15153  {
15154  REJECT;
15155  }
15156  else
15157  {
15158  QCString text=scannerYYtext;
15159  current->initializer+=text;
15160  int i=text.find('"');
15161  g_delimiter = scannerYYtext+i+1;
15162  g_delimiter=g_delimiter.left(g_delimiter.length()-1);
15163  lastRawStringContext = YY_START;
15164  pCopyRawGString = &current->initializer;
15165  BEGIN(RawGString);
15166  //printf("RawGString delimiter='%s'\n",delimiter.data());
15167  }
15168  }
15169  YY_BREAK
15170 case 250:
15171 /* rule 250 can match eol */
15173 #line 2892 "scanner.l"
15174 {
15175  *pCopyRawGString+=scannerYYtext;
15176  QCString delimiter = scannerYYtext+1;
15177  delimiter=delimiter.left(delimiter.length()-1);
15178  if (delimiter==g_delimiter)
15179  {
15180  BEGIN(lastRawStringContext);
15181  }
15182  }
15183  YY_BREAK
15184 case 251:
15186 #line 2901 "scanner.l"
15187 {
15188  *pCopyRawGString+=scannerYYtext;
15189  }
15190  YY_BREAK
15191 case 252:
15193 #line 2904 "scanner.l"
15194 {
15195  *pCopyRawGString+=scannerYYtext;
15196  }
15197  YY_BREAK
15198 case 253:
15199 /* rule 253 can match eol */
15201 #line 2907 "scanner.l"
15202 {
15203  *pCopyRawGString+=scannerYYtext;
15204  lineCount();
15205  }
15206  YY_BREAK
15207 case 254:
15208 /* rule 254 can match eol */
15210 #line 2911 "scanner.l"
15211 {
15212  *pCopyRawString+=scannerYYtext;
15213  fullArgString+=scannerYYtext;
15214  QCString delimiter = scannerYYtext+1;
15215  delimiter=delimiter.left(delimiter.length()-1);
15216  if (delimiter==g_delimiter)
15217  {
15218  BEGIN(lastRawStringContext);
15219  }
15220  }
15221  YY_BREAK
15222 case 255:
15223 /* rule 255 can match eol */
15225 #line 2921 "scanner.l"
15226 {
15227  *pCopyRawString+=scannerYYtext;
15228  fullArgString+=scannerYYtext;
15229  }
15230  YY_BREAK
15231 case 256:
15233 #line 2925 "scanner.l"
15234 {
15235  *pCopyRawString+=scannerYYtext;
15236  fullArgString+=scannerYYtext;
15237  }
15238  YY_BREAK
15239 case 257:
15240 /* rule 257 can match eol */
15242 #line 2929 "scanner.l"
15243 {
15244  *pCopyRawString+=scannerYYtext;
15245  fullArgString+=scannerYYtext;
15246  lineCount();
15247  }
15248  YY_BREAK
15249 case 258:
15251 #line 2934 "scanner.l"
15252 {
15253  if (insideIDL && insideCppQuote)
15254  {
15255  BEGIN(EndCppQuote);
15256  }
15257  else
15258  {
15259  lastStringContext=YY_START;
15260  current->initializer+=scannerYYtext;
15261  pCopyQuotedGString=&current->initializer;
15262  BEGIN(CopyGString);
15263  }
15264  }
15265  YY_BREAK
15266 case 259:
15268 #line 2947 "scanner.l"
15269 {
15270  current->initializer+=scannerYYtext;
15271  }
15272  YY_BREAK
15273 case 260:
15275 #line 2950 "scanner.l"
15276 {
15277  current->initializer+=scannerYYtext;
15278  }
15279  YY_BREAK
15280 case 261:
15282 #line 2953 "scanner.l"
15283 {
15284  current->initializer+=scannerYYtext;
15285  }
15286  YY_BREAK
15287 case 262:
15289 #line 2956 "scanner.l"
15290 {
15291  initBracketCount++;
15292  current->initializer+=*scannerYYtext;
15293  }
15294  YY_BREAK
15295 case 263:
15297 #line 2960 "scanner.l"
15298 {
15299  initBracketCount--;
15300  current->initializer+=*scannerYYtext;
15301  }
15302  YY_BREAK
15303 case 264:
15305 #line 2964 "scanner.l"
15306 {
15307  if (insidePHP)
15308  {
15309  current->initializer+=scannerYYtext;
15310  pCopyQuotedGString = &current->initializer;
15311  lastStringContext=YY_START;
15313  }
15314  else
15315  {
15316  current->initializer+=scannerYYtext;
15317  }
15318  }
15319  YY_BREAK
15320 case 265:
15322 #line 2977 "scanner.l"
15323 {
15324  if (insidePHP)
15325  {
15326  REJECT;
15327  }
15328  else
15329  {
15330  current->initializer+=scannerYYtext;
15331  }
15332  }
15333  YY_BREAK
15334 case 266:
15335 /* rule 266 can match eol */
15337 #line 2987 "scanner.l"
15338 {
15339  current->initializer+=*scannerYYtext;
15340  lineCount();
15341  }
15342  YY_BREAK
15343 case 267:
15345 #line 2991 "scanner.l"
15346 {
15347  //printf("insideCS=%d\n",insideCS);
15348  current->initializer+=scannerYYtext;
15349  if (!insideCS && !insideObjC)
15350  {
15351  REJECT;
15352  }
15353  else
15354  {
15355  // C#/ObjC verbatim string
15356  lastSkipVerbStringContext=YY_START;
15357  pSkipVerbString=&current->initializer;
15359  }
15360  }
15361  YY_BREAK
15362 case 268:
15364 #line 3006 "scanner.l"
15365 {
15366  *pSkipVerbString+=scannerYYtext;
15367  }
15368  YY_BREAK
15369 case 269:
15371 #line 3009 "scanner.l"
15372 { // quote escape
15373  *pSkipVerbString+=scannerYYtext;
15374  }
15375  YY_BREAK
15376 case 270:
15378 #line 3012 "scanner.l"
15379 {
15380  *pSkipVerbString+=*scannerYYtext;
15381  BEGIN(lastSkipVerbStringContext);
15382  }
15383  YY_BREAK
15384 case 271:
15385 /* rule 271 can match eol */
15387 #line 3016 "scanner.l"
15388 {
15389  *pSkipVerbString+=*scannerYYtext;
15390  lineCount();
15391  }
15392  YY_BREAK
15393 case 272:
15395 #line 3020 "scanner.l"
15396 {
15397  *pSkipVerbString+=*scannerYYtext;
15398  }
15399  YY_BREAK
15400 case 273:
15402 #line 3023 "scanner.l"
15403 {
15404  if (insidePHP)
15405  BEGIN( FindMembersPHP );
15406  else
15407  current->initializer+=scannerYYtext;
15408  }
15409  YY_BREAK
15410 case 274:
15412 #line 3029 "scanner.l"
15413 {
15414  current->initializer+=*scannerYYtext;
15415  }
15416  YY_BREAK
15417 /* generic quoted string copy rules */
15418 case 275:
15420 #line 3034 "scanner.l"
15421 {
15422  *pCopyQuotedString+=scannerYYtext;
15423  }
15424  YY_BREAK
15425 case 276:
15427 #line 3037 "scanner.l"
15428 {
15429  *pCopyQuotedString+=*scannerYYtext;
15430  BEGIN( lastStringContext );
15431  }
15432  YY_BREAK
15433 case 277:
15435 #line 3041 "scanner.l"
15436 {
15437  *pCopyQuotedString+=*scannerYYtext;
15438  BEGIN( lastStringContext );
15439  }
15440  YY_BREAK
15441 case 278:
15443 #line 3045 "scanner.l"
15444 {
15445  *pCopyQuotedString+=scannerYYtext;
15446  }
15447  YY_BREAK
15448 case 279:
15449 /* rule 279 can match eol */
15451 #line 3048 "scanner.l"
15452 {
15453  *pCopyQuotedString+=*scannerYYtext;
15454  lineCount();
15455  }
15456  YY_BREAK
15457 case 280:
15459 #line 3052 "scanner.l"
15460 {
15461  *pCopyQuotedString+=*scannerYYtext;
15462  }
15463  YY_BREAK
15464 /* generic quoted growable string copy rules */
15465 case 281:
15467 #line 3057 "scanner.l"
15468 {
15469  *pCopyQuotedGString+=scannerYYtext;
15470  }
15471  YY_BREAK
15472 case 282:
15474 #line 3060 "scanner.l"
15475 {
15476  *pCopyQuotedGString+=*scannerYYtext;
15477  BEGIN( lastStringContext );
15478  }
15479  YY_BREAK
15480 case 283:
15482 #line 3064 "scanner.l"
15483 {
15484  *pCopyQuotedGString+=*scannerYYtext;
15485  BEGIN( lastStringContext );
15486  }
15487  YY_BREAK
15488 case 284:
15490 #line 3068 "scanner.l"
15491 {
15492  *pCopyQuotedGString+=scannerYYtext;
15493  }
15494  YY_BREAK
15495 case 285:
15496 /* rule 285 can match eol */
15498 #line 3071 "scanner.l"
15499 {
15500  *pCopyQuotedGString+=*scannerYYtext;
15501  lineCount();
15502  }
15503  YY_BREAK
15504 case 286:
15506 #line 3075 "scanner.l"
15507 {
15508  *pCopyQuotedGString+=*scannerYYtext;
15509  }
15510  YY_BREAK
15511 /* generic round bracket list copy rules */
15512 case 287:
15514 #line 3080 "scanner.l"
15515 {
15516  *pCopyRoundString+=*scannerYYtext;
15517  pCopyQuotedString=pCopyRoundString;
15518  lastStringContext=YY_START;
15519  BEGIN(CopyString);
15520  }
15521  YY_BREAK
15522 case 288:
15524 #line 3086 "scanner.l"
15525 {
15526  *pCopyRoundString+=*scannerYYtext;
15527  roundCount++;
15528  }
15529  YY_BREAK
15530 case 289:
15532 #line 3090 "scanner.l"
15533 {
15534  *pCopyRoundString+=*scannerYYtext;
15535  if (--roundCount<0)
15536  BEGIN(lastRoundContext);
15537  }
15538  YY_BREAK
15539 case 290:
15540 /* rule 290 can match eol */
15542 #line 3095 "scanner.l"
15543 {
15544  lineCount();
15545  *pCopyRoundString+=*scannerYYtext;
15546  }
15547  YY_BREAK
15548 case 291:
15550 #line 3099 "scanner.l"
15551 {
15552  if (insidePHP)
15553  {
15554  current->initializer+=scannerYYtext;
15555  pCopyQuotedString = pCopyRoundString;
15556  lastStringContext=YY_START;
15558  }
15559  else
15560  {
15561  *pCopyRoundString+=scannerYYtext;
15562  }
15563  }
15564  YY_BREAK
15565 case 292:
15567 #line 3112 "scanner.l"
15568 {
15569  if (insidePHP)
15570  {
15571  REJECT;
15572  }
15573  else
15574  {
15575  *pCopyRoundString+=scannerYYtext;
15576  }
15577  }
15578  YY_BREAK
15579 case 293:
15581 #line 3122 "scanner.l"
15582 {
15583  *pCopyRoundString+=scannerYYtext;
15584  }
15585  YY_BREAK
15586 case 294:
15588 #line 3125 "scanner.l"
15589 {
15590  *pCopyRoundString+=*scannerYYtext;
15591  }
15592  YY_BREAK
15593 /* generic round bracket list copy rules for growable strings */
15594 case 295:
15596 #line 3130 "scanner.l"
15597 {
15598  *pCopyRoundGString+=*scannerYYtext;
15599  pCopyQuotedGString=pCopyRoundGString;
15600  lastStringContext=YY_START;
15601  BEGIN(CopyGString);
15602  }
15603  YY_BREAK
15604 case 296:
15606 #line 3136 "scanner.l"
15607 {
15608  *pCopyRoundGString+=*scannerYYtext;
15609  roundCount++;
15610  }
15611  YY_BREAK
15612 case 297:
15614 #line 3140 "scanner.l"
15615 {
15616  *pCopyRoundGString+=*scannerYYtext;
15617  if (--roundCount<0)
15618  BEGIN(lastRoundContext);
15619  }
15620  YY_BREAK
15621 case 298:
15622 /* rule 298 can match eol */
15624 #line 3145 "scanner.l"
15625 {
15626  lineCount();
15627  *pCopyRoundGString+=*scannerYYtext;
15628  }
15629  YY_BREAK
15630 case 299:
15632 #line 3149 "scanner.l"
15633 {
15634  if (insidePHP)
15635  {
15636  current->initializer+=scannerYYtext;
15637  pCopyQuotedGString = pCopyRoundGString;
15638  lastStringContext=YY_START;
15640  }
15641  else
15642  {
15643  *pCopyRoundGString+=scannerYYtext;
15644  }
15645  }
15646  YY_BREAK
15647 case 300:
15649 #line 3162 "scanner.l"
15650 {
15651  if (insidePHP)
15652  {
15653  REJECT;
15654  }
15655  else
15656  {
15657  *pCopyRoundGString+=scannerYYtext;
15658  }
15659  }
15660  YY_BREAK
15661 case 301:
15663 #line 3172 "scanner.l"
15664 {
15665  *pCopyRoundGString+=scannerYYtext;
15666  }
15667  YY_BREAK
15668 case 302:
15670 #line 3175 "scanner.l"
15671 {
15672  *pCopyRoundGString+=*scannerYYtext;
15673  }
15674  YY_BREAK
15675 /* generic curly bracket list copy rules */
15676 case 303:
15678 #line 3180 "scanner.l"
15679 {
15680  *pCopyCurlyString+=*scannerYYtext;
15681  pCopyQuotedString=pCopyCurlyString;
15682  lastStringContext=YY_START;
15683  BEGIN(CopyString);
15684  }
15685  YY_BREAK
15686 case 304:
15688 #line 3186 "scanner.l"
15689 {
15690  *pCopyCurlyString+=*scannerYYtext;
15691  if (insidePHP)
15692  {
15693  pCopyQuotedString=pCopyCurlyString;
15694  lastStringContext=YY_START;
15696  }
15697  }
15698  YY_BREAK
15699 case 305:
15701 #line 3195 "scanner.l"
15702 {
15703  *pCopyCurlyString+=*scannerYYtext;
15704  curlyCount++;
15705  }
15706  YY_BREAK
15707 case 306:
15709 #line 3199 "scanner.l"
15710 {
15711  *pCopyCurlyString+=*scannerYYtext;
15712  if (--curlyCount<0)
15713  BEGIN(lastCurlyContext);
15714  }
15715  YY_BREAK
15716 case 307:
15718 #line 3204 "scanner.l"
15719 { if (insidePHP)
15720  {
15721  REJECT;
15722  }
15723  else
15724  {
15725  *pCopyCurlyString+=scannerYYtext;
15726  }
15727  }
15728  YY_BREAK
15729 case 308:
15731 #line 3213 "scanner.l"
15732 {
15733  *pCopyCurlyString+=scannerYYtext;
15734  }
15735  YY_BREAK
15736 case 309:
15738 #line 3216 "scanner.l"
15739 { *pCopyCurlyString+=scannerYYtext; }
15740  YY_BREAK
15741 case 310:
15742 /* rule 310 can match eol */
15744 #line 3217 "scanner.l"
15745 {
15746  lineCount();
15747  *pCopyCurlyString+=*scannerYYtext;
15748  }
15749  YY_BREAK
15750 case 311:
15752 #line 3221 "scanner.l"
15753 {
15754  *pCopyCurlyString+=*scannerYYtext;
15755  }
15756  YY_BREAK
15757 /* generic curly bracket list copy rules for growable strings */
15758 case 312:
15759 /* rule 312 can match eol */
15761 #line 3226 "scanner.l"
15762 { // start of included file marker
15763  }
15764  YY_BREAK
15765 case 313:
15766 /* rule 313 can match eol */
15768 #line 3228 "scanner.l"
15769 { // end of included file marker
15770  QCString line = QCString(scannerYYtext);
15771  int s = line.find(' ');
15772  int e = line.find('"',s);
15773  yyLineNr = line.mid(s,e-s).toInt();
15774  if (scannerYYtext[scannerYYleng-1]=='\n')
15775  {
15776  lineCount();
15777  g_column=0;
15778  }
15779  }
15780  YY_BREAK
15781 case 314:
15783 #line 3239 "scanner.l"
15784 {
15785  *pCopyCurlyGString+=*scannerYYtext;
15786  pCopyQuotedGString=pCopyCurlyGString;
15787  lastStringContext=YY_START;
15788  BEGIN(CopyGString);
15789  }
15790  YY_BREAK
15791 case 315:
15793 #line 3245 "scanner.l"
15794 {
15795  *pCopyCurlyGString+=*scannerYYtext;
15796  if (insidePHP)
15797  {
15798  pCopyQuotedGString=pCopyCurlyGString;
15799  lastStringContext=YY_START;
15801  }
15802  }
15803  YY_BREAK
15804 case 316:
15806 #line 3254 "scanner.l"
15807 {
15808  *pCopyCurlyGString+=*scannerYYtext;
15809  curlyCount++;
15810  }
15811  YY_BREAK
15812 case 317:
15814 #line 3258 "scanner.l"
15815 {
15816  *pCopyCurlyGString+=*scannerYYtext;
15817  if (--curlyCount<0)
15818  BEGIN(lastCurlyContext);
15819  }
15820  YY_BREAK
15821 case 318:
15823 #line 3263 "scanner.l"
15824 { if (insidePHP)
15825  {
15826  REJECT;
15827  }
15828  else
15829  {
15830  *pCopyCurlyGString+=scannerYYtext;
15831  }
15832  }
15833  YY_BREAK
15834 case 319:
15836 #line 3272 "scanner.l"
15837 {
15838  *pCopyCurlyGString+=scannerYYtext;
15839  }
15840  YY_BREAK
15841 case 320:
15843 #line 3275 "scanner.l"
15844 {
15845  *pCopyCurlyGString+=scannerYYtext;
15846  }
15847  YY_BREAK
15848 case 321:
15850 #line 3278 "scanner.l"
15851 { *pCopyCurlyGString+=scannerYYtext; }
15852  YY_BREAK
15853 case 322:
15854 /* rule 322 can match eol */
15856 #line 3279 "scanner.l"
15857 {
15858  lineCount();
15859  *pCopyCurlyGString+=*scannerYYtext;
15860  }
15861  YY_BREAK
15862 case 323:
15864 #line 3283 "scanner.l"
15865 {
15866  *pCopyCurlyGString+=*scannerYYtext;
15867  }
15868  YY_BREAK
15869 /* ---------------------- */
15870 case 324:
15872 #line 3290 "scanner.l"
15873 {
15874  if (current->type.isEmpty() &&
15875  current->name=="enum") // see bug 69041, C++11 style anon enum: 'enum : unsigned int {...}'
15876  {
15877  current->section=Entry::ENUM_SEC;
15878  current->name.resize(0);
15879  current->args.resize(0);
15881  }
15882  else
15883  {
15884  if (current->type.isEmpty()) // anonymous padding field, e.g. "int :7;"
15885  {
15886  addType(current);
15887  current->name.sprintf("__pad%d__",padCount++);
15888  }
15889  BEGIN(BitFields);
15890  current->bitfields+=":";
15891  }
15892  }
15893  YY_BREAK
15894 case 325:
15896 #line 3310 "scanner.l"
15897 {
15898  current->bitfields+=*scannerYYtext;
15899  }
15900  YY_BREAK
15901 case 326:
15903 #line 3313 "scanner.l"
15904 {
15905  current->args+=*scannerYYtext;
15906  }
15907  YY_BREAK
15908 case 327:
15909 /* rule 327 can match eol */
15911 #line 3316 "scanner.l"
15912 {
15913  lineCount();
15914  current->args+=' ';
15915  }
15916  YY_BREAK
15917 case 328:
15919 #line 3320 "scanner.l"
15920 {
15921  QCString oldType = current->type;
15922  if (current->bodyLine==-1)
15923  {
15924  current->bodyLine = yyLineNr;
15925  }
15926  if ( insidePHP && current->type.left(3) == "var" )
15927  {
15928  current->type = current->type.mid(3);
15929  }
15930  if (isTypedef && current->type.left(8)!="typedef ")
15931  {
15932  current->type.prepend("typedef ");
15933  }
15934  bool needNewCurrent=FALSE;
15935  if (!current->name.isEmpty() && current->section!=Entry::ENUM_SEC)
15936  {
15937  current->type=current->type.simplifyWhiteSpace();
15938  current->args=removeRedundantWhiteSpace(current->args);
15939  current->name=current->name.stripWhiteSpace();
15940  if (current->section==Entry::CLASS_SEC) // remove spec for "struct Bla bla;"
15941  {
15942  current->spec = 0;
15943  }
15944  current->section = Entry::VARIABLE_SEC ;
15945  current->fileName = yyFileName;
15946  current->startLine = yyBegLineNr;
15947  current->startColumn = yyBegColNr;
15948  current_root->addSubEntry( current ) ;
15949  needNewCurrent=TRUE;
15950  }
15951  if ( *scannerYYtext == ',')
15952  {
15953  bool stat = current->stat;
15954  if (needNewCurrent)
15955  {
15956  current = new Entry(*current);
15957  initEntry();
15958  }
15959  current->stat = stat; // the static attribute holds for all variables
15960  current->name.resize(0);
15961  current->args.resize(0);
15962  current->brief.resize(0);
15963  current->doc.resize(0);
15964  current->initializer.resize(0);
15965  current->bitfields.resize(0);
15966  int i=oldType.length();
15967  while (i>0 && (oldType[i-1]=='*' || oldType[i-1]=='&' || oldType[i-1]==' ')) i--;
15968  current->type = oldType.left(i);
15969  }
15970  else
15971  {
15972  mtype = Method;
15973  virt = Normal;
15974  if (needNewCurrent)
15975  {
15976  current = new Entry ;
15977  }
15978  else if (current->groups)
15979  {
15980  current->groups->clear();
15981  }
15982  initEntry();
15983  }
15984  }
15985  YY_BREAK
15986 case 329:
15988 #line 3386 "scanner.l"
15989 {
15990  if (!insideCS &&
15991  (current->name.isEmpty() ||
15992  current->name=="typedef"
15993  )
15994  ) // IDL function property
15995  {
15996  squareCount=1;
15997  lastSquareContext = YY_START;
15998  idlAttr.resize(0);
15999  idlProp.resize(0);
16000  current->mtype = mtype;
16001 
16002  if (Config_getBool("IDL_PROPERTY_SUPPORT") &&
16003  current->mtype == Property)
16004  { // we are inside the properties section of a dispinterface
16005  odlProp = true;
16006  current->spec |= Entry::Gettable;
16007  current->spec |= Entry::Settable;
16008  }
16009 
16010  BEGIN( IDLAttribute );
16011  }
16012  else if (insideCS &&
16013  current->name.isEmpty())
16014  {
16015  squareCount=1;
16016  lastSquareContext = YY_START;
16017  // Skip the C# attribute
16018  // for this member
16019  current->args.resize(0);
16020  BEGIN( SkipSquare );
16021  }
16022  else
16023  {
16024  current->args += scannerYYtext ;
16025  squareCount=1;
16026  externC=FALSE; // see bug759247
16027  BEGIN( Array ) ;
16028  }
16029  }
16030  YY_BREAK
16031 case 330:
16033 #line 3427 "scanner.l"
16034 {
16035  // end of IDL function attribute
16036  if (--squareCount<=0)
16037  {
16038  lineCount();
16039  if (current->mtype == Property)
16040  BEGIN( IDLPropName );
16041  else
16042  BEGIN( lastSquareContext );
16043  }
16044  }
16045  YY_BREAK
16046 case 331:
16048 #line 3438 "scanner.l"
16049 {
16050  if (Config_getBool("IDL_PROPERTY_SUPPORT"))
16051  {
16052  current->mtype = Property;
16053  }
16054  current->spec |= Entry::Settable;
16055  }
16056  YY_BREAK
16057 case 332:
16059 #line 3445 "scanner.l"
16060 {
16061  if (Config_getBool("IDL_PROPERTY_SUPPORT"))
16062  {
16063  current->mtype = Property;
16064  }
16065  current->spec |= Entry::Gettable;
16066  }
16067  YY_BREAK
16068 case 333:
16070 #line 3452 "scanner.l"
16071 { // UNO IDL property
16072  current->spec |= Entry::Property;
16073  }
16074  YY_BREAK
16075 case 334:
16077 #line 3455 "scanner.l"
16078 { // UNO IDL attribute
16079  current->spec |= Entry::Attribute;
16080  }
16081  YY_BREAK
16082 case 335:
16084 #line 3458 "scanner.l"
16085 { // on UNO IDL interface/service/attribute/property
16086  current->spec |= Entry::Optional;
16087  }
16088  YY_BREAK
16089 case 336:
16091 #line 3461 "scanner.l"
16092 { // on UNO IDL attribute or property
16093  if (Config_getBool("IDL_PROPERTY_SUPPORT") && odlProp)
16094  {
16095  current->spec ^= Entry::Settable;
16096  }
16097  else
16098  {
16099  current->spec |= Entry::Readonly;
16100  }
16101  }
16102  YY_BREAK
16103 case 337:
16105 #line 3471 "scanner.l"
16106 { // on UNO IDL attribute or property
16107  current->spec |= Entry::Bound;
16108  }
16109  YY_BREAK
16110 case 338:
16112 #line 3474 "scanner.l"
16113 { // on UNO IDL property
16114  current->spec |= Entry::Removable;
16115  }
16116  YY_BREAK
16117 case 339:
16119 #line 3477 "scanner.l"
16120 { // on UNO IDL property
16121  current->spec |= Entry::Constrained;
16122  }
16123  YY_BREAK
16124 case 340:
16126 #line 3480 "scanner.l"
16127 { // on UNO IDL property
16128  current->spec |= Entry::Transient;
16129  }
16130  YY_BREAK
16131 case 341:
16133 #line 3483 "scanner.l"
16134 { // on UNO IDL property
16135  current->spec |= Entry::MaybeVoid;
16136  }
16137  YY_BREAK
16138 case 342:
16140 #line 3486 "scanner.l"
16141 { // on UNO IDL property
16142  current->spec |= Entry::MaybeDefault;
16143  }
16144  YY_BREAK
16145 case 343:
16147 #line 3489 "scanner.l"
16148 { // on UNO IDL property
16149  current->spec |= Entry::MaybeAmbiguous;
16150  }
16151  YY_BREAK
16152 case 344:
16154 #line 3492 "scanner.l"
16155 {
16156  }
16157  YY_BREAK
16158 case 345:
16159 /* rule 345 can match eol */
16161 #line 3494 "scanner.l"
16162 {
16163  // return type (probably HRESULT) - skip it
16164 
16165  if (odlProp)
16166  { // property type
16167  idlProp = scannerYYtext;
16168  }
16169  }
16170  YY_BREAK
16171 case 346:
16172 /* rule 346 can match eol */
16174 #line 3502 "scanner.l"
16175 {
16176  current->name = scannerYYtext;
16177  current->name = current->name.left(current->name.length()-1).stripWhiteSpace();
16178  current->startLine = yyLineNr;
16179  current->startColumn = yyColNr;
16180  BEGIN( IDLProp );
16181  }
16182  YY_BREAK
16183 case 347:
16184 /* rule 347 can match eol */
16186 #line 3509 "scanner.l"
16187 {
16188  if (odlProp)
16189  {
16190  idlProp += scannerYYtext;
16191  }
16192  }
16193  YY_BREAK
16194 case 348:
16195 /* rule 348 can match eol */
16196 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
16197 (yy_c_buf_p) = yy_cp -= 1;
16198 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
16200 #line 3515 "scanner.l"
16201 {
16202  if (odlProp)
16203  {
16204  current->name = scannerYYtext;
16205  idlProp = idlProp.stripWhiteSpace();
16206  odlProp = false;
16207 
16208  BEGIN( IDLProp );
16209  }
16210  }
16211  YY_BREAK
16212 case 349:
16213 /* rule 349 can match eol */
16215 #line 3525 "scanner.l"
16216 { // attribute of a parameter
16217  idlAttr = scannerYYtext;
16218  idlAttr=idlAttr.stripWhiteSpace();
16219  }
16220  YY_BREAK
16221 case 350:
16223 #line 3529 "scanner.l"
16224 { // property type
16225  idlProp = scannerYYtext;
16226  }
16227  YY_BREAK
16228 case 351:
16229 /* rule 351 can match eol */
16231 #line 3532 "scanner.l"
16232 { // Rare: Another parameter ([propput] HRESULT Item(int index, [in] Type theRealProperty);)
16233  if (!current->args)
16234  current->args = "(";
16235  else
16236  current->args += ", ";
16237  current->args += idlAttr;
16238  current->args += " ";
16239  current->args += idlProp; // prop was actually type of extra parameter
16240  current->args += " ";
16241  current->args += scannerYYtext;
16242  current->args = current->args.left(current->args.length() - 1); // strip comma
16243  idlProp.resize(0);
16244  idlAttr.resize(0);
16245  BEGIN( IDLProp );
16246  }
16247  YY_BREAK
16248 case 352:
16249 /* rule 352 can match eol */
16251 #line 3547 "scanner.l"
16252 {
16253  // the parameter name for the property - just skip.
16254  }
16255  YY_BREAK
16256 case 353:
16258 #line 3550 "scanner.l"
16259 {
16260  current->fileName = yyFileName;
16261  current->type = idlProp;
16262  current->args = current->args.simplifyWhiteSpace();
16263  if (current->args)
16264  current->args += ")";
16265  current->name = current->name.stripWhiteSpace();
16266  current->section = Entry::VARIABLE_SEC;
16267  current_root->addSubEntry(current);
16268  current = new Entry;
16269  initEntry();
16270  BEGIN( FindMembers );
16271  }
16272  YY_BREAK
16273 case 354:
16275 #line 3563 "scanner.l"
16276 { // spaces, *, or other stuff
16277  //idlProp+=scannerYYtext;
16278  }
16279  YY_BREAK
16280 case 355:
16282 #line 3566 "scanner.l"
16283 { current->args += *scannerYYtext ;
16284  if (--squareCount<=0)
16285  BEGIN( FindMembers ) ;
16286  }
16287  YY_BREAK
16288 case 356:
16290 #line 3570 "scanner.l"
16291 { current->args += *scannerYYtext ;
16292  if (--squareCount<=0)
16293  BEGIN( Function ) ;
16294  }
16295  YY_BREAK
16296 case 357:
16298 #line 3574 "scanner.l"
16299 { current->args += *scannerYYtext ;
16300  squareCount++;
16301  }
16302  YY_BREAK
16303 case 358:
16305 #line 3577 "scanner.l"
16306 { current->args += *scannerYYtext ; }
16307  YY_BREAK
16308 case 359:
16310 #line 3578 "scanner.l"
16311 { squareCount++; }
16312  YY_BREAK
16313 case 360:
16315 #line 3579 "scanner.l"
16316 {
16317  if (--squareCount<=0)
16318  BEGIN( lastSquareContext );
16319  }
16320  YY_BREAK
16321 case 361:
16323 #line 3583 "scanner.l"
16324 {
16325  lastStringContext=YY_START;
16326  BEGIN( SkipString );
16327  }
16328  YY_BREAK
16329 case 362:
16331 #line 3587 "scanner.l"
16332 
16333  YY_BREAK
16334 case 363:
16336 #line 3588 "scanner.l"
16337 { addType( current ) ;
16338  current->type += scannerYYtext ;
16339  BEGIN( Sharp ) ;
16340  }
16341  YY_BREAK
16342 case 364:
16344 #line 3592 "scanner.l"
16345 { current->type += *scannerYYtext ;
16346  if (--sharpCount<=0)
16347  BEGIN( FindMembers ) ;
16348  }
16349  YY_BREAK
16350 case 365:
16352 #line 3596 "scanner.l"
16353 { current->type += *scannerYYtext ;
16354  sharpCount++;
16355  }
16356  YY_BREAK
16357 case 366:
16358 /* rule 366 can match eol */
16360 #line 3599 "scanner.l"
16361 {
16362  current->type += ' ';
16363  lineCount();
16364  }
16365  YY_BREAK
16366 case 367:
16368 #line 3603 "scanner.l"
16369 { current->type += *scannerYYtext ; }
16370  YY_BREAK
16371 case 368:
16373 #line 3604 "scanner.l"
16374 {
16375  if (insideCpp || insideObjC)
16376  {
16377  current->id = ClangParser::instance()->lookup(yyLineNr,scannerYYtext);
16378  }
16379  current->bodyLine = yyLineNr;
16380  current->name = scannerYYtext;
16381  }
16382  YY_BREAK
16383 case 369:
16385 #line 3612 "scanner.l"
16386 {
16387  // Java enum initializer
16388  unput('(');
16389  lastInitializerContext = YY_START;
16390  initBracketCount=0;
16391  current->initializer = "=";
16393  }
16394  YY_BREAK
16395 case 370:
16397 #line 3620 "scanner.l"
16398 {
16399  lastInitializerContext = YY_START;
16400  initBracketCount=0;
16401  current->initializer = scannerYYtext;
16403  }
16404  YY_BREAK
16405 case 371:
16407 #line 3626 "scanner.l"
16408 {
16409  if (insideJava) // last enum field in Java class
16410  {
16411  if (!current->name.isEmpty())
16412  {
16413  current->fileName = yyFileName;
16414  current->startLine = yyLineNr;
16415  current->startColumn = yyColNr;
16416  current->type = "@"; // enum marker
16417  current->args = current->args.simplifyWhiteSpace();
16418  current->name = current->name.stripWhiteSpace();
16419  current->section = Entry::VARIABLE_SEC;
16420  current_root->addSubEntry(current);
16421  current = new Entry ;
16422  initEntry();
16423  }
16424 
16425  BEGIN( FindMembers );
16426  }
16427  else
16428  {
16429  REJECT;
16430  }
16431  }
16432  YY_BREAK
16433 case 372:
16434 /* rule 372 can match eol */
16436 #line 3650 "scanner.l"
16437 {
16438  lineCount();
16439  }
16440  YY_BREAK
16441 case 373:
16443 #line 3653 "scanner.l"
16444 
16445  YY_BREAK
16446 case 374:
16448 #line 3654 "scanner.l"
16449 {
16450  //printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n",
16451  // current->type.data(), current->name.data(),
16452  // current->args.data(), current_root->name.data(),current->mGrpId);
16453  if (!current->name.isEmpty())
16454  {
16455  current->fileName = yyFileName;
16456  current->startLine = yyLineNr;
16457  current->startColumn = yyColNr;
16458  if (!(current_root->spec&Entry::Enum))
16459  {
16460  current->type = "@"; // enum marker
16461  }
16462  current->args = current->args.simplifyWhiteSpace();
16463  current->name = current->name.stripWhiteSpace();
16464  current->section = Entry::VARIABLE_SEC;
16465  // add to the scope of the enum
16466  current_root->addSubEntry(current);
16467  if (!insideCS && !insideJava &&
16468  !(current_root->spec&Entry::Strong))
16469  // for C# and Java 1.5+ enum values always have to be explicitly qualified,
16470  // same for C++11 style enums (enum class Name {})
16471  {
16472  current = new Entry(*current);
16473  // add to the scope surrounding the enum (copy!)
16474  current_root->parent()->addSubEntry(current);
16475  }
16476  current = new Entry ;
16477  initEntry();
16478  }
16479  else // probably a redundant ,
16480  {
16481  current->reset();
16482  initEntry();
16483  }
16484  }
16485  YY_BREAK
16486 case 375:
16488 #line 3690 "scanner.l"
16489 { // attribute list in IDL
16490  squareCount=1;
16491  lastSquareContext = YY_START;
16492  BEGIN(SkipSquare);
16493  }
16494  YY_BREAK
16495 /*
16496 <FindFieldArg>"," { unput(*scannerYYtext); BEGIN(FindFields); }
16497  */
16498 case 376:
16500 #line 3698 "scanner.l"
16501 { current->program += scannerYYtext ; }
16502  YY_BREAK
16503 case 377:
16505 #line 3699 "scanner.l"
16506 { current->program += scannerYYtext ; }
16507  YY_BREAK
16508 case 378:
16510 #line 3700 "scanner.l"
16511 { if (!insidePHP)
16512  REJECT;
16513  // append PHP comment.
16514  current->program += scannerYYtext ;
16515  }
16516  YY_BREAK
16517 case 379:
16519 #line 3705 "scanner.l"
16520 { current->program += scannerYYtext ;
16521  pSkipVerbString = &current->program;
16522  lastSkipVerbStringContext=YY_START;
16523  BEGIN( SkipVerbString );
16524  }
16525  YY_BREAK
16526 case 380:
16528 #line 3710 "scanner.l"
16529 { if (insidePHP)
16530  {
16531  current->program += scannerYYtext ;
16532  pCopyHereDocGString = &current->program;
16533  lastHereDocContext=YY_START;
16534  BEGIN( CopyHereDoc );
16535  }
16536  else
16537  {
16538  REJECT;
16539  }
16540  }
16541  YY_BREAK
16542 case 381:
16544 #line 3722 "scanner.l"
16545 { current->program += scannerYYtext ;
16546  pCopyQuotedGString = &current->program;
16547  lastStringContext=YY_START;
16548  BEGIN( CopyGString );
16549  }
16550  YY_BREAK
16551 case 382:
16553 #line 3727 "scanner.l"
16554 { current->program += scannerYYtext ;
16555  lastContext = YY_START ;
16556  BEGIN( Comment ) ;
16557  }
16558  YY_BREAK
16559 case 383:
16560 /* rule 383 can match eol */
16562 #line 3731 "scanner.l"
16563 { current->program += scannerYYtext ;
16564  ++yyLineNr ;
16565  lastContext = YY_START ;
16566  BEGIN( Comment ) ;
16567  }
16568  YY_BREAK
16569 case 384:
16571 #line 3736 "scanner.l"
16572 {
16573  if (!insidePHP)
16574  {
16575  current->program += scannerYYtext;
16576  }
16577  else
16578  { // begin of single quoted string
16579  current->program += scannerYYtext;
16580  pCopyQuotedGString = &current->program;
16581  lastStringContext=YY_START;
16583  }
16584  }
16585  YY_BREAK
16586 case 385:
16588 #line 3749 "scanner.l"
16589 {
16590  if (insidePHP)
16591  {
16592  REJECT; // for PHP code single quotes
16593  // are used for strings of arbitrary length
16594  }
16595  else
16596  {
16597  current->program += scannerYYtext;
16598  }
16599  }
16600  YY_BREAK
16601 case 386:
16603 #line 3760 "scanner.l"
16604 { current->program += scannerYYtext ;
16605  ++curlyCount ;
16606  }
16607  YY_BREAK
16608 case 387:
16610 #line 3763 "scanner.l"
16611 {
16612  current->program += scannerYYtext ;
16613  --curlyCount ;
16614  }
16615  YY_BREAK
16616 case 388:
16618 #line 3767 "scanner.l"
16619 { //err("ReadBody count=%d\n",curlyCount);
16620  if ( curlyCount>0 )
16621  {
16622  current->program += scannerYYtext ;
16623  --curlyCount ;
16624  }
16625  else
16626  {
16627  current->endBodyLine = yyLineNr;
16628  QCString &cn = current->name;
16629  QCString rn = current_root->name.copy();
16630  //printf("cn=`%s' rn=`%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef);
16631  if (!cn.isEmpty() && !rn.isEmpty())
16632  {
16633  prependScope();
16634  }
16635  if (isTypedef && cn.isEmpty())
16636  {
16637  //printf("Typedef Name\n");
16638  BEGIN( TypedefName );
16639  }
16640  else
16641  {
16642  if ((current->section == Entry::ENUM_SEC) || (current->spec&Entry::Enum))
16643  {
16644  current->program+=','; // add field terminator
16645  }
16646  // add compound definition to the tree
16647  current->args=removeRedundantWhiteSpace(current->args);
16648  // was: current->args.simplifyWhiteSpace();
16649  current->type = current->type.simplifyWhiteSpace();
16650  current->name = current->name.stripWhiteSpace();
16651  //printf("adding `%s' `%s' `%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section);
16652  if (insideObjC &&
16653  ((current->spec&Entry::Interface) || (current->spec==Entry::Category))
16654  ) // method definition follows
16655  {
16656  BEGIN( ReadBodyIntf ) ;
16657  }
16658  else
16659  {
16660  current_root->addSubEntry( current ) ;
16661  memspecEntry = current;
16662  current = new Entry(*current);
16663  if (current->section==Entry::NAMESPACE_SEC ||
16664  (current->spec==Entry::Interface) ||
16665  insideJava || insidePHP || insideCS || insideD || insideJS
16666  )
16667  { // namespaces and interfaces and java classes ends with a closing bracket without semicolon
16668  current->reset();
16669  initEntry();
16670  memspecEntry = 0;
16671  BEGIN( FindMembers ) ;
16672  }
16673  else
16674  {
16675  static QRegExp re("@[0-9]+$");
16676  if (!isTypedef && memspecEntry &&
16677  memspecEntry->name.find(re)==-1) // not typedef or anonymous type (see bug691071)
16678  {
16679  // enabled the next two lines for bug 623424
16680  current->doc.resize(0);
16681  current->brief.resize(0);
16682  }
16683  BEGIN( MemberSpec ) ;
16684  }
16685  }
16686  }
16687  }
16688  }
16689  YY_BREAK
16690 case 389:
16691 /* rule 389 can match eol */
16693 #line 3837 "scanner.l"
16694 { //err("ReadBody count=%d\n",curlyCount);
16695  lineCount();
16696  if ( curlyCount>0 )
16697  {
16698  current->program += scannerYYtext ;
16699  --curlyCount ;
16700  }
16701  else
16702  {
16703  isTypedef = TRUE;
16704  current->endBodyLine = yyLineNr;
16705  QCString &cn = current->name;
16706  QCString rn = current_root->name.copy();
16707  if (!cn.isEmpty() && !rn.isEmpty())
16708  {
16709  prependScope();
16710  }
16711  BEGIN( TypedefName );
16712  }
16713  }
16714  YY_BREAK
16715 case 390:
16716 /* rule 390 can match eol */
16718 #line 3857 "scanner.l"
16719 { // late "const" or "volatile" keyword
16720  lineCount();
16721  current->type.prepend(scannerYYtext);
16722  }
16723  YY_BREAK
16724 case 391:
16726 #line 3861 "scanner.l"
16727 {
16728  if ((current->section == Entry::ENUM_SEC) || (current->spec&Entry::Enum))
16729  {
16730  current->program+=","; // add field terminator
16731  }
16732  current->name=scannerYYtext;
16733  prependScope();
16734  current->args = current->args.simplifyWhiteSpace();
16735  current->type = current->type.simplifyWhiteSpace();
16736  //printf("Adding compound %s %s %s\n",current->type.data(),current->name.data(),current->args.data());
16737  current_root->addSubEntry( current ) ;
16738  if (!firstTypedefEntry)
16739  {
16740  firstTypedefEntry = current;
16741  }
16742  current = new Entry;
16743  initEntry();
16744  isTypedef=TRUE; // to undo reset by initEntry()
16746  }
16747  YY_BREAK
16748 case 392:
16750 #line 3881 "scanner.l"
16751 { /* typedef of anonymous type */
16752  current->name.sprintf("@%d",anonCount++);
16753  if ((current->section == Entry::ENUM_SEC) || (current->spec&Entry::Enum))
16754  {
16755  current->program+=','; // add field terminator
16756  }
16757  // add compound definition to the tree
16758  current->args = current->args.simplifyWhiteSpace();
16759  current->type = current->type.simplifyWhiteSpace();
16760  current_root->addSubEntry( current ) ;
16761  memspecEntry = current;
16762  current = new Entry(*current);
16763  initEntry();
16764  unput(';');
16765  BEGIN( MemberSpec ) ;
16766  }
16767  YY_BREAK
16768 case 393:
16769 /* rule 393 can match eol */
16771 #line 3897 "scanner.l"
16772 { // the [] part could be improved.
16773  lineCount();
16774  int i=0,l=(int)scannerYYleng,j;
16775  while (i<l && (!isId(scannerYYtext[i]))) i++;
16776  msName = QCString(scannerYYtext).right(l-i).stripWhiteSpace();
16777  j=msName.find("[");
16778  if (j!=-1)
16779  {
16780  msArgs=msName.right(msName.length()-j);
16781  msName=msName.left(j);
16782  }
16783  msType=QCString(scannerYYtext).left(i);
16784 
16785  // handle *pName in: typedef { ... } name, *pName;
16786  if (firstTypedefEntry)
16787  {
16788  if (firstTypedefEntry->spec&Entry::Struct)
16789  {
16790  msType.prepend("struct "+firstTypedefEntry->name);
16791  }
16792  else if (firstTypedefEntry->spec&Entry::Union)
16793  {
16794  msType.prepend("union "+firstTypedefEntry->name);
16795  }
16796  else if (firstTypedefEntry->section==Entry::ENUM_SEC)
16797  {
16798  msType.prepend("enum "+firstTypedefEntry->name);
16799  }
16800  else
16801  {
16802  msType.prepend(firstTypedefEntry->name);
16803  }
16804  }
16805  }
16806  YY_BREAK
16807 case 394:
16809 #line 3931 "scanner.l"
16810 { // function with struct return type
16811  addType(current);
16812  current->name = msName;
16813  current->spec = 0;
16814  unput('(');
16815  BEGIN(FindMembers);
16816  }
16817  YY_BREAK
16818 case 395:
16820 #line 3938 "scanner.l"
16821 {
16822  if (msName.isEmpty() && !current->name.isEmpty())
16823  {
16824  // see if the compound does not have a name or is inside another
16825  // anonymous compound. If so we insert a
16826  // special `anonymous' variable.
16827  //Entry *p=current_root;
16828  Entry *p=current;
16829  while (p)
16830  {
16831  // only look for class scopes, not namespace scopes
16832  if ((p->section & Entry::COMPOUND_MASK) && !p->name.isEmpty())
16833  {
16834  //printf("Trying scope `%s'\n",p->name.data());
16835  int i=p->name.findRev("::");
16836  int pi = (i==-1) ? 0 : i+2;
16837  if (p->name.at(pi)=='@')
16838  {
16839  // anonymous compound inside -> insert dummy variable name
16840  //printf("Adding anonymous variable for scope %s\n",p->name.data());
16841  msName.sprintf("@%d",anonCount++);
16842  break;
16843  }
16844  }
16845  //p=p->parent;
16846  if (p==current) p=current_root; else p=p->parent();
16847  }
16848  }
16849  //printf("msName=%s current->name=%s\n",msName.data(),current->name.data());
16850  if (!msName.isEmpty()
16851  /*&& msName!=current->name*/) // skip typedef T {} T;, removed due to bug608493
16852  {
16853  static bool typedefHidesStruct = Config_getBool("TYPEDEF_HIDES_STRUCT");
16854  // case 1: typedef struct _S { ... } S_t;
16855  // -> omit typedef and use S_t as the struct name
16856  if (typedefHidesStruct &&
16857  isTypedef &&
16858  ((current->spec&(Entry::Struct|Entry::Union)) ||
16859  current->section==Entry::ENUM_SEC )&&
16860  msType.stripWhiteSpace().isEmpty() &&
16861  memspecEntry)
16862  {
16863  memspecEntry->name=msName;
16864  }
16865  else // case 2: create a typedef field
16866  {
16867  Entry *varEntry=new Entry;
16868  varEntry->lang = language;
16869  varEntry->protection = current->protection ;
16870  varEntry->mtype = current->mtype;
16871  varEntry->virt = current->virt;
16872  varEntry->stat = current->stat;
16873  varEntry->section = Entry::VARIABLE_SEC;
16874  varEntry->name = msName.stripWhiteSpace();
16875  varEntry->type = current->type.simplifyWhiteSpace()+" ";
16876  varEntry->args = msArgs;
16877  if (isTypedef)
16878  {
16879  varEntry->type.prepend("typedef ");
16880  // //printf("current->name = %s %s\n",current->name.data(),msName.data());
16881  }
16882  if (typedefHidesStruct &&
16883  isTypedef &&
16884  (current->spec&(Entry::Struct|Entry::Union)) &&
16885  memspecEntry
16886  ) // case 1: use S_t as type for pS_t in "typedef struct _S {} S_t, *pS_t;"
16887  {
16888  varEntry->type+=memspecEntry->name+msType;
16889  }
16890  else // case 2: use _S as type for for pS_t
16891  {
16892  varEntry->type+=current->name+msType;
16893  }
16894  varEntry->fileName = yyFileName;
16895  varEntry->startLine = yyLineNr;
16896  varEntry->startColumn = yyColNr;
16897  varEntry->doc = current->doc.copy();
16898  varEntry->brief = current->brief.copy();
16899  varEntry->mGrpId = current->mGrpId;
16900  varEntry->initializer = current->initializer;
16901 
16902  // deep copy group list
16903  QListIterator<Grouping> gli(*current->groups);
16904  Grouping *g;
16905  for (;(g=gli.current());++gli)
16906  {
16907  varEntry->groups->append(new Grouping(*g));
16908  }
16909  if (current->sli) // copy special list items
16910  {
16911  QListIterator<ListItemInfo> li(*current->sli);
16912  ListItemInfo *lii;
16913  for (li.toFirst();(lii=li.current());++li)
16914  {
16915  varEntry->addSpecialListItem(lii->type,lii->itemId);
16916  }
16917  }
16918 
16919  //printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n",
16920  // varEntry->type.data(),varEntry->name.data(),
16921  // varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data());
16922  current_root->addSubEntry(varEntry);
16923  }
16924  }
16925  if (*scannerYYtext==';') // end of a struct/class ...
16926  {
16927  if (!isTypedef && msName.isEmpty() && memspecEntry && (current->section&Entry::COMPOUND_MASK))
16928  { // case where a class/struct has a doc block after it
16929  if (!current->doc.isEmpty())
16930  {
16931  memspecEntry->doc += current->doc;
16932  }
16933  if (!current->brief.isEmpty())
16934  {
16935  memspecEntry->brief += current->brief;
16936  }
16937  }
16938  msType.resize(0);
16939  msName.resize(0);
16940  msArgs.resize(0);
16941  isTypedef=FALSE;
16942  firstTypedefEntry=0;
16943  memspecEntry=0;
16944  current->reset();
16945  initEntry();
16946  BEGIN( FindMembers );
16947  }
16948  else
16949  {
16950  current->doc.resize(0);
16951  current->brief.resize(0);
16952  }
16953 
16954  }
16955  YY_BREAK
16956 case 396:
16958 #line 4072 "scanner.l"
16959 {
16960  lastInitializerContext=YY_START;
16961  initBracketCount=0;
16962  current->initializer = scannerYYtext;
16964  /* BEGIN(MemberSpecSkip); */
16965  }
16966  YY_BREAK
16967 /*
16968 <MemberSpecSkip>"{" {
16969  curlyCount=0;
16970  lastCurlyContext = MemberSpecSkip;
16971  previous = current;
16972  BEGIN(SkipCurly);
16973  }
16974  */
16975 case 397:
16977 #line 4087 "scanner.l"
16978 { BEGIN(MemberSpec); }
16979  YY_BREAK
16980 case 398:
16982 #line 4088 "scanner.l"
16983 { unput(';'); BEGIN(MemberSpec); }
16984  YY_BREAK
16985 case 399:
16986 /* rule 399 can match eol */
16988 #line 4089 "scanner.l"
16989 { current->program += scannerYYtext ;
16990  lineCount() ;
16991  }
16992  YY_BREAK
16993 case 400:
16994 /* rule 400 can match eol */
16995 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
16996 (yy_c_buf_p) = yy_cp = yy_bp + 4;
16997 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
16999 #line 4092 "scanner.l"
17000 { // end of Objective C block
17001  current_root->addSubEntry( current ) ;
17002  current=new Entry;
17003  initEntry();
17004  language = current->lang = SrcLangExt_Cpp; // see bug746361
17005  insideObjC=FALSE;
17006  BEGIN( FindMembers );
17007  }
17008  YY_BREAK
17009 case 401:
17011 #line 4100 "scanner.l"
17012 { current->program += scannerYYtext ; }
17013  YY_BREAK
17014 case 402:
17015 /* rule 402 can match eol */
17016 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17017 (yy_c_buf_p) = yy_cp = yy_bp + 1;
17018 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17019 #line 4103 "scanner.l"
17020 case 403:
17021 /* rule 403 can match eol */
17023 #line 4103 "scanner.l"
17024 { /* typedef void (A::*ptr_t)(args...) or int (*func(int))[], the ^ is for Obj-C blocks */
17025  if (insidePHP) // reference parameter
17026  {
17027  REJECT
17028  }
17029  else
17030  {
17031  current->bodyLine = yyLineNr;
17032  lineCount();
17033  addType(current);
17034  funcPtrType=scannerYYtext;
17035  roundCount=0;
17036  //current->type += scannerYYtext;
17037  BEGIN( FuncPtr );
17038  }
17039  }
17040  YY_BREAK
17041 case 404:
17042 /* rule 404 can match eol */
17044 #line 4119 "scanner.l"
17045 {
17046  current->name = scannerYYtext;
17047  if (nameIsOperator(current->name))
17048  {
17050  }
17051  else
17052  {
17053  if (current->name=="const" || current->name=="volatile")
17054  {
17055  funcPtrType += current->name;
17056  }
17057  else
17058  {
17059  BEGIN( EndFuncPtr );
17060  }
17061  }
17062  }
17063  YY_BREAK
17064 case 405:
17066 #line 4137 "scanner.l"
17067 {
17068  //printf("error: FuncPtr `%c' unexpected at line %d of %s\n",*scannerYYtext,yyLineNr,yyFileName);
17069  }
17070  YY_BREAK
17071 case 406:
17072 /* rule 406 can match eol */
17073 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17074 (yy_c_buf_p) = yy_cp -= 1;
17075 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17077 #line 4140 "scanner.l"
17078 {
17079  current->name += scannerYYtext;
17080  current->name = current->name.simplifyWhiteSpace();
17081  lineCount();
17082  }
17083  YY_BREAK
17084 case 407:
17085 /* rule 407 can match eol */
17087 #line 4145 "scanner.l"
17088 {
17089  lineCount();
17090  current->name += *scannerYYtext;
17091  }
17092  YY_BREAK
17093 case 408:
17095 #line 4149 "scanner.l"
17096 {
17097  unput(*scannerYYtext);
17098  BEGIN( EndFuncPtr );
17099  }
17100  YY_BREAK
17101 case 409:
17103 #line 4153 "scanner.l"
17104 {
17105  current->name += *scannerYYtext;
17106  }
17107  YY_BREAK
17108 case 410:
17109 /* rule 410 can match eol */
17110 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17111 (yy_c_buf_p) = yy_cp -= 1;
17112 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17114 #line 4156 "scanner.l"
17115 { // a variable with extra braces
17116  lineCount();
17117  current->type+=funcPtrType.data()+1;
17118  BEGIN(FindMembers);
17119  }
17120  YY_BREAK
17121 case 411:
17122 /* rule 411 can match eol */
17123 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17124 (yy_c_buf_p) = yy_cp -= 1;
17125 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17127 #line 4161 "scanner.l"
17128 { // a function pointer
17129  lineCount();
17130  current->type+=funcPtrType+")";
17131  BEGIN(FindMembers);
17132  }
17133  YY_BREAK
17134 case 412:
17135 /* rule 412 can match eol */
17136 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17137 (yy_c_buf_p) = yy_cp -= 1;
17138 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17140 #line 4166 "scanner.l"
17141 { // an array of variables
17142  lineCount();
17143  current->type+=funcPtrType.data();
17144  current->args += ")";
17145  BEGIN(FindMembers);
17146  }
17147  YY_BREAK
17148 case 413:
17150 #line 4172 "scanner.l"
17151 { // a function returning a function or
17152  // a function returning a pointer to an array
17153  current->args += *scannerYYtext ;
17154  //roundCount=0;
17155  //BEGIN( FuncFunc );
17156  current->bodyLine = yyLineNr;
17157  currentArgumentContext = FuncFuncEnd;
17158  fullArgString=current->args.copy();
17159  copyArgString=&current->args;
17160  BEGIN( ReadFuncArgType ) ;
17161  }
17162  YY_BREAK
17163 case 414:
17165 #line 4183 "scanner.l"
17166 {
17167  funcPtrType+=scannerYYtext;
17168  }
17169  YY_BREAK
17170 case 415:
17172 #line 4186 "scanner.l"
17173 {
17174  BEGIN(FindMembers);
17175  }
17176  YY_BREAK
17177 case 416:
17179 #line 4189 "scanner.l"
17180 {
17181  current->args += *scannerYYtext ;
17182  ++roundCount;
17183  }
17184  YY_BREAK
17185 case 417:
17187 #line 4193 "scanner.l"
17188 {
17189  current->args += *scannerYYtext ;
17190  if ( roundCount )
17191  --roundCount;
17192  else
17193  {
17194  BEGIN(FuncFuncEnd);
17195  }
17196  }
17197  YY_BREAK
17198 case 418:
17199 /* rule 418 can match eol */
17201 #line 4202 "scanner.l"
17202 {
17203  lineCount();
17204  current->type+=funcPtrType+")(";
17206  }
17207  YY_BREAK
17208 case 419:
17209 /* rule 419 can match eol */
17210 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17211 (yy_c_buf_p) = yy_cp -= 1;
17212 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17214 #line 4207 "scanner.l"
17215 {
17216  lineCount();
17217  current->type+=funcPtrType.data()+1;
17218  BEGIN(Function);
17219  }
17220  YY_BREAK
17221 case 420:
17222 /* rule 420 can match eol */
17223 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17224 (yy_c_buf_p) = yy_cp -= 1;
17225 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17227 #line 4212 "scanner.l"
17228 { // function returning a pointer to an array
17229  lineCount();
17230  current->type+=funcPtrType;
17231  current->args+=")";
17233  }
17234  YY_BREAK
17235 case 421:
17237 #line 4218 "scanner.l"
17238 {
17239  current->args += *scannerYYtext;
17240  }
17241  YY_BREAK
17242 case 422:
17244 #line 4221 "scanner.l"
17245 {
17246  current->type += *scannerYYtext;
17247  roundCount++;
17248  }
17249  YY_BREAK
17250 case 423:
17252 #line 4225 "scanner.l"
17253 {
17254  current->type += *scannerYYtext;
17255  if (roundCount)
17256  --roundCount;
17257  else
17258  BEGIN(Function);
17259  }
17260  YY_BREAK
17261 case 424:
17262 /* rule 424 can match eol */
17264 #line 4232 "scanner.l"
17265 { lineCount() ; current->type += ", " ; }
17266  YY_BREAK
17267 case 425:
17268 /* rule 425 can match eol */
17270 #line 4233 "scanner.l"
17271 { lineCount() ; current->type += ' ' ; }
17272  YY_BREAK
17273 case 426:
17275 #line 4234 "scanner.l"
17276 {
17277  current->type += *scannerYYtext;
17278  }
17279  YY_BREAK
17280 case 427:
17281 /* rule 427 can match eol */
17282 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17283 (yy_c_buf_p) = yy_cp = yy_bp + 1;
17284 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17286 #line 4237 "scanner.l"
17287 { // for catching typedef void (__stdcall *f)() like definitions
17288  if (current->type.left(7)=="typedef" && current->bodyLine==-1)
17289  // the bodyLine check is to prevent this guard to be true more than once
17290  {
17291  current->bodyLine = yyLineNr;
17292  BEGIN( GetCallType );
17293  }
17294  else if (!current->name.isEmpty()) // normal function
17295  {
17296  current->args = scannerYYtext;
17297  current->bodyLine = yyLineNr;
17298  currentArgumentContext = FuncQual;
17299  fullArgString=current->args.copy();
17300  copyArgString=&current->args;
17301  BEGIN( ReadFuncArgType ) ;
17302  //printf(">>> Read function arguments!\n");
17303  }
17304  }
17305  YY_BREAK
17306 case 428:
17307 /* rule 428 can match eol */
17309 #line 4255 "scanner.l"
17310 {
17311  lineCount();
17312  addType(current);
17313  funcPtrType="(";
17314  funcPtrType+=scannerYYtext;
17315  roundCount=0;
17316  BEGIN( FuncPtr );
17317  }
17318  YY_BREAK
17319 case 429:
17321 #line 4263 "scanner.l"
17322 {
17323  if (!current->name.isEmpty())
17324  {
17325  current->args = scannerYYtext;
17326  current->bodyLine = yyLineNr;
17327  currentArgumentContext = FuncQual;
17328  fullArgString=current->args.copy();
17329  copyArgString=&current->args;
17330  BEGIN( ReadFuncArgType ) ;
17331  //printf(">>> Read function arguments current->argList->count()=%d\n",current->argList->count());
17332  }
17333  }
17334  YY_BREAK
17335 /*
17336 <FindMembers>"("{BN}*("void"{BN}*)?")" {
17337  lineCount();
17338  current->args = "()";
17339  BEGIN( FuncQual );
17340  }
17341  */
17342 /*- Function argument reading rules ---------------------------------------*/
17343 case 430:
17345 #line 4285 "scanner.l"
17346 { *copyArgString+=scannerYYtext;
17347  fullArgString+=scannerYYtext;
17348  }
17349  YY_BREAK
17350 case 431:
17352 #line 4288 "scanner.l"
17353 { *copyArgString+=scannerYYtext;
17354  fullArgString+=scannerYYtext;
17355  }
17356  YY_BREAK
17357 case 432:
17359 #line 4291 "scanner.l"
17360 {
17361  *copyArgString+=scannerYYtext;
17362  fullArgString+=scannerYYtext;
17363  }
17364  YY_BREAK
17365 case 433:
17366 /* rule 433 can match eol */
17368 #line 4295 "scanner.l"
17369 {
17370  *copyArgString+=" ";
17371  fullArgString+=" ";
17372  lineCount();
17373  }
17374  YY_BREAK
17375 case 434:
17376 /* rule 434 can match eol */
17378 #line 4300 "scanner.l"
17379 {
17380  g_delimiter = scannerYYtext+2;
17381  g_delimiter=g_delimiter.left(g_delimiter.length()-1);
17382  lastRawStringContext = YY_START;
17383  pCopyRawString = copyArgString;
17384  *pCopyRawString+=scannerYYtext;
17385  fullArgString+=scannerYYtext;
17386  BEGIN(RawString);
17387  }
17388  YY_BREAK
17389 case 435:
17391 #line 4309 "scanner.l"
17392 {
17393  *copyArgString+=*scannerYYtext;
17394  fullArgString+=*scannerYYtext;
17395  lastCopyArgStringContext = YY_START;
17396  BEGIN( CopyArgString );
17397  }
17398  YY_BREAK
17399 case 436:
17401 #line 4315 "scanner.l"
17402 {
17403  *copyArgString+=*scannerYYtext;
17404  fullArgString+=*scannerYYtext;
17405  argRoundCount=0;
17406  lastCopyArgContext = YY_START;
17407  BEGIN( CopyArgRound );
17408  }
17409  YY_BREAK
17410 case 437:
17412 #line 4322 "scanner.l"
17413 {
17414  *copyArgString+=*scannerYYtext;
17415  fullArgString+=*scannerYYtext;
17416  stringToArgumentList(fullArgString,current->argList);
17417  if (insideJS)
17418  {
17420  }
17422 
17423  /* remember the current documentation block, since
17424  we could overwrite it with the documentation of
17425  a function argument, which we then have to correct later
17426  on
17427  */
17428  docBackup = current->doc;
17429  briefBackup = current->brief;
17430 
17431  BEGIN( currentArgumentContext );
17432  }
17433  YY_BREAK
17434 /* a special comment */
17435 case 438:
17437 #line 4343 "scanner.l"
17438 {
17439  if (currentArgumentContext==DefineEnd)
17440  {
17441  // for defines we interpret a comment
17442  // as documentation for the define
17443  int i;for (i=(int)scannerYYleng-1;i>=0;i--)
17444  {
17445  unput(scannerYYtext[i]);
17446  }
17447  stringToArgumentList(fullArgString,current->argList);
17449  BEGIN( currentArgumentContext );
17450  }
17451  else // not a define
17452  {
17453  // for functions we interpret a comment
17454  // as documentation for the argument
17455  fullArgString+=scannerYYtext;
17456  lastCopyArgChar=0;
17457  lastCommentInArgContext=YY_START;
17458  if (scannerYYtext[1]=='/')
17460  else
17461  BEGIN( CopyArgComment );
17462  }
17463  }
17464  YY_BREAK
17465 /* a non-special comment */
17466 case 439:
17468 #line 4370 "scanner.l"
17469 { /* empty comment */ }
17470  YY_BREAK
17471 case 440:
17473 #line 4371 "scanner.l"
17474 {
17475  lastCContext = YY_START;
17476  BEGIN( SkipComment );
17477  }
17478  YY_BREAK
17479 case 441:
17481 #line 4375 "scanner.l"
17482 {
17483  lastCContext = YY_START;
17484  BEGIN( SkipCxxComment );
17485  }
17486  YY_BREAK
17487 /*
17488 <ReadFuncArgType,ReadTempArgs>"'#" { if (insidePHP)
17489  REJECT;
17490  *copyArgString+=scannerYYtext;
17491  fullArgString+=scannerYYtext;
17492  }
17493 <ReadFuncArgType,ReadTempArgs>"#" {
17494  if (!insidePHP)
17495  REJECT;
17496  lastCContext = YY_START;
17497  BEGIN( SkipCxxComment );
17498  }
17499  */
17500 /* `)' followed by a special comment */
17501 case 442:
17502 /* rule 442 can match eol */
17504 #line 4393 "scanner.l"
17505 {
17506  lineCount();
17507  if (currentArgumentContext==DefineEnd)
17508  {
17509  // for defines we interpret a comment
17510  // as documentation for the define
17511  int i;for (i=(int)scannerYYleng-1;i>0;i--)
17512  {
17513  unput(scannerYYtext[i]);
17514  }
17515  *copyArgString+=*scannerYYtext;
17516  fullArgString+=*scannerYYtext;
17517  stringToArgumentList(fullArgString,current->argList);
17519  BEGIN( currentArgumentContext );
17520  }
17521  else
17522  {
17523  // for functions we interpret a comment
17524  // as documentation for the last argument
17525  lastCopyArgChar=*scannerYYtext;
17526  QCString text=&scannerYYtext[1];
17527  text=text.stripWhiteSpace();
17528  lastCommentInArgContext=YY_START;
17529  fullArgString+=text;
17530  if (text.find("//")!=-1)
17532  else
17533  BEGIN( CopyArgComment );
17534  }
17535  }
17536  YY_BREAK
17537 case 443:
17538 /* rule 443 can match eol */
17540 #line 4424 "scanner.l"
17541 
17542  YY_BREAK
17543 case 444:
17545 #line 4425 "scanner.l"
17546 { fullArgString+=scannerYYtext; }
17547  YY_BREAK
17548 case 445:
17550 #line 4426 "scanner.l"
17551 { fullArgString+=scannerYYtext;
17552  if (lastCopyArgChar!=0)
17553  unput(lastCopyArgChar);
17554  BEGIN( lastCommentInArgContext );
17555  }
17556  YY_BREAK
17557 case 446:
17558 /* rule 446 can match eol */
17560 #line 4431 "scanner.l"
17561 { fullArgString+=scannerYYtext;
17562  lineCount();
17563  if (lastCopyArgChar!=0)
17564  unput(lastCopyArgChar);
17565  BEGIN( lastCommentInArgContext );
17566  }
17567  YY_BREAK
17568 case 447:
17569 /* rule 447 can match eol */
17570 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17571 (yy_c_buf_p) = yy_cp -= 1;
17572 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17574 #line 4437 "scanner.l"
17575 { // verbatim command (which could contain nested comments!)
17576  docBlockName=&scannerYYtext[1];
17577  fullArgString+=scannerYYtext;
17579  }
17580  YY_BREAK
17581 case 448:
17583 #line 4442 "scanner.l"
17584 {
17585  docBlockName=&scannerYYtext[1];
17586  if (docBlockName.at(1)=='[')
17587  {
17588  docBlockName.at(1)='}';
17589  }
17590  if (docBlockName.at(1)=='{')
17591  {
17592  docBlockName.at(1)='}';
17593  }
17594  fullArgString+=scannerYYtext;
17596  }
17597  YY_BREAK
17598 case 449:
17599 /* rule 449 can match eol */
17600 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
17601 (yy_c_buf_p) = yy_cp -= 1;
17602 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
17604 #line 4455 "scanner.l"
17605 { // end of verbatim block
17606  fullArgString+=scannerYYtext;
17607  if (scannerYYtext[1]=='f') // end of formula
17608  {
17610  }
17611  if (&scannerYYtext[4]==docBlockName)
17612  {
17614  }
17615  }
17616  YY_BREAK
17617 case 450:
17619 #line 4466 "scanner.l"
17620 { fullArgString+=scannerYYtext; }
17621  YY_BREAK
17622 case 451:
17624 #line 4467 "scanner.l"
17625 { fullArgString+=*scannerYYtext; }
17626  YY_BREAK
17627 case 452:
17628 /* rule 452 can match eol */
17630 #line 4468 "scanner.l"
17631 { fullArgString+=*scannerYYtext; lineCount(); }
17632  YY_BREAK
17633 case 453:
17635 #line 4469 "scanner.l"
17636 { fullArgString+=*scannerYYtext; }
17637  YY_BREAK
17638 case 454:
17640 #line 4470 "scanner.l"
17641 {
17642  warn(yyFileName,yyLineNr,
17643  "Ignoring %cbrief command inside argument documentation",*scannerYYtext
17644  );
17645  fullArgString+=' ';
17646  }
17647  YY_BREAK
17648 case 455:
17650 #line 4476 "scanner.l"
17651 {
17652  *copyArgString+=*scannerYYtext;
17653  fullArgString+=*scannerYYtext;
17654  argSharpCount=1;
17655  BEGIN( CopyArgSharp );
17656  }
17657  YY_BREAK
17658 case 456:
17660 #line 4482 "scanner.l"
17661 {
17662  *copyArgString+=*scannerYYtext;
17663  fullArgString+=*scannerYYtext;
17664  //printf("end template list %s\n",copyArgString->data());
17665  stringToArgumentList(fullArgString,currentArgumentList);
17666  BEGIN( currentArgumentContext );
17667  }
17668  YY_BREAK
17669 case 457:
17671 #line 4489 "scanner.l"
17672 {
17673  argRoundCount++;
17674  *copyArgString+=*scannerYYtext;
17675  fullArgString+=*scannerYYtext;
17676  }
17677  YY_BREAK
17678 case 458:
17680 #line 4494 "scanner.l"
17681 {
17682  *copyArgString+=*scannerYYtext;
17683  fullArgString+=*scannerYYtext;
17684  if (argRoundCount>0)
17685  argRoundCount--;
17686  else
17687  BEGIN( lastCopyArgContext );
17688  }
17689  YY_BREAK
17690 case 459:
17692 #line 4502 "scanner.l"
17693 {
17694  *copyArgString+=*scannerYYtext;
17695  fullArgString+=*scannerYYtext;
17696  argRoundCount=0;
17697  lastCopyArgContext = YY_START;
17698  BEGIN( CopyArgRound );
17699  }
17700  YY_BREAK
17701 case 460:
17703 #line 4509 "scanner.l"
17704 {
17705  argSharpCount++;
17706  //printf("argSharpCount++=%d copy\n",argSharpCount);
17707  *copyArgString+=*scannerYYtext;
17708  fullArgString+=*scannerYYtext;
17709  }
17710  YY_BREAK
17711 case 461:
17713 #line 4515 "scanner.l"
17714 {
17715  *copyArgString+=*scannerYYtext;
17716  fullArgString+=*scannerYYtext;
17717  argSharpCount--;
17718  if (argSharpCount>0)
17719  {
17720  //printf("argSharpCount--=%d copy\n",argSharpCount);
17721  }
17722  else
17723  {
17724  BEGIN( ReadTempArgs );
17725  //printf("end of argSharpCount\n");
17726  }
17727  }
17728  YY_BREAK
17729 case 462:
17731 #line 4529 "scanner.l"
17732 {
17733  *copyArgString+=scannerYYtext;
17734  fullArgString+=scannerYYtext;
17735  }
17736  YY_BREAK
17737 case 463:
17739 #line 4533 "scanner.l"
17740 {
17741  *copyArgString+=*scannerYYtext;
17742  fullArgString+=*scannerYYtext;
17743  BEGIN( lastCopyArgStringContext );
17744  }
17745  YY_BREAK
17746 case 464:
17748 #line 4538 "scanner.l"
17749 {
17750  *copyArgString+=*scannerYYtext;
17751  fullArgString+=*scannerYYtext;
17752  BEGIN( lastCopyArgStringContext );
17753  }
17754  YY_BREAK
17755 case 465:
17757 #line 4543 "scanner.l"
17758 {
17759  if (insidePHP)
17760  {
17761  REJECT;
17762  }
17763  else
17764  {
17765  *copyArgString+=scannerYYtext;
17766  fullArgString+=scannerYYtext;
17767  }
17768  }
17769  YY_BREAK
17770 case 466:
17772 #line 4554 "scanner.l"
17773 {
17774  *copyArgString+=scannerYYtext;
17775  fullArgString+=scannerYYtext;
17776  if (insidePHP)
17777  {
17778  lastCopyArgStringContext=YY_START;
17780  }
17781  }
17782  YY_BREAK
17783 case 467:
17784 /* rule 467 can match eol */
17786 #line 4563 "scanner.l"
17787 {
17788  lineCount();
17789  *copyArgString+=*scannerYYtext;
17790  fullArgString+=*scannerYYtext;
17791  }
17792  YY_BREAK
17793 case 468:
17795 #line 4568 "scanner.l"
17796 {
17797  *copyArgString+=*scannerYYtext;
17798  fullArgString+=*scannerYYtext;
17799  }
17800  YY_BREAK
17801 /*------------------------------------------------------------------------*/
17802 case 469:
17804 #line 4578 "scanner.l"
17805 { current->args += *scannerYYtext ;
17806  ++roundCount ;
17807  }
17808  YY_BREAK
17809 case 470:
17811 #line 4581 "scanner.l"
17812 { current->args += *scannerYYtext ;
17813  if ( roundCount )
17814  --roundCount ;
17815  else
17816  BEGIN( FuncQual ) ;
17817  }
17818  YY_BREAK
17819 /*
17820 <FuncQual>"#" { if (insidePHP)
17821  REJECT;
17822  lastCPPContext = YY_START;
17823  BEGIN(SkipCPP);
17824  }
17825  */
17826 case 471:
17828 #line 4594 "scanner.l"
17829 {
17830  if ( qstrcmp(scannerYYtext,";")==0 &&
17831  insidePHP &&
17832  !containsWord(current->type,"function") )
17833  {
17834  current->reset();
17835  initEntry();
17836  BEGIN( FindMembers );
17837  }
17838  else
17839  {
17840  unput(*scannerYYtext); BEGIN( Function );
17841  }
17842  }
17843  YY_BREAK
17844 case 472:
17845 /* rule 472 can match eol */
17847 #line 4608 "scanner.l"
17848 { // pure virtual member function
17849  lineCount() ;
17850  current->virt = Pure;
17851  current->args += " override ";
17852  }
17853  YY_BREAK
17854 case 473:
17855 /* rule 473 can match eol */
17857 #line 4613 "scanner.l"
17858 { // C++11 overridden virtual member function
17859  lineCount() ;
17860  current->spec |= Entry::Override;
17861  current->args += " override ";
17862  BEGIN(FuncQual);
17863  }
17864  YY_BREAK
17865 case 474:
17866 /* rule 474 can match eol */
17868 #line 4619 "scanner.l"
17869 { // C++11 final method
17870  lineCount() ;
17871  current->spec |= Entry::Final;
17872  current->args += " final ";
17873  BEGIN(FuncQual);
17874  }
17875  YY_BREAK
17876 case 475:
17877 /* rule 475 can match eol */
17879 #line 4625 "scanner.l"
17880 { // sealed member function
17881  lineCount() ;
17882  current->spec |= Entry::Sealed;
17883  current->args += " sealed ";
17884  }
17885  YY_BREAK
17886 case 476:
17887 /* rule 476 can match eol */
17889 #line 4630 "scanner.l"
17890 { // new member function
17891  lineCount() ;
17892  current->spec |= Entry::New;
17893  current->args += " new ";
17894  }
17895  YY_BREAK
17896 case 477:
17897 /* rule 477 can match eol */
17899 #line 4635 "scanner.l"
17900 { // const member function
17901  lineCount() ;
17902  current->args += " const ";
17903  current->argList->constSpecifier=TRUE;
17904  }
17905  YY_BREAK
17906 case 478:
17907 /* rule 478 can match eol */
17909 #line 4640 "scanner.l"
17910 { // volatile member function
17911  lineCount() ;
17912  current->args += " volatile ";
17913  current->argList->volatileSpecifier=TRUE;
17914  }
17915  YY_BREAK
17916 case 479:
17917 /* rule 479 can match eol */
17919 #line 4645 "scanner.l"
17920 { // noexcept qualifier
17921  lineCount() ;
17922  current->args += " noexcept ";
17923  current->spec |= Entry::NoExcept;
17924  }
17925  YY_BREAK
17926 case 480:
17927 /* rule 480 can match eol */
17929 #line 4650 "scanner.l"
17930 { // noexcept expression
17931  lineCount() ;
17932  current->args += " noexcept(";
17933  current->spec |= Entry::NoExcept;
17934  lastRoundContext=FuncQual;
17935  pCopyRoundString=&current->args;
17936  roundCount=0;
17937  BEGIN(CopyRound);
17938  }
17939  YY_BREAK
17940 case 481:
17941 /* rule 481 can match eol */
17943 #line 4659 "scanner.l"
17944 { // pure virtual member function
17945  lineCount() ;
17946  current->args += " = 0";
17947  current->virt = Pure;
17948  current->argList->pureSpecifier=TRUE;
17949  BEGIN(FuncQual);
17950  }
17951  YY_BREAK
17952 case 482:
17953 /* rule 482 can match eol */
17955 #line 4666 "scanner.l"
17956 { // C++11 explicitly delete member
17957  lineCount();
17958  current->args += " = delete";
17959  current->spec |= Entry::Delete;
17960  current->argList->isDeleted=TRUE;
17961  BEGIN(FuncQual);
17962  }
17963  YY_BREAK
17964 case 483:
17965 /* rule 483 can match eol */
17967 #line 4673 "scanner.l"
17968 { // C++11 explicitly defaulted constructor/assignment operator
17969  lineCount();
17970  current->args += " = default";
17971  current->spec |= Entry::Default;
17972  BEGIN(FuncQual);
17973  }
17974  YY_BREAK
17975 case 484:
17976 /* rule 484 can match eol */
17978 #line 4679 "scanner.l"
17979 {
17980  lineCount();
17981  current->argList->trailingReturnType = " -> ";
17982  current->args += " -> ";
17984  }
17985  YY_BREAK
17986 case 485:
17988 #line 4685 "scanner.l"
17989 {
17990  unput(*scannerYYtext);
17991  BEGIN(FuncQual);
17992  }
17993  YY_BREAK
17994 case 486:
17996 #line 4689 "scanner.l"
17997 {
17999  current->args+=scannerYYtext;
18000  }
18001  YY_BREAK
18002 case 487:
18003 /* rule 487 can match eol */
18005 #line 4693 "scanner.l"
18006 {
18007  lineCount();
18009  current->args+=' ';
18010  }
18011  YY_BREAK
18012 case 488:
18013 /* rule 488 can match eol */
18015 #line 4698 "scanner.l"
18016 {
18017  lineCount() ;
18018  current->args += ", " ;
18019  }
18020  YY_BREAK
18021 case 489:
18022 /* rule 489 can match eol */
18024 #line 4702 "scanner.l"
18025 {
18026  lineCount() ;
18027  current->args += ' ' ;
18028  }
18029  YY_BREAK
18030 case 490:
18032 #line 4706 "scanner.l"
18033 { if (insidePHP)
18034  REJECT;
18035  lastCPPContext = YY_START;
18036  BEGIN(SkipCPP);
18037  }
18038  YY_BREAK
18039 case 491:
18041 #line 4711 "scanner.l"
18042 {
18043  if (insideCli &&
18044  (current_root->section&Entry::COMPOUND_MASK)
18045  )
18046  {
18047  BEGIN(CliOverride);
18048  }
18049  else
18050  {
18051  // typically an initialized function pointer
18052  lastInitializerContext=YY_START;
18053  initBracketCount=0;
18054  current->initializer = scannerYYtext;
18056  }
18057  }
18058  YY_BREAK
18059 case 492:
18061 #line 4727 "scanner.l"
18062 {
18063  }
18064  YY_BREAK
18065 case 493:
18067 #line 4729 "scanner.l"
18068 {
18069  unput(*scannerYYtext);
18070  BEGIN(FuncQual);
18071  }
18072  YY_BREAK
18073 case 494:
18074 /* rule 494 can match eol */
18076 #line 4733 "scanner.l"
18077 {
18078  lineCount();
18079  }
18080  YY_BREAK
18081 case 495:
18083 #line 4736 "scanner.l"
18084 {
18085  }
18086  YY_BREAK
18087 case 496:
18089 #line 4738 "scanner.l"
18090 {
18091  unput(*scannerYYtext);
18092  BEGIN(FuncQual);
18093  }
18094  YY_BREAK
18095 case 497:
18097 #line 4742 "scanner.l"
18098 {
18099  current->args += *scannerYYtext;
18100  pCopyQuotedString=&current->args;
18101  lastStringContext=FuncPtrInit;
18102  BEGIN(CopyString);
18103  }
18104  YY_BREAK
18105 case 498:
18107 #line 4748 "scanner.l"
18108 {
18109  current->args += *scannerYYtext;
18110  if (insidePHP)
18111  {
18112  pCopyQuotedString=&current->args;
18113  lastStringContext=FuncPtrInit;
18115  }
18116  }
18117  YY_BREAK
18118 case 499:
18120 #line 4757 "scanner.l"
18121 {
18122  if (insidePHP)
18123  {
18124  REJECT;
18125  }
18126  else
18127  {
18128  current->args += scannerYYtext;
18129  }
18130  }
18131  YY_BREAK
18132 case 500:
18134 #line 4767 "scanner.l"
18135 {
18136  current->args += scannerYYtext;
18137  }
18138  YY_BREAK
18139 case 501:
18141 #line 4770 "scanner.l"
18142 {
18143  current->args += *scannerYYtext;
18144  }
18145  YY_BREAK
18146 case 502:
18147 /* rule 502 can match eol */
18149 #line 4773 "scanner.l"
18150 {
18151  current->args += *scannerYYtext;
18152  lineCount();
18153  }
18154  YY_BREAK
18155 case 503:
18157 #line 4777 "scanner.l"
18158 { // typically a K&R style C function
18159  if (insideCS && qstrcmp(scannerYYtext,"where")==0)
18160  {
18161  // type contraint for a method
18162  delete current->typeConstr;
18163  current->typeConstr = new ArgumentList;
18164  current->typeConstr->append(new Argument);
18165  lastCSConstraint = YY_START;
18167  }
18168  else if (checkForKnRstyleC())
18169  {
18170  current->args = scannerYYtext;
18171  oldStyleArgType.resize(0);
18173  }
18174  else
18175  {
18176  current->args += scannerYYtext;
18177  }
18178  }
18179  YY_BREAK
18180 case 504:
18182 #line 4798 "scanner.l"
18183 {
18184  QCString oldStyleArgPtr;
18185  QCString oldStyleArgName;
18186  splitKnRArg(oldStyleArgPtr,oldStyleArgName);
18187  QCString doc,brief;
18188  if (current->doc!=docBackup)
18189  {
18190  doc=current->doc.copy();
18191  current->doc=docBackup;
18192  }
18193  if (current->brief!=briefBackup)
18194  {
18195  brief=current->brief.copy();
18196  current->brief=briefBackup;
18197  }
18198  addKnRArgInfo(oldStyleArgType+oldStyleArgPtr,
18199  oldStyleArgName,brief,doc);
18200  current->args.resize(0);
18201  if (*scannerYYtext==';') oldStyleArgType.resize(0);
18202  }
18203  YY_BREAK
18204 case 505:
18206 #line 4818 "scanner.l"
18207 { current->args += scannerYYtext; }
18208  YY_BREAK
18209 case 506:
18211 #line 4819 "scanner.l"
18212 {
18213  current->args = argListToString(current->argList);
18214  unput('{');
18215  BEGIN(FuncQual);
18216  }
18217  YY_BREAK
18218 case 507:
18220 #line 4824 "scanner.l"
18221 { current->args += *scannerYYtext; }
18222  YY_BREAK
18223 case 508:
18225 #line 4825 "scanner.l"
18226 { current->args += *scannerYYtext; }
18227  YY_BREAK
18228 case 509:
18229 /* rule 509 can match eol */
18230 #line 4827 "scanner.l"
18231 case 510:
18232 /* rule 510 can match eol */
18234 #line 4827 "scanner.l"
18235 { /* try-function-block */
18236  insideTryBlock=TRUE;
18237  lineCount();
18238  if (scannerYYtext[scannerYYleng-1]==':')
18239  {
18240  unput(':');
18241  BEGIN( Function );
18242  }
18243  }
18244  YY_BREAK
18245 case 511:
18246 /* rule 511 can match eol */
18248 #line 4836 "scanner.l"
18249 { // C++ style throw clause
18250  current->exception = " throw (" ;
18251  roundCount=0;
18252  lineCount() ;
18253  BEGIN( ExcpRound ) ;
18254  }
18255  YY_BREAK
18256 case 512:
18257 /* rule 512 can match eol */
18259 #line 4842 "scanner.l"
18260 {
18261  current->exception = " raises (" ;
18262  lineCount() ;
18263  roundCount=0;
18264  BEGIN( ExcpRound ) ;
18265  }
18266  YY_BREAK
18267 case 513:
18268 /* rule 513 can match eol */
18270 #line 4848 "scanner.l"
18271 { // Java style throw clause
18272  current->exception = " throws " ;
18273  lineCount() ;
18274  BEGIN( ExcpList );
18275  }
18276  YY_BREAK
18277 case 514:
18279 #line 4853 "scanner.l"
18280 { current->exception += *scannerYYtext ;
18281  ++roundCount ;
18282  }
18283  YY_BREAK
18284 case 515:
18286 #line 4856 "scanner.l"
18287 { current->exception += *scannerYYtext ;
18288  if ( roundCount )
18289  --roundCount ;
18290  else
18291  BEGIN( FuncQual ) ;
18292  }
18293  YY_BREAK
18294 case 516:
18296 #line 4862 "scanner.l"
18297 {
18298  current->exception += *scannerYYtext;
18299  }
18300  YY_BREAK
18301 case 517:
18303 #line 4865 "scanner.l"
18304 {
18305  unput('{'); BEGIN( FuncQual );
18306  }
18307  YY_BREAK
18308 case 518:
18310 #line 4868 "scanner.l"
18311 {
18312  unput(';'); BEGIN( FuncQual );
18313  }
18314  YY_BREAK
18315 case 519:
18316 /* rule 519 can match eol */
18318 #line 4871 "scanner.l"
18319 {
18320  current->exception += ' ';
18321  lineCount();
18322  }
18323  YY_BREAK
18324 case 520:
18326 #line 4875 "scanner.l"
18327 {
18328  current->exception += *scannerYYtext;
18329  }
18330  YY_BREAK
18331 case 521:
18333 #line 4878 "scanner.l"
18334 { current->type += current->name ;
18335  current->name = current->args ;
18336  current->args = scannerYYtext ;
18337  roundCount=0;
18338  BEGIN( FuncRound ) ;
18339  }
18340  YY_BREAK
18341 case 522:
18343 #line 4884 "scanner.l"
18344 {
18345  if (!insidePHP) BEGIN(SkipInits);
18346  }
18347  YY_BREAK
18348 case 523:
18350 #line 4887 "scanner.l"
18351 {
18352  current->name=current->name.simplifyWhiteSpace();
18353  current->type=current->type.simplifyWhiteSpace();
18354  current->args=removeRedundantWhiteSpace(current->args);
18355  // was: current->args.simplifyWhiteSpace();
18356  current->fileName = yyFileName;
18357  current->startLine = yyBegLineNr;
18358  current->startColumn = yyBegColNr;
18359  static QRegExp re("([^)]*[*&][^)]*)"); // (...*...)
18360  if (*scannerYYtext!=';' || (current_root->section&Entry::COMPOUND_MASK) )
18361  {
18362  int tempArg=current->name.find('<');
18363  int ts=current->type.find('<');
18364  int te=current->type.findRev('>');
18365  int ti=current->type.find(re,0);
18366 
18367  // bug677315: A<int(void *, char *)> get(); is not a function pointer
18368  bool isFunction = ti==-1 || // not a (...*...) pattern
18369  (ts!=-1 && ts<te && ts<ti && ti<te); // (...*...) is part of a template argument list
18370 
18371  //printf("type=%s ts=%d te=%d ti=%d isFunction=%d\n",
18372  // current->type.data(),ts,te,ti,isFunction);
18373  QCString tempName;
18374  if (tempArg==-1) tempName=current->name; else tempName=current->name.left(tempArg);
18375  if (!current->type.isEmpty() &&
18376  (!isFunction || current->type.left(8)=="typedef "))
18377  {
18378  //printf("Scanner.l: found in class variable: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data());
18379  if (isTypedef && current->type.left(8)!="typedef ")
18380  {
18381  current->type.prepend("typedef ");
18382  }
18383  current->section = Entry::VARIABLE_SEC ;
18384  }
18385  else
18386  {
18387  //printf("Scanner.l: found in class function: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data());
18388  current->section = Entry::FUNCTION_SEC ;
18389  current->proto = *scannerYYtext==';';
18390  }
18391  }
18392  else // a global function prototype or function variable
18393  {
18394  //printf("Scanner.l: prototype? type=`%s' name=`%s' args=`%s'\n",current->type.data(),current->name.data(),current->args.data());
18395  if (!current->type.isEmpty() &&
18396  (current->type.find(re,0)!=-1 || current->type.left(8)=="typedef "))
18397  {
18398  if (isTypedef && current->type.left(8)!="typedef ")
18399  {
18400  current->type.prepend("typedef ");
18401  }
18402  //printf("Scanner.l: found function variable!\n");
18403  current->section = Entry::VARIABLE_SEC;
18404  }
18405  else
18406  {
18407  //printf("Scanner.l: found prototype\n");
18408  current->section = Entry::FUNCTION_SEC;
18409  current->proto = TRUE;
18410  }
18411  }
18412  //printf("Adding entry `%s'\n",current->name.data());
18413  if ( insidePHP)
18414  {
18415  if (findAndRemoveWord(current->type,"final"))
18416  {
18417  current->spec |= Entry::Final;
18418  }
18419  if (findAndRemoveWord(current->type,"abstract"))
18420  {
18421  current->spec |= Entry::Abstract;
18422  }
18423  }
18424  if ( insidePHP && !containsWord(current->type,"function"))
18425  {
18426  initEntry();
18427  if ( *scannerYYtext == '{' )
18428  {
18429  lastCurlyContext = FindMembers;
18430  curlyCount=0;
18431  BEGIN( SkipCurly );
18432  }
18433  else
18434  {
18435  BEGIN( FindMembers );
18436  }
18437  }
18438  else
18439  {
18440  if ( insidePHP)
18441  {
18442  findAndRemoveWord(current->type,"function");
18443  }
18444  previous = current;
18445  current_root->addSubEntry(current);
18446  current = new Entry ;
18447  initEntry();
18448  // Objective C 2.0: Required/Optional section
18449  if (previous->spec & (Entry::Optional | Entry::Required))
18450  {
18451  current->spec |= previous->spec & (Entry::Optional|Entry::Required);
18452  }
18453  lastCurlyContext = FindMembers;
18454  if ( *scannerYYtext == ',' )
18455  {
18456  current->type = previous->type;
18457  // we need to strip any trailing * and & (see bugs 623023 and 649103 for test cases)
18458  int i=current->type.length();
18459  while (i>0 && (current->type[i-1]=='*' || current->type[i-1]=='&' || current->type[i-1]==' ')) i--;
18460  current->type = current->type.left(i);
18461  }
18462  if ( *scannerYYtext == '{' )
18463  {
18464  if ( !insidePHP && (current_root->section & Entry::COMPOUND_MASK) )
18465  {
18466  previous->spec |= Entry::Inline;
18467  }
18468  //addToBody(scannerYYtext);
18469  curlyCount=0;
18470  BEGIN( SkipCurly ) ;
18471  }
18472  else
18473  {
18474  if (previous->section!=Entry::VARIABLE_SEC)
18475  previous->bodyLine=-1; // a function/member declaration
18476  BEGIN( FindMembers ) ;
18477  }
18478  }
18479  }
18480  YY_BREAK
18481 case 524:
18482 /* rule 524 can match eol */
18484 #line 5016 "scanner.l"
18485 { // C++11 style initializer (see bug 688647)
18486  lineCount();
18487  curlyCount=1;
18489  }
18490  YY_BREAK
18491 case 525:
18493 #line 5021 "scanner.l"
18494 {
18495  ++curlyCount;
18496  }
18497  YY_BREAK
18498 case 526:
18500 #line 5024 "scanner.l"
18501 {
18502  if ( --curlyCount<=0 )
18503  {
18504  BEGIN(SkipInits);
18505  }
18506  }
18507  YY_BREAK
18508 case 527:
18510 #line 5030 "scanner.l"
18511 {
18512  BEGIN(lastC11AttributeContext);
18513  }
18514  YY_BREAK
18515 case 528:
18517 #line 5033 "scanner.l"
18518 { // C++11 style initializer
18519  unput('{');
18520  BEGIN( Function );
18521  }
18522  YY_BREAK
18523 case 529:
18525 #line 5037 "scanner.l"
18526 {
18527  //addToBody(scannerYYtext);
18528  ++curlyCount ;
18529  }
18530  YY_BREAK
18531 case 530:
18532 /* rule 530 can match eol */
18533 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
18534 (yy_c_buf_p) = yy_cp = yy_bp + 1;
18535 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
18536 #line 5042 "scanner.l"
18537 case 531:
18538 /* rule 531 can match eol */
18540 #line 5042 "scanner.l"
18541 {
18542  //addToBody(scannerYYtext);
18543  if( curlyCount )
18544  {
18545  --curlyCount ;
18546  }
18547  else
18548  {
18549  if (current->sli && previous) // copy special list items
18550  {
18551  QListIterator<ListItemInfo> li(*current->sli);
18552  ListItemInfo *lii;
18553  for (li.toFirst();(lii=li.current());++li)
18554  {
18555  previous->addSpecialListItem(lii->type,lii->itemId);
18556  }
18557  delete current->sli;
18558  current->sli = 0;
18559  }
18560  if (previous) previous->endBodyLine=yyLineNr;
18561  BEGIN( lastCurlyContext ) ;
18562  }
18563  }
18564  YY_BREAK
18565 case 532:
18566 /* rule 532 can match eol */
18568 #line 5065 "scanner.l"
18569 {
18570  lineCount();
18571  if ( curlyCount )
18572  {
18573  //addToBody(scannerYYtext);
18574  --curlyCount ;
18575  }
18576  else
18577  {
18578  current->endBodyLine=yyLineNr;
18579 
18580  tempEntry = current; // temporarily switch to the previous entry
18581  current = previous;
18582  previous = 0;
18583 
18584  docBlockContext = SkipCurlyEndDoc;
18585  docBlockInBody = FALSE;
18586  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
18587  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
18588  docBlock.resize(0);
18589  docBlockTerm = '}';
18590  if (scannerYYtext[scannerYYleng-3]=='/')
18591  {
18593  BEGIN( DocLine );
18594  }
18595  else
18596  {
18598  BEGIN( DocBlock );
18599  }
18600  }
18601  }
18602  YY_BREAK
18603 case 533:
18604 /* rule 533 can match eol */
18606 #line 5098 "scanner.l"
18607 { // desc is followed by another one
18608  docBlockContext = SkipCurlyEndDoc;
18609  docBlockInBody = FALSE;
18610  docBlockAutoBrief = ( scannerYYtext[scannerYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) ||
18611  ( scannerYYtext[scannerYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") );
18612  docBlock.resize(0);
18613  docBlockTerm = '}';
18614  if (scannerYYtext[scannerYYleng-3]=='/')
18615  {
18617  BEGIN( DocLine );
18618  }
18619  else
18620  {
18622  BEGIN( DocBlock );
18623  }
18624  }
18625  YY_BREAK
18626 case 534:
18628 #line 5116 "scanner.l"
18629 {
18630  //addToBody("}");
18631  if (tempEntry) // we can only switch back to current if no new item was created
18632  {
18633  current = tempEntry;
18634  tempEntry = 0;
18635  }
18636  BEGIN( lastCurlyContext );
18637  }
18638  YY_BREAK
18639 case 535:
18641 #line 5125 "scanner.l"
18642 {
18643  //addToBody(scannerYYtext);
18644  lastStringContext=SkipCurly;
18645  BEGIN( SkipString );
18646  }
18647  YY_BREAK
18648 case 536:
18650 #line 5130 "scanner.l"
18651 {
18652  if (insidePHP)
18653  REJECT;
18654  //addToBody(scannerYYtext);
18655  BEGIN( SkipCurlyCpp );
18656  }
18657  YY_BREAK
18658 case 537:
18659 /* rule 537 can match eol */
18661 #line 5136 "scanner.l"
18662 {
18663  lineCount();
18664  //addToBody(scannerYYtext);
18665  }
18666  YY_BREAK
18667 case 538:
18669 #line 5140 "scanner.l"
18670 {
18671  if (!insidePHP)
18672  {
18673  REJECT;
18674  }
18675  else
18676  {
18677  lastHereDocContext = YY_START;
18678  BEGIN(HereDoc);
18679  }
18680  }
18681  YY_BREAK
18682 case 539:
18684 #line 5151 "scanner.l"
18685 {
18686  lineCount(); // for g_column updates
18687  //addToBody(scannerYYtext);
18688  }
18689  YY_BREAK
18690 case 540:
18691 /* rule 540 can match eol */
18693 #line 5155 "scanner.l"
18694 {
18695  //addToBody(scannerYYtext);
18696  lineCount();
18697  lastCurlyContext = FindMembers;
18698  BEGIN( SkipCurly );
18699  }
18700  YY_BREAK
18701 case 541:
18702 /* rule 541 can match eol */
18704 #line 5161 "scanner.l"
18705 {
18706  //addToBody(scannerYYtext);
18707  lineCount();
18708  }
18709  YY_BREAK
18710 case 542:
18712 #line 5165 "scanner.l"
18713 {
18714  //addToBody(scannerYYtext);
18715  lastCContext = YY_START;
18716  BEGIN(SkipComment);
18717  }
18718  YY_BREAK
18719 case 543:
18721 #line 5170 "scanner.l"
18722 {
18723  //addToBody(scannerYYtext);
18724  lastCContext = YY_START;
18726  }
18727  YY_BREAK
18728 case 544:
18730 #line 5175 "scanner.l"
18731 {
18732  roundCount=0;
18733  lastSkipRoundContext=YY_START;
18734  BEGIN(SkipRound);
18735  }
18736  YY_BREAK
18737 case 545:
18739 #line 5180 "scanner.l"
18740 {
18741  lastStringContext=YY_START;
18742  BEGIN( SkipString );
18743  }
18744  YY_BREAK
18745 case 546:
18747 #line 5184 "scanner.l"
18748 {
18749  warn(yyFileName,yyLineNr,
18750  "Found ';' while parsing initializer list! "
18751  "(doxygen could be confused by a macro call without semicolon)"
18752  );
18753  BEGIN( FindMembers );
18754  }
18755  YY_BREAK
18756 case 547:
18758 #line 5191 "scanner.l"
18759 {
18760  if (!insidePHP)
18761  REJECT;
18762  //addToBody(scannerYYtext);
18763  lastCContext = YY_START;
18765  }
18766  YY_BREAK
18767 case 548:
18769 #line 5198 "scanner.l"
18770 {
18771  if (!insideCS) REJECT;
18772  // C# verbatim string
18773  lastSkipVerbStringContext=YY_START;
18774  pSkipVerbString=&current->initializer;
18776  }
18777  YY_BREAK
18778 case 549:
18780 #line 5205 "scanner.l"
18781 {
18782  if (insidePHP) REJECT;
18783  }
18784  YY_BREAK
18785 case 550:
18787 #line 5208 "scanner.l"
18788 {
18789  if (insidePHP)
18790  {
18791  lastStringContext=YY_START;
18793  }
18794  }
18795  YY_BREAK
18796 case 551:
18798 #line 5215 "scanner.l"
18799 { }
18800  YY_BREAK
18801 case 552:
18803 #line 5216 "scanner.l"
18804 { }
18805  YY_BREAK
18806 case 553:
18808 #line 5217 "scanner.l"
18809 {
18810  BEGIN( lastStringContext );
18811  }
18812  YY_BREAK
18813 case 554:
18815 #line 5220 "scanner.l"
18816 {
18817  BEGIN( lastStringContext );
18818  }
18819  YY_BREAK
18820 case 555:
18822 #line 5223 "scanner.l"
18823 { }
18824  YY_BREAK
18825 case 556:
18826 /* rule 556 can match eol */
18828 #line 5224 "scanner.l"
18829 {
18830  lineCount();
18831  }
18832  YY_BREAK
18833 case 557:
18835 #line 5227 "scanner.l"
18836 { }
18837  YY_BREAK
18838 case 558:
18840 #line 5228 "scanner.l"
18841 { // for "class : public base {} var;" construct, see bug 608359
18842  unput(':');
18843  BEGIN(ClassVar);
18844  }
18845  YY_BREAK
18846 case 559:
18848 #line 5232 "scanner.l"
18849 {
18850  current->section = Entry::EMPTY_SEC ;
18851  current->type.resize(0) ;
18852  current->name.resize(0) ;
18853  current->args.resize(0) ;
18854  current->argList->clear();
18855  BEGIN( FindMembers ) ;
18856  }
18857  YY_BREAK
18858 case 560:
18860 #line 5240 "scanner.l"
18861 {
18862  if (insideIDL && (current->spec & (Entry::Singleton |
18863  Entry::Service)))
18864  {
18865  // in UNO IDL a service or singleton may be defined
18866  // completely like this: "service Foo : XFoo;"
18867  if (!current->name.isEmpty() && !current_root->name.isEmpty())
18868  {
18869  prependScope();
18870  }
18871  current->name = current->name.stripWhiteSpace();
18872  // there can be only one base class here
18873  if (!baseName.isEmpty())
18874  {
18875  current->extends->append(
18876  new BaseInfo(baseName,Public,Normal));
18877  baseName.resize(0);
18878  }
18879  current_root->addSubEntry( current ) ;
18880  current = new Entry;
18881  }
18882  else
18883  {
18884  current->section = Entry::EMPTY_SEC ;
18885  current->type.resize(0) ;
18886  current->name.resize(0) ;
18887  current->args.resize(0) ;
18888  current->argList->clear();
18889  }
18890  BEGIN( FindMembers ) ;
18891  }
18892  YY_BREAK
18893 case 561:
18894 /* rule 561 can match eol */
18895 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
18896 (yy_c_buf_p) = yy_cp -= 1;
18897 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
18899 #line 5271 "scanner.l"
18900 {
18901  sharpCount = 0;
18902  current->name = scannerYYtext ;
18903  if (current->spec & Entry::Protocol)
18904  {
18905  current->name+="-p";
18906  }
18907  lineCount();
18908  lastClassTemplSpecContext = ClassVar;
18909  if (insideObjC) // protocol list
18910  {
18912  }
18913  else if (insideCS) // C# generic class
18914  {
18915  //current->name+="-g";
18916  BEGIN( CSGeneric );
18917  }
18918  else // C++ template specialization
18919  {
18920  roundCount=0;
18921  BEGIN( ClassTemplSpec );
18922  }
18923  }
18924  YY_BREAK
18925 case 562:
18927 #line 5295 "scanner.l"
18928 {
18929  if (current->tArgLists==0)
18930  {
18931  current->tArgLists = new QList<ArgumentList>;
18932  current->tArgLists->setAutoDelete(TRUE);
18933  }
18934  ArgumentList *al = new ArgumentList;
18935  // check bug 612858 before enabling the next line
18936  //current->spec |= Entry::Template;
18937  current->tArgLists->append(al);
18938  currentArgumentList = al;
18939  templateStr="<";
18940  current->name += "<";
18941  fullArgString = templateStr;
18942  copyArgString = &current->name;
18943  //copyArgString = &templateStr;
18944  currentArgumentContext = ClassVar;
18945  BEGIN( ReadTempArgs );
18946  }
18947  YY_BREAK
18948 case 563:
18950 #line 5314 "scanner.l"
18951 {
18952  insideProtocolList=TRUE;
18953  BEGIN( Bases );
18954  }
18955  YY_BREAK
18956 case 564:
18957 /* rule 564 can match eol */
18959 #line 5318 "scanner.l"
18960 {
18961  current->name += scannerYYtext;
18962  lineCount();
18963  if (--sharpCount<=0)
18964  {
18965  current->name = removeRedundantWhiteSpace(current->name);
18966  if (current->spec & Entry::Protocol)
18967  { // Objective-C protocol
18968  unput('{'); // fake start of body
18969  BEGIN( ClassVar );
18970  }
18971  else
18972  {
18973  BEGIN( lastClassTemplSpecContext );
18974  }
18975  }
18976  }
18977  YY_BREAK
18978 case 565:
18980 #line 5335 "scanner.l"
18981 {
18982  current->name += scannerYYtext;
18983  if (roundCount==0) sharpCount++;
18984  }
18985  YY_BREAK
18986 case 566:
18988 #line 5339 "scanner.l"
18989 {
18990  current->name += scannerYYtext;
18991  }
18992  YY_BREAK
18993 case 567:
18994 /* rule 567 can match eol */
18996 #line 5342 "scanner.l"
18997 { // forward declaration
18998  if (current->tArgLists && current->tArgLists->count()>0)
18999  {
19000  // found a forward template declaration, this has
19001  // a purpose of its own
19002  current->name = scannerYYtext;
19003  current->name=current->name.left(current->name.length()-1).stripWhiteSpace();
19004  //printf("template class declaration for %s!\n",current->name.data());
19005  QCString rn = current_root->name.copy();
19006  //printf("cn=`%s' rn=`%s' isTypedef=%d\n",cn.data(),rn.data(),isTypedef);
19007  if (!current->name.isEmpty() && !rn.isEmpty())
19008  {
19009  prependScope();
19010  }
19011  current->spec|=Entry::ForwardDecl;
19012  current_root->addSubEntry(current);
19013  current = new Entry;
19014  }
19015  else if (insideIDL &&
19016  (((current_root->spec & (Entry::Interface |
19017  Entry::Service)) &&
19018  (current->spec & Entry::Interface)) ||
19019  ((current_root->spec & (Entry::Service |
19020  Entry::Singleton)) &&
19021  (current->spec & Entry::Service))))
19022  {
19023  // interface inside of UNO IDL service or interface
19024  // service inside of UNO IDL service or singleton
19025  // there may be documentation on the member,
19026  // so do not throw it away...
19027  current->name = scannerYYtext;
19028  current->name=current->name.left(current->name.length()-1).stripWhiteSpace();
19029  current->section = (current->spec & Entry::Interface)
19032 // current->section = Entry::MEMBERDOC_SEC;
19033  current->spec &= ~(Entry::Interface|Entry::Service); // FIXME: horrible: Interface == Gettable, so need to clear it - actually we're mixing values from different enums in this case... granted only Optional and Interface are actually valid in this context but urgh...
19034  current_root->addSubEntry(current);
19035  current = new Entry;
19036  }
19037 
19038  unput(';');
19039  current->reset();
19040  initEntry();
19041  if (insideObjC) // see bug746361
19042  {
19043  language = current->lang = SrcLangExt_Cpp;
19044  insideObjC = FALSE;
19045  }
19046  if (isTypedef) // typedef of a class, put typedef keyword back
19047  {
19048  current->type.prepend("typedef");
19049  }
19050  BEGIN( FindMembers );
19051  }
19052  YY_BREAK
19053 case 568:
19054 /* rule 568 can match eol */
19056 #line 5397 "scanner.l"
19057 {
19058  current->name = scannerYYtext ;
19059  lineCount();
19060  if (insideCpp && current->name=="alignas") // C++11
19061  {
19062  lastAlignAsContext = YY_START;
19063  BEGIN( AlignAs );
19064  }
19065  else
19066  {
19067  if (current->spec & Entry::Protocol)
19068  {
19069  current->name += "-p";
19070  }
19071  BEGIN( ClassVar );
19072  }
19073  }
19074  YY_BREAK
19075 case 569:
19077 #line 5414 "scanner.l"
19078 { roundCount=0;
19079  BEGIN( AlignAsEnd );
19080  }
19081  YY_BREAK
19082 case 570:
19083 /* rule 570 can match eol */
19085 #line 5417 "scanner.l"
19086 { lineCount(); }
19087  YY_BREAK
19088 case 571:
19090 #line 5418 "scanner.l"
19091 
19092  YY_BREAK
19093 case 572:
19095 #line 5419 "scanner.l"
19096 { roundCount++; }
19097  YY_BREAK
19098 case 573:
19100 #line 5420 "scanner.l"
19101 { if (--roundCount<0)
19102  {
19103  BEGIN( lastAlignAsContext );
19104  }
19105  }
19106  YY_BREAK
19107 case 574:
19108 /* rule 574 can match eol */
19110 #line 5425 "scanner.l"
19111 { lineCount(); }
19112  YY_BREAK
19113 case 575:
19115 #line 5426 "scanner.l"
19116 
19117  YY_BREAK
19118 case 576:
19119 /* rule 576 can match eol */
19121 #line 5427 "scanner.l"
19122 { // multiple forward declarations on one line
19123  // e.g. @protocol A,B;
19124  current->reset();
19125  initEntry();
19126  }
19127  YY_BREAK
19128 case 577:
19129 /* rule 577 can match eol */
19131 #line 5432 "scanner.l"
19132 {
19133  current->name = scannerYYtext ;
19134  if (insideCpp || insideObjC)
19135  {
19136  current->id = ClangParser::instance()->lookup(yyLineNr,scannerYYtext);
19137  }
19138  lineCount();
19139  if (current->spec & Entry::Protocol)
19140  {
19141  current->name += "-p";
19142  }
19143  if ((current->spec & Entry::Protocol) ||
19144  current->section == Entry::OBJCIMPL_SEC)
19145  {
19146  unput('{'); // fake start of body
19147  }
19148  BEGIN( ClassVar );
19149  }
19150  YY_BREAK
19151 case 578:
19152 /* rule 578 can match eol */
19154 #line 5450 "scanner.l"
19155 { // C# style scope
19156  current->name = substitute(scannerYYtext,".","::");
19157  lineCount();
19158  BEGIN( ClassVar );
19159  }
19160  YY_BREAK
19161 case 579:
19162 /* rule 579 can match eol */
19163 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19164 (yy_c_buf_p) = yy_cp -= 1;
19165 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19167 #line 5455 "scanner.l"
19168 {
19169  if (insideIDL && qstrncmp(scannerYYtext,"switch",6)==0 && !isId(scannerYYtext[6]))
19170  {
19171  // Corba IDL style union
19172  roundCount=0;
19174  }
19175  else
19176  {
19177  addType(current);
19178  current->name = scannerYYtext;
19179  current->name = current->name.stripWhiteSpace();
19180  lineCount();
19181  BEGIN( FindMembers );
19182  }
19183  }
19184  YY_BREAK
19185 case 580:
19187 #line 5471 "scanner.l"
19188 {
19189  if (isTypedef)
19190  {
19191  // multiple types in one typedef
19192  unput(',');
19193  current->type.prepend("typedef ");
19194  BEGIN(FindMembers);
19195  }
19196  else
19197  {
19198  // Multiple class forward declaration
19199  }
19200  }
19201  YY_BREAK
19202 case 581:
19203 /* rule 581 can match eol */
19205 #line 5484 "scanner.l"
19206 {
19207  if (insideCli)
19208  {
19209  if (scannerYYtext[0]=='s') // sealed
19210  current->spec |= Entry::SealedClass;
19211  else // abstract
19212  current->spec |= Entry::AbstractClass;
19213  BEGIN( ClassVar );
19214  }
19215  else
19216  {
19217  REJECT;
19218  }
19219  }
19220  YY_BREAK
19221 case 582:
19223 #line 5498 "scanner.l"
19224 {
19225  if (insideCpp || insideObjC)
19226  {
19227  current->id = ClangParser::instance()->lookup(yyLineNr,scannerYYtext);
19228  }
19229  if (insideIDL && qstrcmp(scannerYYtext,"switch")==0)
19230  {
19231  // Corba IDL style union
19232  roundCount=0;
19234  }
19235  else if ((insideJava || insidePHP || insideJS) && (qstrcmp(scannerYYtext,"implements")==0 || qstrcmp(scannerYYtext,"extends")==0))
19236  {
19237  current->type.resize(0);
19238  baseProt=Public;
19239  baseVirt=Normal;
19240  baseName.resize(0);
19241  BEGIN( BasesProt ) ;
19242  }
19243  else if (insideCS && qstrcmp(scannerYYtext,"where")==0) // C# type contraint
19244  {
19245  delete current->typeConstr;
19246  current->typeConstr = new ArgumentList;
19247  current->typeConstr->append(new Argument);
19248  lastCSConstraint = YY_START;
19250  }
19251  else if (insideCli && qstrcmp(scannerYYtext,"abstract")==0)
19252  {
19253  current->spec|=Entry::Abstract;
19254  }
19255  else if (insideCli && qstrcmp(scannerYYtext,"sealed")==0)
19256  {
19257  current->spec|=Entry::Sealed;
19258  }
19259  else if (qstrcmp(scannerYYtext,"final")==0)
19260  {
19261  current->spec|=Entry::Final;
19262  }
19263  else
19264  {
19265  if (current->section == Entry::ENUM_SEC)
19266  { // found "enum a b" -> variable
19267  current->section = Entry::VARIABLE_SEC ;
19268  }
19269  current->type += ' ' ;
19270  current->type += current->name ;
19271  current->name = scannerYYtext ;
19272 
19273  if (nameIsOperator(current->name))
19274  {
19275  BEGIN( Operator );
19276  }
19277  }
19278  }
19279  YY_BREAK
19280 case 583:
19282 #line 5553 "scanner.l"
19283 {
19284  if (insideObjC && *scannerYYtext=='(') // class category
19285  {
19286  current->name+='(';
19287  //if (current->section!=Entry::OBJCIMPL_SEC)
19288  //{
19289  current->spec|=Entry::Category;
19290  //}
19291  BEGIN( ClassCategory );
19292  }
19293  else
19294  {
19295  // probably a function anyway
19296  unput(*scannerYYtext);
19297  BEGIN( FindMembers );
19298  }
19299  }
19300  YY_BREAK
19301 case 584:
19303 #line 5570 "scanner.l"
19304 { /* empty comment */ }
19305  YY_BREAK
19306 case 585:
19308 #line 5571 "scanner.l"
19309 { // special comment
19310  fullArgString.resize(0);
19311  lastCopyArgChar='#'; // end marker
19312  lastCommentInArgContext=YY_START;
19313  if (scannerYYtext[1]=='/')
19315  else
19316  BEGIN( CopyArgComment );
19317  }
19318  YY_BREAK
19319 case 586:
19321 #line 5580 "scanner.l"
19322 { // artificially inserted token to signal end of comment block
19323  current->typeConstr->getLast()->docs = fullArgString;
19324  }
19325  YY_BREAK
19326 case 587:
19328 #line 5583 "scanner.l"
19329 { // end of type constraint reached
19330  // parse documentation of the constraints
19332  unput('{');
19333  BEGIN( lastCSConstraint );
19334  }
19335  YY_BREAK
19336 case 588:
19338 #line 5589 "scanner.l"
19339 {
19341  unput(';');
19342  BEGIN( lastCSConstraint );
19343  }
19344  YY_BREAK
19345 case 589:
19347 #line 5594 "scanner.l"
19348 {
19350  }
19351  YY_BREAK
19352 case 590:
19354 #line 5597 "scanner.l"
19355 {
19356  // parameter name
19357  current->typeConstr->getLast()->name=scannerYYtext;
19358  }
19359  YY_BREAK
19360 case 591:
19362 #line 5601 "scanner.l"
19363 { // another constraint for a different param
19364  current->typeConstr->append(new Argument);
19366  }
19367  YY_BREAK
19368 case 592:
19370 #line 5605 "scanner.l"
19371 {
19372  if (current->typeConstr->getLast()->type.isEmpty())
19373  // first type constraint for this parameter
19374  {
19375  current->typeConstr->getLast()->type=scannerYYtext;
19376  }
19377  else // new type constraint for same parameter
19378  {
19379  QCString name = current->typeConstr->getLast()->name;
19380  current->typeConstr->append(new Argument);
19381  current->typeConstr->getLast()->name=name;
19382  current->typeConstr->getLast()->type=scannerYYtext;
19383  }
19384  }
19385  YY_BREAK
19386 case 593:
19387 /* rule 593 can match eol */
19389 #line 5619 "scanner.l"
19390 {
19391  lineCount();
19392  }
19393  YY_BREAK
19394 case 594:
19396 #line 5622 "scanner.l"
19397 {
19398  }
19399  YY_BREAK
19400 case 595:
19402 #line 5624 "scanner.l"
19403 {
19404  current->name+=scannerYYtext;
19405  }
19406  YY_BREAK
19407 case 596:
19408 /* rule 596 can match eol */
19409 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19410 (yy_c_buf_p) = yy_cp = yy_bp + 1;
19411 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19413 #line 5627 "scanner.l"
19414 {
19415  current->name+=')';
19416  BEGIN( ClassVar );
19417  }
19418  YY_BREAK
19419 case 597:
19420 /* rule 597 can match eol */
19421 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19422 (yy_c_buf_p) = yy_cp = yy_bp + 1;
19423 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19425 #line 5631 "scanner.l"
19426 {
19427  current->name+=')';
19429  }
19430  YY_BREAK
19431 case 598:
19433 #line 5635 "scanner.l"
19434 {
19435  current->name+=')';
19436  if ((current->section & Entry::Protocol) ||
19437  current->section == Entry::OBJCIMPL_SEC)
19438  {
19439  unput('{'); // fake start of body
19440  }
19441  else // category has no variables so push back an empty body
19442  {
19443  unput('}');
19444  unput('{');
19445  }
19446  BEGIN( ClassVar );
19447  }
19448  YY_BREAK
19449 case 599:
19451 #line 5649 "scanner.l"
19452 {
19453  if (current->section==Entry::VARIABLE_SEC) // enum A B:2, see bug 748208
19454  {
19455  current->bitfields+=":";
19456  current->args.resize(0);
19457  BEGIN(BitFields);
19458  }
19459  else if (current->section==Entry::ENUM_SEC) // enum E:2, see bug 313527,
19460  // or C++11 style enum: 'E : unsigned int {...}'
19461  {
19462  current->args.resize(0);
19464  }
19465  else
19466  {
19467  current->type.resize(0);
19468  if ((current->spec & Entry::Interface) ||
19469  (current->spec & Entry::Struct) ||
19470  (current->spec & Entry::Ref) ||
19471  (current->spec & Entry::Value) ||
19472  insidePHP || insideCS || insideD || insideObjC || insideIDL
19473  )
19474  baseProt=Public;
19475  else
19476  baseProt=Private;
19477  baseVirt=Normal;
19478  baseName.resize(0);
19479  BEGIN( BasesProt ) ;
19480  }
19481  }
19482  YY_BREAK
19483 case 600:
19485 #line 5679 "scanner.l"
19486 {
19487  unput(*scannerYYtext);
19488  if (isTypedef) // typedef of a class, put typedef keyword back
19489  {
19490  current->type.prepend("typedef");
19491  }
19492  if ((scannerYYtext[0]=='*' || scannerYYtext[0]=='&') &&
19493  current->section == Entry::ENUM_SEC)
19494  { // found "enum a *b" -> variable
19495  current->section = Entry::VARIABLE_SEC ;
19496  }
19497  BEGIN( FindMembers );
19498  }
19499  YY_BREAK
19500 case 601:
19501 /* rule 601 can match eol */
19502 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19503 (yy_c_buf_p) = yy_cp = yy_bp + 3;
19504 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19506 #line 5692 "scanner.l"
19507 {
19508  if (!insideObjC)
19509  {
19510  REJECT;
19511  }
19512  else
19513  {
19514  lineCount();
19515  current->program+=scannerYYtext;
19516  current->fileName = yyFileName ;
19517  current->startLine = yyLineNr ;
19518  current->startColumn = yyColNr;
19519  curlyCount=0;
19520  BEGIN( ReadBodyIntf );
19521  }
19522  }
19523  YY_BREAK
19524 case 602:
19525 /* rule 602 can match eol */
19526 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19527 (yy_c_buf_p) = yy_cp -= 1;
19528 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19529 #line 5709 "scanner.l"
19530 case 603:
19531 /* rule 603 can match eol */
19532 #line 5710 "scanner.l"
19533 case 604:
19534 /* rule 604 can match eol */
19535 #line 5711 "scanner.l"
19536 case 605:
19537 /* rule 605 can match eol */
19539 #line 5711 "scanner.l"
19540 {
19541  if (!insideObjC)
19542  {
19543  REJECT;
19544  }
19545  else
19546  {
19547  lineCount();
19548  current->program+=scannerYYtext;
19549  current->fileName = yyFileName ;
19550  current->startLine = yyLineNr ;
19551  current->startColumn = yyColNr;
19552  curlyCount=0;
19553  BEGIN( ReadBodyIntf );
19554  }
19555  }
19556  YY_BREAK
19557 case 606:
19559 #line 5727 "scanner.l"
19560 {
19561  current->fileName = yyFileName ;
19562  current->startLine = yyLineNr ;
19563  current->startColumn = yyColNr;
19564  current->name = removeRedundantWhiteSpace(current->name);
19565  if (current->name.isEmpty() && !isTypedef) // anonymous compound
19566  {
19567  if (current->section==Entry::NAMESPACE_SEC) // allow reopening of anonymous namespaces
19568  {
19569  if (Config_getBool("EXTRACT_ANON_NSPACES")) // use visible name
19570  {
19571  current->name="anonymous_namespace{"+stripPath(current->fileName)+"}";
19572  }
19573  else // use invisible name
19574  {
19575  current->name.sprintf("@%d",anonNSCount);
19576  }
19577  }
19578  else
19579  {
19580  current->name.sprintf("@%d",anonCount++);
19581  }
19582  }
19583  curlyCount=0;
19584  if (current_root && // not a nested struct inside an @interface section
19585  !(current_root->spec & Entry::Interface) &&
19587  current->section==Entry::OBJCIMPL_SEC)
19588  ) &&
19589  insideObjC
19590  )
19591  { // ObjC body that ends with @end
19592  BEGIN( ReadBodyIntf );
19593  }
19594  else if (current->section==Entry::NAMESPACE_SEC)
19595  { // namespace body
19596  BEGIN( ReadNSBody );
19597  }
19598  else
19599  { // class body
19600  BEGIN( ReadBody ) ;
19601  }
19602  }
19603  YY_BREAK
19604 case 607:
19605 /* rule 607 can match eol */
19607 #line 5770 "scanner.l"
19608 { lineCount(); baseVirt = Virtual; }
19609  YY_BREAK
19610 case 608:
19611 /* rule 608 can match eol */
19613 #line 5771 "scanner.l"
19614 { lineCount(); baseProt = Public; }
19615  YY_BREAK
19616 case 609:
19617 /* rule 609 can match eol */
19619 #line 5772 "scanner.l"
19620 { lineCount(); baseProt = Protected; }
19621  YY_BREAK
19622 case 610:
19623 /* rule 610 can match eol */
19625 #line 5773 "scanner.l"
19626 { lineCount(); baseProt = Package; }
19627  YY_BREAK
19628 case 611:
19629 /* rule 611 can match eol */
19631 #line 5774 "scanner.l"
19632 { lineCount(); baseProt = Private; }
19633  YY_BREAK
19634 case 612:
19635 /* rule 612 can match eol */
19637 #line 5775 "scanner.l"
19638 { lineCount(); }
19639  YY_BREAK
19640 case 613:
19642 #line 5776 "scanner.l"
19643 { unput(*scannerYYtext); BEGIN(Bases); }
19644  YY_BREAK
19645 case 614:
19647 #line 5777 "scanner.l"
19648 { // PHP namespace token, not sure if interspacing is allowed but it gives problems (see bug 640847)
19649  if (!insidePHP)
19650  {
19651  REJECT;
19652  }
19653  else // PHP base class of the form \Ns\Cl or Ns\Cl
19654  {
19655  lineCount();
19657  bn = substitute(bn,"\\","::");
19658  baseName += bn;
19659  current->args += ' ';
19660  current->args += scannerYYtext;
19661  }
19662  }
19663  YY_BREAK
19664 case 615:
19665 /* rule 615 can match eol */
19667 #line 5792 "scanner.l"
19668 {
19669  lineCount();
19670  QCString baseScope = scannerYYtext;
19671  if (insideCS && baseScope.stripWhiteSpace()=="where")
19672  {
19673  // type contraint for a class
19674  delete current->typeConstr;
19675  current->typeConstr = new ArgumentList;
19676  current->typeConstr->append(new Argument);
19677  lastCSConstraint = YY_START;
19679  }
19680  else
19681  {
19682  baseName+=scannerYYtext;
19683  current->args += ' ';
19684  current->args += scannerYYtext;
19685  }
19686  }
19687  YY_BREAK
19688 case 616:
19689 /* rule 616 can match eol */
19691 #line 5811 "scanner.l"
19692 { // Java style class
19693  QCString name = substitute(scannerYYtext,".","::");
19694  baseName += name;
19695  current->args += ' ';
19696  current->args += name;
19697  }
19698  YY_BREAK
19699 case 617:
19700 /* rule 617 can match eol */
19701 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19702 (yy_c_buf_p) = yy_cp = yy_bp + 1;
19703 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19705 #line 5817 "scanner.l"
19706 {
19707  if (!insideObjC)
19708  {
19709  REJECT;
19710  }
19711  else
19712  {
19713  lineCount();
19714  unput('{');
19715  }
19716  }
19717  YY_BREAK
19718 case 618:
19720 #line 5828 "scanner.l"
19721 { // empty ObjC interface
19722  unput('d'); // insert fake body: {}@end
19723  unput('n');
19724  unput('e');
19725  unput('@');
19726  unput('}');
19727  unput('{');
19728  }
19729  YY_BREAK
19730 case 619:
19732 #line 5836 "scanner.l"
19733 { current->name += *scannerYYtext;
19734  sharpCount=1;
19735  roundCount=0;
19736  lastSkipSharpContext = YY_START;
19737  specName = &current->name;
19738  BEGIN ( Specialization );
19739  }
19740  YY_BREAK
19741 case 620:
19742 /* rule 620 can match eol */
19744 #line 5843 "scanner.l"
19745 {
19746  lineCount();
19747  sharpCount=1;
19748  roundCount=0;
19749  lastSkipSharpContext = YY_START;
19750  if (insideObjC) // start of protocol list
19751  {
19752  unput(',');
19753  }
19754  else // template specialization
19755  {
19756  //if (insideCS) // generic
19757  //{
19758  // baseName+="-g";
19759  //}
19760  templateStr = scannerYYtext;
19761  specName = &templateStr;
19762  BEGIN ( Specialization );
19763  }
19764  }
19765  YY_BREAK
19766 case 621:
19768 #line 5863 "scanner.l"
19769 { *specName += *scannerYYtext;
19770  if (roundCount==0) sharpCount++;
19771  }
19772  YY_BREAK
19773 case 622:
19775 #line 5866 "scanner.l"
19776 {
19777  *specName += *scannerYYtext;
19778  if (roundCount==0 && --sharpCount<=0)
19779  {
19780  baseName+=removeRedundantWhiteSpace(*specName);
19781  BEGIN(lastSkipSharpContext);
19782  }
19783  }
19784  YY_BREAK
19785 case 623:
19786 /* rule 623 can match eol */
19788 #line 5874 "scanner.l"
19789 { lineCount(); *specName +=' '; }
19790  YY_BREAK
19791 case 624:
19793 #line 5875 "scanner.l"
19794 { *specName += scannerYYtext; }
19795  YY_BREAK
19796 case 625:
19797 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
19798 (yy_c_buf_p) = yy_cp = yy_bp + 2;
19799 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
19801 #line 5876 "scanner.l"
19802 { // M$ C++ extension to allow >> to close a template...
19803  unput('>');
19804  unput(' ');
19805  unput('>');
19806  }
19807  YY_BREAK
19808 case 626:
19810 #line 5881 "scanner.l"
19811 {
19812  if (insideCS) // for C# >> ends a nested template
19813  {
19814  REJECT;
19815  }
19816  else // for C++ >> is a bitshift
19817  // operator and > > would end
19818  // a nested template.
19819  // We require the bitshift to be enclosed in braces.
19820  // See http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html
19821  {
19822  if (roundCount>0)
19823  {
19824  *specName += scannerYYtext;
19825  }
19826  else
19827  {
19828  unput('>');
19829  unput(' ');
19830  unput('>');
19831  }
19832  }
19833  }
19834  YY_BREAK
19835 case 627:
19836 /* rule 627 can match eol */
19838 #line 5904 "scanner.l"
19839 { lineCount(); }
19840  YY_BREAK
19841 case 628:
19843 #line 5905 "scanner.l"
19844 { *specName += *scannerYYtext; roundCount++; }
19845  YY_BREAK
19846 case 629:
19848 #line 5906 "scanner.l"
19849 { *specName += *scannerYYtext; roundCount--; }
19850  YY_BREAK
19851 case 630:
19853 #line 5907 "scanner.l"
19854 {
19855  *specName += *scannerYYtext;
19856  }
19857  YY_BREAK
19858 case 631:
19860 #line 5910 "scanner.l"
19861 { ++roundCount; }
19862  YY_BREAK
19863 case 632:
19865 #line 5911 "scanner.l"
19866 { if (--roundCount<0)
19867  BEGIN ( lastSkipRoundContext );
19868  }
19869  YY_BREAK
19870 case 633:
19872 #line 5914 "scanner.l"
19873 {
19874  lastStringContext=SkipRound;
19875  BEGIN(SkipString);
19876  }
19877  YY_BREAK
19878 case 634:
19879 /* rule 634 can match eol */
19881 #line 5918 "scanner.l"
19882 { lineCount();
19883  if (insideProtocolList)
19884  {
19885  baseName+="-p";
19886  }
19887  else
19888  {
19889  current->args += ',' ;
19890  }
19891  current->name = removeRedundantWhiteSpace(current->name);
19892  if (!baseName.isEmpty())
19893  {
19894  current->extends->append(
19895  new BaseInfo(baseName,baseProt,baseVirt)
19896  );
19897  }
19898  if ((current->spec & (Entry::Interface|Entry::Struct)) ||
19899  insideJava || insidePHP || insideCS ||
19900  insideD || insideObjC || insideIDL)
19901  {
19902  baseProt=Public;
19903  }
19904  else
19905  {
19906  baseProt=Private;
19907  }
19908  baseVirt=Normal;
19909  baseName.resize(0);
19910  if (*scannerYYtext=='>')
19911  { // end of a ObjC protocol list
19912  insideProtocolList=FALSE;
19913  if (scannerYYleng==1)
19914  {
19915  unput('{'); // dummy start body
19916  }
19917  else
19918  {
19919  yyless(1);
19920  }
19921  }
19922  else
19923  {
19924  if (*scannerYYtext==',' && insideObjC) // Begin of protocol list
19925  {
19926  insideProtocolList=TRUE;
19927  }
19928  BEGIN(BasesProt);
19929  }
19930  }
19931  YY_BREAK
19932 case 635:
19934 #line 5967 "scanner.l"
19935 { current->fileName = yyFileName ;
19936  current->startLine = yyLineNr ;
19937  current->startColumn = yyColNr;
19938  current->name = removeRedundantWhiteSpace(current->name);
19939  if (!baseName.isEmpty())
19940  current->extends->append(
19941  new BaseInfo(baseName,baseProt,baseVirt)
19942  );
19943  curlyCount=0;
19944  if (insideObjC)
19945  {
19946  BEGIN( ReadBodyIntf );
19947  }
19948  else
19949  {
19950  BEGIN( ReadBody ) ;
19951  }
19952  }
19953  YY_BREAK
19954 case 636:
19956 #line 5985 "scanner.l"
19957 {
19958  roundCount++;
19959  }
19960  YY_BREAK
19961 case 637:
19963 #line 5988 "scanner.l"
19964 {
19965  if (--roundCount==0)
19966  {
19967  BEGIN(ClassVar);
19968  }
19969  }
19970  YY_BREAK
19971 case 638:
19972 /* rule 638 can match eol */
19974 #line 5994 "scanner.l"
19975 { lineCount(); }
19976  YY_BREAK
19977 case 639:
19979 #line 5995 "scanner.l"
19980 
19981  YY_BREAK
19982 case 640:
19983 /* rule 640 can match eol */
19985 #line 5996 "scanner.l"
19986 { current->program += scannerYYtext ;
19987  lineCount() ;
19988  }
19989  YY_BREAK
19990 case 641:
19992 #line 5999 "scanner.l"
19993 { current->program += scannerYYtext ; }
19994  YY_BREAK
19995 case 642:
19997 #line 6000 "scanner.l"
19998 { current->program += scannerYYtext ; }
19999  YY_BREAK
20000 case 643:
20002 #line 6001 "scanner.l"
20003 {
20004  insideCode=TRUE;
20005  current->program += scannerYYtext ;
20006  }
20007  YY_BREAK
20008 case 644:
20010 #line 6005 "scanner.l"
20011 {
20012  insideCode=FALSE;
20013  current->program += scannerYYtext ;
20014  }
20015  YY_BREAK
20016 case 645:
20018 #line 6009 "scanner.l"
20019 { current->program += scannerYYtext ; }
20020  YY_BREAK
20021 case 646:
20023 #line 6010 "scanner.l"
20024 { current->program += scannerYYtext ;
20025  if (!insideCode) BEGIN( lastContext ) ;
20026  }
20027  YY_BREAK
20028 case 647:
20030 #line 6013 "scanner.l"
20031 { current->program += *scannerYYtext ; }
20032  YY_BREAK
20033 case 648:
20035 #line 6015 "scanner.l"
20036 {
20037  //printf("Start doc block at %d\n",yyLineNr);
20038  removeSlashes=(scannerYYtext[1]=='/');
20039  tmpDocType=-1;
20040  if (!current->doc.isEmpty())
20041  {
20042  current->doc+="\n\n";
20043  }
20044  else
20045  {
20046  current->docLine = yyLineNr;
20047  current->docFile = yyFileName;
20048  }
20049 
20050  lastDocContext = YY_START;
20051  if (current_root->section & Entry::SCOPE_MASK)
20052  {
20053  current->inside = current_root->name+"::";
20054  }
20055  docBlockContext = YY_START;
20056  docBlockInBody = YY_START==SkipCurly;
20057  docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF");
20058 
20059  QCString indent;
20060  indent.fill(' ',computeIndent(scannerYYtext,g_column));
20061  docBlock=indent;
20062 
20063  if (docBlockAutoBrief)
20064  {
20065  current->briefLine = yyLineNr;
20066  current->briefFile = yyFileName;
20067  }
20069  BEGIN( DocBlock );
20070  }
20071  YY_BREAK
20072 case 649:
20073 /* rule 649 can match eol */
20074 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20075 (yy_c_buf_p) = yy_cp -= 1;
20076 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20078 #line 6050 "scanner.l"
20079 {
20080  removeSlashes=(scannerYYtext[1]=='/');
20081  lastDocContext = YY_START;
20082 
20083  //printf("Found comment block at %s:%d\n",yyFileName,yyLineNr);
20084  if (current_root->section & Entry::SCOPE_MASK)
20085  {
20086  current->inside = current_root->name+"::";
20087  }
20088  current->docLine = yyLineNr;
20089  current->docFile = yyFileName;
20090  docBlockContext = YY_START;
20091  docBlockInBody = YY_START==SkipCurly;
20092  static bool javadocAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF");
20093  docBlockAutoBrief = javadocAutoBrief;
20094 
20095  QCString indent;
20096  indent.fill(' ',computeIndent(scannerYYtext,g_column));
20097  docBlock=indent;
20098 
20099  if (docBlockAutoBrief)
20100  {
20101  current->briefLine = yyLineNr;
20102  current->briefFile = yyFileName;
20103  }
20105  BEGIN( DocBlock );
20106  }
20107  YY_BREAK
20108 case 650:
20110 #line 6078 "scanner.l"
20111 {
20112  tmpDocType=-1;
20113  lastDocContext = YY_START;
20114  if (current_root->section & Entry::SCOPE_MASK)
20115  {
20116  current->inside = current_root->name+"::";
20117  }
20118  docBlockContext = YY_START;
20119  docBlockInBody = YY_START==SkipCurly;
20120  docBlockAutoBrief = FALSE;
20121 
20122  QCString indent;
20123  indent.fill(' ',computeIndent(scannerYYtext,g_column));
20124  docBlock=indent;
20125 
20126  startCommentBlock(current->brief.isEmpty());
20127  BEGIN( DocLine );
20128  }
20129  YY_BREAK
20130 case 651:
20131 /* rule 651 can match eol */
20132 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20133 (yy_c_buf_p) = yy_cp = yy_bp + 3;
20134 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20136 #line 6096 "scanner.l"
20137 {
20138  tmpDocType=-1;
20139  lastDocContext = YY_START;
20140  if (current_root->section & Entry::SCOPE_MASK)
20141  {
20142  current->inside = current_root->name+"::";
20143  }
20144  docBlockContext = YY_START;
20145  docBlockInBody = YY_START==SkipCurly;
20146  docBlockAutoBrief = FALSE;
20147  QCString indent;
20148  indent.fill(' ',computeIndent(scannerYYtext,g_column));
20149  docBlock=indent;
20150  startCommentBlock(current->brief.isEmpty());
20151  BEGIN( DocLine );
20152  }
20153  YY_BREAK
20154 case 652:
20155 /* rule 652 can match eol */
20157 #line 6112 "scanner.l"
20158 {
20159  lineCount();
20160  externC=TRUE;
20161  }
20162  YY_BREAK
20163 case 653:
20165 #line 6116 "scanner.l"
20166 {
20167  if (externC)
20168  {
20169  externC=FALSE;
20170  }
20171  else if (insideCS &&
20172  !current->name.isEmpty() &&
20173  !current->type.isEmpty())
20174  {
20175  if (containsWord(current->type,"event")) // event
20176  {
20177  current->mtype = mtype = Event;
20178  }
20179  else // property
20180  {
20181  current->mtype = mtype = Property;
20182  }
20183  current->bodyLine = yyLineNr;
20184  curlyCount=0;
20185  BEGIN( CSAccessorDecl );
20186  }
20187  else if (insideIDL && (current->spec & Entry::Attribute))
20188  {
20189  // UNO IDL: attributes may have setter and getter
20190  // exception specifications
20191  current->exception = " {";
20193  }
20194  else
20195  {
20196  if ((insideJava || insideCS || insideD) &&
20197  current->name.isEmpty()
20198  )
20199  {
20200  // static Java initializer
20201  needsSemi = FALSE;
20202  if (current->stat)
20203  {
20204  current->name="[static initializer]";
20205  current->type.resize(0);
20206  }
20207  else
20208  {
20209  current->name="[instance initializer]";
20210  }
20211  unput(*scannerYYtext);
20212  BEGIN( Function );
20213  }
20214  else
20215  {
20216  // pre C++11 code -> ignore the initializer
20217  //needsSemi = TRUE;
20218  //current->type.resize(0);
20219  //current->name.resize(0);
20220  //current->args.resize(0);
20221  //current->argList->clear();
20222  //curlyCount=0;
20223  //BEGIN( SkipCurlyBlock );
20224 
20225  // C++11 style initializer list
20226  current->bodyLine = yyLineNr;
20227  current->initializer = scannerYYtext;
20228  lastInitializerContext = YY_START;
20229  initBracketCount=1;
20231  }
20232  }
20233  }
20234  YY_BREAK
20235 case 654:
20237 #line 6184 "scanner.l"
20238 { curlyCount++; }
20239  YY_BREAK
20240 case 655:
20242 #line 6185 "scanner.l"
20243 {
20244  if (curlyCount)
20245  {
20246  curlyCount--;
20247  }
20248  else
20249  {
20250  mtype = Method;
20251  virt = Normal;
20252  unput(';');
20253  BEGIN(FindMembers);
20254  }
20255  }
20256  YY_BREAK
20257 case 656:
20258 /* rule 656 can match eol */
20260 #line 6198 "scanner.l"
20261 { if (curlyCount==0) current->spec |= Entry::PrivateSettable; }
20262  YY_BREAK
20263 case 657:
20264 /* rule 657 can match eol */
20266 #line 6199 "scanner.l"
20267 { if (curlyCount==0) current->spec |= Entry::ProtectedSettable; }
20268  YY_BREAK
20269 case 658:
20270 /* rule 658 can match eol */
20272 #line 6200 "scanner.l"
20273 { if (curlyCount==0) current->spec |= Entry::PrivateGettable; }
20274  YY_BREAK
20275 case 659:
20276 /* rule 659 can match eol */
20278 #line 6201 "scanner.l"
20279 { if (curlyCount==0) current->spec |= Entry::ProtectedGettable; }
20280  YY_BREAK
20281 case 660:
20283 #line 6202 "scanner.l"
20284 { if (curlyCount==0) current->spec |= Entry::Settable; }
20285  YY_BREAK
20286 case 661:
20288 #line 6203 "scanner.l"
20289 { if (curlyCount==0) current->spec |= Entry::Gettable; }
20290  YY_BREAK
20291 case 662:
20293 #line 6204 "scanner.l"
20294 { if (curlyCount==0) current->spec |= Entry::Addable; }
20295  YY_BREAK
20296 case 663:
20298 #line 6205 "scanner.l"
20299 { if (curlyCount==0) current->spec |= Entry::Removable; }
20300  YY_BREAK
20301 case 664:
20303 #line 6206 "scanner.l"
20304 { if (curlyCount==0) current->spec |= Entry::Raisable; }
20305  YY_BREAK
20306 case 665:
20308 #line 6207 "scanner.l"
20309 {}
20310  YY_BREAK
20311 case 666:
20312 /* rule 666 can match eol */
20314 #line 6208 "scanner.l"
20315 { lineCount(); }
20316  YY_BREAK
20317 /**********************************************************************************/
20318 /******************** Documentation block related rules ***************************/
20319 /**********************************************************************************/
20320 /* ---- Single line comments ------ */
20321 case 667:
20322 /* rule 667 can match eol */
20324 #line 6218 "scanner.l"
20325 { // continuation of multiline C++-style comment
20326  docBlock+=scannerYYtext;
20327  docBlock.resize(docBlock.length() - 3);
20328  lineCount();
20329  }
20330  YY_BREAK
20331 case 668:
20332 /* rule 668 can match eol */
20333 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20334 (yy_c_buf_p) = yy_cp -= 1;
20335 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20337 #line 6223 "scanner.l"
20338 { // ignore marker line (see bug700345)
20339  handleCommentBlock(docBlock.data(),current->brief.isEmpty());
20340  BEGIN( docBlockContext );
20341  }
20342  YY_BREAK
20343 case 669:
20344 /* rule 669 can match eol */
20345 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20346 (yy_c_buf_p) = yy_cp -= 1;
20347 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20349 #line 6227 "scanner.l"
20350 { // whole line
20351  docBlock+=scannerYYtext;
20352  handleCommentBlock(docBlock.data(),current->brief.isEmpty());
20353  BEGIN( docBlockContext );
20354  }
20355  YY_BREAK
20356 /* ---- Comments blocks ------ */
20357 case 670:
20359 #line 6235 "scanner.l"
20360 { // end of comment block
20361  handleCommentBlock(docBlock.data(),FALSE);
20362  BEGIN(docBlockContext);
20363  }
20364  YY_BREAK
20365 case 671:
20366 /* rule 671 can match eol */
20367 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20368 (yy_c_buf_p) = yy_cp -= 1;
20369 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20371 #line 6239 "scanner.l"
20372 {
20373 
20374  QCString indent;
20375  indent.fill(' ',computeIndent(scannerYYtext,g_column));
20376  docBlock+=indent;
20377  }
20378  YY_BREAK
20379 case 672:
20380 /* rule 672 can match eol */
20381 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20382 (yy_c_buf_p) = yy_cp -= 1;
20383 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20385 #line 6245 "scanner.l"
20386 { // start of a comment line
20387  QCString indent;
20388  indent.fill(' ',computeIndent(scannerYYtext,g_column));
20389  docBlock+=indent;
20390  }
20391  YY_BREAK
20392 case 673:
20394 #line 6250 "scanner.l"
20395 { // strip embedded C++ comments if at the start of a line
20396  }
20397  YY_BREAK
20398 case 674:
20400 #line 6252 "scanner.l"
20401 { // slashes in the middle of a comment block
20402  docBlock+=scannerYYtext;
20403  }
20404  YY_BREAK
20405 case 675:
20407 #line 6255 "scanner.l"
20408 { // start of a new comment in the
20409  // middle of a comment block
20410  docBlock+=scannerYYtext;
20411  }
20412  YY_BREAK
20413 case 676:
20414 /* rule 676 can match eol */
20415 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20416 (yy_c_buf_p) = yy_cp -= 1;
20417 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20419 #line 6259 "scanner.l"
20420 { // escaped command
20421  docBlock+=scannerYYtext;
20422  }
20423  YY_BREAK
20424 case 677:
20426 #line 6262 "scanner.l"
20427 {
20428  docBlock+=scannerYYtext;
20429  docBlockName=&scannerYYtext[1];
20430  if (docBlockName.at(1)=='{')
20431  {
20432  docBlockName.at(1)='}';
20433  }
20434  g_fencedSize=0;
20435  g_nestedComment=FALSE;
20437  }
20438  YY_BREAK
20439 case 678:
20441 #line 6273 "scanner.l"
20442 {
20443  docBlock+=scannerYYtext;
20444  docBlockName="<pre>";
20445  g_fencedSize=0;
20446  g_nestedComment=FALSE;
20448  }
20449  YY_BREAK
20450 case 679:
20451 /* rule 679 can match eol */
20452 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20453 (yy_c_buf_p) = yy_cp -= 1;
20454 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20456 #line 6280 "scanner.l"
20457 { // verbatim command (which could contain nested comments!)
20458  docBlock+=scannerYYtext;
20459  docBlockName=&scannerYYtext[1];
20460  g_fencedSize=0;
20461  g_nestedComment=FALSE;
20463  }
20464  YY_BREAK
20465 case 680:
20467 #line 6287 "scanner.l"
20468 {
20469  docBlock+=substitute(scannerYYtext,"*"," ");
20470  docBlockName="~~~";
20471  g_fencedSize=scannerYYleng;
20472  g_nestedComment=FALSE;
20474  }
20475  YY_BREAK
20476 case 681:
20478 #line 6294 "scanner.l"
20479 {
20480  docBlock+=substitute(scannerYYtext,"*"," ");
20481  docBlockName="```";
20482  g_fencedSize=scannerYYleng;
20483  g_nestedComment=FALSE;
20485  }
20486  YY_BREAK
20487 case 682:
20489 #line 6301 "scanner.l"
20490 {
20491  if (insideCS)
20492  {
20493  docBlock+=scannerYYtext;
20494  docBlockName="<code>";
20495  g_nestedComment=FALSE;
20497  }
20498  else
20499  {
20500  REJECT;
20501  }
20502  }
20503  YY_BREAK
20504 case 683:
20506 #line 6314 "scanner.l"
20507 { // any character that isn't special
20508  docBlock+=scannerYYtext;
20509  }
20510  YY_BREAK
20511 case 684:
20512 /* rule 684 can match eol */
20514 #line 6317 "scanner.l"
20515 { // newline
20516  lineCount();
20517  docBlock+=*scannerYYtext;
20518  }
20519  YY_BREAK
20520 case 685:
20522 #line 6321 "scanner.l"
20523 { // command block
20524  docBlock+=*scannerYYtext;
20525  }
20526  YY_BREAK
20527 /* ---- Copy verbatim sections ------ */
20528 case 686:
20530 #line 6327 "scanner.l"
20531 { // end of a <pre> block
20532  docBlock+=scannerYYtext;
20533  if (docBlockName=="<pre>")
20534  {
20535  BEGIN(DocBlock);
20536  }
20537  }
20538  YY_BREAK
20539 case 687:
20541 #line 6334 "scanner.l"
20542 { // end of a <code> block
20543  docBlock+=scannerYYtext;
20544  if (docBlockName=="<code>")
20545  {
20546  BEGIN(DocBlock);
20547  }
20548  }
20549  YY_BREAK
20550 case 688:
20552 #line 6341 "scanner.l"
20553 {
20554  docBlock+=scannerYYtext;
20555  BEGIN(DocBlock);
20556  }
20557  YY_BREAK
20558 case 689:
20559 /* rule 689 can match eol */
20560 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20561 (yy_c_buf_p) = yy_cp -= 1;
20562 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20564 #line 6345 "scanner.l"
20565 { // end of verbatim block
20566  docBlock+=scannerYYtext;
20567  if (&scannerYYtext[4]==docBlockName)
20568  {
20569  BEGIN(DocBlock);
20570  }
20571  }
20572  YY_BREAK
20573 case 690:
20574 /* rule 690 can match eol */
20576 #line 6352 "scanner.l"
20577 { // start of a comment line
20578  if (docBlockName=="verbatim")
20579  {
20580  REJECT;
20581  }
20582  else if (docBlockName=="code")
20583  {
20584  REJECT;
20585  }
20586  else
20587  {
20588  QCString indent;
20589  indent.fill(' ',computeIndent(scannerYYtext,0));
20590  docBlock+=indent;
20591  }
20592  }
20593  YY_BREAK
20594 case 691:
20595 /* rule 691 can match eol */
20597 #line 6368 "scanner.l"
20598 { // start of a comment line with two *'s
20599  if (docBlockName=="code")
20600  {
20601  QCString indent;
20602  indent.fill(' ',computeIndent(scannerYYtext,0));
20603  docBlock+=indent;
20604  }
20605  else
20606  {
20607  REJECT;
20608  }
20609  }
20610  YY_BREAK
20611 case 692:
20613 #line 6380 "scanner.l"
20614 { // Assume *var or *(... is part of source code (see bug723516)
20615  if (docBlockName=="code")
20616  {
20617  QCString indent;
20618  indent.fill(' ',computeIndent(scannerYYtext,-1));
20619  docBlock+=indent+"*";
20620  }
20621  else
20622  {
20623  REJECT;
20624  }
20625  }
20626  YY_BREAK
20627 case 693:
20628 /* rule 693 can match eol */
20630 #line 6392 "scanner.l"
20631 { // start of a comment line with one *
20632  if (docBlockName=="code")
20633  {
20634  QCString indent;
20635  if (g_nestedComment) // keep * it is part of the code
20636  {
20637  indent.fill(' ',computeIndent(scannerYYtext,-1));
20638  docBlock+=indent+"*";
20639  }
20640  else // remove * it is part of the comment block
20641  {
20642  indent.fill(' ',computeIndent(scannerYYtext,0));
20643  docBlock+=indent;
20644  }
20645  }
20646  else
20647  {
20648  REJECT;
20649  }
20650  }
20651  YY_BREAK
20652 case 694:
20654 #line 6412 "scanner.l"
20655 {
20656  docBlock+=substitute(scannerYYtext,"*"," ");
20657  if (g_fencedSize==scannerYYleng)
20658  {
20659  BEGIN(DocBlock);
20660  }
20661  }
20662  YY_BREAK
20663 case 695:
20665 #line 6419 "scanner.l"
20666 {
20667  docBlock+=substitute(scannerYYtext,"*"," ");
20668  if (g_fencedSize==scannerYYleng)
20669  {
20670  BEGIN(DocBlock);
20671  }
20672  }
20673  YY_BREAK
20674 case 696:
20676 #line 6426 "scanner.l"
20677 { // any character that is not special
20678  docBlock+=scannerYYtext;
20679  }
20680  YY_BREAK
20681 case 697:
20683 #line 6429 "scanner.l"
20684 {
20685  if (scannerYYtext[1]=='*')
20686  {
20687  g_nestedComment=TRUE;
20688  }
20689  else if (scannerYYtext[0]=='*')
20690  {
20691  g_nestedComment=FALSE;
20692  }
20693  docBlock+=scannerYYtext;
20694  }
20695  YY_BREAK
20696 case 698:
20697 /* rule 698 can match eol */
20699 #line 6440 "scanner.l"
20700 { // newline
20701  docBlock+=*scannerYYtext;
20702  lineCount();
20703  }
20704  YY_BREAK
20705 case 699:
20707 #line 6444 "scanner.l"
20708 { // any other character
20709  docBlock+=*scannerYYtext;
20710  }
20711  YY_BREAK
20713 #line 6447 "scanner.l"
20714 {
20715  warn(yyFileName,yyLineNr,
20716  "reached end of file while inside a %s block!\n"
20717  "The command that should end the block seems to be missing!\n",
20718  docBlockName.data());
20719  yyterminate();
20720  }
20721  YY_BREAK
20722 /* ------------- Prototype parser -------------- */
20723 case 700:
20725 #line 6458 "scanner.l"
20726 {
20727  current->name+=scannerYYtext;
20728  }
20729  YY_BREAK
20730 case 701:
20732 #line 6461 "scanner.l"
20733 {
20734  current->args+=*scannerYYtext;
20735  currentArgumentContext = PrototypeQual;
20736  fullArgString = current->args.copy();
20737  copyArgString = &current->args;
20738  BEGIN( ReadFuncArgType ) ;
20739  }
20740  YY_BREAK
20741 case 702:
20743 #line 6468 "scanner.l"
20744 {
20745  current->type+=current->name+scannerYYtext;
20746  current->name.resize(0);
20747  BEGIN( PrototypePtr );
20748  }
20749  YY_BREAK
20750 case 703:
20751 /* rule 703 can match eol */
20753 #line 6473 "scanner.l"
20754 {
20755  current->name+=scannerYYtext;
20756  }
20757  YY_BREAK
20758 case 704:
20760 #line 6476 "scanner.l"
20761 {
20762  current->args+=*scannerYYtext;
20763  currentArgumentContext = PrototypeQual;
20764  fullArgString = current->args.copy();
20765  copyArgString = &current->args;
20766  BEGIN( ReadFuncArgType ) ;
20767  }
20768  YY_BREAK
20769 case 705:
20771 #line 6483 "scanner.l"
20772 {
20773  current->type+=')';
20774  BEGIN( Prototype );
20775  }
20776  YY_BREAK
20777 case 706:
20779 #line 6487 "scanner.l"
20780 {
20781  current->name+=scannerYYtext;
20782  }
20783  YY_BREAK
20784 case 707:
20786 #line 6490 "scanner.l"
20787 {
20789  }
20790  YY_BREAK
20791 case 708:
20793 #line 6493 "scanner.l"
20794 {
20795  current->args += " const ";
20796  current->argList->constSpecifier=TRUE;
20797  }
20798  YY_BREAK
20799 case 709:
20801 #line 6497 "scanner.l"
20802 {
20803  current->args += " volatile ";
20804  current->argList->volatileSpecifier=TRUE;
20805  }
20806  YY_BREAK
20807 case 710:
20809 #line 6501 "scanner.l"
20810 {
20811  current->args += " = 0";
20812  current->virt = Pure;
20813  current->argList->pureSpecifier=TRUE;
20814  }
20815  YY_BREAK
20816 case 711:
20818 #line 6506 "scanner.l"
20819 {
20820  current->exception = "throw(";
20822  }
20823  YY_BREAK
20824 case 712:
20826 #line 6510 "scanner.l"
20827 {
20828  current->exception += ')';
20830  }
20831  YY_BREAK
20832 case 713:
20834 #line 6514 "scanner.l"
20835 {
20836  current->exception += *scannerYYtext;
20837  }
20838  YY_BREAK
20839 case 714:
20841 #line 6517 "scanner.l"
20842 {
20843  current->args += *scannerYYtext;
20844  }
20845  YY_BREAK
20846 case 715:
20848 #line 6520 "scanner.l"
20849 {
20850  current->name += *scannerYYtext;
20851  }
20852  YY_BREAK
20853 case 716:
20855 #line 6523 "scanner.l"
20856 {
20857  }
20858  YY_BREAK
20859 /* ------------ Generic rules -------------- */
20860 case 717:
20861 /* rule 717 can match eol */
20863 #line 6530 "scanner.l"
20864 { // line continuation
20865  if (insideCS)
20866  {
20867  REJECT;
20868  }
20869  else
20870  {
20871  lineCount();
20872  }
20873  }
20874  YY_BREAK
20875 case 718:
20876 /* rule 718 can match eol */
20877 *yy_cp = (yy_hold_char); /* undo effects of setting up scannerYYtext */
20878 (yy_c_buf_p) = yy_cp -= 1;
20879 YY_DO_BEFORE_ACTION; /* set up scannerYYtext again */
20881 #line 6540 "scanner.l"
20882 {
20883  BEGIN( lastCContext ) ;
20884  }
20885  YY_BREAK
20886 case 719:
20888 #line 6543 "scanner.l"
20889 
20890  YY_BREAK
20891 case 720:
20893 #line 6545 "scanner.l"
20894 { // C++11 attribute
20895  lastC11AttributeContext = YY_START;
20897  }
20898  YY_BREAK
20899 case 721:
20900 /* rule 721 can match eol */
20902 #line 6550 "scanner.l"
20903 { lineCount(); }
20904  YY_BREAK
20905 case 722:
20907 #line 6551 "scanner.l"
20908 {
20909  if (insideIDL && insideCppQuote)
20910  {
20911  BEGIN(EndCppQuote);
20912  }
20913  }
20914  YY_BREAK
20915 case 723:
20917 #line 6557 "scanner.l"
20918 {
20919  if (!insidePHP)
20920  REJECT;
20921  lastCContext = YY_START ;
20922  BEGIN( SkipCxxComment ) ;
20923  }
20924  YY_BREAK
20925 case 724:
20927 #line 6563 "scanner.l"
20928 {
20929  if (insidePHP)
20930  {
20931  lastStringContext=YY_START;
20933  }
20934  }
20935  YY_BREAK
20936 case 725:
20938 #line 6570 "scanner.l"
20939 {
20940  if (insidePHP)
20941  {
20942  lastStringContext=YY_START;
20943  BEGIN(SkipString);
20944  }
20945  }
20946  YY_BREAK
20947 case 726:
20949 #line 6577 "scanner.l"
20950 
20951  YY_BREAK
20952 case 727:
20954 #line 6578 "scanner.l"
20955 
20956  YY_BREAK
20957 case 728:
20959 #line 6579 "scanner.l"
20960 { lastCContext = YY_START ;
20961  BEGIN( SkipComment ) ;
20962  }
20963  YY_BREAK
20964 case 729:
20966 #line 6582 "scanner.l"
20967 { BEGIN( lastCContext ) ; }
20968  YY_BREAK
20969 case 730:
20971 #line 6583 "scanner.l"
20972 {
20973  lastCContext = YY_START ;
20974  BEGIN( SkipCxxComment ) ;
20975  }
20976  YY_BREAK
20977 case 731:
20979 #line 6587 "scanner.l"
20980 ECHO;
20981  YY_BREAK
20982 #line 20983 "/nova/app/home/novasoft/doxygen/doxygen-1.8.11/build/generated_src/scanner.cpp"
20983  case YY_STATE_EOF(INITIAL):
20984  case YY_STATE_EOF(AlignAs):
20985  case YY_STATE_EOF(AlignAsEnd):
20986  case YY_STATE_EOF(Define):
20987  case YY_STATE_EOF(DefineEnd):
20988  case YY_STATE_EOF(CompoundName):
20989  case YY_STATE_EOF(ClassVar):
20992  case YY_STATE_EOF(CSIndexer):
20997  case YY_STATE_EOF(CliOverride):
20998  case YY_STATE_EOF(Bases):
20999  case YY_STATE_EOF(BasesProt):
21000  case YY_STATE_EOF(NextSemi):
21001  case YY_STATE_EOF(BitFields):
21002  case YY_STATE_EOF(EnumBaseType):
21003  case YY_STATE_EOF(FindMembers):
21006  case YY_STATE_EOF(FindFields):
21007  case YY_STATE_EOF(FindFieldArg):
21008  case YY_STATE_EOF(Function):
21009  case YY_STATE_EOF(FuncRound):
21010  case YY_STATE_EOF(ExcpRound):
21011  case YY_STATE_EOF(ExcpList):
21012  case YY_STATE_EOF(FuncQual):
21014  case YY_STATE_EOF(Operator):
21015  case YY_STATE_EOF(Array):
21016  case YY_STATE_EOF(ReadBody):
21017  case YY_STATE_EOF(ReadNSBody):
21018  case YY_STATE_EOF(ReadBodyIntf):
21019  case YY_STATE_EOF(Using):
21020  case YY_STATE_EOF(UsingAlias):
21023  case YY_STATE_EOF(SkipCurly):
21024  case YY_STATE_EOF(SkipCurlyCpp):
21026  case YY_STATE_EOF(SkipString):
21028  case YY_STATE_EOF(SkipInits):
21029  case YY_STATE_EOF(SkipC11Inits):
21031  case YY_STATE_EOF(SkipCPP):
21032  case YY_STATE_EOF(SkipCPPBlock):
21033  case YY_STATE_EOF(SkipComment):
21037  case YY_STATE_EOF(Sharp):
21038  case YY_STATE_EOF(SkipRound):
21039  case YY_STATE_EOF(SkipSquare):
21041  case YY_STATE_EOF(StaticAssert):
21042  case YY_STATE_EOF(DeclType):
21043  case YY_STATE_EOF(TypedefName):
21046  case YY_STATE_EOF(Comment):
21047  case YY_STATE_EOF(PackageName):
21048  case YY_STATE_EOF(JavaImport):
21049  case YY_STATE_EOF(PHPUse):
21050  case YY_STATE_EOF(PHPUseAs):
21052  case YY_STATE_EOF(CSGeneric):
21053  case YY_STATE_EOF(PreLineCtrl):
21054  case YY_STATE_EOF(DefinePHP):
21055  case YY_STATE_EOF(DefinePHPEnd):
21056  case YY_STATE_EOF(OldStyleArgs):
21058  case YY_STATE_EOF(ObjCMethod):
21060  case YY_STATE_EOF(ObjCParams):
21063  case YY_STATE_EOF(ObjCPropAttr):
21065  case YY_STATE_EOF(QtPropType):
21066  case YY_STATE_EOF(QtPropName):
21067  case YY_STATE_EOF(QtPropAttr):
21068  case YY_STATE_EOF(QtPropRead):
21069  case YY_STATE_EOF(QtPropWrite):
21072  case YY_STATE_EOF(GetCallType):
21073  case YY_STATE_EOF(CppQuote):
21074  case YY_STATE_EOF(EndCppQuote):
21075  case YY_STATE_EOF(MemberSpec):
21077  case YY_STATE_EOF(EndTemplate):
21078  case YY_STATE_EOF(FuncPtr):
21080  case YY_STATE_EOF(EndFuncPtr):
21082  case YY_STATE_EOF(ReadTempArgs):
21083  case YY_STATE_EOF(IDLUnionCase):
21084  case YY_STATE_EOF(NSAliasName):
21085  case YY_STATE_EOF(NSAliasArg):
21086  case YY_STATE_EOF(CopyString):
21088  case YY_STATE_EOF(CopyGString):
21090  case YY_STATE_EOF(CopyRound):
21091  case YY_STATE_EOF(CopyCurly):
21092  case YY_STATE_EOF(GCopyRound):
21093  case YY_STATE_EOF(GCopyCurly):
21096  case YY_STATE_EOF(FuncPtrInit):
21097  case YY_STATE_EOF(FuncFunc):
21098  case YY_STATE_EOF(FuncFuncEnd):
21099  case YY_STATE_EOF(FuncFuncType):
21103  case YY_STATE_EOF(CopyArgRound):
21104  case YY_STATE_EOF(CopyArgSharp):
21108  case YY_STATE_EOF(HereDoc):
21109  case YY_STATE_EOF(HereDocEnd):
21110  case YY_STATE_EOF(CopyHereDoc):
21112  case YY_STATE_EOF(RawString):
21113  case YY_STATE_EOF(RawGString):
21114  case YY_STATE_EOF(IDLAttribute):
21115  case YY_STATE_EOF(IDLProp):
21116  case YY_STATE_EOF(IDLPropName):
21117  case YY_STATE_EOF(Prototype):
21118  case YY_STATE_EOF(PrototypePtr):
21120  case YY_STATE_EOF(PrototypeExc):
21122  case YY_STATE_EOF(DocLine):
21123  case YY_STATE_EOF(DocBlock):
21124  yyterminate();
21125 
21126  case YY_END_OF_BUFFER:
21127  {
21128  /* Amount of text matched not including the EOB char. */
21129  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
21130 
21131  /* Undo the effects of YY_DO_BEFORE_ACTION. */
21132  *yy_cp = (yy_hold_char);
21134 
21135  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
21136  {
21137  /* We're scanning a new file or input source. It's
21138  * possible that this happened because the user
21139  * just pointed scannerYYin at a new source and called
21140  * scannerYYlex(). If so, then we have to assure
21141  * consistency between YY_CURRENT_BUFFER and our
21142  * globals. Here is the right place to do so, because
21143  * this is the first action (other than possibly a
21144  * back-up) that will match for the new input source.
21145  */
21146  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
21147  YY_CURRENT_BUFFER_LVALUE->yy_input_file = scannerYYin;
21148  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
21149  }
21150 
21151  /* Note that here we test for yy_c_buf_p "<=" to the position
21152  * of the first EOB in the buffer, since yy_c_buf_p will
21153  * already have been incremented past the NUL character
21154  * (since all states make transitions on EOB to the
21155  * end-of-buffer state). Contrast this with the test
21156  * in input().
21157  */
21158  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
21159  { /* This was really a NUL. */
21160  yy_state_type yy_next_state;
21161 
21162  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
21163 
21164  yy_current_state = yy_get_previous_state( );
21165 
21166  /* Okay, we're now positioned to make the NUL
21167  * transition. We couldn't have
21168  * yy_get_previous_state() go ahead and do it
21169  * for us because it doesn't know how to deal
21170  * with the possibility of jamming (and we don't
21171  * want to build jamming into it because then it
21172  * will run more slowly).
21173  */
21174 
21175  yy_next_state = yy_try_NUL_trans( yy_current_state );
21176 
21177  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
21178 
21179  if ( yy_next_state )
21180  {
21181  /* Consume the NUL. */
21182  yy_cp = ++(yy_c_buf_p);
21183  yy_current_state = yy_next_state;
21184  goto yy_match;
21185  }
21186 
21187  else
21188  {
21189  yy_cp = (yy_c_buf_p);
21190  goto yy_find_action;
21191  }
21192  }
21193 
21194  else switch ( yy_get_next_buffer( ) )
21195  {
21196  case EOB_ACT_END_OF_FILE:
21197  {
21199 
21200  if ( scannerYYwrap( ) )
21201  {
21202  /* Note: because we've taken care in
21203  * yy_get_next_buffer() to have set up
21204  * scannerYYtext, we can now set up
21205  * yy_c_buf_p so that if some total
21206  * hoser (like flex itself) wants to
21207  * call the scanner after we return the
21208  * YY_NULL, it'll still work - another
21209  * YY_NULL will get returned.
21210  */
21212 
21213  yy_act = YY_STATE_EOF(YY_START);
21214  goto do_action;
21215  }
21216 
21217  else
21218  {
21219  if ( ! (yy_did_buffer_switch_on_eof) )
21220  YY_NEW_FILE;
21221  }
21222  break;
21223  }
21224 
21225  case EOB_ACT_CONTINUE_SCAN:
21226  (yy_c_buf_p) =
21227  (yytext_ptr) + yy_amount_of_matched_text;
21228 
21229  yy_current_state = yy_get_previous_state( );
21230 
21231  yy_cp = (yy_c_buf_p);
21232  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
21233  goto yy_match;
21234 
21235  case EOB_ACT_LAST_MATCH:
21236  (yy_c_buf_p) =
21237  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
21238 
21239  yy_current_state = yy_get_previous_state( );
21240 
21241  yy_cp = (yy_c_buf_p);
21242  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
21243  goto yy_find_action;
21244  }
21245  break;
21246  }
21247 
21248  default:
21250  "fatal flex scanner internal error--no action found" );
21251  } /* end of action switch */
21252  } /* end of scanning one token */
21253 } /* end of scannerYYlex */
21254 
21255 /* yy_get_next_buffer - try to read in a new buffer
21256  *
21257  * Returns a code representing an action:
21258  * EOB_ACT_LAST_MATCH -
21259  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
21260  * EOB_ACT_END_OF_FILE - end of file
21261  */
21262 static int yy_get_next_buffer (void)
21263 {
21264  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
21265  register char *source = (yytext_ptr);
21266  register int number_to_move, i;
21267  int ret_val;
21268 
21269  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
21271  "fatal flex scanner internal error--end of buffer missed" );
21272 
21273  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
21274  { /* Don't try to fill the buffer, so this is an EOF. */
21275  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
21276  {
21277  /* We matched a single character, the EOB, so
21278  * treat this as a final EOF.
21279  */
21280  return EOB_ACT_END_OF_FILE;
21281  }
21282 
21283  else
21284  {
21285  /* We matched some text prior to the EOB, first
21286  * process it.
21287  */
21288  return EOB_ACT_LAST_MATCH;
21289  }
21290  }
21291 
21292  /* Try to read more data. */
21293 
21294  /* First move last chars to start of buffer. */
21295  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
21296 
21297  for ( i = 0; i < number_to_move; ++i )
21298  *(dest++) = *(source++);
21299 
21300  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
21301  /* don't do the read, it's not guaranteed to return an EOF,
21302  * just force an EOF
21303  */
21304  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
21305 
21306  else
21307  {
21308  int num_to_read =
21309  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
21310 
21311  while ( num_to_read <= 0 )
21312  { /* Not enough room in the buffer - grow it. */
21313 
21315 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
21316 
21317  }
21318 
21319  if ( num_to_read > YY_READ_BUF_SIZE )
21320  num_to_read = YY_READ_BUF_SIZE;
21321 
21322  /* Read in more data. */
21323  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
21324  (yy_n_chars), (size_t) num_to_read );
21325 
21326  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
21327  }
21328 
21329  if ( (yy_n_chars) == 0 )
21330  {
21331  if ( number_to_move == YY_MORE_ADJ )
21332  {
21333  ret_val = EOB_ACT_END_OF_FILE;
21335  }
21336 
21337  else
21338  {
21339  ret_val = EOB_ACT_LAST_MATCH;
21340  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
21342  }
21343  }
21344 
21345  else
21346  ret_val = EOB_ACT_CONTINUE_SCAN;
21347 
21348  if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
21349  /* Extend the array by 50%, plus the number we really need. */
21350  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
21351  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) scannerYYrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
21352  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
21353  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
21354  }
21355 
21356  (yy_n_chars) += number_to_move;
21359 
21360  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
21361 
21362  return ret_val;
21363 }
21364 
21365 /* yy_get_previous_state - get the state just before the EOB char was reached */
21366 
21367  static yy_state_type yy_get_previous_state (void)
21368 {
21369  register yy_state_type yy_current_state;
21370  register char *yy_cp;
21371 
21372  yy_current_state = (yy_start);
21373  yy_current_state += YY_AT_BOL();
21374 
21375  (yy_state_ptr) = (yy_state_buf);
21376  *(yy_state_ptr)++ = yy_current_state;
21377 
21378  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
21379  {
21380  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
21381  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
21382  {
21383  yy_current_state = (int) yy_def[yy_current_state];
21384  if ( yy_current_state >= 4613 )
21385  yy_c = yy_meta[(unsigned int) yy_c];
21386  }
21387  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
21388  *(yy_state_ptr)++ = yy_current_state;
21389  }
21390 
21391  return yy_current_state;
21392 }
21393 
21394 /* yy_try_NUL_trans - try to make a transition on the NUL character
21395  *
21396  * synopsis
21397  * next_state = yy_try_NUL_trans( current_state );
21398  */
21399  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
21400 {
21401  register int yy_is_jam;
21402 
21403  register YY_CHAR yy_c = 1;
21404  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
21405  {
21406  yy_current_state = (int) yy_def[yy_current_state];
21407  if ( yy_current_state >= 4613 )
21408  yy_c = yy_meta[(unsigned int) yy_c];
21409  }
21410  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
21411  yy_is_jam = (yy_current_state == 4612);
21412  if ( ! yy_is_jam )
21413  *(yy_state_ptr)++ = yy_current_state;
21414 
21415  return yy_is_jam ? 0 : yy_current_state;
21416 }
21417 
21418  static void yyunput (int c, register char * yy_bp )
21419 {
21420  register char *yy_cp;
21421 
21422  yy_cp = (yy_c_buf_p);
21423 
21424  /* undo effects of setting up scannerYYtext */
21425  *yy_cp = (yy_hold_char);
21426 
21427  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
21428  { /* need to shift things up to make room */
21429  /* +2 for EOB chars. */
21430  register int number_to_move = (yy_n_chars) + 2;
21431  register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
21432  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
21433  register char *source =
21434  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
21435 
21436  while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
21437  *--dest = *--source;
21438 
21439  yy_cp += (int) (dest - source);
21440  yy_bp += (int) (dest - source);
21441  YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
21442  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
21443 
21444  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
21445  YY_FATAL_ERROR( "flex scanner push-back overflow" );
21446  }
21447 
21448  *--yy_cp = (char) c;
21449 
21450  (yytext_ptr) = yy_bp;
21451  (yy_hold_char) = *yy_cp;
21452  (yy_c_buf_p) = yy_cp;
21453 }
21454 
21455 #ifndef YY_NO_INPUT
21456 #ifdef __cplusplus
21457  static int yyinput (void)
21458 #else
21459  static int input (void)
21460 #endif
21461 
21462 {
21463  int c;
21464 
21465  *(yy_c_buf_p) = (yy_hold_char);
21466 
21467  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
21468  {
21469  /* yy_c_buf_p now points to the character we want to return.
21470  * If this occurs *before* the EOB characters, then it's a
21471  * valid NUL; if not, then we've hit the end of the buffer.
21472  */
21473  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
21474  /* This was really a NUL. */
21475  *(yy_c_buf_p) = '\0';
21476 
21477  else
21478  { /* need more input */
21479  int offset = (yy_c_buf_p) - (yytext_ptr);
21480  ++(yy_c_buf_p);
21481 
21482  switch ( yy_get_next_buffer( ) )
21483  {
21484  case EOB_ACT_LAST_MATCH:
21485  /* This happens because yy_g_n_b()
21486  * sees that we've accumulated a
21487  * token and flags that we need to
21488  * try matching the token before
21489  * proceeding. But for input(),
21490  * there's no matching to consider.
21491  * So convert the EOB_ACT_LAST_MATCH
21492  * to EOB_ACT_END_OF_FILE.
21493  */
21494 
21495  /* Reset buffer status. */
21497 
21498  /*FALLTHROUGH*/
21499 
21500  case EOB_ACT_END_OF_FILE:
21501  {
21502  if ( scannerYYwrap( ) )
21503  return EOF;
21504 
21505  if ( ! (yy_did_buffer_switch_on_eof) )
21506  YY_NEW_FILE;
21507 #ifdef __cplusplus
21508  return yyinput();
21509 #else
21510  return input();
21511 #endif
21512  }
21513 
21514  case EOB_ACT_CONTINUE_SCAN:
21515  (yy_c_buf_p) = (yytext_ptr) + offset;
21516  break;
21517  }
21518  }
21519  }
21520 
21521  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
21522  *(yy_c_buf_p) = '\0'; /* preserve scannerYYtext */
21523  (yy_hold_char) = *++(yy_c_buf_p);
21524 
21525  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
21526 
21527  return c;
21528 }
21529 #endif /* ifndef YY_NO_INPUT */
21530 
21531 /** Immediately switch to a different input stream.
21532  * @param input_file A readable stream.
21533  *
21534  * @note This function does not reset the start condition to @c INITIAL .
21535  */
21537 {
21538 
21539  if ( ! YY_CURRENT_BUFFER ){
21543  }
21544 
21547 }
21548 
21549 /** Switch to a different input buffer.
21550  * @param new_buffer The new input buffer.
21551  *
21552  */
21553  void scannerYY_switch_to_buffer (YY_BUFFER_STATE new_buffer )
21554 {
21555 
21556  /* TODO. We should be able to replace this entire function body
21557  * with
21558  * scannerYYpop_buffer_state();
21559  * scannerYYpush_buffer_state(new_buffer);
21560  */
21562  if ( YY_CURRENT_BUFFER == new_buffer )
21563  return;
21564 
21565  if ( YY_CURRENT_BUFFER )
21566  {
21567  /* Flush out information for old buffer. */
21568  *(yy_c_buf_p) = (yy_hold_char);
21569  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
21570  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
21571  }
21572 
21573  YY_CURRENT_BUFFER_LVALUE = new_buffer;
21575 
21576  /* We don't actually know whether we did this switch during
21577  * EOF (scannerYYwrap()) processing, but the only time this flag
21578  * is looked at is after scannerYYwrap() is called, so it's safe
21579  * to go ahead and always set it.
21580  */
21582 }
21583 
21585 {
21586  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
21587  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
21588  scannerYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
21589  (yy_hold_char) = *(yy_c_buf_p);
21590 }
21591 
21592 /** Allocate and initialize an input buffer state.
21593  * @param file A readable stream.
21594  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
21595  *
21596  * @return the allocated buffer state.
21597  */
21598  YY_BUFFER_STATE scannerYY_create_buffer (FILE * file, int size )
21599 {
21600  YY_BUFFER_STATE b;
21601 
21602  b = (YY_BUFFER_STATE) scannerYYalloc(sizeof( struct yy_buffer_state ) );
21603  if ( ! b )
21604  YY_FATAL_ERROR( "out of dynamic memory in scannerYY_create_buffer()" );
21605 
21606  b->yy_buf_size = size;
21607 
21608  /* yy_ch_buf has to be 2 characters longer than the size given because
21609  * we need to put in 2 end-of-buffer characters.
21610  */
21611  b->yy_ch_buf = (char *) scannerYYalloc(b->yy_buf_size + 2 );
21612  if ( ! b->yy_ch_buf )
21613  YY_FATAL_ERROR( "out of dynamic memory in scannerYY_create_buffer()" );
21614 
21615  b->yy_is_our_buffer = 1;
21616 
21617  scannerYY_init_buffer(b,file );
21618 
21619  return b;
21620 }
21621 
21622 /** Destroy the buffer.
21623  * @param b a buffer created with scannerYY_create_buffer()
21624  *
21625  */
21626  void scannerYY_delete_buffer (YY_BUFFER_STATE b )
21627 {
21628 
21629  if ( ! b )
21630  return;
21631 
21632  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
21634 
21635  if ( b->yy_is_our_buffer )
21636  scannerYYfree((void *) b->yy_ch_buf );
21637 
21638  scannerYYfree((void *) b );
21639 }
21640 
21641 /* Initializes or reinitializes a buffer.
21642  * This function is sometimes called more than once on the same buffer,
21643  * such as during a scannerYYrestart() or at EOF.
21644  */
21645  static void scannerYY_init_buffer (YY_BUFFER_STATE b, FILE * file )
21646 
21647 {
21648  int oerrno = errno;
21649 
21651 
21652  b->yy_input_file = file;
21653  b->yy_fill_buffer = 1;
21654 
21655  /* If b is the current buffer, then scannerYY_init_buffer was _probably_
21656  * called from scannerYYrestart() or through yy_get_next_buffer.
21657  * In that case, we don't want to reset the lineno or column.
21658  */
21659  if (b != YY_CURRENT_BUFFER){
21660  b->yy_bs_lineno = 1;
21661  b->yy_bs_column = 0;
21662  }
21663 
21664  b->yy_is_interactive = 0;
21665 
21666  errno = oerrno;
21667 }
21668 
21669 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
21670  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
21671  *
21672  */
21673  void scannerYY_flush_buffer (YY_BUFFER_STATE b )
21674 {
21675  if ( ! b )
21676  return;
21677 
21678  b->yy_n_chars = 0;
21679 
21680  /* We always need two end-of-buffer characters. The first causes
21681  * a transition to the end-of-buffer state. The second causes
21682  * a jam in that state.
21683  */
21686 
21687  b->yy_buf_pos = &b->yy_ch_buf[0];
21688 
21689  b->yy_at_bol = 1;
21691 
21692  if ( b == YY_CURRENT_BUFFER )
21694 }
21695 
21696 /** Pushes the new state onto the stack. The new state becomes
21697  * the current state. This function will allocate the stack
21698  * if necessary.
21699  * @param new_buffer The new state.
21700  *
21701  */
21702 void scannerYYpush_buffer_state (YY_BUFFER_STATE new_buffer )
21703 {
21704  if (new_buffer == NULL)
21705  return;
21706 
21708 
21709  /* This block is copied from scannerYY_switch_to_buffer. */
21710  if ( YY_CURRENT_BUFFER )
21711  {
21712  /* Flush out information for old buffer. */
21713  *(yy_c_buf_p) = (yy_hold_char);
21714  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
21715  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
21716  }
21717 
21718  /* Only push if top exists. Otherwise, replace top. */
21719  if (YY_CURRENT_BUFFER)
21720  (yy_buffer_stack_top)++;
21721  YY_CURRENT_BUFFER_LVALUE = new_buffer;
21722 
21723  /* copied from scannerYY_switch_to_buffer. */
21726 }
21727 
21728 /** Removes and deletes the top of the stack, if present.
21729  * The next element becomes the new top.
21730  *
21731  */
21733 {
21734  if (!YY_CURRENT_BUFFER)
21735  return;
21736 
21738  YY_CURRENT_BUFFER_LVALUE = NULL;
21739  if ((yy_buffer_stack_top) > 0)
21740  --(yy_buffer_stack_top);
21741 
21742  if (YY_CURRENT_BUFFER) {
21745  }
21746 }
21747 
21748 /* Allocates the stack if it does not exist.
21749  * Guarantees space for at least one push.
21750  */
21752 {
21753  int num_to_alloc;
21754 
21755  if (!(yy_buffer_stack)) {
21756 
21757  /* First allocation is just for 2 elements, since we don't know if this
21758  * scanner will even need a stack. We use 2 instead of 1 to avoid an
21759  * immediate realloc on the next call.
21760  */
21761  num_to_alloc = 1;
21763  (num_to_alloc * sizeof(struct yy_buffer_state*)
21764  );
21765  if ( ! (yy_buffer_stack) )
21766  YY_FATAL_ERROR( "out of dynamic memory in scannerYYensure_buffer_stack()" );
21767 
21768  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
21769 
21770  (yy_buffer_stack_max) = num_to_alloc;
21771  (yy_buffer_stack_top) = 0;
21772  return;
21773  }
21774 
21775  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
21776 
21777  /* Increase the buffer to prepare for a possible push. */
21778  int grow_size = 8 /* arbitrary grow size */;
21779 
21780  num_to_alloc = (yy_buffer_stack_max) + grow_size;
21782  ((yy_buffer_stack),
21783  num_to_alloc * sizeof(struct yy_buffer_state*)
21784  );
21785  if ( ! (yy_buffer_stack) )
21786  YY_FATAL_ERROR( "out of dynamic memory in scannerYYensure_buffer_stack()" );
21787 
21788  /* zero only the new slots.*/
21789  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
21790  (yy_buffer_stack_max) = num_to_alloc;
21791  }
21792 }
21793 
21794 /** Setup the input buffer state to scan directly from a user-specified character buffer.
21795  * @param base the character buffer
21796  * @param size the size in bytes of the character buffer
21797  *
21798  * @return the newly allocated buffer state object.
21799  */
21800 YY_BUFFER_STATE scannerYY_scan_buffer (char * base, yy_size_t size )
21801 {
21802  YY_BUFFER_STATE b;
21803 
21804  if ( size < 2 ||
21805  base[size-2] != YY_END_OF_BUFFER_CHAR ||
21806  base[size-1] != YY_END_OF_BUFFER_CHAR )
21807  /* They forgot to leave room for the EOB's. */
21808  return 0;
21809 
21810  b = (YY_BUFFER_STATE) scannerYYalloc(sizeof( struct yy_buffer_state ) );
21811  if ( ! b )
21812  YY_FATAL_ERROR( "out of dynamic memory in scannerYY_scan_buffer()" );
21813 
21814  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
21815  b->yy_buf_pos = b->yy_ch_buf = base;
21816  b->yy_is_our_buffer = 0;
21817  b->yy_input_file = 0;
21818  b->yy_n_chars = b->yy_buf_size;
21819  b->yy_is_interactive = 0;
21820  b->yy_at_bol = 1;
21821  b->yy_fill_buffer = 0;
21823 
21825 
21826  return b;
21827 }
21828 
21829 /** Setup the input buffer state to scan a string. The next call to scannerYYlex() will
21830  * scan from a @e copy of @a str.
21831  * @param yystr a NUL-terminated string to scan
21832  *
21833  * @return the newly allocated buffer state object.
21834  * @note If you want to scan bytes that may contain NUL values, then use
21835  * scannerYY_scan_bytes() instead.
21836  */
21837 YY_BUFFER_STATE scannerYY_scan_string (yyconst char * yystr )
21838 {
21839 
21840  return scannerYY_scan_bytes(yystr,strlen(yystr) );
21841 }
21842 
21843 /** Setup the input buffer state to scan the given bytes. The next call to scannerYYlex() will
21844  * scan from a @e copy of @a bytes.
21845  * @param bytes the byte buffer to scan
21846  * @param len the number of bytes in the buffer pointed to by @a bytes.
21847  *
21848  * @return the newly allocated buffer state object.
21849  */
21850 YY_BUFFER_STATE scannerYY_scan_bytes (yyconst char * yybytes, int _yybytes_len )
21851 {
21852  YY_BUFFER_STATE b;
21853  char *buf;
21854  yy_size_t n;
21855  int i;
21856 
21857  /* Get memory for full buffer, including space for trailing EOB's. */
21858  n = _yybytes_len + 2;
21859  buf = (char *) scannerYYalloc(n );
21860  if ( ! buf )
21861  YY_FATAL_ERROR( "out of dynamic memory in scannerYY_scan_bytes()" );
21862 
21863  for ( i = 0; i < _yybytes_len; ++i )
21864  buf[i] = yybytes[i];
21865 
21866  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
21867 
21868  b = scannerYY_scan_buffer(buf,n );
21869  if ( ! b )
21870  YY_FATAL_ERROR( "bad buffer in scannerYY_scan_bytes()" );
21871 
21872  /* It's okay to grow etc. this buffer, and we should throw it
21873  * away when we're done.
21874  */
21875  b->yy_is_our_buffer = 1;
21876 
21877  return b;
21878 }
21879 
21880 #ifndef YY_EXIT_FAILURE
21881 #define YY_EXIT_FAILURE 2
21882 #endif
21883 
21884 static void yy_fatal_error (yyconst char* msg )
21885 {
21886  (void) fprintf( stderr, "%s\n", msg );
21887  exit( YY_EXIT_FAILURE );
21888 }
21889 
21890 /* Redefine yyless() so it works in section 3 code. */
21891 
21892 #undef yyless
21893 #define yyless(n) \
21894  do \
21895  { \
21896  /* Undo effects of setting up scannerYYtext. */ \
21897  int yyless_macro_arg = (n); \
21898  YY_LESS_LINENO(yyless_macro_arg);\
21899  scannerYYtext[scannerYYleng] = (yy_hold_char); \
21900  (yy_c_buf_p) = scannerYYtext + yyless_macro_arg; \
21901  (yy_hold_char) = *(yy_c_buf_p); \
21902  *(yy_c_buf_p) = '\0'; \
21903  scannerYYleng = yyless_macro_arg; \
21904  } \
21905  while ( 0 )
21906 
21907 /* Accessor methods (get/set functions) to struct members. */
21908 
21909 /** Get the current line number.
21910  *
21911  */
21913 {
21914 
21915  return scannerYYlineno;
21916 }
21917 
21918 /** Get the input stream.
21919  *
21920  */
21921 FILE *scannerYYget_in (void)
21922 {
21923  return scannerYYin;
21924 }
21925 
21926 /** Get the output stream.
21927  *
21928  */
21929 FILE *scannerYYget_out (void)
21930 {
21931  return scannerYYout;
21932 }
21933 
21934 /** Get the length of the current token.
21935  *
21936  */
21938 {
21939  return scannerYYleng;
21940 }
21941 
21942 /** Get the current token.
21943  *
21944  */
21945 
21946 char *scannerYYget_text (void)
21947 {
21948  return scannerYYtext;
21949 }
21950 
21951 /** Set the current line number.
21952  * @param line_number
21953  *
21954  */
21955 void scannerYYset_lineno (int line_number )
21956 {
21957 
21958  scannerYYlineno = line_number;
21959 }
21960 
21961 /** Set the input stream. This does not discard the current
21962  * input buffer.
21963  * @param in_str A readable stream.
21964  *
21965  * @see scannerYY_switch_to_buffer
21966  */
21967 void scannerYYset_in (FILE * in_str )
21968 {
21969  scannerYYin = in_str ;
21970 }
21971 
21972 void scannerYYset_out (FILE * out_str )
21973 {
21974  scannerYYout = out_str ;
21975 }
21976 
21978 {
21979  return scannerYY_flex_debug;
21980 }
21981 
21982 void scannerYYset_debug (int bdebug )
21983 {
21984  scannerYY_flex_debug = bdebug ;
21985 }
21986 
21987 static int yy_init_globals (void)
21988 {
21989  /* Initialization is the same as for the non-reentrant scanner.
21990  * This function is called from scannerYYlex_destroy(), so don't allocate here.
21991  */
21992 
21993  (yy_buffer_stack) = 0;
21994  (yy_buffer_stack_top) = 0;
21995  (yy_buffer_stack_max) = 0;
21996  (yy_c_buf_p) = (char *) 0;
21997  (yy_init) = 0;
21998  (yy_start) = 0;
21999 
22000  (yy_state_buf) = 0;
22001  (yy_state_ptr) = 0;
22002  (yy_full_match) = 0;
22003  (yy_lp) = 0;
22004 
22005 /* Defined in main.c */
22006 #ifdef YY_STDINIT
22007  scannerYYin = stdin;
22008  scannerYYout = stdout;
22009 #else
22010  scannerYYin = (FILE *) 0;
22011  scannerYYout = (FILE *) 0;
22012 #endif
22013 
22014  /* For future reference: Set errno on error, since we are called by
22015  * scannerYYlex_init()
22016  */
22017  return 0;
22018 }
22019 
22020 /* scannerYYlex_destroy is for both reentrant and non-reentrant scanners. */
22022 {
22023 
22024  /* Pop the buffer stack, destroying each element. */
22025  while(YY_CURRENT_BUFFER){
22027  YY_CURRENT_BUFFER_LVALUE = NULL;
22029  }
22030 
22031  /* Destroy the stack itself. */
22032  scannerYYfree((yy_buffer_stack) );
22033  (yy_buffer_stack) = NULL;
22034 
22035  scannerYYfree ( (yy_state_buf) );
22036  (yy_state_buf) = NULL;
22037 
22038  /* Reset the globals. This is important in a non-reentrant scanner so the next time
22039  * scannerYYlex() is called, initialization will occur. */
22040  yy_init_globals( );
22041 
22042  return 0;
22043 }
22044 
22045 /*
22046  * Internal utility routines.
22047  */
22048 
22049 #ifndef yytext_ptr
22050 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
22051 {
22052  register int i;
22053  for ( i = 0; i < n; ++i )
22054  s1[i] = s2[i];
22055 }
22056 #endif
22057 
22058 #ifdef YY_NEED_STRLEN
22059 static int yy_flex_strlen (yyconst char * s )
22060 {
22061  register int n;
22062  for ( n = 0; s[n]; ++n )
22063  ;
22064 
22065  return n;
22066 }
22067 #endif
22068 
22070 {
22071  return (void *) malloc( size );
22072 }
22073 
22074 void *scannerYYrealloc (void * ptr, yy_size_t size )
22075 {
22076  /* The cast to (char *) in the following accommodates both
22077  * implementations that use char* generic pointers, and those
22078  * that use void* generic pointers. It works with the latter
22079  * because both ANSI C and C++ allow castless assignment from
22080  * any pointer type to void*, and deal with argument conversions
22081  * as though doing an assignment.
22082  */
22083  return (void *) realloc( (char *) ptr, size );
22084 }
22085 
22086 void scannerYYfree (void * ptr )
22087 {
22088  free( (char *) ptr ); /* see scannerYYrealloc() for (char *) cast */
22089 }
22090 
22091 #define YYTABLES_NAME "yytables"
22092 
22093 #line 6587 "scanner.l"
22094 
22095 
22096 
22097 //----------------------------------------------------------------------------
22098 
22099 static void startCommentBlock(bool brief)
22100 {
22101  if (brief)
22102  {
22103  current->briefFile = yyFileName;
22104  current->briefLine = yyLineNr;
22105  }
22106  else
22107  {
22108  current->docFile = yyFileName;
22109  current->docLine = yyLineNr;
22110  }
22111 }
22112 
22113 //----------------------------------------------------------------------------
22114 
22115 static void newEntry()
22116 {
22117  if (tempEntry==0) // if temp entry is not 0, it holds current,
22118  // and current is actually replaced by previous which was
22119  // already added to current_root, so we should not add it again
22120  // (see bug723314)
22121  {
22122  current_root->addSubEntry(current);
22123  }
22124  tempEntry = 0;
22125  previous = current;
22126  current = new Entry ;
22127  initEntry();
22128 }
22129 
22130 static void handleCommentBlock(const QCString &doc,bool brief)
22131 {
22132  static bool hideInBodyDocs = Config_getBool("HIDE_IN_BODY_DOCS");
22133  int position=0;
22134  bool needsEntry=FALSE;
22135  if (docBlockInBody && hideInBodyDocs) return;
22136  //printf("parseCommentBlock [%s] brief=%d\n",doc.data(),brief);
22137  int lineNr = brief ? current->briefLine : current->docLine; // line of block start
22138 
22139  // fill in inbodyFile && inbodyLine the first time, see bug 633891
22140  Entry *docEntry = docBlockInBody && previous ? previous : current;
22141  if (docBlockInBody && docEntry && docEntry->inbodyLine==-1)
22142  {
22143  docEntry->inbodyFile = yyFileName;
22144  docEntry->inbodyLine = lineNr;
22145  }
22146 
22147  while (parseCommentBlock(
22148  g_thisParser,
22149  docBlockInBody && previous ? previous : current,
22150  stripIndentation(doc), // text
22151  yyFileName, // file
22152  lineNr, // line of block start
22153  docBlockInBody ? FALSE : brief, // isBrief
22154  docBlockInBody ? FALSE : docBlockAutoBrief, // isJavaDocStyle
22155  docBlockInBody, // isInBody
22156  protection,
22157  position,
22158  needsEntry
22159  )
22160  )
22161  {
22162  //printf("parseCommentBlock position=%d [%s]\n",position,doc.data()+position);
22163  if (needsEntry)
22164  {
22165  QCString docFile = current->docFile;
22166  newEntry();
22167  current->docFile = docFile;
22168  current->docLine = lineNr;
22169  }
22170  }
22171  if (needsEntry)
22172  {
22173  newEntry();
22174  }
22175 
22176  if (docBlockTerm)
22177  {
22178  unput(docBlockTerm);
22179  docBlockTerm=0;
22180  }
22181 }
22182 
22184 {
22185  //printf(">>>>>>> handleParametersCommentBlocks()\n");
22186  ArgumentListIterator ali(*al);
22187  Argument *a;
22188  for (ali.toFirst();(a=ali.current());++ali)
22189  {
22190  //printf(" Param %s docs=%s\n",a->name.data(),a->docs.data());
22191  if (!a->docs.isEmpty())
22192  {
22193  int position=0;
22194  bool needsEntry;
22195 
22196  // save context
22197  QCString orgDoc = current->doc;
22198  QCString orgBrief = current->brief;
22199  int orgDocLine = current->docLine;
22200  int orgBriefLine = current->briefLine;
22201 
22202  current->doc.resize(0);
22203  current->brief.resize(0);
22204 
22205  //printf("handleParametersCommentBlock [%s]\n",doc.data());
22206  while (parseCommentBlock(
22207  g_thisParser,
22208  current,
22209  a->docs, // text
22210  yyFileName, // file
22211  current->docLine, // line of block start
22212  FALSE,
22213  FALSE,
22214  FALSE,
22215  protection,
22216  position,
22217  needsEntry
22218  )
22219  )
22220  {
22221  //printf("handleParametersCommentBlock position=%d [%s]\n",position,doc.data()+position);
22222  if (needsEntry) newEntry();
22223  }
22224  if (needsEntry)
22225  {
22226  newEntry();
22227  }
22228  a->docs = current->doc;
22229 
22230  // restore context
22231  current->doc = orgDoc;
22232  current->brief = orgBrief;
22233  current->docLine = orgDocLine;
22234  current->briefLine = orgBriefLine;
22235  }
22236  }
22237 }
22238 
22239 
22240 //----------------------------------------------------------------------------
22241 
22242 static void parseCompounds(Entry *rt)
22243 {
22244  //printf("parseCompounds(%s)\n",rt->name.data());
22245  EntryListIterator eli(*rt->children());
22246  Entry *ce;
22247  for (;(ce=eli.current());++eli)
22248  {
22249  if (!ce->program.isEmpty())
22250  {
22251  //printf("-- %s ---------\n%s\n---------------\n",
22252  // ce->name.data(),ce->program.data());
22253  // init scanner state
22254  padCount=0;
22255  //depthIf = 0;
22256  g_column=0;
22257  inputString = ce->program;
22258  inputPosition = 0;
22260  if (ce->section==Entry::ENUM_SEC || (ce->spec&Entry::Enum))
22261  BEGIN( FindFields ) ;
22262  else
22263  BEGIN( FindMembers ) ;
22264  current_root = ce ;
22265  yyFileName = ce->fileName;
22266  //setContext();
22267  yyLineNr = ce->startLine ;
22268  yyColNr = ce->startColumn ;
22269  insideObjC = ce->lang==SrcLangExt_ObjC;
22270  //printf("---> Inner block starts at line %d objC=%d\n",yyLineNr,insideObjC);
22271  //current->reset();
22272  if (current) delete current;
22273  current = new Entry;
22274  gstat = FALSE;
22275  initEntry();
22276 
22277  // deep copy group list from parent (see bug 727732)
22278  static bool autoGroupNested = Config_getBool("GROUP_NESTED_COMPOUNDS");
22279  if (autoGroupNested && rt->groups && ce->section!=Entry::ENUM_SEC && !(ce->spec&Entry::Enum))
22280  {
22281  QListIterator<Grouping> gli(*rt->groups);
22282  Grouping *g;
22283  for (;(g=gli.current());++gli)
22284  {
22285  ce->groups->append(new Grouping(*g));
22286  }
22287  }
22288 
22289  int ni=ce->name.findRev("::"); if (ni==-1) ni=0; else ni+=2;
22290  // set default protection based on the compound type
22291  if( ce->section==Entry::CLASS_SEC ) // class
22292  {
22293  if (insidePHP || insideD || insideJS || insideIDL)
22294  {
22295  current->protection = protection = Public ;
22296  }
22297  else if (insideJava)
22298  {
22299  current->protection = protection = (ce->spec & (Entry::Interface|Entry::Enum)) ? Public : Package;
22300  }
22302  {
22303  if (ce->lang==SrcLangExt_ObjC)
22304  {
22305  current->protection = protection = Protected ;
22306  }
22307  else
22308  {
22309  current->protection = protection = Public ;
22310  }
22311  }
22312  else
22313  {
22314  current->protection = protection = Private ;
22315  }
22316  }
22317  else if (ce->section == Entry::ENUM_SEC ) // enum
22318  {
22319  current->protection = protection = ce->protection;
22320  }
22321  else if (!ce->name.isEmpty() && ce->name.at(ni)=='@') // unnamed union or namespace
22322  {
22323  if (ce->section == Entry::NAMESPACE_SEC ) // unnamed namespace
22324  {
22325  current->stat = gstat = TRUE;
22326  }
22327  current->protection = protection = ce->protection;
22328  }
22329  else // named struct, union, protocol, category
22330  {
22331  current->protection = protection = Public ;
22332  }
22333  mtype = Method;
22334  virt = Normal;
22335  //printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat);
22336 
22337  //memberGroupId = DOX_NOGROUP;
22338  //memberGroupRelates.resize(0);
22339  //memberGroupInside.resize(0);
22340  groupEnterCompound(yyFileName,yyLineNr,ce->name);
22341 
22342  scannerYYlex() ;
22343  g_lexInit=TRUE;
22344  //forceEndGroup();
22345 
22346  groupLeaveCompound(yyFileName,yyLineNr,ce->name);
22347 
22348  delete current; current=0;
22349  ce->program.resize(0);
22350 
22351 
22352  //if (depthIf>0)
22353  //{
22354  // warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!");
22355  //}
22356  }
22357  parseCompounds(ce);
22358  }
22359 }
22360 
22361 //----------------------------------------------------------------------------
22362 
22363 static void parseMain(const char *fileName,
22364  const char *fileBuf,
22365  Entry *rt,
22366  bool sameTranslationUnit,
22367  QStrList & filesInSameTranslationUnit)
22368 {
22369  initParser();
22370 
22371  inputString = fileBuf;
22372  inputPosition = 0;
22373  g_column = 0;
22374 
22375  //anonCount = 0; // don't reset per file
22376  //depthIf = 0;
22377  protection = Public;
22378  mtype = Method;
22379  gstat = FALSE;
22380  virt = Normal;
22381  current_root = rt;
22382  global_root = rt;
22383  inputFile.setName(fileName);
22384  if (inputFile.open(IO_ReadOnly))
22385  {
22386  yyLineNr= 1 ;
22387  yyFileName = fileName;
22388  setContext();
22389  bool processWithClang = insideCpp || insideObjC;
22390  if (processWithClang)
22391  {
22392  if (!sameTranslationUnit) // new file
22393  {
22394  ClangParser::instance()->start(fileName,filesInSameTranslationUnit);
22395  }
22396  else
22397  {
22398  ClangParser::instance()->switchToFile(fileName);
22399  }
22400  }
22401  rt->lang = language;
22402  msg("Parsing file %s...\n",yyFileName.data());
22403 
22404  current_root = rt ;
22405  initParser();
22406  groupEnterFile(yyFileName,yyLineNr);
22407  current = new Entry;
22408  //printf("current=%p current_root=%p\n",current,current_root);
22409  int sec=guessSection(yyFileName);
22410  if (sec)
22411  {
22412  current->name = yyFileName;
22413  current->section = sec;
22414  current_root->addSubEntry(current);
22415  current = new Entry;
22416  }
22417  current->reset();
22418  initEntry();
22420  if ( insidePHP )
22421  {
22422  BEGIN( FindMembersPHP );
22423  }
22424  else
22425  {
22426  BEGIN( FindMembers );
22427  }
22428 
22429  scannerYYlex();
22430  g_lexInit=TRUE;
22431 
22432  if (YY_START==Comment)
22433  {
22434  warn(yyFileName,yyLineNr,"File ended in the middle of a comment block! Perhaps a missing \\endcode?");
22435  }
22436 
22437  //forceEndGroup();
22438  groupLeaveFile(yyFileName,yyLineNr);
22439 
22440  //if (depthIf>0)
22441  //{
22442  // warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!");
22443  //}
22444 
22445  rt->program.resize(0);
22446  if (rt->children()->contains(current)==0)
22447  // it could be that current is already added as a child to rt, so we
22448  // only delete it if this is not the case. See bug 635317.
22449  {
22450  delete current; current=0;
22451  }
22452 
22453  parseCompounds(rt);
22454 
22455  inputFile.close();
22456 
22457  anonNSCount++;
22458 
22459  }
22460 }
22461 
22462 //----------------------------------------------------------------------------
22463 
22464 static void parsePrototype(const QCString &text)
22465 {
22466  //printf("**** parsePrototype(%s) begin\n",text.data());
22467  if (text.isEmpty())
22468  {
22469  warn(yyFileName,yyLineNr,"Empty prototype found!");
22470  return;
22471  }
22472  if (!current) // nothing to store (see bug683516)
22473  {
22474  return;
22475  }
22476 
22477  const char *orgInputString;
22478  int orgInputPosition;
22479  YY_BUFFER_STATE orgState;
22480 
22481  // save scanner state
22482  orgState = YY_CURRENT_BUFFER;
22484  orgInputString = inputString;
22485  orgInputPosition = inputPosition;
22486 
22487  // set new string
22488  inputString = text;
22489  inputPosition = 0;
22490  g_column = 0;
22492  BEGIN(Prototype);
22493  scannerYYlex();
22494  g_lexInit=TRUE;
22495 
22496  current->name = current->name.stripWhiteSpace();
22497  if (current->section == Entry::MEMBERDOC_SEC && current->args.isEmpty())
22498  current->section = Entry::VARIABLEDOC_SEC;
22499 
22500  // restore original scanner state
22501  YY_BUFFER_STATE tmpState = YY_CURRENT_BUFFER;
22502  scannerYY_switch_to_buffer(orgState);
22503  scannerYY_delete_buffer(tmpState);
22504  inputString = orgInputString;
22505  inputPosition = orgInputPosition;
22506 
22507  //printf("**** parsePrototype end\n");
22508 }
22509 
22511 {
22512 #if defined(YY_FLEX_SUBMINOR_VERSION)
22513  if (g_lexInit)
22514  {
22516  }
22517 #endif
22518 }
22519 
22520 //static void handleGroupStartCommand(const char *header)
22521 //{
22522 // memberGroupHeader=header;
22523 // startGroupInDoc();
22524 //}
22525 //
22526 //static void handleGroupEndCommand()
22527 //{
22528 // endGroup();
22529 // previous=0;
22530 //}
22531 
22532 //----------------------------------------------------------------------------
22533 
22535 {
22536 }
22537 
22539 {
22540  bool processWithClang = insideCpp || insideObjC;
22541  if (processWithClang)
22542  {
22544  }
22545 }
22546 
22548  const char *fileBuf,
22549  Entry *root,
22550  bool sameTranslationUnit,
22551  QStrList & filesInSameTranslationUnit)
22552 {
22553  g_thisParser = this;
22554 
22555  printlex(scannerYY_flex_debug, TRUE, __FILE__, fileName);
22556 
22557  ::parseMain(fileName,fileBuf,root,
22558  sameTranslationUnit,filesInSameTranslationUnit);
22559 
22560  printlex(scannerYY_flex_debug, FALSE, __FILE__, fileName);
22561 }
22562 
22564  const char * scopeName,
22565  const QCString & input,
22566  SrcLangExt lang,
22567  bool isExampleBlock,
22568  const char * exampleName,
22569  FileDef * fileDef,
22570  int startLine,
22571  int endLine,
22572  bool inlineFragment,
22573  MemberDef *memberDef,
22574  bool showLineNumbers,
22575  Definition *searchCtx,
22576  bool collectXRefs
22577  )
22578 {
22579  ::parseCCode(codeOutIntf,scopeName,input,lang,isExampleBlock,exampleName,
22580  fileDef,startLine,endLine,inlineFragment,memberDef,
22581  showLineNumbers,searchCtx,collectXRefs);
22582 }
22583 
22585 {
22586  QCString fe=extension.lower();
22587  SrcLangExt lang = getLanguageFromFileName(extension);
22588  return (SrcLangExt_Cpp == lang) ||
22589  !( fe==".java" || fe==".as" || fe==".d" || fe==".php" ||
22590  fe==".php4" || fe==".inc" || fe==".phtml"
22591  );
22592 }
22593 
22595 {
22597 }
22598 
22599 void CLanguageScanner::parsePrototype(const char *text)
22600 {
22601  ::parsePrototype(text);
22602 }
22603 
22604 //----------------------------------------------------------------------------
22605 
22606 #if !defined(YY_FLEX_SUBMINOR_VERSION)
22607 //----------------------------------------------------------------------------
22608 extern "C" { // some bogus code to keep the compiler happy
22609  void scannerYYdummy() { yy_flex_realloc(0,0); }
22610 }
22611 #endif
22612 
22613 
static QGString * pSkipVerbString
Definition: scanner.cpp:10930
static yyconst flex_int16_t yy_accept[4614]
Definition: scanner.cpp:987
#define YY_DO_BEFORE_ACTION
Definition: scanner.cpp:378
static QCString name
Definition: declinfo.cpp:673
static int yy_did_buffer_switch_on_eof
Definition: scanner.cpp:304
static const uint64 Gettable
Definition: entry.h:147
static int anonCount
Definition: scanner.cpp:10874
Definition: types.h:61
QGString program
the program text
Definition: entry.h:256
static QStack< Grouping > autoGroupStack
Definition: scanner.cpp:10931
static QCString * specName
Definition: scanner.cpp:10891
#define YY_END_OF_BUFFER_CHAR
Definition: scanner.cpp:159
QCString type
Definition: arguments.h:67
#define yyconst
Definition: scanner.cpp:127
void setAutoDelete(bool del)
Definition: qstack.h:55
void scannerYYset_extra(YY_EXTRA_TYPE user_defined)
static bool insideProtocolList
Definition: scanner.cpp:10907
bool resize(uint newlen)
Definition: qcstring.h:225
Q_EXPORT int qstrncmp(const char *str1, const char *str2, uint len)
Definition: qcstring.h:101
#define StaticAssert
Definition: scanner.cpp:11575
static int lastCContext
Definition: scanner.cpp:10836
static int sharpCount
Definition: scanner.cpp:10858
int scannerYYget_lineno(void)
Definition: scanner.cpp:21912
char * yy_buf_pos
Definition: code.cpp:213
static bool needsSemi
Definition: scanner.cpp:10936
FILE * yy_input_file
Definition: code.cpp:210
void * scannerYYalloc(yy_size_t)
Definition: scanner.cpp:22069
short int flex_int16_t
Definition: code.cpp:71
void startTranslationUnit(const char *fileName)
Definition: scanner.cpp:22534
static int curlyCount
Definition: scanner.cpp:10860
static yyconst flex_int16_t yy_def[5274]
Definition: scanner.cpp:2128
void reset()
Definition: entry.cpp:217
static char docBlockTerm
Definition: scanner.cpp:10950
static const uint64 NonAtomic
Definition: entry.h:161
YY_BUFFER_STATE scannerYY_scan_buffer(char *base, yy_size_t size)
Definition: scanner.cpp:21800
static int yy_start
Definition: scanner.cpp:299
static const uint64 Published
Definition: entry.h:182
#define SkipInits
Definition: scanner.cpp:11562
#define ObjCParamType
Definition: scanner.cpp:11595
int yy_n_chars
Definition: code.cpp:223
static const uint64 Ref
Definition: entry.h:123
This class represents an function or template argument list.
Definition: arguments.h:82
char * data() const
Definition: qgstring.h:42
QCString stripWhiteSpace() const
Definition: qcstring.cpp:295
#define YY_CURRENT_BUFFER
Definition: scanner.cpp:282
static void yyunput(int c, char *buf_ptr)
static QCString scope
Definition: declinfo.cpp:668
bool proto
prototype ?
Definition: entry.h:247
static QCString aliasName
Definition: scanner.cpp:10889
#define SkipCurly
Definition: scanner.cpp:11557
uint64 spec
class/member specifiers
Definition: entry.h:243
char * scannerYYget_text(void)
Definition: scanner.cpp:21946
static int lastSquareContext
Definition: scanner.cpp:10844
bool stat
static ?
Definition: entry.h:245
#define YY_BUFFER_NEW
Definition: scanner.cpp:254
static QCString fullArgString
Definition: scanner.cpp:10915
void switchToFile(const char *fileName)
short int flex_int16_t
Definition: scanner.cpp:71
#define CopyHereDoc
Definition: scanner.cpp:11644
bool brief
void scannerYYset_debug(int debug_flag)
Definition: scanner.cpp:21982
Definition: types.h:32
Definition: types.h:29
static QCString idlAttr
Definition: scanner.cpp:10952
#define DefineEnd
Definition: scanner.cpp:11521
#define NSAliasArg
Definition: scanner.cpp:11619
void fixArgumentListForJavaScript(ArgumentList *al)
Definition: scanner.cpp:11339
static constexpr double g
Definition: Units.h:144
#define Specialization
Definition: scanner.cpp:11629
bool isEmpty() const
Definition: qcstring.h:189
#define FindMemberName
Definition: scanner.cpp:11539
int scannerYY_flex_debug
Definition: scanner.cpp:10753
The QRegExp class provides pattern matching using regular expressions or wildcards.
Definition: qregexp.h:46
static void addType(Entry *current)
Definition: scanner.cpp:11099
Class representing operators that can appear in template expressions.
Definition: template.cpp:428
unsigned short int flex_uint16_t
Definition: scanner.cpp:74
void msg(const char *fmt,...)
Definition: message.cpp:107
#define FindMembers
Definition: scanner.cpp:11537
static void initEntry()
Definition: scanner.cpp:11002
static void scannerYYensure_buffer_stack(void)
Definition: scanner.cpp:21751
#define REJECT
Definition: scanner.cpp:10763
static bool isTypedef
Definition: scanner.cpp:10883
static const uint64 Mutable
Definition: entry.h:145
#define YY_CURRENT_BUFFER_LVALUE
Definition: scanner.cpp:289
void printlex(int dbg, bool enter, const char *lexName, const char *fileName)
Definition: message.cpp:242
static Entry * current
Definition: scanner.cpp:10865
int yy_fill_buffer
Definition: code.cpp:250
uint length() const
Definition: qgstring.h:40
uint length() const
Definition: qcstring.h:195
#define YY_FATAL_ERROR(msg)
Definition: scanner.cpp:11799
#define CopyArgComment
Definition: scanner.cpp:11639
void append(const type *d)
Definition: qlist.h:73
#define CopyArgSharp
Definition: scanner.cpp:11638
static int yyBegColNr
Definition: scanner.cpp:10873
static QCString msArgs
Definition: scanner.cpp:10882
void scannerYYset_out(FILE *out_str)
Definition: scanner.cpp:21972
Definition: types.h:29
void scannerYYset_lineno(int line_number)
Definition: scanner.cpp:21955
#define ReadBodyIntf
Definition: scanner.cpp:11552
Definition: entry.h:63
int scannerYYlex(void)
#define IDLUnionCase
Definition: scanner.cpp:11617
int guessSection(const char *name)
Definition: util.cpp:315
Abstract interface for programming language parsers.
Definition: parserintf.h:38
QCString read
property read accessor
Definition: entry.h:271
static QCString g_delimiter
Definition: scanner.cpp:10959
static const uint64 Abstract
Definition: entry.h:151
Definition: types.h:26
static yy_state_type yy_try_NUL_trans(yy_state_type current_state)
Definition: scanner.cpp:21399
static QGString docBlock
Definition: scanner.cpp:10946
static QCString * pCopyQuotedString
Definition: scanner.cpp:10920
#define EndFuncPtr
Definition: scanner.cpp:11614
static const uint64 ForwardDecl
Definition: entry.h:136
void start(const char *fileName, QStrList &filesInTranslationUnit)
#define QtPropWrite
Definition: scanner.cpp:11603
static char * yy_full_match
Definition: scanner.cpp:10756
static QCString * pCopyRawString
Definition: scanner.cpp:10923
static const uint64 Exception
Definition: entry.h:128
#define SkipCurlyBlock
Definition: scanner.cpp:11569
#define DocBlock
Definition: scanner.cpp:11657
static ParserInterface * g_thisParser
Definition: scanner.cpp:10831
static const uint64 Sealed
Definition: entry.h:157
static const uint64 Settable
Definition: entry.h:146
char & at(uint i) const
Definition: qcstring.h:326
static QCString sectionTitle
Definition: scanner.cpp:10886
static bool insideFormula
Definition: scanner.cpp:10933
static bool docBlockInBody
Definition: scanner.cpp:10948
QCString argListToString(ArgumentList *al, bool useCanonicalType, bool showDefVals)
Definition: util.cpp:2151
static Entry * previous
Definition: scanner.cpp:10866
int briefLine
line number at which the brief desc. was found
Definition: entry.h:264
static int roundCount
Definition: scanner.cpp:10859
#define ExcpRound
Definition: scanner.cpp:11544
static char * yy_c_buf_p
Definition: scanner.cpp:297
#define CliOverride
Definition: scanner.cpp:11531
register char * yy_cp
Definition: scanner.cpp:11838
void groupEnterCompound(const char *fileName, int line, const char *name)
#define ObjCParams
Definition: scanner.cpp:11594
#define YY_BUF_SIZE
Definition: scanner.cpp:163
void parseCCode(CodeOutputInterface &od, const char *className, const QCString &s, SrcLangExt lang, bool exBlock, const char *exName, FileDef *fd, int startLine, int endLine, bool inlineFragment, MemberDef *memberDef, bool showLineNumbers, Definition *searchCtx, bool collectXRefs)
Definition: code.cpp:16397
static YY_BUFFER_STATE * yy_buffer_stack
Definition: scanner.cpp:274
#define MemberSpecSkip
Definition: scanner.cpp:11610
#define IDLPropName
Definition: scanner.cpp:11650
static void splitKnRArg(QCString &oldStyleArgPtr, QCString &oldStyleArgName)
Definition: scanner.cpp:11226
static const uint64 Weak
Definition: entry.h:166
signed char flex_int8_t
Definition: scanner.cpp:70
int docLine
line number at which the documentation was found
Definition: entry.h:261
static void parseCompounds(Entry *rt)
Definition: scanner.cpp:22242
const bool FALSE
Definition: qglobal.h:370
static const uint64 SealedClass
Definition: entry.h:131
Definition: types.h:26
ArgumentList * argList
member arguments as a list
Definition: entry.h:254
#define ReadNSBody
Definition: scanner.cpp:11551
unsigned int flex_uint32_t
Definition: scanner.cpp:75
static QCString * pCopyCurlyString
Definition: scanner.cpp:10922
void addSubEntry(Entry *e)
Definition: entry.cpp:206
#define EndCppQuote
Definition: scanner.cpp:11608
#define EOB_ACT_LAST_MATCH
Definition: scanner.cpp:181
static const uint64 ProtectedGettable
Definition: entry.h:140
static QGString * pCopyRoundGString
Definition: scanner.cpp:10926
#define HereDocEnd
Definition: scanner.cpp:11643
static size_t yy_buffer_stack_max
Definition: scanner.cpp:273
#define YY_MORE_ADJ
Definition: scanner.cpp:10775
Definition: qstack.h:46
QCString name
member name
Definition: entry.h:237
int yy_bs_lineno
Definition: code.cpp:244
void scannerYYpop_buffer_state(void)
Definition: scanner.cpp:21732
bool resize(uint newlen)
Definition: qgstring.cpp:96
#define CliPropertyType
Definition: scanner.cpp:11529
#define ObjCMethod
Definition: scanner.cpp:11592
static QCString stripPath(const QCString &s)
Definition: tagreader.cpp:1287
#define CopyArgVerbatim
Definition: scanner.cpp:11641
static const uint64 MaybeDefault
Definition: entry.h:180
static const uint64 NoExcept
Definition: entry.h:172
#define YY_END_OF_BUFFER
Definition: scanner.cpp:386
static void initParser()
Definition: scanner.cpp:10974
YY_BUFFER_STATE scannerYY_scan_bytes(yyconst char *bytes, int len)
Definition: scanner.cpp:21850
static void parseMain(const char *fileName, const char *fileBuf, Entry *rt, bool sameTranslationUnit, QStrList &filesInSameTranslationUnit)
Definition: scanner.cpp:22363
QCString left(uint len) const
Definition: qcstring.cpp:213
#define QtPropRead
Definition: scanner.cpp:11602
static const uint64 Assign
Definition: entry.h:164
#define ReadBody
Definition: scanner.cpp:11550
register int yy_act
Definition: scanner.cpp:11839
#define FindMembersPHP
Definition: scanner.cpp:11538
void * scannerYYrealloc(void *, yy_size_t)
Definition: scanner.cpp:22074
int errno
Contains the last error code.
Definition: structcmd.h:53
static int argSharpCount
Definition: scanner.cpp:10910
static bool g_lexInit
Definition: scanner.cpp:10956
init
Definition: train.py:42
#define FuncRound
Definition: scanner.cpp:11543
int find(char c, int index=0, bool cs=TRUE) const
Definition: qcstring.cpp:41
static const uint64 Default
Definition: entry.h:170
FILE * scannerYYget_out(void)
Definition: scanner.cpp:21929
void addSpecialListItem(const char *listName, int index)
Definition: entry.cpp:309
static int anonNSCount
Definition: scanner.cpp:10875
#define SkipC11Inits
Definition: scanner.cpp:11563
QCString id
libclang id
Definition: entry.h:290
static Entry * firstTypedefEntry
Definition: scanner.cpp:10868
#define YY_BREAK
Definition: scanner.cpp:11824
void setName(const QString &name)
Definition: qfile.cpp:167
int scannerYYlex_destroy(void)
Definition: scanner.cpp:22021
#define FuncPtrInit
Definition: scanner.cpp:11630
int yy_state_type
Definition: scanner.cpp:361
#define Comment
Definition: scanner.cpp:11580
#define SkipCurlyEndDoc
Definition: scanner.cpp:11559
static ArgumentList * currentArgumentList
Definition: scanner.cpp:10917
yy_size_t yy_buf_size
Definition: code.cpp:218
static Entry * memspecEntry
Definition: scanner.cpp:10869
static int yy_full_lp
Definition: scanner.cpp:10759
SrcLangExt
Definition: types.h:41
static QStrList * l
Definition: config.cpp:1044
Definition: types.h:26
static QCString * pCopyRoundString
Definition: scanner.cpp:10921
void resetCCodeParserState()
Definition: code.cpp:16382
static bool useOverrideCommands
Definition: scanner.cpp:10893
Definition: types.h:32
int findRev(char c, int index=-1, bool cs=TRUE) const
Definition: qcstring.cpp:95
Entry * parent() const
Definition: entry.h:205
static int lastCommentInArgContext
Definition: scanner.cpp:10849
#define CopyArgCommentLine
Definition: scanner.cpp:11640
unsigned char YY_CHAR
Definition: scanner.cpp:357
#define BitFields
Definition: scanner.cpp:11535
static void lineCount()
Definition: scanner.cpp:11062
Definition: types.h:29
static int initBracketCount
Definition: scanner.cpp:10939
static QCString yyFileName
Definition: scanner.cpp:10876
static bool insideD
processing D code?
Definition: scanner.cpp:10899
int mGrpId
member group id
Definition: entry.h:278
#define SkipString
Definition: scanner.cpp:11560
#define CppQuote
Definition: scanner.cpp:11607
static bool checkForKnRstyleC()
Definition: scanner.cpp:11209
#define PreLineCtrl
Definition: scanner.cpp:11587
unsigned char uchar
Definition: nybbler.cc:11
#define ClassVar
Definition: scanner.cpp:11523
#define UsingAliasEnd
Definition: scanner.cpp:11555
#define SkipVerbString
Definition: scanner.cpp:11591
#define SkipCxxComment
Definition: scanner.cpp:11568
static int lastSkipSharpContext
Definition: scanner.cpp:10839
QList< ArgumentList > * tArgLists
template argument declarations
Definition: entry.h:255
QCString copy() const
Definition: qcstring.h:250
static int yyLineNr
Definition: scanner.cpp:10870
static int lastCopyArgContext
Definition: scanner.cpp:10913
int startColumn
start column of entry in the source
Definition: entry.h:284
bool insert(uint i, const type *d)
Definition: qlist.h:70
bool constSpecifier
Definition: arguments.h:99
void scannerYY_flush_buffer(YY_BUFFER_STATE b)
Definition: scanner.cpp:21673
#define SkipCurlyCpp
Definition: scanner.cpp:11558
#define IO_ReadOnly
Definition: qiodevice.h:61
static const uint64 Raisable
Definition: entry.h:154
static QCString msType
Definition: scanner.cpp:10882
static const uint64 Optional
Definition: entry.h:159
static const uint64 Explicit
Definition: entry.h:144
static int lastHereDocContext
Definition: scanner.cpp:10852
int flex_int32_t
Definition: scanner.cpp:72
static int computeIndent(const char *s, int startIndent)
Definition: scanner.cpp:11084
#define INITIAL
Definition: scanner.cpp:11517
static yyconst flex_int32_t yy_ec[256]
Definition: scanner.cpp:1499
#define Config_getInt(val)
Definition: config.cpp:661
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Definition: StdUtils.h:92
static QCString briefBackup
Definition: scanner.cpp:10943
int itemId
Definition: types.h:101
void scannerYYrestart(FILE *input_file)
Definition: scanner.cpp:21536
static const uint64 Inline
Definition: entry.h:143
static void startCommentBlock(bool)
Definition: scanner.cpp:22099
static yy_state_type * yy_state_buf
Definition: scanner.cpp:10755
static Protection protection
Definition: scanner.cpp:10856
static int yyBegLineNr
Definition: scanner.cpp:10871
#define CSConstraintType
Definition: scanner.cpp:11525
#define scannerYYwrap(n)
Definition: scanner.cpp:354
static const uint64 Strong
Definition: entry.h:165
This class contains the information about the argument of a function or template. ...
Definition: arguments.h:28
static const uint64 Final
Definition: entry.h:150
#define SkipRoundBlock
Definition: scanner.cpp:11570
static Entry * tempEntry
Definition: scanner.cpp:10867
uint count() const
Definition: qlist.h:66
static int yyread(char *buf, int max_size)
Definition: scanner.cpp:11358
static SrcLangExt language
Definition: scanner.cpp:10895
static Entry * global_root
Definition: scanner.cpp:10864
#define ReadFuncArgType
Definition: scanner.cpp:11615
bool findAndRemoveWord(QCString &s, const QCString &word)
Definition: util.cpp:6848
bool volatileSpecifier
Definition: arguments.h:101
static bool insidePHP
processing PHP code?
Definition: scanner.cpp:10900
type * getLast() const
Definition: qlist.h:96
#define Sharp
Definition: scanner.cpp:11571
static QGString * pCopyRawGString
Definition: scanner.cpp:10929
void groupEnterFile(const char *fileName, int)
#define DefinePHPEnd
Definition: scanner.cpp:11589
static const uint64 Retain
Definition: entry.h:163
Definition: types.h:32
#define IDLProp
Definition: scanner.cpp:11649
static Protection baseProt
Definition: scanner.cpp:10857
#define unput(c)
Definition: scanner.cpp:199
const double e
int yy_bs_column
Definition: code.cpp:245
#define FuncFuncType
Definition: scanner.cpp:11633
#define ObjCReturnType
Definition: scanner.cpp:11593
static bool insideIDL
processing IDL code?
Definition: scanner.cpp:10896
static bool insideTryBlock
Definition: scanner.cpp:10934
int scannerYYlineno
Definition: scanner.cpp:365
static bool insideCS
processing C# code?
Definition: scanner.cpp:10898
static bool removeSlashes
Definition: scanner.cpp:10879
#define EndTemplate
Definition: scanner.cpp:11611
QList< Grouping > * groups
list of groups this entry belongs to
Definition: entry.h:280
QGString initializer
initial value (for variables)
Definition: entry.h:257
static int input(void)
Definition: code.cpp:15695
static const uint64 Transient
Definition: entry.h:178
QCString inbodyFile
file in which the body doc was found
Definition: entry.h:268
#define PrototypeExc
Definition: scanner.cpp:11654
fileName
Definition: dumpTree.py:9
#define HereDoc
Definition: scanner.cpp:11642
void parsePrototype(const char *text)
Definition: scanner.cpp:22599
#define MemberSpec
Definition: scanner.cpp:11609
QCString brief
brief description (doc block)
Definition: entry.h:263
#define Array
Definition: scanner.cpp:11549
int endBodyLine
line number where the definition ends
Definition: entry.h:277
bool containsWord(const QCString &s, const QCString &word)
Definition: util.cpp:6836
#define AlignAsEnd
Definition: scanner.cpp:11519
ArgumentList * typeConstr
where clause (C#) for type constraints
Definition: entry.h:275
#define DocLine
Definition: scanner.cpp:11656
#define TypedefName
Definition: scanner.cpp:11577
#define CopyHereDocEnd
Definition: scanner.cpp:11645
Definition: define.h:27
static yyconst flex_int16_t yy_acclist[5360]
Definition: scanner.cpp:394
static bool g_nestedComment
Definition: scanner.cpp:10964
#define YY_START
Definition: scanner.cpp:150
Definition: types.h:32
static int lastCPPContext
Definition: scanner.cpp:10838
#define TryFunctionBlock
Definition: scanner.cpp:11578
static size_t yy_buffer_stack_top
Definition: scanner.cpp:272
static int lastContext
Definition: scanner.cpp:10835
const QList< Entry > * children() const
Definition: entry.h:210
#define YY_EXIT_FAILURE
Definition: scanner.cpp:21881
static bool nameIsOperator(QCString &name)
Definition: scanner.cpp:11139
QCString right(uint len) const
Definition: qcstring.cpp:231
static const uint64 Interface
Definition: entry.h:125
std::void_t< T > n
QCString lookup(uint line, const char *symbol)
#define CSConstraintName
Definition: scanner.cpp:11524
static void parsePrototype(const QCString &text)
Definition: scanner.cpp:22464
const double a
bool open(int)
Definition: qfile_unix.cpp:134
int toInt(bool *ok=0) const
Definition: qcstring.cpp:439
#define CliPropertyIndex
Definition: scanner.cpp:11530
static const uint64 Alias
Definition: entry.h:168
static const uint64 Protocol
Definition: entry.h:129
static const uint64 Enum
Definition: entry.h:133
int scannerYYget_debug(void)
Definition: scanner.cpp:21977
static int lastRawStringContext
Definition: scanner.cpp:10850
#define Bases
Definition: scanner.cpp:11532
static void handleParametersCommentBlocks(ArgumentList *al)
Definition: scanner.cpp:22183
static const uint64 Addable
Definition: entry.h:152
#define ECHO
Definition: scanner.cpp:11745
static const char * inputString
Definition: scanner.cpp:10832
#define PHPUse
Definition: scanner.cpp:11583
#define YY_RESTORE_YY_MORE_OFFSET
Definition: scanner.cpp:10776
static const uint64 New
Definition: entry.h:156
#define Function
Definition: scanner.cpp:11542
Specifier
Definition: types.h:29
#define CopyPHPString
Definition: scanner.cpp:11621
static int squareCount
Definition: scanner.cpp:10861
#define GCopyRound
Definition: scanner.cpp:11626
#define UsingAlias
Definition: scanner.cpp:11554
void parseCode(CodeOutputInterface &codeOutIntf, const char *scopeName, const QCString &input, SrcLangExt lang, bool isExampleBlock, const char *exampleName=0, FileDef *fileDef=0, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, MemberDef *memberDef=0, bool showLineNumbers=TRUE, Definition *searchCtx=0, bool collectXRefs=TRUE)
Definition: scanner.cpp:22563
#define AlignAs
Definition: scanner.cpp:11518
QCString stripIndentation(const QCString &s)
Definition: util.cpp:8110
QCString exception
throw specification
Definition: entry.h:274
int startLine
start line of entry in the source
Definition: entry.h:283
#define SkipComment
Definition: scanner.cpp:11567
static int padCount
Definition: scanner.cpp:10862
static Specifier virt
Definition: scanner.cpp:10880
void stringToArgumentList(const char *argsString, ArgumentList *al, QCString *extraTypeChars)
Definition: defargs.cpp:2922
QCString & prepend(const char *s)
Definition: qcstring.cpp:387
static void addKnRArgInfo(const QCString &type, const QCString &name, const QCString &brief, const QCString &docs)
Definition: scanner.cpp:11304
static int currentArgumentContext
Definition: scanner.cpp:10911
static int lastCSConstraint
Definition: scanner.cpp:10851
#define ReadTempArgs
Definition: scanner.cpp:11616
p
Definition: test.py:223
#define RawString
Definition: scanner.cpp:11646
QCString args
member argument string
Definition: entry.h:252
QCString write
property write accessor
Definition: entry.h:272
#define IDLAttribute
Definition: scanner.cpp:11648
#define CopyPHPGString
Definition: scanner.cpp:11623
A bunch of utility functions.
#define CSAccessorDecl
Definition: scanner.cpp:11585
void clear()
Definition: qlist.h:82
void openGroup(Entry *e, const char *file, int line)
const char * data() const
Definition: qcstring.h:207
#define GCopyCurly
Definition: scanner.cpp:11627
#define PrototypeSkipLine
Definition: scanner.cpp:11655
static char yy_hold_char
Definition: scanner.cpp:292
type * current() const
Definition: qlist.h:146
#define YY_EXTRA_TYPE
Definition: scanner.cpp:11669
char * yy_ch_buf
Definition: code.cpp:212
string tmp
Definition: languages.py:63
static char lastCopyArgChar
Definition: scanner.cpp:10918
YY_BUFFER_STATE scannerYY_scan_string(yyconst char *yy_str)
Definition: scanner.cpp:21837
#define YY_BUFFER_NORMAL
Definition: scanner.cpp:255
Protection protection
class protection
Definition: entry.h:241
#define ClassCategory
Definition: scanner.cpp:11527
#define PackageName
Definition: scanner.cpp:11581
int scannerYYget_leng(void)
Definition: scanner.cpp:21937
#define Config_getBool(val)
Definition: config.cpp:664
#define SkipSquare
Definition: scanner.cpp:11573
#define SkipPHPString
Definition: scanner.cpp:11561
static int yy_lp
Definition: scanner.cpp:10757
char * scannerYYtext
Definition: scanner.cpp:10777
static const uint64 Removable
Definition: entry.h:153
static const uint64 Required
Definition: entry.h:160
unsigned char YY_CHAR
Definition: code.cpp:357
#define YY_RULE_SETUP
Definition: scanner.cpp:11827
void finishTranslationUnit()
Definition: scanner.cpp:22538
static const uint64 Property
Definition: entry.h:174
static void newEntry()
Definition: scanner.cpp:22115
static int lastDocContext
Definition: scanner.cpp:10837
#define BasesProt
Definition: scanner.cpp:11533
static const uint64 Value
Definition: entry.h:124
#define CSIndexer
Definition: scanner.cpp:11526
#define SkipCPP
Definition: scanner.cpp:11565
register char * yy_bp
Definition: scanner.cpp:11838
static const uint64 Override
Definition: entry.h:155
void initGroupInfo(Entry *e)
#define FindFieldArg
Definition: scanner.cpp:11541
#define YY_STATE_EOF(state)
Definition: scanner.cpp:154
void warn(const char *file, int line, const char *fmt,...)
Definition: message.cpp:183
int flex_int32_t
Definition: code.cpp:72
static yyconst flex_int16_t yy_chk[36507]
Definition: scanner.cpp:6732
static void handleCommentBlock(const QCString &doc, bool brief)
Definition: scanner.cpp:22130
static bool insideCode
Definition: scanner.cpp:10935
#define PHPUseAs
Definition: scanner.cpp:11584
#define BEGIN
Definition: scanner.cpp:144
int yy_is_our_buffer
Definition: code.cpp:229
static int argRoundCount
Definition: scanner.cpp:10909
static bool insideCli
processing C++/CLI code?
Definition: scanner.cpp:10902
static int lastCopyArgStringContext
Definition: scanner.cpp:10912
static QCString funcPtrType
Definition: scanner.cpp:10887
static int lastSkipRoundContext
Definition: scanner.cpp:10840
static MethodTypes mtype
Definition: scanner.cpp:10877
static QCString oldStyleArgType
Definition: scanner.cpp:10941
QCString removeRedundantWhiteSpace(const QCString &s)
Definition: util.cpp:1655
#define RawGString
Definition: scanner.cpp:11647
#define yyterminate()
Definition: scanner.cpp:11789
static const uint64 Attribute
Definition: entry.h:173
QCString mid(uint index, uint len=0xffffffff) const
Definition: qcstring.cpp:246
int scannerYYleng
Definition: scanner.cpp:294
#define YY_BUFFER_EOF_PENDING
Definition: scanner.cpp:266
static int g_column
Definition: scanner.cpp:10961
#define DefinePHP
Definition: scanner.cpp:11588
#define QtPropAttr
Definition: scanner.cpp:11601
The QFile class is an I/O device that operates on files.
Definition: qfile.h:50
static bool insideObjC
processing Objective C code?
Definition: scanner.cpp:10901
QCString & sprintf(const char *format,...)
Definition: qcstring.cpp:27
#define CopyRound
Definition: scanner.cpp:11624
#define YY_SC_TO_UI(c)
Definition: scanner.cpp:138
#define YY_NEW_FILE
Definition: scanner.cpp:157
#define CopyString
Definition: scanner.cpp:11620
static QCString sectionLabel
Definition: scanner.cpp:10885
static yyconst flex_int32_t yy_base[5274]
Definition: scanner.cpp:1544
QCString doc
documentation block (partly parsed)
Definition: entry.h:260
static Specifier baseVirt
Definition: scanner.cpp:10881
void closeGroup(Entry *e, const char *file, int line, bool foundInline=FALSE)
Specifier virt
virtualness of the entry
Definition: entry.h:251
bool parseCommentBlock(ParserInterface *parser, Entry *curEntry, const QCString &comment, const QCString &fileName, int &lineNr, bool isBrief, bool isAutoBriefOn, bool isInbody, Protection &prot, int &position, bool &newEntryNeeded)
bool pureSpecifier
Definition: arguments.h:103
#define OldStyleArgs
Definition: scanner.cpp:11590
static const uint64 Constrained
Definition: entry.h:177
static bool insideJava
processing Java code?
Definition: scanner.cpp:10897
QCString attrib
Definition: arguments.h:66
static const uint64 Unretained
Definition: entry.h:167
#define CopyCurly
Definition: scanner.cpp:11625
static void setContext()
Definition: scanner.cpp:11150
#define PrototypePtr
Definition: scanner.cpp:11652
#define YY_TRAILING_MASK
Definition: scanner.cpp:10761
static int lastSkipVerbStringContext
Definition: scanner.cpp:10848
#define CSGeneric
Definition: scanner.cpp:11586
#define ObjCProtocolList
Definition: scanner.cpp:11596
static const uint64 AbstractClass
Definition: entry.h:132
static const uint64 Initonly
Definition: entry.h:158
#define SkipUnionSwitch
Definition: scanner.cpp:11628
#define ObjCPropAttr
Definition: scanner.cpp:11597
SrcLangExt getLanguageFromFileName(const QCString fileName)
Definition: util.cpp:7061
static bool externC
Definition: scanner.cpp:10957
#define SkipCPPBlock
Definition: scanner.cpp:11566
#define yytext_ptr
Definition: scanner.cpp:368
#define CompoundName
Definition: scanner.cpp:11522
static int lastPreLineCtrlContext
Definition: scanner.cpp:10847
FILE * scannerYYin
Definition: scanner.cpp:359
bool isDeleted
Definition: arguments.h:107
static const uint64 Bound
Definition: entry.h:176
#define YY_AT_BOL()
Definition: scanner.cpp:350
bool needsPreprocessing(const QCString &extension)
Definition: scanner.cpp:22584
void scannerYY_delete_buffer(YY_BUFFER_STATE b)
Definition: scanner.cpp:21626
static const uint64 PrivateSettable
Definition: entry.h:141
static const uint64 Readonly
Definition: entry.h:175
#define ExcpList
Definition: scanner.cpp:11545
static const uint64 Writable
Definition: entry.h:149
#define SkipC11Attribute
Definition: scanner.cpp:11564
static int inputPosition
Definition: scanner.cpp:10833
#define FuncFuncArray
Definition: scanner.cpp:11634
FILE * scannerYYout
Definition: scanner.cpp:359
static const uint64 Category
Definition: entry.h:130
size_t yy_size_t
Definition: scanner.cpp:203
static bool docBlockAutoBrief
Definition: scanner.cpp:10949
Definition: types.h:32
static QGString * pCopyQuotedGString
Definition: scanner.cpp:10927
#define JavaImport
Definition: scanner.cpp:11582
QCString name
Definition: arguments.h:69
void line(double t, double *p, double &x, double &y, double &z)
static StringDict namespaceAliasDict
Definition: doxygen.h:118
void parseInput(const char *fileName, const char *fileBuf, Entry *root, bool sameTranslationUnit, QStrList &filesInSameTranslationUnit)
Definition: scanner.cpp:22547
#define CopyArgString
Definition: scanner.cpp:11635
#define Using
Definition: scanner.cpp:11553
#define YY_STATE_BUF_SIZE
Definition: scanner.cpp:168
static int lastCurlyContext
Definition: scanner.cpp:10842
bool fill(char c, int len=-1)
Definition: qcstring.h:243
QCString fileName
file this entry was extracted from
Definition: entry.h:282
bool explicitExternal
explicitly defined as external?
Definition: entry.h:246
QCString doc
#define YY_DECL
Definition: scanner.cpp:11812
void groupLeaveCompound(const char *, int, const char *)
static Entry * current_root
Definition: scanner.cpp:10863
void groupLeaveFile(const char *fileName, int line)
#define NextSemi
Definition: scanner.cpp:11534
QCString bitfields
member&#39;s bit fields
Definition: entry.h:253
QCString type
Definition: types.h:100
QCString inside
name of the class in which documents are found
Definition: entry.h:273
static QGString * pCopyCurlyGString
Definition: scanner.cpp:10925
#define QtPropName
Definition: scanner.cpp:11600
QCString trailingReturnType
Definition: arguments.h:105
#define NSAliasName
Definition: scanner.cpp:11618
static int lastRoundContext
Definition: scanner.cpp:10843
#define TryFunctionBlockEnd
Definition: scanner.cpp:11579
YY_BUFFER_STATE scannerYY_create_buffer(FILE *file, int size)
Definition: scanner.cpp:21598
static bool * b
Definition: config.cpp:1043
static yy_state_type * yy_state_ptr
Definition: scanner.cpp:10755
unsigned char flex_uint8_t
Definition: scanner.cpp:73
static int lastDefineContext
Definition: scanner.cpp:10853
static int lastAlignAsContext
Definition: scanner.cpp:10854
MethodTypes
Definition: types.h:32
Protection
Definition: types.h:26
static QCString docBackup
Definition: scanner.cpp:10942
static bool gstat
Definition: scanner.cpp:10878
static int yy_get_next_buffer(void)
Definition: scanner.cpp:21262
static yy_state_type yy_get_previous_state(void)
Definition: scanner.cpp:21367
QCString docFile
file in which the documentation was found
Definition: entry.h:262
static QCString * copyArgString
Definition: scanner.cpp:10914
void scannerYYfree(void *)
Definition: scanner.cpp:22086
bool isId(int c)
Definition: util.h:224
#define GetCallType
Definition: scanner.cpp:11606
MethodTypes mtype
signal, slot, (dcop) method, or property?
Definition: entry.h:242
#define YY_READ_BUF_SIZE
Definition: scanner.cpp:11737
static void scannerYY_init_buffer(YY_BUFFER_STATE b, FILE *file)
Definition: scanner.cpp:21645
int yy_is_interactive
Definition: code.cpp:236
#define YY_TRAILING_HEAD_MASK
Definition: scanner.cpp:10762
static int * yy_full_state
Definition: scanner.cpp:10760
#define yyless(n)
Definition: scanner.cpp:21893
static int yy_init_globals(void)
Definition: scanner.cpp:21987
#define EOB_ACT_CONTINUE_SCAN
Definition: scanner.cpp:179
static int yyColNr
Definition: scanner.cpp:10872
static int lastInitializerContext
Definition: scanner.cpp:10845
void scannerYYpush_buffer_state(YY_BUFFER_STATE new_buffer)
Definition: scanner.cpp:21702
float pi
Definition: units.py:11
static QCString docBlockName
Definition: scanner.cpp:10947
static int tmpDocType
Definition: scanner.cpp:10884
static QCString formulaText
Definition: scanner.cpp:10892
static int lastClassTemplSpecContext
Definition: scanner.cpp:10846
#define SkipRound
Definition: scanner.cpp:11572
void clear()
Definition: qstack.h:61
static const uint64 Struct
Definition: entry.h:126
static QCString baseName
Definition: scanner.cpp:10890
#define SkipRemainder
Definition: scanner.cpp:11574
YY_EXTRA_TYPE scannerYYget_extra(void)
#define FuncPtrOperator
Definition: scanner.cpp:11613
static void prependScope()
Definition: scanner.cpp:11174
#define YY_INPUT(buf, result, max_size)
Definition: scanner.cpp:11356
static ClangParser * instance()
Definition: clangparser.cpp:30
#define PrototypeQual
Definition: scanner.cpp:11653
static int yy_looking_for_trail_begin
Definition: scanner.cpp:10758
static int lastStringContext
Definition: scanner.cpp:10841
static const uint64 PrivateGettable
Definition: entry.h:139
static bool insideCpp
processing C/C++ code
Definition: scanner.cpp:10904
QCString lower() const
Definition: qcstring.cpp:263
static QCString idlProp
Definition: scanner.cpp:10953
#define DeclType
Definition: scanner.cpp:11576
static const uint64 Union
Definition: entry.h:127
Q_EXPORT int qstrcmp(const char *str1, const char *str2)
Definition: qcstring.h:95
#define FindFields
Definition: scanner.cpp:11540
uint contains(const type *d) const
Definition: qlist.h:90
SrcLangExt lang
programming language in which this entry was found
Definition: entry.h:286
static void yy_fatal_error(yyconst char msg[])
static const uint64 Service
Definition: entry.h:134
static void scannerYY_load_buffer_state(void)
Definition: scanner.cpp:21584
void scannerYY_switch_to_buffer(YY_BUFFER_STATE new_buffer)
Definition: scanner.cpp:21553
void close()
Definition: qfile_unix.cpp:614
struct yy_buffer_state * YY_BUFFER_STATE
Definition: scanner.cpp:172
static QCString templateStr
Definition: scanner.cpp:10888
#define UNOIDLAttributeBlock
Definition: scanner.cpp:11605
static bool insideJS
processing JavaScript code?
Definition: scanner.cpp:10903
#define ClassTemplSpec
Definition: scanner.cpp:11528
int inbodyLine
line number at which the body doc was found
Definition: entry.h:267
Definition: entry.h:37
static const uint64 ProtectedSettable
Definition: entry.h:142
void scannerYYset_in(FILE *in_str)
Definition: scanner.cpp:21967
static QCString msName
Definition: scanner.cpp:10882
#define Prototype
Definition: scanner.cpp:11651
unsigned uint
Definition: qglobal.h:351
static yyconst flex_int32_t yy_meta[89]
Definition: scanner.cpp:1531
#define DocCopyBlock
Definition: scanner.cpp:11658
void setAutoDelete(bool enable)
Definition: qlist.h:99
#define CopyArgRound
Definition: scanner.cpp:11637
byte bytes
Alias for common language habits.
Definition: datasize.h:101
static int lastC11AttributeContext
Definition: scanner.cpp:10855
#define FuncPtr
Definition: scanner.cpp:11612
static bool insideCppQuote
Definition: scanner.cpp:10906
static int docBlockContext
Definition: scanner.cpp:10945
Definition: types.h:32
size_t yy_size_t
Definition: code.cpp:203
Interface for the comment block parser.
type * toLast()
Definition: qlist.h:136
#define FuncFuncEnd
Definition: scanner.cpp:11632
int yy_buffer_status
Definition: code.cpp:252
static QCString * s
Definition: config.cpp:1042
#define UsingDirective
Definition: scanner.cpp:11556
static QFile inputFile
Definition: scanner.cpp:10834
static const uint64 Copy
Definition: entry.h:162
void scanFreeScanner()
Definition: scanner.cpp:22510
const bool TRUE
Definition: qglobal.h:371
if(!(yy_init))
Definition: scanner.cpp:11846
bool collectXRefs
QList< BaseInfo > * extends
list of base classes
Definition: entry.h:279
#define EnumBaseType
Definition: scanner.cpp:11536
#define TrailingReturn
Definition: scanner.cpp:11547
#define CopyGString
Definition: scanner.cpp:11622
QCString simplifyWhiteSpace() const
Definition: qcstring.cpp:323
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition: util.cpp:5088
#define ReadInitializer
Definition: scanner.cpp:11604
#define CopyArgPHPString
Definition: scanner.cpp:11636
FILE * scannerYYget_in(void)
Definition: scanner.cpp:21921
static bool odlProp
Definition: scanner.cpp:10954
#define QtPropType
Definition: scanner.cpp:11599
static yyconst flex_int16_t yy_nxt[36507]
Definition: scanner.cpp:2712
#define FuncQual
Definition: scanner.cpp:11546
QCString type
member type
Definition: entry.h:236
static QGString * pCopyHereDocGString
Definition: scanner.cpp:10928
static QCString stripQuotes(const char *s)
Definition: scanner.cpp:11119
static const uint64 MaybeVoid
Definition: entry.h:179
#define EOB_ACT_END_OF_FILE
Definition: scanner.cpp:180
static const uint64 Singleton
Definition: entry.h:135
#define ObjCSkipStatement
Definition: scanner.cpp:11598
int section
entry type (see Sections);
Definition: entry.h:235
QCString docs
Definition: arguments.h:72
#define FuncFunc
Definition: scanner.cpp:11631
static int yy_init
Definition: scanner.cpp:298
void resetCodeParserState()
Definition: scanner.cpp:22594
int bodyLine
line number of the definition in the source
Definition: entry.h:276
QCString briefFile
file in which the brief desc. was found
Definition: entry.h:265
QList< ListItemInfo > * sli
special lists (test/todo/bug/deprecated/..) this entry is in
Definition: entry.h:285
static const uint64 Readable
Definition: entry.h:148
type * toFirst()
Definition: qlist.h:135
static const uint64 Delete
Definition: entry.h:171
static const uint64 MaybeAmbiguous
Definition: entry.h:181
static int g_fencedSize
Definition: scanner.cpp:10963